]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Remove unused imports, typo and light formatting tweaks.
authorJason Kirtland <jek@discorporate.us>
Thu, 19 Jul 2007 23:13:23 +0000 (23:13 +0000)
committerJason Kirtland <jek@discorporate.us>
Thu, 19 Jul 2007 23:13:23 +0000 (23:13 +0000)
Fixed comparison of _UnaryExpressions

30 files changed:
lib/sqlalchemy/ansisql.py
lib/sqlalchemy/databases/firebird.py
lib/sqlalchemy/databases/information_schema.py
lib/sqlalchemy/databases/informix.py
lib/sqlalchemy/databases/mssql.py
lib/sqlalchemy/databases/oracle.py
lib/sqlalchemy/databases/postgres.py
lib/sqlalchemy/databases/sqlite.py
lib/sqlalchemy/engine/__init__.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/engine/default.py
lib/sqlalchemy/engine/strategies.py
lib/sqlalchemy/engine/threadlocal.py
lib/sqlalchemy/ext/activemapper.py
lib/sqlalchemy/ext/sqlsoup.py
lib/sqlalchemy/mods/selectresults.py
lib/sqlalchemy/orm/__init__.py
lib/sqlalchemy/orm/attributes.py
lib/sqlalchemy/orm/collections.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/properties.py
lib/sqlalchemy/orm/query.py
lib/sqlalchemy/orm/session.py
lib/sqlalchemy/orm/strategies.py
lib/sqlalchemy/orm/unitofwork.py
lib/sqlalchemy/pool.py
lib/sqlalchemy/schema.py
lib/sqlalchemy/sql.py
lib/sqlalchemy/topological.py
lib/sqlalchemy/types.py

