diff options
Diffstat (limited to 'lib/sqlalchemy/ext/declarative')
| -rw-r--r-- | lib/sqlalchemy/ext/declarative/__init__.py | 24 | ||||
| -rw-r--r-- | lib/sqlalchemy/ext/declarative/api.py | 49 | ||||
| -rw-r--r-- | lib/sqlalchemy/ext/declarative/base.py | 41 | ||||
| -rw-r--r-- | lib/sqlalchemy/ext/declarative/clsregistry.py | 21 |
4 files changed, 72 insertions, 63 deletions
diff --git a/lib/sqlalchemy/ext/declarative/__init__.py b/lib/sqlalchemy/ext/declarative/__init__.py index 2b0a37884..5eb6ebb2e 100644 --- a/lib/sqlalchemy/ext/declarative/__init__.py +++ b/lib/sqlalchemy/ext/declarative/__init__.py @@ -5,19 +5,17 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .api import ( - declarative_base, - synonym_for, - comparable_using, - instrument_declarative, - ConcreteBase, - AbstractConcreteBase, - DeclarativeMeta, - DeferredReflection, - has_inherited_table, - declared_attr, - as_declarative, -) +from .api import AbstractConcreteBase +from .api import as_declarative +from .api import comparable_using +from .api import ConcreteBase +from .api import declarative_base +from .api import DeclarativeMeta +from .api import declared_attr +from .api import DeferredReflection +from .api import has_inherited_table +from .api import instrument_declarative +from .api import synonym_for __all__ = [ diff --git a/lib/sqlalchemy/ext/declarative/api.py b/lib/sqlalchemy/ext/declarative/api.py index 987e92119..a4cbf3b52 100644 --- a/lib/sqlalchemy/ext/declarative/api.py +++ b/lib/sqlalchemy/ext/declarative/api.py @@ -7,30 +7,29 @@ """Public API functions and helpers for declarative.""" -from ...schema import Table, MetaData, Column -from ...orm import ( - synonym as _orm_synonym, - comparable_property, - interfaces, - properties, - attributes, -) -from ...orm.util import polymorphic_union -from ...orm.base import _mapper_or_none -from ...util import OrderedDict, hybridmethod, hybridproperty -from ... import util -from ... import exc -import weakref import re +import weakref -from .base import ( - _as_declarative, - _declarative_constructor, - _DeferredMapperConfig, - _add_attribute, - _del_attribute, -) +from .base import _add_attribute +from .base import _as_declarative +from .base import _declarative_constructor +from .base import _DeferredMapperConfig +from .base import _del_attribute from .clsregistry import _class_resolver +from ... import exc +from ... import util +from ...orm import attributes +from ...orm import comparable_property +from ...orm import interfaces +from ...orm import properties +from ...orm import synonym as _orm_synonym +from ...orm.base import _mapper_or_none +from ...orm.util import polymorphic_union +from ...schema import MetaData +from ...schema import Table +from ...util import hybridmethod +from ...util import hybridproperty +from ...util import OrderedDict def instrument_declarative(cls, registry, metadata): @@ -258,7 +257,8 @@ class declared_attr(interfaces._MappedAttribute, property): @declared_attr.cascading def id(cls): if has_inherited_table(cls): - return Column(ForeignKey('myclass.id'), primary_key=True) + return Column( + ForeignKey('myclass.id'), primary_key=True) else: return Column(Integer, primary_key=True) @@ -362,8 +362,9 @@ def declarative_base( compatible callable to use as the meta type of the generated declarative base class. - .. versionchanged:: 1.1 if :paramref:`.declarative_base.cls` is a single class (rather - than a tuple), the constructed base class will inherit its docstring. + .. versionchanged:: 1.1 if :paramref:`.declarative_base.cls` is a + single class (rather than a tuple), the constructed base class will + inherit its docstring. .. seealso:: diff --git a/lib/sqlalchemy/ext/declarative/base.py b/lib/sqlalchemy/ext/declarative/base.py index 07778f733..3c83b0b0e 100644 --- a/lib/sqlalchemy/ext/declarative/base.py +++ b/lib/sqlalchemy/ext/declarative/base.py @@ -6,20 +6,28 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php """Internal implementation for declarative.""" -from ...schema import Table, Column -from ...orm import mapper, class_mapper, synonym -from ...orm.interfaces import MapperProperty -from ...orm.properties import ColumnProperty, CompositeProperty -from ...orm.attributes import QueryableAttribute -from ...orm.base import _is_mapped_class, InspectionAttr -from ... import util, exc -from ...util import topological -from ...sql import expression -from ... import event -from . import clsregistry import collections import weakref + from sqlalchemy.orm import instrumentation +from . import clsregistry +from ... import event +from ... import exc +from ... import util +from ...orm import class_mapper +from ...orm import mapper +from ...orm import synonym +from ...orm.attributes import QueryableAttribute +from ...orm.base import _is_mapped_class +from ...orm.base import InspectionAttr +from ...orm.interfaces import MapperProperty +from ...orm.properties import ColumnProperty +from ...orm.properties import CompositeProperty +from ...schema import Column +from ...schema import Table +from ...sql import expression +from ...util import topological + declared_attr = declarative_props = None @@ -228,9 +236,9 @@ class _MapperConfig(object): # make a copy of it so a class-level dictionary # is not overwritten when we update column-based # arguments. - mapper_args_fn = lambda: dict( - cls.__mapper_args__ - ) # noqa + def mapper_args_fn(): + return dict(cls.__mapper_args__) + elif name == "__tablename__": check_decl = _check_declared_props_nocascade( obj, name, cls @@ -283,8 +291,9 @@ class _MapperConfig(object): # defined attribute here to allow a clean # override, if there's another # subclass below then it still tries to use - # this. not sure if there is enough information - # here to add this as a feature later on. + # this. not sure if there is enough + # information here to add this as a feature + # later on. util.warn( "Attribute '%s' on class %s cannot be " "processed due to " diff --git a/lib/sqlalchemy/ext/declarative/clsregistry.py b/lib/sqlalchemy/ext/declarative/clsregistry.py index c52ae4a2f..6f7c7c2be 100644 --- a/lib/sqlalchemy/ext/declarative/clsregistry.py +++ b/lib/sqlalchemy/ext/declarative/clsregistry.py @@ -10,18 +10,19 @@ This system allows specification of classes and expressions used in :func:`.relationship` using strings. """ -from ...orm.properties import ( - ColumnProperty, - RelationshipProperty, - SynonymProperty, -) -from ...schema import _get_table_key -from ...orm import class_mapper, interfaces -from ... import util -from ... import inspection -from ... import exc import weakref +from ... import exc +from ... import inspection +from ... import util +from ...orm import class_mapper +from ...orm import interfaces +from ...orm.properties import ColumnProperty +from ...orm.properties import RelationshipProperty +from ...orm.properties import SynonymProperty +from ...schema import _get_table_key + + # strong references to registries which we place in # the _decl_class_registry, which is usually weak referencing. # the internal registries here link to classes with weakrefs and remove |
