summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-03-22 18:05:46 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-03-22 18:05:46 +0000
commit2cff3ad9f8b90e82aa396ba26dd83b95b21c15ff (patch)
treee7e19426e51c5de55381d41ac3229187871b5008
parent98f212667ee8e2dc4128e55032f3d39cd5fda30c (diff)
downloadsqlalchemy-2cff3ad9f8b90e82aa396ba26dd83b95b21c15ff.tar.gz
- inheritance in declarative can be disabled when sending
"inherits=None" to __mapper_args__.
-rw-r--r--CHANGES3
-rw-r--r--lib/sqlalchemy/ext/declarative.py10
2 files changed, 9 insertions, 4 deletions
diff --git a/CHANGES b/CHANGES
index b5c8972e8..9018e6a0d 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 6616a77fe..784236662 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):