/mapping_setup.py
/test.py
/.cache/
+/.mypy_cache
*.sw[o,p]
+/test?.py
+/test.py
+/mapping_setup.py
+*.rej
\ No newline at end of file
mapper.class_manager.instrument_attribute(self.key, proxy_attr)
-@util.langhelpers.dependency_for("sqlalchemy.orm.properties")
+@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True)
class CompositeProperty(DescriptorProperty):
"""Defines a "composite" mapped attribute, representing a collection
of columns as one attribute.
return str(self.parent.class_.__name__) + "." + self.key
-@util.langhelpers.dependency_for("sqlalchemy.orm.properties")
+@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True)
class ConcreteInheritedProperty(DescriptorProperty):
"""A 'do nothing' :class:`.MapperProperty` that disables
an attribute on a concrete subclass that is only present
self.descriptor = NoninheritedConcreteProp()
-@util.langhelpers.dependency_for("sqlalchemy.orm.properties")
+@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True)
class SynonymProperty(DescriptorProperty):
def __init__(self, name, map_column=None,
self.parent = parent
-@util.langhelpers.dependency_for("sqlalchemy.orm.properties")
+@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True)
class ComparableProperty(DescriptorProperty):
"""Instruments a Python property for use in query expressions."""
from .interfaces import PropComparator, StrategizedProperty
-__all__ = ['ColumnProperty', 'CompositeProperty', 'SynonymProperty',
- 'ComparableProperty', 'RelationshipProperty']
+__all__ = ['ColumnProperty']
@log.class_logger
return self._fallback_getattr(key)
-def dependency_for(modulename):
+def dependency_for(modulename, add_to_all=False):
def decorate(obj):
# TODO: would be nice to improve on this import silliness,
# unfortunately importlib doesn't work that great either
".".join(tokens[0:-1]), globals(), locals(), [tokens[-1]])
mod = getattr(mod, tokens[-1])
setattr(mod, obj.__name__, obj)
+ if add_to_all and hasattr(mod, "__all__"):
+ mod.__all__.append(obj.__name__)
return obj
return decorate
sign = 1
identity = C4DAFEE1
+[flake8]
+show-source = true
+enable-extensions = G
+# E203 is due to https://github.com/PyCQA/pycodestyle/issues/373
+# F841 is "variable assigned but never used". lots of these are in
+# code examples, as well as in tests where sometimes they serve to keep
+# an object in scope. It would be nice to have less of these but at the
+# same time some are needed and some make code more readable
+ignore =
+ A003,
+ D,
+ E203,E305,E711,E712,E721,E722,E741,
+ F841,
+ N801,N802,N806,
+ RST304,RST303,RST299,RST399,
+ W503,W504
+exclude = .venv,.git,.tox,dist,doc,*egg,build
+import-order-style = google
+application-import-names = sqlalchemy,test
+
[sqla_testing]
requirement_cls=test.requirements:DefaultRequirements
from sqlalchemy import inspection
from sqlalchemy import exc, types, util, dialects
from sqlalchemy.util import OrderedDict
-for name in dialects.__all__: # noqa
- __import__("sqlalchemy.dialects.%s" % name)
from sqlalchemy.sql import operators, column, table, null
from sqlalchemy.schema import CheckConstraint, AddConstraint
from sqlalchemy.engine import default
from sqlalchemy.testing import mock
from sqlalchemy.sql import column
import operator
+import importlib
class AdaptTest(fixtures.TestBase):
def _all_dialect_modules(self):
return [
- getattr(dialects, d)
- for d in dialects.__all__
- if not d.startswith('_')
+ importlib.import_module("sqlalchemy.dialects.%s" % d)
+ for d in dialects.__all__ if not d.startswith("_")
]
def _all_dialects(self):
{env:BASECOMMAND} {env:WORKERS} {env:SQLITE:} {env:POSTGRESQL:} {env:MYSQL:} {env:ORACLE:} {env:MSSQL:} {env:BACKENDONLY:} {env:IDENTS:} {env:NOMEMORY:} {env:COVERAGE:} {posargs}
oracle,oracle6,oracle5,mssql: python reap_dbs.py db_idents.txt
+# thanks to https://julien.danjou.info/the-best-flake8-extensions/
[testenv:pep8]
-deps=flake8
-commands = python -m flake8 {posargs}
-
-[flake8]
-show-source = True
-ignore = E711,E712,E721,N806,D
-exclude=.venv,.git,.tox,dist,doc,*egg,build
+deps=
+ flake8
+ flake8-import-order
+ flake8-builtins
+ flake8-docstrings
+ flake8-rst-docstrings
+ # used by flake8-rst-docstrings
+ pygments
+commands = flake8 ./lib/ ./test/ ./examples/ setup.py