index d39d8ea0860d8478415a9c846663747eb6202c0f..d26d11c4d9b30aed0593be35d4f5f20a0b1ff8d5 100644 (file)
@@ -10,9 +10,10 @@ Contains default implementations for the abstract objects in the sql
 module.
 """
 
-from sqlalchemy import schema, sql, engine, util, sql_util, exceptions
+import string, re, sets, operator
+
+from sqlalchemy import schema, sql, engine, util, exceptions
 from  sqlalchemy.engine import default
-import string, re, sets, random, operator
 
 ANSI_FUNCS = sets.ImmutableSet(['CURRENT_DATE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP',
                                 'CURRENT_USER', 'LOCALTIME', 'LOCALTIMESTAMP',
index 0d6bd3360542cb74feeb17aad99f7c1c7c9ca11b..525e4788de18d48a210343bc3b074f27e05be8d5 100644 (file)
@@ -5,7 +5,7 @@
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
 
-import sys, StringIO, string, types, warnings
+import warnings
 
 from sqlalchemy import util, sql, schema, ansisql, exceptions
 import sqlalchemy.engine.default as default
index 54c47b6f42d66dad79f7baf45ae74bbf2dce6caa..d8cad420031c0391e9814b30fe75564dae92096e 100644 (file)
@@ -1,28 +1,24 @@
 import sqlalchemy.sql as sql
-import sqlalchemy.engine as engine
-import sqlalchemy.schema as schema
-import sqlalchemy.ansisql as ansisql
-import sqlalchemy.types as sqltypes
 import sqlalchemy.exceptions as exceptions
-from sqlalchemy import *
-from sqlalchemy.ansisql import *
+from sqlalchemy import select, MetaData, Table, Column, String, Integer
+from sqlalchemy.schema import PassiveDefault, ForeignKeyConstraint
 
 ischema = MetaData()
 
-schemata = schema.Table("schemata", ischema,
+schemata = Table("schemata", ischema,
     Column("catalog_name", String),
     Column("schema_name", String),
     Column("schema_owner", String),
     schema="information_schema")
 
-tables = schema.Table("tables", ischema,
+tables = Table("tables", ischema,
     Column("table_catalog", String),
     Column("table_schema", String),
     Column("table_name", String),
     Column("table_type", String),
     schema="information_schema")
 
-columns = schema.Table("columns", ischema,
+columns = Table("columns", ischema,
     Column("table_schema", String),
     Column("table_name", String),
     Column("column_name", String),
@@ -35,21 +31,21 @@ columns = schema.Table("columns", ischema,
     Column("column_default", Integer),
     schema="information_schema")
     
-constraints = schema.Table("table_constraints", ischema,
+constraints = Table("table_constraints", ischema,
     Column("table_schema", String),
     Column("table_name", String),
     Column("constraint_name", String),
     Column("constraint_type", String),
     schema="information_schema")
 
-column_constraints = schema.Table("constraint_column_usage", ischema,
+column_constraints = Table("constraint_column_usage", ischema,
     Column("table_schema", String),
     Column("table_name", String),
     Column("column_name", String),
     Column("constraint_name", String),
     schema="information_schema")
 
-pg_key_constraints = schema.Table("key_column_usage", ischema,
+pg_key_constraints = Table("key_column_usage", ischema,
     Column("table_schema", String),
     Column("table_name", String),
     Column("column_name", String),
@@ -57,7 +53,7 @@ pg_key_constraints = schema.Table("key_column_usage", ischema,
     Column("ordinal_position", Integer),
     schema="information_schema")
 
-#mysql_key_constraints = schema.Table("key_column_usage", ischema,
+#mysql_key_constraints = Table("key_column_usage", ischema,
 #    Column("table_schema", String),
 #    Column("table_name", String),
 #    Column("column_name", String),
@@ -69,7 +65,7 @@ pg_key_constraints = schema.Table("key_column_usage", ischema,
 
 key_constraints = pg_key_constraints
 
-ref_constraints = schema.Table("referential_constraints", ischema,
+ref_constraints = Table("referential_constraints", ischema,
     Column("constraint_catalog", String),
     Column("constraint_schema", String),
     Column("constraint_name", String),
@@ -97,7 +93,7 @@ class ISchema(object):
             try:
                 gen_tbl = globals()['gen_'+name]
             except KeyError:
-                raise ArgumentError('information_schema table %s not found' % name)
+                raise exceptions.ArgumentError('information_schema table %s not found' % name)
             self.cache[name] = gen_tbl.toengine(self.engine)
         return self.cache[name]
 
@@ -145,7 +141,7 @@ def reflecttable(connection, table, ischema_names):
         colargs= []
         if default is not None:
             colargs.append(PassiveDefault(sql.text(default)))
-        table.append_column(schema.Column(name, coltype, nullable=nullable, *colargs))
+        table.append_column(Column(name, coltype, nullable=nullable, *colargs))
     
     if not found_table:
         raise exceptions.NoSuchTableError(table.name)
@@ -186,10 +182,10 @@ def reflecttable(connection, table, ischema_names):
             if current_schema == referred_schema:
                 referred_schema = table.schema
             if referred_schema is not None:
-                schema.Table(referred_table, table.metadata, autoload=True, schema=referred_schema, autoload_with=connection)
+                Table(referred_table, table.metadata, autoload=True, schema=referred_schema, autoload_with=connection)
                 refspec = ".".join([referred_schema, referred_table, referred_column])
             else:
-                schema.Table(referred_table, table.metadata, autoload=True, autoload_with=connection)
+                Table(referred_table, table.metadata, autoload=True, autoload_with=connection)
                 refspec = ".".join([referred_table, referred_column])
             if constrained_column not in fk[0]:
                 fk[0].append(constrained_column)
index d3f397118200b0e3064adc2d47a76e196ebc5ffd..43de41b7869a988b9e9b2f0d61d49e1ea0229c15 100644 (file)
@@ -5,12 +5,9 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
+import datetime, warnings
 
-import sys, StringIO, string , random, warnings
-import datetime
-from decimal import Decimal
-
-from sqlalchemy import util, sql, engine, schema, ansisql, exceptions, pool
+from sqlalchemy import sql, schema, ansisql, exceptions, pool
 import sqlalchemy.engine.default as default
 import sqlalchemy.types as sqltypes
 
@@ -426,9 +423,9 @@ class InfoCompiler(ansisql.ANSICompiler):
         except:
             li = [ c for c in list.clauses ]
         if list.parens:
-            self.strings[list] = "(" + string.join([s for s in [self.strings[c] for c in li] if s is not None ], ', ') + ")"
+            self.strings[list] = "(" + ', '.join([s for s in [self.strings[c] for c in li] if s is not None ]) + ")"
         else:
-            self.strings[list] = string.join([s for s in [self.strings[c] for c in li] if s is not None], ', ')
+            self.strings[list] = ', '.join([s for s in [self.strings[c] for c in li] if s is not None])
 
 class InfoSchemaGenerator(ansisql.ANSISchemaGenerator):
     def get_column_specification(self, column, first_pk=False):
index 3f181c5bba459cf34fd6a9a6c5e5500ce50cbafc..c7fd01f43964707c43d60b28e669f8517be88f14 100644 (file)
@@ -39,9 +39,9 @@ Known issues / TODO:
   
 """
 
