x = x[1:]
return x
-def class_for_table(session, selectable, **mapper_kwargs):
+def _class_for_table(session, engine, selectable, **mapper_kwargs):
selectable = expression._clause_element_as_expr(selectable)
mapname = 'Mapped' + _selectable_name(selectable)
# Py2K
if isinstance(mapname, unicode):
- engine_encoding = selectable.metadata.bind.dialect.encoding
+ engine_encoding = engine.dialect.encoding
mapname = mapname.encode(engine_encoding)
# end Py2K
+
if isinstance(selectable, Table):
klass = TableClassType(mapname, (object,), {})
else:
self._cache = {}
self.schema = None
-
+
+ @property
def engine(self):
return self._metadata.bind
- engine = property(engine)
bind = engine
def delete(self, *args, **kwargs):
try:
t = self._cache[selectable]
except KeyError:
- t = class_for_table(self.session, selectable, **kwargs)
+ t = _class_for_table(self.session, self.engine, selectable, **kwargs)
self._cache[selectable] = t
return t
if not table.primary_key.columns:
raise PKNotFoundError('table %r does not have a primary key defined [columns: %s]' % (attr, ','.join(table.c.keys())))
if table.columns:
- t = class_for_table(self.session, table)
+ t = _class_for_table(self.session, self.engine, table)
else:
t = None
self._cache[attr] = t