Mercurial > p > mysql-python > mysqldb-2
comparison MySQLdb/__init__.py @ 32:4a5668deee4a MySQLdb
Merge back r554 for deprecated sets module
author | kylev |
---|---|
date | Wed, 11 Feb 2009 23:45:57 +0000 |
parents | d55bfb1a4701 |
children | df4d804244ec |
comparison
equal
deleted
inserted
replaced
31:10038670b963 | 32:4a5668deee4a |
---|---|
28 | 28 |
29 from MySQLdb.constants import FIELD_TYPE | 29 from MySQLdb.constants import FIELD_TYPE |
30 from MySQLdb.times import Date, Time, Timestamp, \ | 30 from MySQLdb.times import Date, Time, Timestamp, \ |
31 DateFromTicks, TimeFromTicks, TimestampFromTicks | 31 DateFromTicks, TimeFromTicks, TimestampFromTicks |
32 | 32 |
33 from sets import ImmutableSet | 33 try: |
34 frozenset | |
35 except NameError: | |
36 from sets import ImmutableSet as frozenset | |
34 | 37 |
35 class DBAPISet(ImmutableSet): | 38 class DBAPISet(frozenset): |
36 | |
37 """A special type of set for which A == x is True if A is a | 39 """A special type of set for which A == x is True if A is a |
38 DBAPISet and x is a member of that set. | 40 DBAPISet and x is a member of that set. |
39 | |
40 >>> from MySQLdb.constants import FIELD_TYPE | |
41 >>> FIELD_TYPE.VAR_STRING == STRING | |
42 True | |
43 >>> FIELD_TYPE.DATE == NUMBER | |
44 False | |
45 >>> FIELD_TYPE.DATE != DATE | |
46 False | |
47 | |
48 """ | 41 """ |
49 | |
50 def __ne__(self, other): | |
51 from sets import BaseSet | |
52 if isinstance(other, BaseSet): | |
53 return super(DBAPISet, self).__ne__(self, other) | |
54 else: | |
55 return other not in self | |
56 | |
57 def __eq__(self, other): | 42 def __eq__(self, other): |
58 from sets import BaseSet | 43 if isinstance(other, DBAPISet): |
59 if isinstance(other, BaseSet): | 44 return not self.difference(other) |
60 return super(DBAPISet, self).__eq__(self, other) | 45 return other in self |
61 else: | |
62 return other in self | |
63 | 46 |
64 | 47 |
65 STRING = DBAPISet([FIELD_TYPE.ENUM, FIELD_TYPE.STRING, | 48 STRING = DBAPISet([FIELD_TYPE.ENUM, FIELD_TYPE.STRING, |
66 FIELD_TYPE.VAR_STRING]) | 49 FIELD_TYPE.VAR_STRING]) |
67 BINARY = DBAPISet([FIELD_TYPE.BLOB, FIELD_TYPE.LONG_BLOB, | 50 BINARY = DBAPISet([FIELD_TYPE.BLOB, FIELD_TYPE.LONG_BLOB, |
72 DATE = DBAPISet([FIELD_TYPE.DATE, FIELD_TYPE.NEWDATE]) | 55 DATE = DBAPISet([FIELD_TYPE.DATE, FIELD_TYPE.NEWDATE]) |
73 TIME = DBAPISet([FIELD_TYPE.TIME]) | 56 TIME = DBAPISet([FIELD_TYPE.TIME]) |
74 TIMESTAMP = DBAPISet([FIELD_TYPE.TIMESTAMP, FIELD_TYPE.DATETIME]) | 57 TIMESTAMP = DBAPISet([FIELD_TYPE.TIMESTAMP, FIELD_TYPE.DATETIME]) |
75 DATETIME = TIMESTAMP | 58 DATETIME = TIMESTAMP |
76 ROWID = DBAPISet() | 59 ROWID = DBAPISet() |
60 | |
61 def test_DBAPISet_set_equality(): | |
62 assert STRING == STRING | |
63 | |
64 def test_DBAPISet_set_inequality(): | |
65 assert STRING != NUMBER | |
66 | |
67 def test_DBAPISet_set_equality_membership(): | |
68 assert FIELD_TYPE.VAR_STRING == STRING | |
69 | |
70 def test_DBAPISet_set_inequality_membership(): | |
71 assert FIELD_TYPE.DATE != STRING | |
77 | 72 |
78 def Binary(x): | 73 def Binary(x): |
79 """Return x as a binary type.""" | 74 """Return x as a binary type.""" |
80 return str(x) | 75 return str(x) |
81 | 76 |
95 'ROWID', 'STRING', 'TIME', 'TIMESTAMP', 'Warning', 'apilevel', 'connect', | 90 'ROWID', 'STRING', 'TIME', 'TIMESTAMP', 'Warning', 'apilevel', 'connect', |
96 'connections', 'constants', 'converters', 'cursors', 'debug', 'escape', | 91 'connections', 'constants', 'converters', 'cursors', 'debug', 'escape', |
97 'escape_dict', 'escape_sequence', 'escape_string', 'get_client_info', | 92 'escape_dict', 'escape_sequence', 'escape_string', 'get_client_info', |
98 'paramstyle', 'string_literal', 'threadsafety', 'version_info', | 93 'paramstyle', 'string_literal', 'threadsafety', 'version_info', |
99 ] | 94 ] |
100 | |
101 | |
102 if __name__ == "__main__": | |
103 import doctest | |
104 doctest.testmod() | |
105 |