From: Mike Bayer Date: Tue, 20 Dec 2005 05:26:29 +0000 (+0000) Subject: added assign_mapper X-Git-Tag: rel_0_1_0~223 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca7a4de71247dee606655d79db4ec67e8b70801d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added assign_mapper --- diff --git a/lib/sqlalchemy/mapping/__init__.py b/lib/sqlalchemy/mapping/__init__.py index 15624af24e..f640e27bb4 100644 --- a/lib/sqlalchemy/mapping/__init__.py +++ b/lib/sqlalchemy/mapping/__init__.py @@ -30,7 +30,7 @@ import mapper as mapperlib __all__ = ['relation', 'eagerload', 'lazyload', 'noload', 'assignmapper', 'mapper', 'clear_mappers', 'objectstore', 'sql', 'extension', 'class_mapper', 'object_mapper', 'MapperExtension', - 'ColumnProperty' + 'ColumnProperty', 'assign_mapper' ] def relation(*args, **params): @@ -145,3 +145,19 @@ def class_mapper(class_): except AttributeError: pass raise "Class '%s' has no mapper associated with it" % class_.__name__ + +def assign_mapper(class_, *args, **params): + params.setdefault("is_primary", True) + m = mapper(class_, *args, **params) + class_.mapper = m + class_.get = m.get + class_.select = m.select + class_.select_by = m.select_by + class_.selectone = m.selectone + class_.get_by = m.get_by + def commit(self): + objectstore.commit(self) + def delete(self): + objectstore.delete(self) + class_.commit = commit + class_.delete = delete \ No newline at end of file