diff options
author | Jason Kirtland <jek@discorporate.us> | 2007-11-18 18:19:52 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2007-11-18 18:19:52 +0000 |
commit | ea627ebe5c8c34ffc4ab5efd04a4855c9419e9c6 (patch) | |
tree | 088dba60ebe3c3ab6b9ef34e0ea9d8f7ec1e6a69 /lib/sqlalchemy | |
parent | 08a434881faa14eab8f17274b97af042903eaba9 (diff) | |
download | sqlalchemy-ea627ebe5c8c34ffc4ab5efd04a4855c9419e9c6.tar.gz |
Migrated Connection.properties to Connection.info ('info' is the new standard name for user-writable property collections that came out of [ticket:573]). 'properties' is now an alias, will be removed in 0.5.
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r-- | lib/sqlalchemy/databases/mysql.py | 16 | ||||
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 9 | ||||
-rw-r--r-- | lib/sqlalchemy/interfaces.py | 4 | ||||
-rw-r--r-- | lib/sqlalchemy/pool.py | 26 |
4 files changed, 32 insertions, 23 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index eaba40a6d..441c099a2 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -1591,9 +1591,9 @@ class MySQLDialect(default.DefaultDialect): """ try: - return connection.properties['_mysql_server_version_info'] + return connection.info['_mysql_server_version_info'] except KeyError: - version = connection.properties['_mysql_server_version_info'] = \ + version = connection.info['_mysql_server_version_info'] = \ self._server_version_info(connection.connection.connection) return version @@ -1663,8 +1663,8 @@ class MySQLDialect(default.DefaultDialect): """Sniff out the character set in use for connection results.""" # Allow user override, won't sniff if force_charset is set. - if 'force_charset' in connection.properties: - return connection.properties['force_charset'] + if 'force_charset' in connection.info: + return connection.info['force_charset'] # Note: MySQL-python 1.2.1c7 seems to ignore changes made # on a connection via set_character_set() @@ -1710,7 +1710,7 @@ class MySQLDialect(default.DefaultDialect): # http://dev.mysql.com/doc/refman/5.0/en/name-case-sensitivity.html try: - return connection.properties['lower_case_table_names'] + return connection.info['lower_case_table_names'] except KeyError: row = _compat_fetchone(connection.execute( "SHOW VARIABLES LIKE 'lower_case_table_names'"), @@ -1727,7 +1727,7 @@ class MySQLDialect(default.DefaultDialect): else: cs = int(row[1]) row.close() - connection.properties['lower_case_table_names'] = cs + connection.info['lower_case_table_names'] = cs return cs def _detect_collations(self, connection, charset=None): @@ -1737,7 +1737,7 @@ class MySQLDialect(default.DefaultDialect): """ try: - return connection.properties['collations'] + return connection.info['collations'] except KeyError: collations = {} if self.server_version_info(connection) < (4, 1, 0): @@ -1746,7 +1746,7 @@ class MySQLDialect(default.DefaultDialect): rs = connection.execute('SHOW COLLATION') for row in _compat_fetchall(rs, charset): collations[row[0]] = row[1] - connection.properties['collations'] = collations + connection.info['collations'] = collations return collations def _show_create_table(self, connection, table, charset=None, diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index c3f99bb24..6af0ce0d3 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -557,8 +557,13 @@ class Connection(Connectable): dialect = property(lambda s:s.engine.dialect, doc="Dialect used by this Connection.") connection = property(_get_connection, doc="The underlying DB-API connection managed by this Connection.") should_close_with_result = property(lambda s:s.__close_with_result, doc="Indicates if this Connection should be closed when a corresponding ResultProxy is closed; this is essentially an auto-release mode.") - properties = property(lambda s: s._get_connection().properties, - doc="A collection of per-DB-API connection instance properties.") + + info = property(lambda s: s._get_connection().info, + doc=("A collection of per-DB-API connection instance " + "properties.")) + properties = property(lambda s: s._get_connection().info, + doc=("An alias for the .info collection, will be " + "removed in 0.5.")) def connect(self): """Returns self. diff --git a/lib/sqlalchemy/interfaces.py b/lib/sqlalchemy/interfaces.py index ae2aeed69..eaad25769 100644 --- a/lib/sqlalchemy/interfaces.py +++ b/lib/sqlalchemy/interfaces.py @@ -29,7 +29,7 @@ class PoolListener(object): Events also receive a ``_ConnectionRecord``, a long-lived internal ``Pool`` object that basically represents a "slot" in the connection pool. ``_ConnectionRecord`` objects have one public - attribute of note: ``properties``, a dictionary whose contents are + attribute of note: ``info``, a dictionary whose contents are scoped to the lifetime of the DB-API connection managed by the record. You can use this shared storage area however you like. @@ -51,7 +51,7 @@ class PoolListener(object): con_record The ``_ConnectionRecord`` that persistently manages the connection - + """ def checkout(self, dbapi_con, con_record, con_proxy): diff --git a/lib/sqlalchemy/pool.py b/lib/sqlalchemy/pool.py index 40114144b..ff38f21b8 100644 --- a/lib/sqlalchemy/pool.py +++ b/lib/sqlalchemy/pool.py @@ -199,7 +199,7 @@ class _ConnectionRecord(object): def __init__(self, pool): self.__pool = pool self.connection = self.__connect() - self.properties = {} + self.info = {} if pool._on_connect: for l in pool._on_connect: l.connect(self.connection, self) @@ -222,7 +222,7 @@ class _ConnectionRecord(object): def get_connection(self): if self.connection is None: self.connection = self.__connect() - self.properties.clear() + self.info.clear() if self.__pool._on_connect: for l in self.__pool._on_connect: l.connect(self.connection, self) @@ -231,7 +231,7 @@ class _ConnectionRecord(object): self.__pool.log("Connection %s exceeded timeout; recycling" % repr(self.connection)) self.__close() self.connection = self.__connect() - self.properties.clear() + self.info.clear() if self.__pool._on_connect: for l in self.__pool._on_connect: l.connect(self.connection, self) @@ -260,6 +260,9 @@ class _ConnectionRecord(object): self.__pool.log("Error on connect(): %s" % (str(e))) raise + properties = property(lambda self: self.info, + doc="A synonym for .info, will be removed in 0.5.") + def _finalize_fairy(connection, connection_record, pool, ref=None): if ref is not None and connection_record.backref is not ref: return @@ -304,20 +307,21 @@ class _ConnectionFairy(object): is_valid = property(lambda self:self.connection is not None) - def _get_properties(self): - """A property collection unique to this DB-API connection.""" + def _get_info(self): + """An info collection unique to this DB-API connection.""" try: - return self._connection_record.properties + return self._connection_record.info except AttributeError: if self.connection is None: raise exceptions.InvalidRequestError("This connection is closed") try: - return self._detatched_properties + return self._detached_info except AttributeError: - self._detatched_properties = value = {} + self._detached_info = value = {} return value - properties = property(_get_properties) + info = property(_get_info) + properties = property(_get_info) def invalidate(self, e=None): """Mark this connection as invalidated. @@ -389,8 +393,8 @@ class _ConnectionFairy(object): self._connection_record.connection = None self._connection_record.backref = None self._pool.do_return_conn(self._connection_record) - self._detatched_properties = \ - self._connection_record.properties.copy() + self._detached_info = \ + self._connection_record.info.copy() self._connection_record = None def close(self): |