-import sys, StringIO, string, types, re, datetime, random, warnings
+import datetime, random, warnings
 
-from sqlalchemy import sql, engine, schema, ansisql, exceptions
+from sqlalchemy import sql, schema, ansisql, exceptions
 import sqlalchemy.types as sqltypes
 from sqlalchemy.engine import default
     
@@ -838,7 +838,7 @@ class MSSQLCompiler(ansisql.ANSICompiler):
 
     def label_select_column(self, select, column):
         if isinstance(column, sql._Function):
-            return co.label(co.name + "_" + hex(random.randint(0, 65535))[2:])        
+            return column.label(column.name + "_" + hex(random.randint(0, 65535))[2:])        
         else:
             return super(MSSQLCompiler, self).label_select_column(select, column)
 
index 82388ef871d1441703ee3a31a3aab2fbfa279ea2..cc9fd3d9a4c48dd210badfe008cc6f78ee906457 100644 (file)
@@ -5,9 +5,9 @@
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
 
-import sys, StringIO, string, re, warnings, operator
+import re, warnings, operator
 
-from sqlalchemy import util, sql, engine, schema, ansisql, exceptions, logging
+from sqlalchemy import util, sql, schema, ansisql, exceptions, logging
 from sqlalchemy.engine import default, base
 import sqlalchemy.types as sqltypes
 
index 80a56a3ca64e6936ea3fd7aef8ad3e9a93dd7b79..cd486e282392c45c54d110782b62119295053954 100644 (file)
@@ -4,9 +4,9 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-import datetime, string, types, re, random, warnings, operator
+import re, random, warnings, operator
 
-from sqlalchemy import util, sql, schema, ansisql, exceptions
+from sqlalchemy import sql, schema, ansisql, exceptions
 from sqlalchemy.engine import base, default
 import sqlalchemy.types as sqltypes
 from sqlalchemy.databases import information_schema as ischema
index f544e359acd7a81cc18ebf55da7935cf51102d1a..531db447586897967d5b4e21fbd418e95f61fe4c 100644 (file)
@@ -5,9 +5,9 @@
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
 
-import sys, StringIO, string, types, re
+import re
 
-from sqlalchemy import sql, engine, schema, ansisql, exceptions, pool, PassiveDefault
+from sqlalchemy import schema, ansisql, exceptions, pool, PassiveDefault
 import sqlalchemy.engine.default as default
 import sqlalchemy.types as sqltypes
 import datetime,time, warnings
index 5a4865de0516e7a023de339701993ff6b5ee5c54..50d03ea91d19b3142dc233534ea55063111c4297 100644 (file)
@@ -48,7 +48,6 @@ The package is represented among several individual modules, including:
 from sqlalchemy import databases
 from sqlalchemy.engine.base import *
 from sqlalchemy.engine import strategies
