You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
3.1 KiB

6 years ago
  1. """
  2. MySQLdb - A DB API v2.0 compatible interface to MySQL.
  3. This package is a wrapper around _mysql, which mostly implements the
  4. MySQL C API.
  5. connect() -- connects to server
  6. See the C API specification and the MySQL documentation for more info
  7. on other items.
  8. For information on how MySQLdb handles type conversion, see the
  9. MySQLdb.converters module.
  10. """
  11. from MySQLdb.release import __version__, version_info, __author__
  12. import _mysql
  13. if version_info != _mysql.version_info:
  14. raise ImportError("this is MySQLdb version %s, but _mysql is version %r" %
  15. (version_info, _mysql.version_info))
  16. threadsafety = 1
  17. apilevel = "2.0"
  18. paramstyle = "format"
  19. from _mysql import *
  20. from MySQLdb.compat import PY2
  21. from MySQLdb.constants import FIELD_TYPE
  22. from MySQLdb.times import Date, Time, Timestamp, \
  23. DateFromTicks, TimeFromTicks, TimestampFromTicks
  24. try:
  25. frozenset
  26. except NameError:
  27. from sets import ImmutableSet as frozenset
  28. class DBAPISet(frozenset):
  29. """A special type of set for which A == x is true if A is a
  30. DBAPISet and x is a member of that set."""
  31. def __eq__(self, other):
  32. if isinstance(other, DBAPISet):
  33. return not self.difference(other)
  34. return other in self
  35. STRING = DBAPISet([FIELD_TYPE.ENUM, FIELD_TYPE.STRING,
  36. FIELD_TYPE.VAR_STRING])
  37. BINARY = DBAPISet([FIELD_TYPE.BLOB, FIELD_TYPE.LONG_BLOB,
  38. FIELD_TYPE.MEDIUM_BLOB, FIELD_TYPE.TINY_BLOB])
  39. NUMBER = DBAPISet([FIELD_TYPE.DECIMAL, FIELD_TYPE.DOUBLE, FIELD_TYPE.FLOAT,
  40. FIELD_TYPE.INT24, FIELD_TYPE.LONG, FIELD_TYPE.LONGLONG,
  41. FIELD_TYPE.TINY, FIELD_TYPE.YEAR, FIELD_TYPE.NEWDECIMAL])
  42. DATE = DBAPISet([FIELD_TYPE.DATE, FIELD_TYPE.NEWDATE])
  43. TIME = DBAPISet([FIELD_TYPE.TIME])
  44. TIMESTAMP = DBAPISet([FIELD_TYPE.TIMESTAMP, FIELD_TYPE.DATETIME])
  45. DATETIME = TIMESTAMP
  46. ROWID = DBAPISet()
  47. def test_DBAPISet_set_equality():
  48. assert STRING == STRING
  49. def test_DBAPISet_set_inequality():
  50. assert STRING != NUMBER
  51. def test_DBAPISet_set_equality_membership():
  52. assert FIELD_TYPE.VAR_STRING == STRING
  53. def test_DBAPISet_set_inequality_membership():
  54. assert FIELD_TYPE.DATE != STRING
  55. if PY2:
  56. def Binary(x):
  57. return bytearray(x)
  58. else:
  59. def Binary(x):
  60. return bytes(x)
  61. def Connect(*args, **kwargs):
  62. """Factory function for connections.Connection."""
  63. from MySQLdb.connections import Connection
  64. return Connection(*args, **kwargs)
  65. connect = Connection = Connect
  66. __all__ = [ 'BINARY', 'Binary', 'Connect', 'Connection', 'DATE',
  67. 'Date', 'Time', 'Timestamp', 'DateFromTicks', 'TimeFromTicks',
  68. 'TimestampFromTicks', 'DataError', 'DatabaseError', 'Error',
  69. 'FIELD_TYPE', 'IntegrityError', 'InterfaceError', 'InternalError',
  70. 'MySQLError', 'NULL', 'NUMBER', 'NotSupportedError', 'DBAPISet',
  71. 'OperationalError', 'ProgrammingError', 'ROWID', 'STRING', 'TIME',
  72. 'TIMESTAMP', 'Warning', 'apilevel', 'connect', 'connections',
  73. 'constants', 'converters', 'cursors', 'debug', 'escape', 'escape_dict',
  74. 'escape_sequence', 'escape_string', 'get_client_info',
  75. 'paramstyle', 'string_literal', 'threadsafety', 'version_info']

Powered by TurnKey Linux.