From: Mike Bayer Date: Sat, 22 Mar 2008 18:05:46 +0000 (+0000) Subject: - inheritance in declarative can be disabled when sending X-Git-Tag: rel_0_4_5~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2cff3ad9f8b90e82aa396ba26dd83b95b21c15ff;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - inheritance in declarative can be disabled when sending "inherits=None" to __mapper_args__. --- diff --git a/CHANGES b/CHANGES index b5c8972e89..9018e6a0d3 100644 --- a/CHANGES +++ b/CHANGES @@ -80,6 +80,9 @@ CHANGES __tablename__ = 'foos' id = Column(Integer, primary_key=True) + - inheritance in declarative can be disabled when sending + "inherits=None" to __mapper_args__. + 0.4.4 ------ - sql diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index 6616a77fe3..784236662f 100644 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -211,11 +211,13 @@ class DeclarativeMeta(type): else: table = cls.__table__ - inherits = cls.__mro__[1] - inherits = cls._decl_class_registry.get(inherits.__name__, None) mapper_args = getattr(cls, '__mapper_args__', {}) - - cls.__mapper__ = mapper(cls, table, inherits=inherits, properties=our_stuff, **mapper_args) + if 'inherits' not in mapper_args: + inherits = cls.__mro__[1] + inherits = cls._decl_class_registry.get(inherits.__name__, None) + mapper_args['inherits'] = inherits + + cls.__mapper__ = mapper(cls, table, properties=our_stuff, **mapper_args) return type.__init__(cls, classname, bases, dict_) def __setattr__(cls, key, value):