-import re
 
 def engine_descriptors():
     """Provide a listing of all the database implementations supported.
index ace6f87548349de27f106e5da5667b4853f87b02..9beb08826a2c0d5ee06b195017b7d5827457e80e 100644 (file)
@@ -1127,7 +1127,7 @@ class ResultProxy(object):
                 rec = (type, type.dialect_impl(self.dialect), i)
 
                 if rec[0] is None:
-                    raise DBAPIError("None for metadata " + colname)
+                    raise exceptions.DBAPIError("None for metadata " + colname)
                 if self.__props.setdefault(colname.lower(), rec) is not rec:
                     self.__props[colname.lower()] = (type, ResultProxy.AmbiguousColumn(colname), 0)
                 self.__keys.append(colname)
index 7f89d1eb5395040afabb6a253da2e3a9b26edfb5..f87551c2a87b06f52e48935dcde8f6d655ea5278 100644 (file)
@@ -6,8 +6,8 @@
 
 """Provide default implementations of per-dialect sqlalchemy.engine classes"""
 
-from sqlalchemy import schema, exceptions, util, sql, types
-import StringIO, sys, re
+from sqlalchemy import schema, exceptions, sql, types
+import sys, re
 from sqlalchemy.engine import base
 
 
@@ -162,7 +162,7 @@ class DefaultDialect(base.Dialect):
             # to appropriate character upon compilation
             self.positional = True
         else:
-            raise DBAPIError("Unsupported paramstyle '%s'" % self._paramstyle)
+            raise exceptions.DBAPIError("Unsupported paramstyle '%s'" % self._paramstyle)
 
     def _get_ischema(self):
         if self._ischema is None:
index 5618f6e0e3eb5e1e180dd2f53c1804ad652f6bd5..0c59ee8ebf48acce85acd3fd164397c835df73dc 100644 (file)
@@ -8,7 +8,7 @@ object which will add itself to the list of available strategies.
 """
 
 
-from sqlalchemy.engine import base, default, threadlocal, url
+from sqlalchemy.engine import base, threadlocal, url
 from sqlalchemy import util, exceptions
 from sqlalchemy import pool as poollib
 
@@ -182,4 +182,4 @@ class MockEngineStrategy(EngineStrategy):
         def execute(self, object, *multiparams, **params):
             raise NotImplementedError()
 
