- upgraded all unittests to insert './lib/' into sys.path,
working around new setuptools PYTHONPATH-killing behavior
- further fixes with attributes/dependencies/etc....
+- improved error handling for when DynamicMetaData is not connected
0.2.4
- try/except when the mapper sets init.__name__ on a mapped class,
#
# thread local SessionContext
#
-class Objectstore(SessionContext):
- def __getattr__(self, key):
- return getattr(self.current, key)
- def get_session(self):
- return self.current
+class Objectstore(object):
+
+ def __init__(self, *args, **kwargs):
+ self._context = SessionContext(*args, **kwargs)
+
+ def __getattr__(self, name):
+ return getattr(self._context.current, name)
objectstore = Objectstore(create_session)
# check for inheritence
if hasattr(bases[0], "mapping"):
cls._base_mapper= bases[0].mapper
- assign_mapper(objectstore, cls, cls.table,
+ assign_mapper(objectstore._context, cls, cls.table,
inherits=cls._base_mapper)
else:
- assign_mapper(objectstore, cls, cls.table)
+ assign_mapper(objectstore._context, cls, cls.table)
cls.relations = relations
ActiveMapperMeta.classes[clsname] = cls
self.__engines[engine_or_url] = engine_or_url
self.context._engine = engine_or_url
def is_bound(self):
- return self.context._engine is not None
+ return hasattr(self.context, '_engine') and self.context._engine is not None
def dispose(self):
"""disposes all Engines to which this DynamicMetaData has been connected."""
for e in self.__engines.values():
e.dispose()
- engine=property(lambda s:s.context._engine)
+ engine=property(lambda s:hasattr(s.context, '_engine') and s.context._engine or None)
class SchemaVisitor(sql.ClauseVisitor):
"""defines the visiting for SchemaItem objects"""