Coverage for /home/martinb/.local/share/virtualenvs/camcops/lib/python3.6/site-packages/MySQLdb/__init__.py : 68%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2MySQLdb - A DB API v2.0 compatible interface to MySQL.
4This package is a wrapper around _mysql, which mostly implements the
5MySQL C API.
7connect() -- connects to server
9See the C API specification and the MySQL documentation for more info
10on other items.
12For information on how MySQLdb handles type conversion, see the
13MySQLdb.converters module.
14"""
16try:
17 from MySQLdb.release import version_info
18 from . import _mysql
20 assert version_info == _mysql.version_info
21except Exception:
22 raise ImportError(
23 "this is MySQLdb version {}, but _mysql is version {!r}\n_mysql: {!r}".format(
24 version_info, _mysql.version_info, _mysql.__file__
25 )
26 )
29from ._mysql import (
30 NotSupportedError,
31 OperationalError,
32 get_client_info,
33 ProgrammingError,
34 Error,
35 InterfaceError,
36 debug,
37 IntegrityError,
38 string_literal,
39 MySQLError,
40 DataError,
41 escape,
42 escape_string,
43 DatabaseError,
44 InternalError,
45 Warning,
46)
47from MySQLdb.constants import FIELD_TYPE
48from MySQLdb.times import (
49 Date,
50 Time,
51 Timestamp,
52 DateFromTicks,
53 TimeFromTicks,
54 TimestampFromTicks,
55)
57try:
58 frozenset
59except NameError:
60 from sets import ImmutableSet as frozenset
62threadsafety = 1
63apilevel = "2.0"
64paramstyle = "format"
67class DBAPISet(frozenset):
68 """A special type of set for which A == x is true if A is a
69 DBAPISet and x is a member of that set."""
71 def __eq__(self, other):
72 if isinstance(other, DBAPISet):
73 return not self.difference(other)
74 return other in self
77STRING = DBAPISet([FIELD_TYPE.ENUM, FIELD_TYPE.STRING, FIELD_TYPE.VAR_STRING])
78BINARY = DBAPISet(
79 [
80 FIELD_TYPE.BLOB,
81 FIELD_TYPE.LONG_BLOB,
82 FIELD_TYPE.MEDIUM_BLOB,
83 FIELD_TYPE.TINY_BLOB,
84 ]
85)
86NUMBER = DBAPISet(
87 [
88 FIELD_TYPE.DECIMAL,
89 FIELD_TYPE.DOUBLE,
90 FIELD_TYPE.FLOAT,
91 FIELD_TYPE.INT24,
92 FIELD_TYPE.LONG,
93 FIELD_TYPE.LONGLONG,
94 FIELD_TYPE.TINY,
95 FIELD_TYPE.YEAR,
96 FIELD_TYPE.NEWDECIMAL,
97 ]
98)
99DATE = DBAPISet([FIELD_TYPE.DATE])
100TIME = DBAPISet([FIELD_TYPE.TIME])
101TIMESTAMP = DBAPISet([FIELD_TYPE.TIMESTAMP, FIELD_TYPE.DATETIME])
102DATETIME = TIMESTAMP
103ROWID = DBAPISet()
106def test_DBAPISet_set_equality():
107 assert STRING == STRING
110def test_DBAPISet_set_inequality():
111 assert STRING != NUMBER
114def test_DBAPISet_set_equality_membership():
115 assert FIELD_TYPE.VAR_STRING == STRING
118def test_DBAPISet_set_inequality_membership():
119 assert FIELD_TYPE.DATE != STRING
122def Binary(x):
123 return bytes(x)
126def Connect(*args, **kwargs):
127 """Factory function for connections.Connection."""
128 from MySQLdb.connections import Connection
130 return Connection(*args, **kwargs)
133connect = Connection = Connect
135__all__ = [
136 "BINARY",
137 "Binary",
138 "Connect",
139 "Connection",
140 "DATE",
141 "Date",
142 "Time",
143 "Timestamp",
144 "DateFromTicks",
145 "TimeFromTicks",
146 "TimestampFromTicks",
147 "DataError",
148 "DatabaseError",
149 "Error",
150 "FIELD_TYPE",
151 "IntegrityError",
152 "InterfaceError",
153 "InternalError",
154 "MySQLError",
155 "NUMBER",
156 "NotSupportedError",
157 "DBAPISet",
158 "OperationalError",
159 "ProgrammingError",
160 "ROWID",
161 "STRING",
162 "TIME",
163 "TIMESTAMP",
164 "Warning",
165 "apilevel",
166 "connect",
167 "connections",
168 "constants",
169 "converters",
170 "cursors",
171 "debug",
172 "escape",
173 "escape_string",
174 "get_client_info",
175 "paramstyle",
176 "string_literal",
177 "threadsafety",
178 "version_info",
179]