-MockEngineStrategy()
\ No newline at end of file
+MockEngineStrategy()
index a67ab750b945be8368c4581dc7743b80572a25b2..b6ba54ea587ed945b3144d0b7d8c382c71954690 100644 (file)
@@ -1,6 +1,5 @@
-from sqlalchemy import schema, exceptions, util, sql, types
-import StringIO, sys, re
-from sqlalchemy.engine import base, default
+from sqlalchemy import util
+from sqlalchemy.engine import base
 
 """Provide a thread-local transactional wrapper around the root Engine class.
 
index eed38e3c05f27988598ebfea65ad4a69addd42ac..fa32a5fc31b5e269488b6395f5f9bfdc2b6cdb61 100644 (file)
@@ -1,7 +1,6 @@
-from sqlalchemy             import join, ThreadLocalMetaData, util, Integer
-from sqlalchemy             import and_, or_
+from sqlalchemy             import ThreadLocalMetaData, util, Integer
 from sqlalchemy             import Table, Column, ForeignKey
-from sqlalchemy.orm         import class_mapper, relation, mapper, create_session
+from sqlalchemy.orm         import class_mapper, relation, create_session
                                    
 from sqlalchemy.ext.sessioncontext import SessionContext
 from sqlalchemy.ext.assignmapper import assign_mapper
index 90399b7b5c3b11940dfd18471eeacd6b2115bd61..3cffdd098ba62e55dbbe540ecdb682ca98c28619 100644 (file)
@@ -312,7 +312,6 @@ Boring tests here.  Nothing of real expository value.
 from sqlalchemy import *
 from sqlalchemy.orm import *
 from sqlalchemy.ext.sessioncontext import SessionContext
-from sqlalchemy.ext.assignmapper import assign_mapper
 from sqlalchemy.exceptions import *
 
 
index ac8de9b06399e0edf8e93f823c71abbffd11a398..25bfa28401728438ce2d66611f6aa5116fad8376 100644 (file)
@@ -1,4 +1,4 @@
-from sqlalchemy.ext.selectresults import *
+from sqlalchemy.ext.selectresults import SelectResultsExt
 from sqlalchemy.orm.mapper import global_extensions
 
 def install_plugin():
index 4a8c94d7b7a885f1896107d14593642d52abf964..9e9615635c4ce2c5de601a8f7cc22ab2ed48d1e6 100644 (file)
@@ -15,16 +15,20 @@ from sqlalchemy.orm.mapper import Mapper, object_mapper, class_mapper, mapper_re
 from sqlalchemy.orm.interfaces import SynonymProperty, MapperExtension, EXT_PASS, ExtensionOption
 from sqlalchemy.orm.properties import PropertyLoader, ColumnProperty, CompositeProperty, BackRef
 from sqlalchemy.orm import mapper as mapperlib
-from sqlalchemy.orm import collections
+from sqlalchemy.orm import collections, strategies
 from sqlalchemy.orm.query import Query
 from sqlalchemy.orm.util import polymorphic_union
 from sqlalchemy.orm.session import Session as create_session
 from sqlalchemy.orm.session import object_session, attribute_manager
 
-__all__ = ['relation', 'column_property', 'composite', 'backref', 'eagerload', 'lazyload', 'noload', 'deferred', 'defer', 'undefer', 'undefer_group', 'extension',
-        'mapper', 'clear_mappers', 'compile_mappers', 'class_mapper', 'object_mapper', 'MapperExtension', 'Query',
-        'polymorphic_union', 'create_session', 'synonym', 'contains_alias', 'contains_eager', 'EXT_PASS', 'object_session'
-        ]
+__all__ = ['relation', 'column_property', 'composite', 'backref', 'eagerload',
+           'lazyload', 'noload', 'deferred', 'defer', 'undefer',
+           'undefer_group', 'extension', 'mapper', 'clear_mappers',
+           'compile_mappers', 'class_mapper', 'object_mapper',
+           'MapperExtension', 'Query', 'polymorphic_union', 'create_session',
+           'synonym', 'contains_alias', 'contains_eager', 'EXT_PASS',
+           'object_session'
+           ]
 
 def relation(*args, **kwargs):
     """Provide a relationship of a primary Mapper to a secondary Mapper.
index dfc025bf273570f672222883279eeebd1b24e42b..e583504d1ff988aa7ca25c1eb43e01016621e7c3 100644 (file)
@@ -4,11 +4,12 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy import util, sql
+import weakref
+
+from sqlalchemy import util
 from sqlalchemy.orm import util as orm_util, interfaces, collections
 from sqlalchemy.orm.mapper import class_mapper
 from sqlalchemy import logging, exceptions
-import weakref
 
 
 PASSIVE_NORESULT = object()
