better comment about overriding allow_inheritance

This commit is contained in:
Stefan Wojcik 2016-12-08 11:15:35 -05:00
parent 0189818f3e
commit ae777e45b2

View File

@ -334,12 +334,16 @@ class TopLevelDocumentMetaclass(DocumentMetaclass):
meta.merge(attrs.get('_meta', {})) # Top level meta meta.merge(attrs.get('_meta', {})) # Top level meta
# Only simple classes (direct subclasses of Document) # Only simple classes (i.e. direct subclasses of Document) may set
# may set allow_inheritance to False # allow_inheritance to False. If the base Document allows inheritance,
# none of its subclasses can override allow_inheritance to False.
simple_class = all([b._meta.get('abstract') simple_class = all([b._meta.get('abstract')
for b in flattened_bases if hasattr(b, '_meta')]) for b in flattened_bases if hasattr(b, '_meta')])
if (not simple_class and meta['allow_inheritance'] is False and if (
not meta['abstract']): not simple_class and
meta['allow_inheritance'] is False and
not meta['abstract']
):
raise ValueError('Only direct subclasses of Document may set ' raise ValueError('Only direct subclasses of Document may set '
'"allow_inheritance" to False') '"allow_inheritance" to False')