index 4a7ba0ad687bc8fcc94d3ccf93ba4559f847e9e3..f51ea3b31d92194a23eeda4a5317bc6589acd4fe 100644 (file)
@@ -95,10 +95,10 @@ The owning object and InstrumentedCollectionAttribute are also reachable
 through the adapter, allowing for some very sophisticated behavior.
 """
 
+import copy, inspect, sys, weakref
+
 from sqlalchemy import exceptions, schema, util as sautil
 from sqlalchemy.orm import mapper
-import copy, sys, warnings, weakref
-import new
 
 try:
     from threading import Lock
@@ -739,7 +739,7 @@ def _instrument_membership_mutator(method, before, argument, after):
                 executor = getattr(args[0], '_sa_adapter', None)
 
             if before and executor:
-                getattr(executor, op)(value, initiator)
+                getattr(executor, before)(value, initiator)
 
             if not after or not executor:
                 return method(*args, **kw)
index eb69fb32c86ab8438e0c1a4e5b1602d075027a21..712f7b90a1577d32982f53fae93fbaef8bbced30 100644 (file)
@@ -4,12 +4,12 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy import sql, schema, util, exceptions, logging
+from sqlalchemy import sql, util, exceptions, logging
 from sqlalchemy import sql_util as sqlutil
 from sqlalchemy.orm import util as mapperutil
 from sqlalchemy.orm.util import ExtensionCarrier
 from sqlalchemy.orm import sync
-from sqlalchemy.orm.interfaces import MapperProperty, MapperOption, OperationContext, EXT_PASS, MapperExtension, SynonymProperty
+from sqlalchemy.orm.interfaces import MapperProperty, EXT_PASS, MapperExtension, SynonymProperty
 import weakref, warnings, operator
 
 __all__ = ['Mapper', 'class_mapper', 'object_mapper', 'mapper_registry']
@@ -25,10 +25,13 @@ global_extensions = []
 # column
 NO_ATTRIBUTE = object()
 
-
 # lock used to synchronize the "mapper compile" step
 _COMPILE_MUTEX = util.threading.Lock()
 
+# initialize these two lazily
+attribute_manager = None
+ColumnProperty = None
+
 class Mapper(object):
     """Define the correlation of class attributes to database table
     columns.
index 99148cf6147c3ab5d3058868ecee73287ab61795..010413c64017ddb96db892fa98d9052575c1aa7b 100644 (file)
@@ -16,7 +16,7 @@ from sqlalchemy.orm import mapper, sync, strategies, attributes, dependency
 from sqlalchemy.orm import session as sessionlib
 from sqlalchemy.orm import util as mapperutil
 import operator
-from sqlalchemy.orm.interfaces import *
+from sqlalchemy.orm.interfaces import StrategizedProperty, PropComparator
 
 __all__ = ['ColumnProperty', 'CompositeProperty', 'PropertyLoader', 'BackRef']
 
index 12ca8ac0393bd60879be15ba8738bff19594689d..d487db5742bc33e789518e33b4555dc8f7f5d7f2 100644 (file)
@@ -4,18 +4,16 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy import sql, util, exceptions, sql_util, logging, schema
-from sqlalchemy.orm import mapper, class_mapper, object_mapper
+from sqlalchemy import sql, util, exceptions, sql_util, logging
+from sqlalchemy.orm import mapper, object_mapper
 from sqlalchemy.orm.interfaces import OperationContext
 import operator
 
 __all__ = ['Query', 'QueryContext', 'SelectionContext']
 
 class Query(object):
-    """Encapsulates the object-fetching operations provided by Mappers.
+    """Encapsulates the object-fetching operations provided by Mappers."""
     
-    """
-
     def __init__(self, class_or_mapper, session=None, entity_name=None):
         if isinstance(class_or_mapper, type):
             self.mapper = mapper.class_mapper(class_or_mapper, entity_name=entity_name)
@@ -250,7 +248,7 @@ class Query(object):
     def filter_by(self, *args, **kwargs):
         """apply the given filtering criterion to the query and return the newly resulting ``Query``."""
 
-        import properties
+        #import properties
         
         if len(args) > 1:
             raise exceptions.ArgumentError("filter_by() takes either zero positional arguments, or one scalar or list argument indicating a property search path.")
@@ -954,7 +952,7 @@ class Query(object):
     def execute(self, clauseelement, params=None, *args, **kwargs):
         """DEPRECATED.  use query.from_statement().all()"""
 
-        return self._select_statement(statement, params, **kwargs)
+        return self._select_statement(clauseelement, params, **kwargs)
 
     def select_statement(self, statement, **params):
         """DEPRECATED.  Use query.from_statement(statement)"""
@@ -964,7 +962,7 @@ class Query(object):
     def select_text(self, text, **params):
         """DEPRECATED.  Use query.from_statement(statement)"""
 
-        return self._select_statement(statement, params)
+        return self._select_statement(text, params)
 
     def _select_statement(self, statement, params=None, **kwargs):
         q = self.from_statement(statement)
index 097c6eecb8c2ded3e72a8bd474ad851be029dde4..d41eac2b581bfe908479615d27fd3d0cff735395 100644 (file)
@@ -4,12 +4,12 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
+import weakref
+
 from sqlalchemy import util, exceptions, sql, engine
-from sqlalchemy.orm import unitofwork, query
+from sqlalchemy.orm import unitofwork, query, util as mapperutil
 from sqlalchemy.orm.mapper import object_mapper as _object_mapper
 from sqlalchemy.orm.mapper import class_mapper as _class_mapper
-import weakref
-import sqlalchemy
 
 class SessionTransaction(object):
     """Represents a Session-level Transaction.
@@ -730,6 +730,7 @@ def object_session(obj):
         return _sessions.get(hashkey)
     return None
 
+# Lazy initialization to avoid circular imports
 unitofwork.object_session = object_session
 from sqlalchemy.orm import mapper
 mapper.attribute_manager = attribute_manager
index c581b27c0301df9679669f31655ff792c4a5ead5..4597e6d72be3e79b15e6e982324210d77810cff4 100644 (file)
@@ -6,9 +6,9 @@
 
 """sqlalchemy.orm.interfaces.LoaderStrategy implementations, and related MapperOptions."""
 
-from sqlalchemy import sql, schema, util, exceptions, sql_util, logging
+from sqlalchemy import sql, util, exceptions, sql_util, logging
 from sqlalchemy.orm import mapper, attributes
-from sqlalchemy.orm.interfaces import *
+from sqlalchemy.orm.interfaces import LoaderStrategy, StrategizedOption, MapperOption, PropertyOption
 from sqlalchemy.orm import session as sessionlib
 from sqlalchemy.orm import util as mapperutil
 
@@ -269,7 +269,7 @@ class LazyLoader(AbstractRelationLoader):
 
         # determine if our "lazywhere" clause is the same as the mapper's
         # get() clause.  then we can just use mapper.get()
-        from sqlalchemy.orm import query
+        #from sqlalchemy.orm import query
         self.use_get = not self.uselist and self.mapper._get_clause.compare(self.lazywhere)
         if self.use_get:
             self.logger.info(str(self.parent_property) + " will use query.get() to optimize instance loads")
index b42e9a941efab34927a1f2ed21244b781469ff87..46770b52112f1d9fcdf91caed3b5fc7026740e25 100644 (file)
@@ -19,14 +19,16 @@ new, dirty, or deleted and provides the capability to flush all those
 changes at once.
 """
 
-from sqlalchemy import util, logging, topological
+from sqlalchemy import util, logging, topological, exceptions
 from sqlalchemy.orm import attributes, interfaces
 from sqlalchemy.orm import util as mapperutil
-from sqlalchemy.orm.mapper import object_mapper, class_mapper
-from sqlalchemy.exceptions import *
+from sqlalchemy.orm.mapper import object_mapper
 import StringIO
 import weakref
 
+# Load lazily
+object_session = None
+
 class UOWEventHandler(interfaces.AttributeExtension):
     """An event handler added to all class attributes which handles
     session operations.
@@ -116,7 +118,7 @@ class UnitOfWork(object):
     def _validate_obj(self, obj):
         if (hasattr(obj, '_instance_key') and not self.identity_map.has_key(obj._instance_key)) or \
             (not hasattr(obj, '_instance_key') and obj not in self.new):
-            raise InvalidRequestError("Instance '%s' is not attached or pending within this session" % repr(obj))
+            raise exceptions.InvalidRequestError("Instance '%s' is not attached or pending within this session" % repr(obj))
 
     def _is_valid(self, obj):
         if (hasattr(obj, '_instance_key') and not self.identity_map.has_key(obj._instance_key)) or \
@@ -142,7 +144,7 @@ class UnitOfWork(object):
         """register the given object as 'new' (i.e. unsaved) within this unit of work."""
 
         if hasattr(obj, '_instance_key'):
-            raise InvalidRequestError("Object '%s' already has an identity - it can't be registered as new" % repr(obj))
+            raise exceptions.InvalidRequestError("Object '%s' already has an identity - it can't be registered as new" % repr(obj))
         if obj not in self.new:
             self.new.add(obj)
             obj._sa_insert_order = len(self.new)
index c3a317c3f3fba845f223602a3ff3158b6c8f6bd6..e9297f5a46d7aedb35a5a1570f65539f73d80ab1 100644 (file)
@@ -13,7 +13,7 @@ automatically, based on module type and connect arguments, simply by
 calling regular DBAPI connect() methods.
 """
 
-import weakref, string, time, sys, traceback
+import weakref, time
 try:
     import cPickle as pickle
 except:
index 20160b0bf785876665a3ca88d042a4ea92204520..7004094aa14d9a11d9212aff62417af883c8dfd5 100644 (file)
@@ -19,7 +19,7 @@ objects as well as the visitor interface, so that the schema package
 
 from sqlalchemy import sql, types, exceptions,util, databases
 import sqlalchemy
-import copy, re, string
+import re, string
 
 __all__ = ['SchemaItem', 'Table', 'Column', 'ForeignKey', 'Sequence', 'Index', 'ForeignKeyConstraint',
             'PrimaryKeyConstraint', 'CheckConstraint', 'UniqueConstraint', 'DefaultGenerator', 'Constraint',
index fe8167bfeca5eb0ed53a82f481d4030697fa42cb..7677aab9c7d67baef29b89978dccb7674f4b3f17 100644 (file)
@@ -24,9 +24,9 @@ are less guaranteed to stay the same in future releases.
 
 """
 
-from sqlalchemy import util, exceptions, logging
+from sqlalchemy import util, exceptions
 from sqlalchemy import types as sqltypes
-import string, re, sets, operator
+import re, operator
 
 __all__ = ['AbstractDialect', 'Alias', 'ClauseElement', 'ClauseParameters',
            'ClauseVisitor', 'ColumnCollection', 'ColumnElement',
@@ -2157,10 +2157,10 @@ class _UnaryExpression(ColumnElement):
         return self.element,
 
     def compare(self, other):
-        """Compare this ``_UnaryClause`` against the given ``ClauseElement``."""
+        """Compare this ``_UnaryExpression`` against the given ``ClauseElement``."""
 
         return (
-            isinstance(other, _UnaryClause) and self.operator == other.operator and
+            isinstance(other, _UnaryExpression) and self.operator == other.operator and
             self.modifier == other.modifier and 
             self.element.compare(other.element)
         )
index bad71293e45214257d436c3eddfa35eac5284455..56c8cb46e4491931585ce17a3fa0c7ed592884c6 100644 (file)
@@ -42,7 +42,6 @@ nature - very tricky to reproduce and track down, particularly before
 I realized this characteristic of the algorithm.
 """
 
-import string, StringIO
 from sqlalchemy import util
 from sqlalchemy.exceptions import CircularDependencyError
 
@@ -68,7 +67,7 @@ class _Node(object):
             str(self.item) + \
             (self.cycles is not None and (" (cycles: " + repr([x for x in self.cycles]) + ")") or "") + \
             "\n" + \
-            string.join([n.safestr(indent + 1) for n in self.children], '')
+            ''.join([n.safestr(indent + 1) for n in self.children])
 
     def __repr__(self):
         return "%s" % (str(self.item))
index 6e59ac16e550501d0f8e2ac6e6b6d00dc9f2927f..06720fd661f8200f0b906b2911da03e78b7895c5 100644 (file)
@@ -11,7 +11,6 @@ __all__ = [ 'TypeEngine', 'TypeDecorator', 'NullTypeEngine',
         'SMALLINT', 'DATE', 'TIME','Interval'
             ]
 
-from sqlalchemy import util, exceptions
 import inspect
 import datetime as dt
 try:
@@ -19,6 +18,8 @@ try:
 except:
     import pickle
 
+from sqlalchemy import exceptions
+
 class AbstractType(object):
     def __init__(self, *args, **kwargs):
         pass