diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-01-05 12:24:39 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-01-05 12:24:39 -0500 |
commit | ff3c72816938e8ef6500ade2f3977c5e2b7ada65 (patch) | |
tree | cede44f051928c49c3bc65f748a04d3c00694b69 | |
parent | 4fbf4af7af36e830217900749e0a9d33528b0546 (diff) | |
download | sqlalchemy-ff3c72816938e8ef6500ade2f3977c5e2b7ada65.tar.gz |
- do a broken zimports run on lib
174 files changed, 1737 insertions, 2086 deletions
diff --git a/lib/sqlalchemy/__init__.py b/lib/sqlalchemy/__init__.py index 128e96e49..60c3ac553 100644 --- a/lib/sqlalchemy/__init__.py +++ b/lib/sqlalchemy/__init__.py @@ -6,129 +6,6 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .sql import ( - alias, - all_, - and_, - any_, - asc, - between, - bindparam, - case, - cast, - collate, - column, - delete, - desc, - distinct, - except_, - except_all, - exists, - extract, - false, - func, - funcfilter, - insert, - intersect, - intersect_all, - join, - lateral, - literal, - literal_column, - modifier, - not_, - null, - nullsfirst, - nullslast, - or_, - outerjoin, - outparam, - over, - select, - subquery, - table, - tablesample, - text, - true, - tuple_, - type_coerce, - union, - union_all, - update, - within_group, -) - -from .types import ( - ARRAY, - BIGINT, - BINARY, - BLOB, - BOOLEAN, - BigInteger, - Binary, - Boolean, - CHAR, - CLOB, - DATE, - DATETIME, - DECIMAL, - Date, - DateTime, - Enum, - FLOAT, - Float, - INT, - INTEGER, - Integer, - Interval, - JSON, - LargeBinary, - NCHAR, - NVARCHAR, - NUMERIC, - Numeric, - PickleType, - REAL, - SMALLINT, - SmallInteger, - String, - TEXT, - TIME, - TIMESTAMP, - Text, - Time, - TypeDecorator, - Unicode, - UnicodeText, - VARBINARY, - VARCHAR, -) - - -from .schema import ( - CheckConstraint, - Column, - ColumnDefault, - Constraint, - DefaultClause, - FetchedValue, - ForeignKey, - ForeignKeyConstraint, - Index, - MetaData, - PassiveDefault, - PrimaryKeyConstraint, - Sequence, - Table, - ThreadLocalMetaData, - UniqueConstraint, - DDL, - BLANK_SCHEMA, -) - - -from .inspection import inspect -from .engine import create_engine, engine_from_config __version__ = "1.2.16" diff --git a/lib/sqlalchemy/connectors/mxodbc.py b/lib/sqlalchemy/connectors/mxodbc.py index 27ea2a4dd..8c6e180f4 100644 --- a/lib/sqlalchemy/connectors/mxodbc.py +++ b/lib/sqlalchemy/connectors/mxodbc.py @@ -19,8 +19,8 @@ For more info on mxODBC, see http://www.egenix.com/ """ -import sys import re +import sys import warnings from . import Connector diff --git a/lib/sqlalchemy/connectors/pyodbc.py b/lib/sqlalchemy/connectors/pyodbc.py index 8f5eea89b..6c96661a0 100644 --- a/lib/sqlalchemy/connectors/pyodbc.py +++ b/lib/sqlalchemy/connectors/pyodbc.py @@ -5,13 +5,12 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php +import re + from . import Connector from .. import util -import re - - class PyODBCConnector(Connector): driver = "pyodbc" diff --git a/lib/sqlalchemy/connectors/zxJDBC.py b/lib/sqlalchemy/connectors/zxJDBC.py index 003ecbed1..a017f7d13 100644 --- a/lib/sqlalchemy/connectors/zxJDBC.py +++ b/lib/sqlalchemy/connectors/zxJDBC.py @@ -6,6 +6,7 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php import sys + from . import Connector diff --git a/lib/sqlalchemy/databases/__init__.py b/lib/sqlalchemy/databases/__init__.py index d2d56a7ae..dbdd1e0d1 100644 --- a/lib/sqlalchemy/databases/__init__.py +++ b/lib/sqlalchemy/databases/__init__.py @@ -9,16 +9,16 @@ compatibility with pre 0.6 versions. """ -from ..dialects.sqlite import base as sqlite -from ..dialects.postgresql import base as postgresql - -postgres = postgresql -from ..dialects.mysql import base as mysql -from ..dialects.oracle import base as oracle from ..dialects.firebird import base as firebird from ..dialects.mssql import base as mssql +from ..dialects.mysql import base as mysql +from ..dialects.oracle import base as oracle +from ..dialects.postgresql import base as postgresql +from ..dialects.sqlite import base as sqlite from ..dialects.sybase import base as sybase +postgres = postgresql + __all__ = ( "firebird", diff --git a/lib/sqlalchemy/dialects/firebird/__init__.py b/lib/sqlalchemy/dialects/firebird/__init__.py index 510d62337..f18ceb6a7 100644 --- a/lib/sqlalchemy/dialects/firebird/__init__.py +++ b/lib/sqlalchemy/dialects/firebird/__init__.py @@ -5,21 +5,20 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import base, kinterbasdb, fdb # noqa - -from sqlalchemy.dialects.firebird.base import ( - SMALLINT, - BIGINT, - FLOAT, - DATE, - TIME, - TEXT, - NUMERIC, - TIMESTAMP, - VARCHAR, - CHAR, - BLOB, -) +from sqlalchemy.dialects.firebird.base import BIGINT +from sqlalchemy.dialects.firebird.base import BLOB +from sqlalchemy.dialects.firebird.base import CHAR +from sqlalchemy.dialects.firebird.base import DATE +from sqlalchemy.dialects.firebird.base import FLOAT +from sqlalchemy.dialects.firebird.base import NUMERIC +from sqlalchemy.dialects.firebird.base import SMALLINT +from sqlalchemy.dialects.firebird.base import TEXT +from sqlalchemy.dialects.firebird.base import TIME +from sqlalchemy.dialects.firebird.base import TIMESTAMP +from sqlalchemy.dialects.firebird.base import VARCHAR +from . import base # noqa +from . import fdb # noqa +from . import kinterbasdb # noqa base.dialect = dialect = fdb.dialect diff --git a/lib/sqlalchemy/dialects/firebird/base.py b/lib/sqlalchemy/dialects/firebird/base.py index 1e9c778f3..43f2953b6 100644 --- a/lib/sqlalchemy/dialects/firebird/base.py +++ b/lib/sqlalchemy/dialects/firebird/base.py @@ -72,26 +72,26 @@ the SQLAlchemy ``returning()`` method, such as:: import datetime -from sqlalchemy import schema as sa_schema -from sqlalchemy import exc, types as sqltypes, sql, util -from sqlalchemy.sql import expression -from sqlalchemy.engine import base, default, reflection +from sqlalchemy import exc +from sqlalchemy import sql +from sqlalchemy import types as sqltypes +from sqlalchemy import util +from sqlalchemy.engine import default +from sqlalchemy.engine import reflection from sqlalchemy.sql import compiler +from sqlalchemy.sql import expression from sqlalchemy.sql.elements import quoted_name - -from sqlalchemy.types import ( - BIGINT, - BLOB, - DATE, - FLOAT, - INTEGER, - NUMERIC, - SMALLINT, - TEXT, - TIME, - TIMESTAMP, - Integer, -) +from sqlalchemy.types import BIGINT +from sqlalchemy.types import BLOB +from sqlalchemy.types import DATE +from sqlalchemy.types import FLOAT +from sqlalchemy.types import INTEGER +from sqlalchemy.types import Integer +from sqlalchemy.types import NUMERIC +from sqlalchemy.types import SMALLINT +from sqlalchemy.types import TEXT +from sqlalchemy.types import TIME +from sqlalchemy.types import TIMESTAMP RESERVED_WORDS = set( diff --git a/lib/sqlalchemy/dialects/firebird/kinterbasdb.py b/lib/sqlalchemy/dialects/firebird/kinterbasdb.py index 6d7144096..4dde6788d 100644 --- a/lib/sqlalchemy/dialects/firebird/kinterbasdb.py +++ b/lib/sqlalchemy/dialects/firebird/kinterbasdb.py @@ -38,10 +38,13 @@ In addition, it also accepts the following: """ -from .base import FBDialect, FBExecutionContext -from ... import util, types as sqltypes -from re import match import decimal +from re import match + +from .base import FBDialect +from .base import FBExecutionContext +from ... import types as sqltypes +from ... import util class _kinterbasdb_numeric(object): diff --git a/lib/sqlalchemy/dialects/mssql/__init__.py b/lib/sqlalchemy/dialects/mssql/__init__.py index 88a94fcfb..3300fa58e 100644 --- a/lib/sqlalchemy/dialects/mssql/__init__.py +++ b/lib/sqlalchemy/dialects/mssql/__init__.py @@ -5,41 +5,43 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import base, pyodbc, adodbapi, pymssql, zxjdbc, mxodbc # noqa - -from .base import ( - INTEGER, - BIGINT, - SMALLINT, - TINYINT, - VARCHAR, - NVARCHAR, - CHAR, - NCHAR, - TEXT, - NTEXT, - DECIMAL, - NUMERIC, - FLOAT, - DATETIME, - DATETIME2, - DATETIMEOFFSET, - DATE, - TIME, - SMALLDATETIME, - BINARY, - VARBINARY, - BIT, - REAL, - IMAGE, - TIMESTAMP, - ROWVERSION, - MONEY, - SMALLMONEY, - UNIQUEIDENTIFIER, - SQL_VARIANT, - XML, -) +from . import adodbapi # noqa +from . import base # noqa +from . import mxodbc # noqa +from . import pymssql # noqa +from . import pyodbc # noqa +from . import zxjdbc # noqa +from .base import BIGINT +from .base import BINARY +from .base import BIT +from .base import CHAR +from .base import DATE +from .base import DATETIME +from .base import DATETIME2 +from .base import DATETIMEOFFSET +from .base import DECIMAL +from .base import FLOAT +from .base import IMAGE +from .base import INTEGER +from .base import MONEY +from .base import NCHAR +from .base import NTEXT +from .base import NUMERIC +from .base import NVARCHAR +from .base import REAL +from .base import ROWVERSION +from .base import SMALLDATETIME +from .base import SMALLINT +from .base import SMALLMONEY +from .base import SQL_VARIANT +from .base import TEXT +from .base import TIME +from .base import TIMESTAMP +from .base import TINYINT +from .base import UNIQUEIDENTIFIER +from .base import VARBINARY +from .base import VARCHAR +from .base import XML base.dialect = dialect = pyodbc.dialect diff --git a/lib/sqlalchemy/dialects/mssql/adodbapi.py b/lib/sqlalchemy/dialects/mssql/adodbapi.py index d985c3bb6..08f7ae28a 100644 --- a/lib/sqlalchemy/dialects/mssql/adodbapi.py +++ b/lib/sqlalchemy/dialects/mssql/adodbapi.py @@ -19,10 +19,13 @@ """ import datetime -from sqlalchemy import types as sqltypes, util -from sqlalchemy.dialects.mssql.base import MSDateTime, MSDialect import sys +from sqlalchemy import types as sqltypes +from sqlalchemy import util +from sqlalchemy.dialects.mssql.base import MSDateTime +from sqlalchemy.dialects.mssql.base import MSDialect + class MSDateTime_adodbapi(MSDateTime): def result_processor(self, dialect, coltype): diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 7203a9e68..d655b75d6 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -612,31 +612,34 @@ import datetime import operator import re -from ... import sql, schema as sa_schema, exc, util -from ...sql import compiler, expression, util as sql_util, quoted_name +from . import information_schema as ischema from ... import engine -from ...engine import reflection, default +from ... import exc +from ... import schema as sa_schema +from ... import sql from ... import types as sqltypes -from ...types import ( - INTEGER, - BIGINT, - SMALLINT, - DECIMAL, - NUMERIC, - FLOAT, - DATETIME, - DATE, - BINARY, - TEXT, - VARCHAR, - NVARCHAR, - CHAR, - NCHAR, -) - - +from ... import util +from ...engine import default +from ...engine import reflection +from ...sql import compiler +from ...sql import expression +from ...sql import quoted_name +from ...sql import util as sql_util +from ...types import BIGINT +from ...types import BINARY +from ...types import CHAR +from ...types import DATE +from ...types import DATETIME +from ...types import DECIMAL +from ...types import FLOAT +from ...types import INTEGER +from ...types import NCHAR +from ...types import NUMERIC +from ...types import NVARCHAR +from ...types import SMALLINT +from ...types import TEXT +from ...types import VARCHAR from ...util import update_wrapper -from . import information_schema as ischema # http://sqlserverbuilds.blogspot.com/ MS_2016_VERSION = (13,) diff --git a/lib/sqlalchemy/dialects/mssql/information_schema.py b/lib/sqlalchemy/dialects/mssql/information_schema.py index c4ea8ab0c..fdcf3f73b 100644 --- a/lib/sqlalchemy/dialects/mssql/information_schema.py +++ b/lib/sqlalchemy/dialects/mssql/information_schema.py @@ -8,12 +8,17 @@ # TODO: should be using the sys. catalog with SQL Server, not information # schema -from ... import Table, MetaData, Column -from ...types import String, Unicode, UnicodeText, Integer, TypeDecorator from ... import cast +from ... import Column +from ... import MetaData +from ... import Table from ... import util -from ...sql import expression from ...ext.compiler import compiles +from ...sql import expression +from ...types import Integer +from ...types import String +from ...types import TypeDecorator +from ...types import Unicode ischema = MetaData() diff --git a/lib/sqlalchemy/dialects/mssql/mxodbc.py b/lib/sqlalchemy/dialects/mssql/mxodbc.py index 3b9ea2707..6d81e8e49 100644 --- a/lib/sqlalchemy/dialects/mssql/mxodbc.py +++ b/lib/sqlalchemy/dialects/mssql/mxodbc.py @@ -43,17 +43,15 @@ of ``False`` will unconditionally use string-escaped parameters. """ +from .base import _MSDate +from .base import _MSDateTime +from .base import _MSTime +from .base import MSDialect +from .base import VARBINARY +from .pyodbc import _MSNumeric_pyodbc +from .pyodbc import MSExecutionContext_pyodbc from ... import types as sqltypes from ...connectors.mxodbc import MxODBCConnector -from .pyodbc import MSExecutionContext_pyodbc, _MSNumeric_pyodbc -from .base import ( - MSDialect, - MSSQLStrictCompiler, - VARBINARY, - _MSDateTime, - _MSDate, - _MSTime, -) class _MSNumeric_mxodbc(_MSNumeric_pyodbc): diff --git a/lib/sqlalchemy/dialects/mssql/pymssql.py b/lib/sqlalchemy/dialects/mssql/pymssql.py index 847c00329..75d5a850e 100644 --- a/lib/sqlalchemy/dialects/mssql/pymssql.py +++ b/lib/sqlalchemy/dialects/mssql/pymssql.py @@ -21,10 +21,14 @@ Modern versions of this driver work very well with SQL Server and FreeTDS from Linux and is highly recommended. """ -from .base import MSDialect, MSIdentifierPreparer -from ... import types as sqltypes, util, processors import re +from .base import MSDialect +from .base import MSIdentifierPreparer +from ... import processors +from ... import types as sqltypes +from ... import util + class _MSNumeric_pymssql(sqltypes.Numeric): def result_processor(self, dialect, type_): diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py b/lib/sqlalchemy/dialects/mssql/pyodbc.py index edd645f93..bc0ddd8f2 100644 --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py @@ -87,12 +87,18 @@ versioning. """ -from .base import MSExecutionContext, MSDialect, BINARY, VARBINARY -from ...connectors.pyodbc import PyODBCConnector -from ... import types as sqltypes, util, exc import decimal import re +from .base import BINARY +from .base import MSDialect +from .base import MSExecutionContext +from .base import VARBINARY +from ... import exc +from ... import types as sqltypes +from ... import util +from ...connectors.pyodbc import PyODBCConnector + class _ms_numeric_pyodbc(object): diff --git a/lib/sqlalchemy/dialects/mssql/zxjdbc.py b/lib/sqlalchemy/dialects/mssql/zxjdbc.py index 13fc46e19..428710fdb 100644 --- a/lib/sqlalchemy/dialects/mssql/zxjdbc.py +++ b/lib/sqlalchemy/dialects/mssql/zxjdbc.py @@ -17,9 +17,10 @@ zxjdbc dialect should be considered as experimental. """ -from ...connectors.zxJDBC import ZxJDBCConnector -from .base import MSDialect, MSExecutionContext +from .base import MSDialect +from .base import MSExecutionContext from ... import engine +from ...connectors.zxJDBC import ZxJDBCConnector class MSExecutionContext_zxjdbc(MSExecutionContext): diff --git a/lib/sqlalchemy/dialects/mysql/__init__.py b/lib/sqlalchemy/dialects/mysql/__init__.py index ffeb8f486..6e76d6f1d 100644 --- a/lib/sqlalchemy/dialects/mysql/__init__.py +++ b/lib/sqlalchemy/dialects/mysql/__init__.py @@ -5,58 +5,42 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import ( - base, - mysqldb, - oursql, - pyodbc, - zxjdbc, - mysqlconnector, - pymysql, - gaerdbms, - cymysql, -) - -from .base import ( - BIGINT, - BINARY, - BIT, - BLOB, - BOOLEAN, - CHAR, - DATE, - DATETIME, - DECIMAL, - DOUBLE, - ENUM, - DECIMAL, - FLOAT, - INTEGER, - INTEGER, - JSON, - LONGBLOB, - LONGTEXT, - MEDIUMBLOB, - MEDIUMINT, - MEDIUMTEXT, - NCHAR, - NVARCHAR, - NUMERIC, - SET, - SMALLINT, - REAL, - TEXT, - TIME, - TIMESTAMP, - TINYBLOB, - TINYINT, - TINYTEXT, - VARBINARY, - VARCHAR, - YEAR, -) - -from .dml import insert, Insert +from . import base +from . import mysqldb +from .base import BIGINT +from .base import BINARY +from .base import BIT +from .base import BLOB +from .base import BOOLEAN +from .base import CHAR +from .base import DATE +from .base import DATETIME +from .base import DECIMAL +from .base import DOUBLE +from .base import ENUM +from .base import FLOAT +from .base import INTEGER +from .base import JSON +from .base import LONGBLOB +from .base import LONGTEXT +from .base import MEDIUMBLOB +from .base import MEDIUMINT +from .base import MEDIUMTEXT +from .base import NCHAR +from .base import NUMERIC +from .base import NVARCHAR +from .base import REAL +from .base import SET +from .base import SMALLINT +from .base import TEXT +from .base import TIME +from .base import TIMESTAMP +from .base import TINYBLOB +from .base import TINYINT +from .base import TINYTEXT +from .base import VARBINARY +from .base import VARCHAR +from .base import YEAR # default dialect base.dialect = dialect = mysqldb.dialect diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index dde2099b1..c5c3bf7df 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -695,60 +695,64 @@ output:: """ +from array import array as _array from collections import defaultdict import re import sys -import json +from . import reflection as _reflection +from .enumerated import ENUM +from .enumerated import SET +from .json import JSON +from .json import JSONIndexType +from .json import JSONPathType +from .types import _FloatType +from .types import _IntegerType +from .types import _MatchType +from .types import _NumericType +from .types import _StringType +from .types import BIGINT +from .types import BIT +from .types import CHAR +from .types import DATETIME +from .types import DECIMAL +from .types import DOUBLE +from .types import FLOAT +from .types import INTEGER +from .types import LONGBLOB +from .types import LONGTEXT +from .types import MEDIUMBLOB +from .types import MEDIUMINT +from .types import MEDIUMTEXT +from .types import NCHAR +from .types import NUMERIC +from .types import NVARCHAR +from .types import REAL +from .types import SMALLINT +from .types import TEXT +from .types import TIME +from .types import TIMESTAMP +from .types import TINYBLOB +from .types import TINYINT +from .types import TINYTEXT +from .types import VARCHAR +from .types import YEAR +from ... import exc +from ... import log from ... import schema as sa_schema -from ... import exc, log, sql, util -from ...sql import compiler, elements -from array import array as _array - -from ...engine import reflection -from ...engine import default +from ... import sql from ... import types as sqltypes +from ... import util +from ...engine import default +from ...engine import reflection +from ...sql import compiler +from ...sql import elements +from ...types import BINARY +from ...types import BLOB +from ...types import BOOLEAN +from ...types import DATE +from ...types import VARBINARY from ...util import topological -from ...types import DATE, BOOLEAN, BLOB, BINARY, VARBINARY - -from . import reflection as _reflection -from .types import ( - BIGINT, - BIT, - CHAR, - DECIMAL, - DATETIME, - DOUBLE, - FLOAT, - INTEGER, - LONGBLOB, - LONGTEXT, - MEDIUMBLOB, - MEDIUMINT, - MEDIUMTEXT, - NCHAR, - NUMERIC, - NVARCHAR, - REAL, - SMALLINT, - TEXT, - TIME, - TIMESTAMP, - TINYBLOB, - TINYINT, - TINYTEXT, - VARCHAR, - YEAR, -) -from .types import ( - _StringType, - _IntegerType, - _NumericType, - _FloatType, - _MatchType, -) -from .enumerated import ENUM, SET -from .json import JSON, JSONIndexType, JSONPathType RESERVED_WORDS = set( diff --git a/lib/sqlalchemy/dialects/mysql/cymysql.py b/lib/sqlalchemy/dialects/mysql/cymysql.py index 8a60608db..fee97800c 100644 --- a/lib/sqlalchemy/dialects/mysql/cymysql.py +++ b/lib/sqlalchemy/dialects/mysql/cymysql.py @@ -15,10 +15,9 @@ :url: https://github.com/nakagami/CyMySQL """ -import re - +from .base import BIT +from .base import MySQLDialect from .mysqldb import MySQLDialect_mysqldb -from .base import BIT, MySQLDialect from ... import util diff --git a/lib/sqlalchemy/dialects/mysql/dml.py b/lib/sqlalchemy/dialects/mysql/dml.py index 6d435c149..235278f58 100644 --- a/lib/sqlalchemy/dialects/mysql/dml.py +++ b/lib/sqlalchemy/dialects/mysql/dml.py @@ -1,9 +1,9 @@ -from ...sql.elements import ClauseElement +from ... import util +from ...sql.base import _generative from ...sql.dml import Insert as StandardInsert +from ...sql.elements import ClauseElement from ...sql.expression import alias from ...util.langhelpers import public_factory -from ...sql.base import _generative -from ... import util __all__ = ("Insert", "insert") diff --git a/lib/sqlalchemy/dialects/mysql/enumerated.py b/lib/sqlalchemy/dialects/mysql/enumerated.py index 9586eff3f..fe42bb3aa 100644 --- a/lib/sqlalchemy/dialects/mysql/enumerated.py +++ b/lib/sqlalchemy/dialects/mysql/enumerated.py @@ -8,7 +8,9 @@ import re from .types import _StringType -from ... import exc, sql, util +from ... import exc +from ... import sql +from ... import util from ...sql import sqltypes diff --git a/lib/sqlalchemy/dialects/mysql/gaerdbms.py b/lib/sqlalchemy/dialects/mysql/gaerdbms.py index 117cd28a2..507926a2b 100644 --- a/lib/sqlalchemy/dialects/mysql/gaerdbms.py +++ b/lib/sqlalchemy/dialects/mysql/gaerdbms.py @@ -36,11 +36,11 @@ default. """ import os +import re +from sqlalchemy.util import warn_deprecated from .mysqldb import MySQLDialect_mysqldb from ...pool import NullPool -import re -from sqlalchemy.util import warn_deprecated def _is_dev_environment(): diff --git a/lib/sqlalchemy/dialects/mysql/json.py b/lib/sqlalchemy/dialects/mysql/json.py index c3327631b..0f2ca439f 100644 --- a/lib/sqlalchemy/dialects/mysql/json.py +++ b/lib/sqlalchemy/dialects/mysql/json.py @@ -7,11 +7,7 @@ from __future__ import absolute_import -import json - -from ...sql import elements from ... import types as sqltypes -from ... import util class JSON(sqltypes.JSON): diff --git a/lib/sqlalchemy/dialects/mysql/mysqlconnector.py b/lib/sqlalchemy/dialects/mysql/mysqlconnector.py index d7df42f2f..4808b90c2 100644 --- a/lib/sqlalchemy/dialects/mysql/mysqlconnector.py +++ b/lib/sqlalchemy/dialects/mysql/mysqlconnector.py @@ -47,17 +47,15 @@ are contributed to SQLAlchemy. """ -from .base import ( - MySQLDialect, - MySQLExecutionContext, - MySQLCompiler, - MySQLIdentifierPreparer, - BIT, -) - -from ... import util import re + +from .base import BIT +from .base import MySQLCompiler +from .base import MySQLDialect +from .base import MySQLExecutionContext +from .base import MySQLIdentifierPreparer from ... import processors +from ... import util class MySQLExecutionContext_mysqlconnector(MySQLExecutionContext): diff --git a/lib/sqlalchemy/dialects/mysql/mysqldb.py b/lib/sqlalchemy/dialects/mysql/mysqldb.py index d62f617cb..9fb971d95 100644 --- a/lib/sqlalchemy/dialects/mysql/mysqldb.py +++ b/lib/sqlalchemy/dialects/mysql/mysqldb.py @@ -45,16 +45,13 @@ The mysqldb dialect supports server-side cursors. See :ref:`mysql_ss_cursors`. """ -from .base import ( - MySQLDialect, - MySQLExecutionContext, - MySQLCompiler, - MySQLIdentifierPreparer, -) +from .base import MySQLCompiler +from .base import MySQLDialect +from .base import MySQLExecutionContext +from .base import MySQLIdentifierPreparer from .base import TEXT from ... import sql from ... import util -import re class MySQLExecutionContext_mysqldb(MySQLExecutionContext): diff --git a/lib/sqlalchemy/dialects/mysql/oursql.py b/lib/sqlalchemy/dialects/mysql/oursql.py index 8ba353a31..d8f27138d 100644 --- a/lib/sqlalchemy/dialects/mysql/oursql.py +++ b/lib/sqlalchemy/dialects/mysql/oursql.py @@ -22,10 +22,11 @@ handling. """ -import re - -from .base import BIT, MySQLDialect, MySQLExecutionContext -from ... import types as sqltypes, util +from .base import BIT +from .base import MySQLDialect +from .base import MySQLExecutionContext +from ... import types as sqltypes +from ... import util class _oursqlBIT(BIT): diff --git a/lib/sqlalchemy/dialects/mysql/pymysql.py b/lib/sqlalchemy/dialects/mysql/pymysql.py index b2c537249..221b2254d 100644 --- a/lib/sqlalchemy/dialects/mysql/pymysql.py +++ b/lib/sqlalchemy/dialects/mysql/pymysql.py @@ -30,7 +30,8 @@ to the pymysql driver as well. """ from .mysqldb import MySQLDialect_mysqldb -from ...util import langhelpers, py3k +from ...util import langhelpers +from ...util import py3k class MySQLDialect_pymysql(MySQLDialect_mysqldb): diff --git a/lib/sqlalchemy/dialects/mysql/pyodbc.py b/lib/sqlalchemy/dialects/mysql/pyodbc.py index 91512857e..736de5f04 100644 --- a/lib/sqlalchemy/dialects/mysql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mysql/pyodbc.py @@ -22,11 +22,13 @@ """ -from .base import MySQLDialect, MySQLExecutionContext -from ...connectors.pyodbc import PyODBCConnector -from ... import util import re +from .base import MySQLDialect +from .base import MySQLExecutionContext +from ... import util +from ...connectors.pyodbc import PyODBCConnector + class MySQLExecutionContext_pyodbc(MySQLExecutionContext): def get_lastrowid(self): diff --git a/lib/sqlalchemy/dialects/mysql/reflection.py b/lib/sqlalchemy/dialects/mysql/reflection.py index 61a252d05..03e0defdd 100644 --- a/lib/sqlalchemy/dialects/mysql/reflection.py +++ b/lib/sqlalchemy/dialects/mysql/reflection.py @@ -6,10 +6,15 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php import re -from ... import log, util + +from .enumerated import _EnumeratedValues +from .enumerated import SET +from .types import DATETIME +from .types import TIME +from .types import TIMESTAMP +from ... import log from ... import types as sqltypes -from .enumerated import _EnumeratedValues, SET -from .types import DATETIME, TIME, TIMESTAMP +from ... import util class ReflectedState(object): diff --git a/lib/sqlalchemy/dialects/mysql/types.py b/lib/sqlalchemy/dialects/mysql/types.py index ad97a9bbe..8e60249ec 100644 --- a/lib/sqlalchemy/dialects/mysql/types.py +++ b/lib/sqlalchemy/dialects/mysql/types.py @@ -6,8 +6,10 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php import datetime -from ... import exc, util + +from ... import exc from ... import types as sqltypes +from ... import util class _NumericType(object): diff --git a/lib/sqlalchemy/dialects/mysql/zxjdbc.py b/lib/sqlalchemy/dialects/mysql/zxjdbc.py index d8ee43748..044d34fec 100644 --- a/lib/sqlalchemy/dialects/mysql/zxjdbc.py +++ b/lib/sqlalchemy/dialects/mysql/zxjdbc.py @@ -29,9 +29,12 @@ overridden via a ``create_engine`` URL parameter. """ import re -from ... import types as sqltypes, util +from .base import BIT +from .base import MySQLDialect +from .base import MySQLExecutionContext +from ... import types as sqltypes +from ... import util from ...connectors.zxJDBC import ZxJDBCConnector -from .base import BIT, MySQLDialect, MySQLExecutionContext class _ZxJDBCBit(BIT): diff --git a/lib/sqlalchemy/dialects/oracle/__init__.py b/lib/sqlalchemy/dialects/oracle/__init__.py index 1b9007fcc..21c839aee 100644 --- a/lib/sqlalchemy/dialects/oracle/__init__.py +++ b/lib/sqlalchemy/dialects/oracle/__init__.py @@ -5,30 +5,29 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import base, cx_oracle, zxjdbc # noqa - -from .base import ( - VARCHAR, - NVARCHAR, - CHAR, - DATE, - NUMBER, - BLOB, - BFILE, - BINARY_FLOAT, - BINARY_DOUBLE, - CLOB, - NCLOB, - TIMESTAMP, - RAW, - FLOAT, - DOUBLE_PRECISION, - LONG, - INTERVAL, - VARCHAR2, - NVARCHAR2, - ROWID, -) +from . import base # noqa +from . import cx_oracle # noqa +from . import zxjdbc # noqa +from .base import BFILE +from .base import BINARY_DOUBLE +from .base import BINARY_FLOAT +from .base import BLOB +from .base import CHAR +from .base import CLOB +from .base import DATE +from .base import DOUBLE_PRECISION +from .base import FLOAT +from .base import INTERVAL +from .base import LONG +from .base import NCLOB +from .base import NUMBER +from .base import NVARCHAR +from .base import NVARCHAR2 +from .base import RAW +from .base import ROWID +from .base import TIMESTAMP +from .base import VARCHAR +from .base import VARCHAR2 base.dialect = dialect = cx_oracle.dialect diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index a435cc435..bc4cd0612 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -345,25 +345,28 @@ columns for non-unique indexes, all but the last column for unique indexes). """ +from itertools import groupby import re -from sqlalchemy import util, sql -from sqlalchemy.engine import default, reflection -from sqlalchemy.sql import compiler, visitors, expression, util as sql_util -from sqlalchemy.sql import operators as sql_operators +from sqlalchemy import schema as sa_schema +from sqlalchemy import sql +from sqlalchemy import types as sqltypes +from sqlalchemy import util +from sqlalchemy.engine import default +from sqlalchemy.engine import reflection +from sqlalchemy.sql import compiler +from sqlalchemy.sql import expression +from sqlalchemy.sql import util as sql_util +from sqlalchemy.sql import visitors from sqlalchemy.sql.elements import quoted_name -from sqlalchemy import types as sqltypes, schema as sa_schema -from sqlalchemy.types import ( - VARCHAR, - NVARCHAR, - CHAR, - BLOB, - CLOB, - TIMESTAMP, - FLOAT, - INTEGER, -) -from itertools import groupby +from sqlalchemy.types import BLOB +from sqlalchemy.types import CHAR +from sqlalchemy.types import CLOB +from sqlalchemy.types import FLOAT +from sqlalchemy.types import INTEGER +from sqlalchemy.types import NVARCHAR +from sqlalchemy.types import TIMESTAMP +from sqlalchemy.types import VARCHAR RESERVED_WORDS = set( "SHARE RAW DROP BETWEEN FROM DESC OPTION PRIOR LONG THEN " diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index 47c8542d9..77fa4a3df 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -301,15 +301,20 @@ SQLAlchemy type (or a subclass of such). from __future__ import absolute_import -from .base import OracleCompiler, OracleDialect, OracleExecutionContext -from . import base as oracle -from ...engine import result as _result -from sqlalchemy import types as sqltypes, util, exc, processors -import random import collections import decimal +import random import re -import time + +from sqlalchemy import exc +from sqlalchemy import processors +from sqlalchemy import types as sqltypes +from sqlalchemy import util +from . import base as oracle +from .base import OracleCompiler +from .base import OracleDialect +from .base import OracleExecutionContext +from ...engine import result as _result class _OracleInteger(sqltypes.Integer): diff --git a/lib/sqlalchemy/dialects/oracle/zxjdbc.py b/lib/sqlalchemy/dialects/oracle/zxjdbc.py index 0a365f8b0..503d0658b 100644 --- a/lib/sqlalchemy/dialects/oracle/zxjdbc.py +++ b/lib/sqlalchemy/dialects/oracle/zxjdbc.py @@ -16,19 +16,19 @@ zxjdbc dialect should be considered as experimental. """ +import collections import decimal import re -from sqlalchemy import sql, types as sqltypes, util +from sqlalchemy import sql +from sqlalchemy import types as sqltypes +from sqlalchemy import util from sqlalchemy.connectors.zxJDBC import ZxJDBCConnector -from sqlalchemy.dialects.oracle.base import ( - OracleCompiler, - OracleDialect, - OracleExecutionContext, -) +from sqlalchemy.dialects.oracle.base import OracleCompiler +from sqlalchemy.dialects.oracle.base import OracleDialect +from sqlalchemy.dialects.oracle.base import OracleExecutionContext from sqlalchemy.engine import result as _result from sqlalchemy.sql import expression -import collections SQLException = zxJDBC = None diff --git a/lib/sqlalchemy/dialects/postgresql/__init__.py b/lib/sqlalchemy/dialects/postgresql/__init__.py index b3ad52240..ed7b1ad38 100644 --- a/lib/sqlalchemy/dialects/postgresql/__init__.py +++ b/lib/sqlalchemy/dialects/postgresql/__init__.py @@ -5,60 +5,55 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import ( - base, - psycopg2, - pg8000, - pypostgresql, - pygresql, - zxjdbc, - psycopg2cffi, -) # noqa - -from .base import ( - INTEGER, - BIGINT, - SMALLINT, - VARCHAR, - CHAR, - TEXT, - NUMERIC, - FLOAT, - REAL, - INET, - CIDR, - UUID, - BIT, - MACADDR, - MONEY, - OID, - REGCLASS, - DOUBLE_PRECISION, - TIMESTAMP, - TIME, - DATE, - BYTEA, - BOOLEAN, - INTERVAL, - ENUM, - TSVECTOR, - DropEnumType, - CreateEnumType, -) -from .hstore import HSTORE, hstore -from .json import JSON, JSONB, json -from .array import array, ARRAY, Any, All -from .ext import aggregate_order_by, ExcludeConstraint, array_agg -from .dml import insert, Insert - -from .ranges import ( - INT4RANGE, - INT8RANGE, - NUMRANGE, - DATERANGE, - TSRANGE, - TSTZRANGE, -) +from . import base +from . import psycopg2 +from .array import All +from .array import Any +from .array import ARRAY +from .array import array +from .base import BIGINT +from .base import BIT +from .base import BOOLEAN +from .base import BYTEA +from .base import CHAR +from .base import CIDR +from .base import CreateEnumType +from .base import DATE +from .base import DOUBLE_PRECISION +from .base import DropEnumType +from .base import ENUM +from .base import FLOAT +from .base import INET +from .base import INTEGER +from .base import INTERVAL +from .base import MACADDR +from .base import MONEY +from .base import NUMERIC +from .base import OID +from .base import REAL +from .base import REGCLASS +from .base import SMALLINT +from .base import TEXT +from .base import TIME +from .base import TIMESTAMP +from .base import UUID +from .base import VARCHAR +from .dml import Insert +from .dml import insert +from .ext import aggregate_order_by +from .ext import array_agg +from .ext import ExcludeConstraint +from .hstore import HSTORE +from .hstore import hstore +from .json import JSON +from .json import json +from .json import JSONB +from .ranges import DATERANGE +from .ranges import INT4RANGE +from .ranges import INT8RANGE +from .ranges import NUMRANGE +from .ranges import TSRANGE +from .ranges import TSTZRANGE base.dialect = dialect = psycopg2.dialect diff --git a/lib/sqlalchemy/dialects/postgresql/array.py b/lib/sqlalchemy/dialects/postgresql/array.py index 07167f9d0..ebea7ee9d 100644 --- a/lib/sqlalchemy/dialects/postgresql/array.py +++ b/lib/sqlalchemy/dialects/postgresql/array.py @@ -5,10 +5,11 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .base import ischema_names, colspecs -from ...sql import expression, operators -from ...sql.base import SchemaEventTarget +from .base import colspecs +from .base import ischema_names from ... import types as sqltypes +from ...sql import expression +from ...sql import operators try: from uuid import UUID as _python_UUID diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 38f048646..965c5c714 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -915,14 +915,29 @@ E.g.:: """ from collections import defaultdict -import re import datetime as dt - +import re from sqlalchemy.sql import elements -from ... import sql, schema, exc, util -from ...engine import default, reflection -from ...sql import compiler, expression +from sqlalchemy.types import BIGINT +from sqlalchemy.types import BOOLEAN +from sqlalchemy.types import CHAR +from sqlalchemy.types import DATE +from sqlalchemy.types import FLOAT +from sqlalchemy.types import INTEGER +from sqlalchemy.types import NUMERIC +from sqlalchemy.types import REAL +from sqlalchemy.types import SMALLINT +from sqlalchemy.types import TEXT +from sqlalchemy.types import VARCHAR +from ... import exc +from ... import schema +from ... import sql +from ... import util +from ...engine import default +from ...engine import reflection +from ...sql import compiler +from ...sql import expression from ...sql import sqltypes try: @@ -930,20 +945,6 @@ try: except ImportError: _python_UUID = None -from sqlalchemy.types import ( - INTEGER, - BIGINT, - SMALLINT, - VARCHAR, - CHAR, - TEXT, - FLOAT, - NUMERIC, - DATE, - BOOLEAN, - REAL, -) - AUTOCOMMIT_REGEXP = re.compile( r"\s*(?:UPDATE|INSERT|CREATE|DELETE|DROP|ALTER|GRANT|REVOKE|" "IMPORT FOREIGN SCHEMA|REFRESH MATERIALIZED VIEW|TRUNCATE)", diff --git a/lib/sqlalchemy/dialects/postgresql/dml.py b/lib/sqlalchemy/dialects/postgresql/dml.py index 825f13238..f16842057 100644 --- a/lib/sqlalchemy/dialects/postgresql/dml.py +++ b/lib/sqlalchemy/dialects/postgresql/dml.py @@ -5,14 +5,14 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from ...sql.elements import ClauseElement, _literal_as_binds +from . import ext +from ... import util +from ...sql import schema +from ...sql.base import _generative from ...sql.dml import Insert as StandardInsert +from ...sql.elements import ClauseElement from ...sql.expression import alias -from ...sql import schema from ...util.langhelpers import public_factory -from ...sql.base import _generative -from ... import util -from . import ext __all__ = ("Insert", "insert") diff --git a/lib/sqlalchemy/dialects/postgresql/ext.py b/lib/sqlalchemy/dialects/postgresql/ext.py index da0c6250c..94286fd6c 100644 --- a/lib/sqlalchemy/dialects/postgresql/ext.py +++ b/lib/sqlalchemy/dialects/postgresql/ext.py @@ -5,11 +5,11 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from ...sql import expression +from .array import ARRAY from ...sql import elements +from ...sql import expression from ...sql import functions from ...sql.schema import ColumnCollectionConstraint -from .array import ARRAY class aggregate_order_by(expression.ColumnElement): diff --git a/lib/sqlalchemy/dialects/postgresql/hstore.py b/lib/sqlalchemy/dialects/postgresql/hstore.py index e4bac692a..3074395d1 100644 --- a/lib/sqlalchemy/dialects/postgresql/hstore.py +++ b/lib/sqlalchemy/dialects/postgresql/hstore.py @@ -7,12 +7,12 @@ import re -from .base import ischema_names from .array import ARRAY +from .base import ischema_names from ... import types as sqltypes +from ... import util from ...sql import functions as sqlfunc from ...sql import operators -from ... import util __all__ = ("HSTORE", "hstore") diff --git a/lib/sqlalchemy/dialects/postgresql/json.py b/lib/sqlalchemy/dialects/postgresql/json.py index 7bb0ebf31..9af20b0af 100644 --- a/lib/sqlalchemy/dialects/postgresql/json.py +++ b/lib/sqlalchemy/dialects/postgresql/json.py @@ -6,13 +6,11 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php from __future__ import absolute_import -import json - -from .base import ischema_names, colspecs +from .base import colspecs +from .base import ischema_names from ... import types as sqltypes -from ...sql import operators -from ...sql import elements from ... import util +from ...sql import operators __all__ = ("JSON", "JSONB") diff --git a/lib/sqlalchemy/dialects/postgresql/pg8000.py b/lib/sqlalchemy/dialects/postgresql/pg8000.py index fef09e0eb..a24e57ffe 100644 --- a/lib/sqlalchemy/dialects/postgresql/pg8000.py +++ b/lib/sqlalchemy/dialects/postgresql/pg8000.py @@ -64,22 +64,22 @@ of the :ref:`psycopg2 <psycopg2_isolation_level>` dialect: """ -from ... import util, exc import decimal -from ... import processors -from ... import types as sqltypes -from .base import ( - PGDialect, - PGCompiler, - PGIdentifierPreparer, - PGExecutionContext, - _DECIMAL_TYPES, - _FLOAT_TYPES, - _INT_TYPES, - UUID, -) import re + from sqlalchemy.dialects.postgresql.json import JSON +from .base import _DECIMAL_TYPES +from .base import _FLOAT_TYPES +from .base import _INT_TYPES +from .base import PGCompiler +from .base import PGDialect +from .base import PGExecutionContext +from .base import PGIdentifierPreparer +from .base import UUID +from ... import exc +from ... import processors +from ... import types as sqltypes +from ... import util from ...sql.elements import quoted_name try: diff --git a/lib/sqlalchemy/dialects/postgresql/psycopg2.py b/lib/sqlalchemy/dialects/postgresql/psycopg2.py index 69e038d69..0b4e85473 100644 --- a/lib/sqlalchemy/dialects/postgresql/psycopg2.py +++ b/lib/sqlalchemy/dialects/postgresql/psycopg2.py @@ -344,28 +344,27 @@ which may be more performant. """ from __future__ import absolute_import -import re +import decimal import logging +import re -from ... import util, exc -import decimal +from .base import _DECIMAL_TYPES +from .base import _FLOAT_TYPES +from .base import _INT_TYPES +from .base import ENUM +from .base import PGCompiler +from .base import PGDialect +from .base import PGExecutionContext +from .base import PGIdentifierPreparer +from .base import UUID +from .hstore import HSTORE +from .json import JSON +from .json import JSONB +from ... import exc from ... import processors -from ...engine import result as _result -from ...sql import expression from ... import types as sqltypes -from .base import ( - PGDialect, - PGCompiler, - PGIdentifierPreparer, - PGExecutionContext, - ENUM, - _DECIMAL_TYPES, - _FLOAT_TYPES, - _INT_TYPES, - UUID, -) -from .hstore import HSTORE -from .json import JSON, JSONB +from ... import util +from ...engine import result as _result try: from uuid import UUID as _python_UUID diff --git a/lib/sqlalchemy/dialects/postgresql/pygresql.py b/lib/sqlalchemy/dialects/postgresql/pygresql.py index c7edb8fc3..27d2a715b 100644 --- a/lib/sqlalchemy/dialects/postgresql/pygresql.py +++ b/lib/sqlalchemy/dialects/postgresql/pygresql.py @@ -17,20 +17,22 @@ import decimal import re -from ... import exc, processors, util -from ...types import Numeric, JSON as Json -from ...sql.elements import Null -from .base import ( - PGDialect, - PGCompiler, - PGIdentifierPreparer, - _DECIMAL_TYPES, - _FLOAT_TYPES, - _INT_TYPES, - UUID, -) +from .base import _DECIMAL_TYPES +from .base import _FLOAT_TYPES +from .base import _INT_TYPES +from .base import PGCompiler +from .base import PGDialect +from .base import PGIdentifierPreparer +from .base import UUID from .hstore import HSTORE -from .json import JSON, JSONB +from .json import JSON +from .json import JSONB +from ... import exc +from ... import processors +from ... import util +from ...sql.elements import Null +from ...types import JSON as Json +from ...types import Numeric class _PGNumeric(Numeric): diff --git a/lib/sqlalchemy/dialects/postgresql/pypostgresql.py b/lib/sqlalchemy/dialects/postgresql/pypostgresql.py index 93bf653a4..422d8171a 100644 --- a/lib/sqlalchemy/dialects/postgresql/pypostgresql.py +++ b/lib/sqlalchemy/dialects/postgresql/pypostgresql.py @@ -15,10 +15,11 @@ """ -from ... import util -from ... import types as sqltypes -from .base import PGDialect, PGExecutionContext +from .base import PGDialect +from .base import PGExecutionContext from ... import processors +from ... import types as sqltypes +from ... import util class PGNumeric(sqltypes.Numeric): diff --git a/lib/sqlalchemy/dialects/postgresql/zxjdbc.py b/lib/sqlalchemy/dialects/postgresql/zxjdbc.py index 4d984443a..ab77e5bc8 100644 --- a/lib/sqlalchemy/dialects/postgresql/zxjdbc.py +++ b/lib/sqlalchemy/dialects/postgresql/zxjdbc.py @@ -14,8 +14,9 @@ """ +from .base import PGDialect +from .base import PGExecutionContext from ...connectors.zxJDBC import ZxJDBCConnector -from .base import PGDialect, PGExecutionContext class PGExecutionContext_zxjdbc(PGExecutionContext): diff --git a/lib/sqlalchemy/dialects/sqlite/__init__.py b/lib/sqlalchemy/dialects/sqlite/__init__.py index 79561ead8..52d1e3d89 100644 --- a/lib/sqlalchemy/dialects/sqlite/__init__.py +++ b/lib/sqlalchemy/dialects/sqlite/__init__.py @@ -5,25 +5,24 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import base, pysqlite, pysqlcipher # noqa - -from sqlalchemy.dialects.sqlite.base import ( - BLOB, - BOOLEAN, - CHAR, - DATE, - DATETIME, - DECIMAL, - FLOAT, - INTEGER, - REAL, - NUMERIC, - SMALLINT, - TEXT, - TIME, - TIMESTAMP, - VARCHAR, -) +from sqlalchemy.dialects.sqlite.base import BLOB +from sqlalchemy.dialects.sqlite.base import BOOLEAN +from sqlalchemy.dialects.sqlite.base import CHAR +from sqlalchemy.dialects.sqlite.base import DATE +from sqlalchemy.dialects.sqlite.base import DATETIME +from sqlalchemy.dialects.sqlite.base import DECIMAL +from sqlalchemy.dialects.sqlite.base import FLOAT +from sqlalchemy.dialects.sqlite.base import INTEGER +from sqlalchemy.dialects.sqlite.base import NUMERIC +from sqlalchemy.dialects.sqlite.base import REAL +from sqlalchemy.dialects.sqlite.base import SMALLINT +from sqlalchemy.dialects.sqlite.base import TEXT +from sqlalchemy.dialects.sqlite.base import TIME +from sqlalchemy.dialects.sqlite.base import TIMESTAMP +from sqlalchemy.dialects.sqlite.base import VARCHAR +from . import base # noqa +from . import pysqlcipher # noqa +from . import pysqlite # noqa # default dialect base.dialect = dialect = pysqlite.dialect diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index 775d4ad92..356a696db 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -468,28 +468,16 @@ When using the per-:class:`.Engine` execution option, note that import datetime import re +from ... import exc from ... import processors -from ... import sql, exc -from ... import types as sqltypes, schema as sa_schema +from ... import schema as sa_schema +from ... import sql +from ... import types as sqltypes from ... import util -from ...engine import default, reflection +from ...engine import default +from ...engine import reflection from ...sql import compiler -from ...types import ( - BLOB, - BOOLEAN, - CHAR, - DECIMAL, - FLOAT, - INTEGER, - REAL, - NUMERIC, - SMALLINT, - TEXT, - TIMESTAMP, - VARCHAR, -) - class _DateTimeMixin(object): _reg = None diff --git a/lib/sqlalchemy/dialects/sqlite/pysqlcipher.py b/lib/sqlalchemy/dialects/sqlite/pysqlcipher.py index fca425127..661587db8 100644 --- a/lib/sqlalchemy/dialects/sqlite/pysqlcipher.py +++ b/lib/sqlalchemy/dialects/sqlite/pysqlcipher.py @@ -76,9 +76,10 @@ time, at the expense of slower startup time for new connections. """ from __future__ import absolute_import + from .pysqlite import SQLiteDialect_pysqlite -from ...engine import url as _url from ... import pool +from ...engine import url as _url class SQLiteDialect_pysqlcipher(SQLiteDialect_pysqlite): diff --git a/lib/sqlalchemy/dialects/sqlite/pysqlite.py b/lib/sqlalchemy/dialects/sqlite/pysqlite.py index e78d76ae6..c2f533e08 100644 --- a/lib/sqlalchemy/dialects/sqlite/pysqlite.py +++ b/lib/sqlalchemy/dialects/sqlite/pysqlite.py @@ -264,12 +264,15 @@ by adding the desired locking mode to our ``"BEGIN"``:: """ -from sqlalchemy.dialects.sqlite.base import SQLiteDialect, DATETIME, DATE -from sqlalchemy import exc, pool +import os + +from sqlalchemy import exc +from sqlalchemy import pool from sqlalchemy import types as sqltypes from sqlalchemy import util - -import os +from sqlalchemy.dialects.sqlite.base import DATE +from sqlalchemy.dialects.sqlite.base import DATETIME +from sqlalchemy.dialects.sqlite.base import SQLiteDialect class _SQLite_pysqliteTimeStamp(DATETIME): diff --git a/lib/sqlalchemy/dialects/sybase/__init__.py b/lib/sqlalchemy/dialects/sybase/__init__.py index 2f55d3bf6..d4ba238a2 100644 --- a/lib/sqlalchemy/dialects/sybase/__init__.py +++ b/lib/sqlalchemy/dialects/sybase/__init__.py @@ -5,34 +5,33 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import base, pysybase, pyodbc # noqa - -from .base import ( - CHAR, - VARCHAR, - TIME, - NCHAR, - NVARCHAR, - TEXT, - DATE, - DATETIME, - FLOAT, - NUMERIC, - BIGINT, - INT, - INTEGER, - SMALLINT, - BINARY, - VARBINARY, - UNITEXT, - UNICHAR, - UNIVARCHAR, - IMAGE, - BIT, - MONEY, - SMALLMONEY, - TINYINT, -) +from . import base # noqa +from . import pyodbc # noqa +from . import pysybase # noqa +from .base import BIGINT +from .base import BINARY +from .base import BIT +from .base import CHAR +from .base import DATE +from .base import DATETIME +from .base import FLOAT +from .base import IMAGE +from .base import INT +from .base import INTEGER +from .base import MONEY +from .base import NCHAR +from .base import NUMERIC +from .base import NVARCHAR +from .base import SMALLINT +from .base import SMALLMONEY +from .base import TEXT +from .base import TIME +from .base import TINYINT +from .base import UNICHAR +from .base import UNITEXT +from .base import UNIVARCHAR +from .base import VARBINARY +from .base import VARCHAR # default dialect base.dialect = dialect = pyodbc.dialect diff --git a/lib/sqlalchemy/dialects/sybase/base.py b/lib/sqlalchemy/dialects/sybase/base.py index 1214a9279..f9b49a444 100644 --- a/lib/sqlalchemy/dialects/sybase/base.py +++ b/lib/sqlalchemy/dialects/sybase/base.py @@ -21,39 +21,35 @@ caveats not currently handled. """ -import operator import re -from sqlalchemy.sql import compiler, expression, text, bindparam -from sqlalchemy.engine import default, base, reflection -from sqlalchemy import types as sqltypes -from sqlalchemy.sql import operators as sql_operators +from sqlalchemy import exc from sqlalchemy import schema as sa_schema -from sqlalchemy import util, sql, exc - -from sqlalchemy.types import ( - CHAR, - VARCHAR, - TIME, - NCHAR, - NVARCHAR, - TEXT, - DATE, - DATETIME, - FLOAT, - NUMERIC, - BIGINT, - INT, - INTEGER, - SMALLINT, - BINARY, - VARBINARY, - DECIMAL, - TIMESTAMP, - Unicode, - UnicodeText, - REAL, -) +from sqlalchemy import types as sqltypes +from sqlalchemy import util +from sqlalchemy.engine import default +from sqlalchemy.engine import reflection +from sqlalchemy.sql import compiler +from sqlalchemy.sql import text +from sqlalchemy.types import BIGINT +from sqlalchemy.types import BINARY +from sqlalchemy.types import CHAR +from sqlalchemy.types import DATE +from sqlalchemy.types import DATETIME +from sqlalchemy.types import DECIMAL +from sqlalchemy.types import FLOAT +from sqlalchemy.types import INTEGER +from sqlalchemy.types import NCHAR +from sqlalchemy.types import NUMERIC +from sqlalchemy.types import NVARCHAR +from sqlalchemy.types import REAL +from sqlalchemy.types import SMALLINT +from sqlalchemy.types import TEXT +from sqlalchemy.types import TIME +from sqlalchemy.types import TIMESTAMP +from sqlalchemy.types import Unicode +from sqlalchemy.types import VARBINARY +from sqlalchemy.types import VARCHAR RESERVED_WORDS = set( [ diff --git a/lib/sqlalchemy/dialects/sybase/mxodbc.py b/lib/sqlalchemy/dialects/sybase/mxodbc.py index eeceb359b..482db9745 100644 --- a/lib/sqlalchemy/dialects/sybase/mxodbc.py +++ b/lib/sqlalchemy/dialects/sybase/mxodbc.py @@ -18,9 +18,9 @@ """ +from sqlalchemy.connectors.mxodbc import MxODBCConnector from sqlalchemy.dialects.sybase.base import SybaseDialect from sqlalchemy.dialects.sybase.base import SybaseExecutionContext -from sqlalchemy.connectors.mxodbc import MxODBCConnector class SybaseExecutionContext_mxodbc(SybaseExecutionContext): diff --git a/lib/sqlalchemy/dialects/sybase/pyodbc.py b/lib/sqlalchemy/dialects/sybase/pyodbc.py index a4759428c..7f9d406b2 100644 --- a/lib/sqlalchemy/dialects/sybase/pyodbc.py +++ b/lib/sqlalchemy/dialects/sybase/pyodbc.py @@ -34,14 +34,14 @@ Currently *not* supported are:: """ -from sqlalchemy.dialects.sybase.base import ( - SybaseDialect, - SybaseExecutionContext, -) -from sqlalchemy.connectors.pyodbc import PyODBCConnector -from sqlalchemy import types as sqltypes, processors import decimal +from sqlalchemy import processors +from sqlalchemy import types as sqltypes +from sqlalchemy.connectors.pyodbc import PyODBCConnector +from sqlalchemy.dialects.sybase.base import SybaseDialect +from sqlalchemy.dialects.sybase.base import SybaseExecutionContext + class _SybNumeric_pyodbc(sqltypes.Numeric): """Turns Decimals with adjusted() < -6 into floats. diff --git a/lib/sqlalchemy/dialects/sybase/pysybase.py b/lib/sqlalchemy/dialects/sybase/pysybase.py index 09d2cf380..fb7cb8365 100644 --- a/lib/sqlalchemy/dialects/sybase/pysybase.py +++ b/lib/sqlalchemy/dialects/sybase/pysybase.py @@ -21,12 +21,11 @@ kind at this time. """ -from sqlalchemy import types as sqltypes, processors -from sqlalchemy.dialects.sybase.base import ( - SybaseDialect, - SybaseExecutionContext, - SybaseSQLCompiler, -) +from sqlalchemy import processors +from sqlalchemy import types as sqltypes +from sqlalchemy.dialects.sybase.base import SybaseDialect +from sqlalchemy.dialects.sybase.base import SybaseExecutionContext +from sqlalchemy.dialects.sybase.base import SybaseSQLCompiler class _SybNumeric(sqltypes.Numeric): diff --git a/lib/sqlalchemy/engine/__init__.py b/lib/sqlalchemy/engine/__init__.py index 461e57839..2f2292997 100644 --- a/lib/sqlalchemy/engine/__init__.py +++ b/lib/sqlalchemy/engine/__init__.py @@ -51,43 +51,10 @@ url.py within a URL. """ -from .interfaces import ( - Connectable, - CreateEnginePlugin, - Dialect, - ExecutionContext, - ExceptionContext, +from . import strategies # backwards compat - Compiled, - TypeCompiler, -) - -from .base import ( - Connection, - Engine, - NestedTransaction, - RootTransaction, - Transaction, - TwoPhaseTransaction, -) - -from .result import ( - BaseRowProxy, - BufferedColumnResultProxy, - BufferedColumnRow, - BufferedRowResultProxy, - FullyBufferedResultProxy, - ResultProxy, - RowProxy, -) - -from .util import connection_memoize - - -from . import util, strategies # backwards compat -from ..sql import ddl default_strategy = "plain" diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 75d03b744..01b26ea63 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -6,18 +6,22 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php from __future__ import with_statement -"""Defines :class:`.Connection` and :class:`.Engine`. +import contextlib +import sys -""" +from .interfaces import Connectable +from .interfaces import ExceptionContext +from .util import _distill_params +from .. import exc +from .. import interfaces +from .. import log +from .. import util +from ..sql import schema +from ..sql import util as sql_util +"""Defines :class:`.Connection` and :class:`.Engine`. -import sys -from .. import exc, util, log, interfaces -from ..sql import util as sql_util -from ..sql import schema -from .interfaces import Connectable, ExceptionContext -from .util import _distill_params -import contextlib +""" class Connection(Connectable): diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 1a92e5ea1..df46e3415 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -13,15 +13,23 @@ as the base class for their own corresponding classes. """ -import re -import random -from . import reflection, interfaces, result -from ..sql import compiler, expression, schema -from .. import types as sqltypes -from .. import exc, util, pool, processors import codecs +import random +import re import weakref + +from . import interfaces +from . import reflection +from . import result from .. import event +from .. import exc +from .. import pool +from .. import processors +from .. import types as sqltypes +from .. import util +from ..sql import compiler +from ..sql import expression +from ..sql import schema AUTOCOMMIT_REGEXP = re.compile( r"\s*(?:UPDATE|INSERT|CREATE|DELETE|DROP|ALTER)", re.I | re.UNICODE diff --git a/lib/sqlalchemy/engine/interfaces.py b/lib/sqlalchemy/engine/interfaces.py index e10e6e884..4888391e4 100644 --- a/lib/sqlalchemy/engine/interfaces.py +++ b/lib/sqlalchemy/engine/interfaces.py @@ -10,7 +10,6 @@ from .. import util # backwards compat -from ..sql.compiler import Compiled, TypeCompiler class Dialect(object): diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py index 20bc3f3eb..52a84d525 100644 --- a/lib/sqlalchemy/engine/reflection.py +++ b/lib/sqlalchemy/engine/reflection.py @@ -25,14 +25,15 @@ methods such as get_table_names, get_columns, etc. 'name' attribute.. """ -from .. import exc, sql -from ..sql import schema as sa_schema +from .base import Connectable +from .. import exc +from .. import inspection +from .. import sql from .. import util +from ..sql import schema as sa_schema from ..sql.type_api import TypeEngine from ..util import deprecated from ..util import topological -from .. import inspection -from .base import Connectable @util.decorator diff --git a/lib/sqlalchemy/engine/result.py b/lib/sqlalchemy/engine/result.py index 5ad0d2909..1c2bec324 100644 --- a/lib/sqlalchemy/engine/result.py +++ b/lib/sqlalchemy/engine/result.py @@ -9,11 +9,15 @@ and :class:`.RowProxy.""" -from .. import exc, util -from ..sql import expression, sqltypes, util as sql_util import collections import operator +from .. import exc +from .. import util +from ..sql import expression +from ..sql import sqltypes +from ..sql import util as sql_util + # This reconstructor is necessary so that pickles with the C extension or # without use the same Binary format. try: diff --git a/lib/sqlalchemy/engine/strategies.py b/lib/sqlalchemy/engine/strategies.py index 19918e0c9..79b33769e 100644 --- a/lib/sqlalchemy/engine/strategies.py +++ b/lib/sqlalchemy/engine/strategies.py @@ -17,9 +17,12 @@ New strategies can be added via new ``EngineStrategy`` classes. from operator import attrgetter -from sqlalchemy.engine import base, threadlocal, url -from sqlalchemy import util, event +from sqlalchemy import event from sqlalchemy import pool as poollib +from sqlalchemy import util +from sqlalchemy.engine import base +from sqlalchemy.engine import threadlocal +from sqlalchemy.engine import url from sqlalchemy.sql import schema strategies = {} diff --git a/lib/sqlalchemy/engine/threadlocal.py b/lib/sqlalchemy/engine/threadlocal.py index 5b2bdabc0..e4c392c93 100644 --- a/lib/sqlalchemy/engine/threadlocal.py +++ b/lib/sqlalchemy/engine/threadlocal.py @@ -13,10 +13,11 @@ This module is semi-private and is invoked automatically when the threadlocal engine strategy is used. """ -from .. import util -from . import base import weakref +from . import base +from .. import util + class TLConnection(base.Connection): def __init__(self, *arg, **kw): diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py index e92e57b8e..7af38bb11 100644 --- a/lib/sqlalchemy/engine/url.py +++ b/lib/sqlalchemy/engine/url.py @@ -15,9 +15,12 @@ be used directly and is also accepted directly by ``create_engine()``. """ import re -from .. import exc, util + from . import Dialect -from ..dialects import registry, plugins +from .. import exc +from .. import util +from ..dialects import plugins +from ..dialects import registry class URL(object): diff --git a/lib/sqlalchemy/event/__init__.py b/lib/sqlalchemy/event/__init__.py index a7e27e9b6..16f544617 100644 --- a/lib/sqlalchemy/event/__init__.py +++ b/lib/sqlalchemy/event/__init__.py @@ -5,7 +5,3 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .api import CANCEL, NO_RETVAL, listen, listens_for, remove, contains -from .base import Events, dispatcher -from .attr import RefCollection -from .legacy import _legacy_signature diff --git a/lib/sqlalchemy/event/api.py b/lib/sqlalchemy/event/api.py index f9e04503c..992647d41 100644 --- a/lib/sqlalchemy/event/api.py +++ b/lib/sqlalchemy/event/api.py @@ -10,9 +10,10 @@ """ from __future__ import absolute_import -from .. import util, exc from .base import _registrars from .registry import _EventKey +from .. import exc +from .. import util CANCEL = util.symbol("CANCEL") NO_RETVAL = util.symbol("NO_RETVAL") diff --git a/lib/sqlalchemy/event/attr.py b/lib/sqlalchemy/event/attr.py index 31a9f28ca..451e0621a 100644 --- a/lib/sqlalchemy/event/attr.py +++ b/lib/sqlalchemy/event/attr.py @@ -29,15 +29,18 @@ as well as support for subclass propagation (e.g. events assigned to """ -from __future__ import absolute_import, with_statement +from __future__ import absolute_import +from __future__ import with_statement + +import collections +from itertools import chain +import weakref + +from . import legacy +from . import registry from .. import exc from .. import util from ..util import threading -from . import registry -from . import legacy -from itertools import chain -import weakref -import collections class RefCollection(util.MemoizedSlots): diff --git a/lib/sqlalchemy/event/base.py b/lib/sqlalchemy/event/base.py index 7862f8bbf..3813e8f65 100644 --- a/lib/sqlalchemy/event/base.py +++ b/lib/sqlalchemy/event/base.py @@ -19,8 +19,10 @@ from __future__ import absolute_import import weakref +from .attr import _ClsLevelDispatch +from .attr import _EmptyListener +from .attr import _JoinedListener from .. import util -from .attr import _JoinedListener, _EmptyListener, _ClsLevelDispatch _registrars = util.defaultdict(list) diff --git a/lib/sqlalchemy/event/registry.py b/lib/sqlalchemy/event/registry.py index 20860ce39..bd1fe8d3f 100644 --- a/lib/sqlalchemy/event/registry.py +++ b/lib/sqlalchemy/event/registry.py @@ -17,10 +17,12 @@ an equivalent :class:`._EventKey`. from __future__ import absolute_import -import weakref import collections import types -from .. import exc, util +import weakref + +from .. import exc +from .. import util _key_to_collection = collections.defaultdict(dict) diff --git a/lib/sqlalchemy/events.py b/lib/sqlalchemy/events.py index fa62b7705..ba52b5325 100644 --- a/lib/sqlalchemy/events.py +++ b/lib/sqlalchemy/events.py @@ -7,9 +7,12 @@ """Core event interfaces.""" -from . import event, exc +from . import event +from . import exc +from .engine import Connectable +from .engine import Dialect +from .engine import Engine from .pool import Pool -from .engine import Connectable, Engine, Dialect from .sql.base import SchemaEventTarget diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index 002d1ce76..901008fa8 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -15,10 +15,14 @@ See the example ``examples/association/proxied_association.py``. """ import operator import weakref -from .. import exc, orm, util -from ..orm import collections, interfaces -from ..sql import or_ + +from .. import exc from .. import inspect +from .. import orm +from .. import util +from ..orm import collections +from ..orm import interfaces +from ..sql import or_ def association_proxy(target_collection, attr, **kw): diff --git a/lib/sqlalchemy/ext/automap.py b/lib/sqlalchemy/ext/automap.py index 747373a2a..545f9dfea 100644 --- a/lib/sqlalchemy/ext/automap.py +++ b/lib/sqlalchemy/ext/automap.py @@ -515,11 +515,13 @@ we've declared are in an un-mapped state. """ from .declarative import declarative_base as _declarative_base from .declarative.base import _DeferredMapperConfig -from ..sql import and_ -from ..schema import ForeignKeyConstraint -from ..orm import relationship, backref, interfaces -from ..orm.mapper import _CONFIGURE_MUTEX from .. import util +from ..orm import backref +from ..orm import interfaces +from ..orm import relationship +from ..orm.mapper import _CONFIGURE_MUTEX +from ..schema import ForeignKeyConstraint +from ..sql import and_ def classname_for_table(base, tablename, table): diff --git a/lib/sqlalchemy/ext/baked.py b/lib/sqlalchemy/ext/baked.py index cc77ec24d..0919c80fe 100644 --- a/lib/sqlalchemy/ext/baked.py +++ b/lib/sqlalchemy/ext/baked.py @@ -13,16 +13,18 @@ compiled result to be fully cached. """ -from ..orm.query import Query -from ..orm import strategy_options -from ..sql import util as sql_util, func, literal_column -from ..orm import exc as orm_exc -from .. import exc as sa_exc -from .. import util - import copy import logging +from .. import exc as sa_exc +from .. import util +from ..orm import exc as orm_exc +from ..orm import strategy_options +from ..orm.query import Query +from ..sql import func +from ..sql import literal_column +from ..sql import util as sql_util + log = logging.getLogger(__name__) 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 7cd1e3ae6..2f41db126 100644 --- a/lib/sqlalchemy/ext/declarative/api.py +++ b/lib/sqlalchemy/ext/declarative/api.py @@ -7,29 +7,28 @@ """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, -) +from .base import _add_attribute +from .base import _as_declarative +from .base import _declarative_constructor +from .base import _DeferredMapperConfig 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): diff --git a/lib/sqlalchemy/ext/declarative/base.py b/lib/sqlalchemy/ext/declarative/base.py index 7639cd9b4..9fee49c0d 100644 --- a/lib/sqlalchemy/ext/declarative/base.py +++ b/lib/sqlalchemy/ext/declarative/base.py @@ -6,20 +6,27 @@ # 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 diff --git a/lib/sqlalchemy/ext/declarative/clsregistry.py b/lib/sqlalchemy/ext/declarative/clsregistry.py index c52ae4a2f..b7090a7ee 100644 --- a/lib/sqlalchemy/ext/declarative/clsregistry.py +++ b/lib/sqlalchemy/ext/declarative/clsregistry.py @@ -10,18 +10,18 @@ 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 diff --git a/lib/sqlalchemy/ext/horizontal_shard.py b/lib/sqlalchemy/ext/horizontal_shard.py index f5cf5a86a..00cc7dd6c 100644 --- a/lib/sqlalchemy/ext/horizontal_shard.py +++ b/lib/sqlalchemy/ext/horizontal_shard.py @@ -17,8 +17,8 @@ the source distribution. from .. import inspect from .. import util -from ..orm.session import Session from ..orm.query import Query +from ..orm.session import Session __all__ = ["ShardedSession", "ShardedQuery"] diff --git a/lib/sqlalchemy/ext/hybrid.py b/lib/sqlalchemy/ext/hybrid.py index d51a083da..8fca0b29c 100644 --- a/lib/sqlalchemy/ext/hybrid.py +++ b/lib/sqlalchemy/ext/hybrid.py @@ -776,7 +776,8 @@ there's probably a whole lot of amazing things it can be used for. """ from .. import util -from ..orm import attributes, interfaces +from ..orm import attributes +from ..orm import interfaces HYBRID_METHOD = util.symbol("HYBRID_METHOD") """Symbol indicating an :class:`InspectionAttr` that's diff --git a/lib/sqlalchemy/ext/indexable.py b/lib/sqlalchemy/ext/indexable.py index 368e5b00a..5d3332abc 100644 --- a/lib/sqlalchemy/ext/indexable.py +++ b/lib/sqlalchemy/ext/indexable.py @@ -228,8 +228,8 @@ The above query will render:: from __future__ import absolute_import from sqlalchemy import inspect -from ..orm.attributes import flag_modified from ..ext.hybrid import hybrid_property +from ..orm.attributes import flag_modified __all__ = ["index_property"] diff --git a/lib/sqlalchemy/ext/instrumentation.py b/lib/sqlalchemy/ext/instrumentation.py index b2b8dd7c5..3cff63614 100644 --- a/lib/sqlalchemy/ext/instrumentation.py +++ b/lib/sqlalchemy/ext/instrumentation.py @@ -26,18 +26,19 @@ see the example :ref:`examples_instrumentation`. being used to determine class instrumentation resolution. """ -from ..orm import instrumentation as orm_instrumentation -from ..orm.instrumentation import ( - ClassManager, - InstrumentationFactory, - _default_state_getter, - _default_dict_getter, - _default_manager_getter, -) -from ..orm import attributes, collections, base as orm_base +import weakref + from .. import util +from ..orm import attributes +from ..orm import base as orm_base +from ..orm import collections from ..orm import exc as orm_exc -import weakref +from ..orm import instrumentation as orm_instrumentation +from ..orm.instrumentation import _default_dict_getter +from ..orm.instrumentation import _default_manager_getter +from ..orm.instrumentation import _default_state_getter +from ..orm.instrumentation import ClassManager +from ..orm.instrumentation import InstrumentationFactory INSTRUMENTATION_MANAGER = "__sa_instrumentation_manager__" """Attribute, elects custom instrumentation when present on a mapped class. diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py index 0f6ccdc33..2a57d563b 100644 --- a/lib/sqlalchemy/ext/mutable.py +++ b/lib/sqlalchemy/ext/mutable.py @@ -370,12 +370,16 @@ pickling process of the parent's object-relational state so that the :meth:`MutableBase._parents` collection is restored to all ``Point`` objects. """ +import weakref + +from .. import event +from .. import types +from ..orm import Mapper +from ..orm import mapper +from ..orm import object_mapper from ..orm.attributes import flag_modified -from .. import event, types -from ..orm import mapper, object_mapper, Mapper -from ..util import memoized_property from ..sql.base import SchemaEventTarget -import weakref +from ..util import memoized_property class MutableBase(object): diff --git a/lib/sqlalchemy/ext/orderinglist.py b/lib/sqlalchemy/ext/orderinglist.py index 2a8522120..9e2d93f97 100644 --- a/lib/sqlalchemy/ext/orderinglist.py +++ b/lib/sqlalchemy/ext/orderinglist.py @@ -119,8 +119,9 @@ start numbering at 1 or some other integer, provide ``count_from=1``. """ -from ..orm.collections import collection, collection_adapter from .. import util +from ..orm.collections import collection +from ..orm.collections import collection_adapter __all__ = ["ordering_list"] diff --git a/lib/sqlalchemy/ext/serializer.py b/lib/sqlalchemy/ext/serializer.py index 3adcec34f..632311b7a 100644 --- a/lib/sqlalchemy/ext/serializer.py +++ b/lib/sqlalchemy/ext/serializer.py @@ -53,15 +53,21 @@ needed for: """ +import re + +from .. import Column +from .. import Table +from ..engine import Engine from ..orm import class_mapper -from ..orm.session import Session -from ..orm.mapper import Mapper -from ..orm.interfaces import MapperProperty from ..orm.attributes import QueryableAttribute -from .. import Table, Column -from ..engine import Engine -from ..util import pickle, byte_buffer, b64encode, b64decode, text_type -import re +from ..orm.interfaces import MapperProperty +from ..orm.mapper import Mapper +from ..orm.session import Session +from ..util import b64decode +from ..util import b64encode +from ..util import byte_buffer +from ..util import pickle +from ..util import text_type __all__ = ["Serializer", "Deserializer", "dumps", "loads"] diff --git a/lib/sqlalchemy/inspection.py b/lib/sqlalchemy/inspection.py index 7c2ff97c5..30b9a7fba 100644 --- a/lib/sqlalchemy/inspection.py +++ b/lib/sqlalchemy/inspection.py @@ -31,7 +31,8 @@ in a forwards-compatible way. """ -from . import util, exc +from . import exc +from . import util _registrars = util.defaultdict(list) diff --git a/lib/sqlalchemy/interfaces.py b/lib/sqlalchemy/interfaces.py index f352f7f26..bde854d24 100644 --- a/lib/sqlalchemy/interfaces.py +++ b/lib/sqlalchemy/interfaces.py @@ -13,7 +13,8 @@ event system. """ -from . import event, util +from . import event +from . import util class PoolListener(object): diff --git a/lib/sqlalchemy/orm/__init__.py b/lib/sqlalchemy/orm/__init__.py index 09184a645..a85d9a2c8 100644 --- a/lib/sqlalchemy/orm/__init__.py +++ b/lib/sqlalchemy/orm/__init__.py @@ -14,51 +14,47 @@ documentation for an overview of how this module is used. """ from . import exc # noqa -from .mapper import ( # noqa - Mapper, - _mapper_registry, - class_mapper, - configure_mappers, - reconstructor, - validates, -) -from .interfaces import EXT_CONTINUE, EXT_STOP, PropComparator # noqa -from .deprecated_interfaces import ( # noqa - MapperExtension, - SessionExtension, - AttributeExtension, -) -from .util import ( # noqa - aliased, - join, - object_mapper, - outerjoin, - polymorphic_union, - was_deleted, - with_parent, - with_polymorphic, -) +from . import mapper as mapperlib # noqa +from . import strategy_options +from .deprecated_interfaces import AttributeExtension # noqa +from .deprecated_interfaces import MapperExtension # noqa +from .deprecated_interfaces import SessionExtension # noqa +from .descriptor_props import ComparableProperty # noqa +from .descriptor_props import CompositeProperty # noqa +from .descriptor_props import SynonymProperty # noqa +from .interfaces import EXT_CONTINUE # noqa +from .interfaces import EXT_STOP # noqa +from .interfaces import PropComparator # noqa +from .mapper import _mapper_registry # noqa +from .mapper import class_mapper # noqa +from .mapper import configure_mappers # noqa +from .mapper import Mapper # noqa +from .mapper import reconstructor # noqa +from .mapper import validates # noqa from .properties import ColumnProperty # noqa +from .query import AliasOption # noqa +from .query import Bundle # noqa +from .query import Query # noqa +from .relationships import foreign # noqa from .relationships import RelationshipProperty # noqa -from .descriptor_props import ( # noqa - ComparableProperty, - CompositeProperty, - SynonymProperty, -) -from .relationships import foreign, remote # noqa -from .session import ( # noqa - Session, - object_session, - sessionmaker, - make_transient, - make_transient_to_detached, -) +from .relationships import remote # noqa from .scoping import scoped_session # noqa -from . import mapper as mapperlib # noqa -from .query import AliasOption, Query, Bundle # noqa -from ..util.langhelpers import public_factory # noqa -from .. import util as _sa_util # noqa +from .session import make_transient # noqa +from .session import make_transient_to_detached # noqa +from .session import object_session # noqa +from .session import Session # noqa +from .session import sessionmaker # noqa +from .util import aliased # noqa +from .util import join # noqa +from .util import object_mapper # noqa +from .util import outerjoin # noqa +from .util import polymorphic_union # noqa +from .util import was_deleted # noqa +from .util import with_parent # noqa +from .util import with_polymorphic # noqa from .. import sql as _sql # noqa +from .. import util as _sa_util # noqa +from ..util.langhelpers import public_factory # noqa def create_session(bind=None, **kwargs): @@ -238,9 +234,6 @@ def clear_mappers(): finally: mapperlib._CONFIGURE_MUTEX.release() - -from . import strategy_options - joinedload = strategy_options.joinedload._unbound_fn joinedload_all = strategy_options.joinedload._unbound_all_fn contains_eager = strategy_options.contains_eager._unbound_fn @@ -261,8 +254,6 @@ raiseload = strategy_options.raiseload._unbound_fn defaultload = strategy_options.defaultload._unbound_fn selectin_polymorphic = strategy_options.selectin_polymorphic._unbound_fn -from .strategy_options import Load - def eagerload(*args, **kwargs): """A synonym for :func:`joinedload()`.""" diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py index 660080dc4..d2194396d 100644 --- a/lib/sqlalchemy/orm/attributes.py +++ b/lib/sqlalchemy/orm/attributes.py @@ -15,33 +15,32 @@ defines a large part of the ORM's interactivity. """ import operator -from .. import util, event, inspection -from . import interfaces, collections, exc as orm_exc - -from .base import instance_state, instance_dict, manager_of_class - -from .base import ( - PASSIVE_NO_RESULT, - ATTR_WAS_SET, - ATTR_EMPTY, - NO_VALUE, - NEVER_SET, - NO_CHANGE, - CALLABLES_OK, - SQL_OK, - RELATED_OBJECT_OK, - INIT_OK, - NON_PERSISTENT_OK, - LOAD_AGAINST_COMMITTED, - PASSIVE_OFF, - PASSIVE_RETURN_NEVER_SET, - PASSIVE_NO_INITIALIZE, - PASSIVE_NO_FETCH, - PASSIVE_NO_FETCH_RELATED, - PASSIVE_ONLY_PERSISTENT, - NO_AUTOFLUSH, -) -from .base import state_str, instance_str + +from . import collections +from . import exc as orm_exc +from . import interfaces +from .base import ATTR_EMPTY +from .base import ATTR_WAS_SET +from .base import CALLABLES_OK +from .base import INIT_OK +from .base import instance_dict +from .base import instance_state +from .base import instance_str +from .base import LOAD_AGAINST_COMMITTED +from .base import manager_of_class +from .base import NEVER_SET +from .base import NO_AUTOFLUSH +from .base import NO_VALUE +from .base import PASSIVE_NO_FETCH +from .base import PASSIVE_NO_INITIALIZE +from .base import PASSIVE_NO_RESULT +from .base import PASSIVE_OFF +from .base import PASSIVE_ONLY_PERSISTENT +from .base import PASSIVE_RETURN_NEVER_SET +from .base import state_str +from .. import event +from .. import inspection +from .. import util @inspection._self_inspects diff --git a/lib/sqlalchemy/orm/base.py b/lib/sqlalchemy/orm/base.py index dc95cb893..c75eca960 100644 --- a/lib/sqlalchemy/orm/base.py +++ b/lib/sqlalchemy/orm/base.py @@ -9,11 +9,14 @@ """ -from .. import util, inspection, exc as sa_exc -from ..sql import expression -from . import exc import operator +from . import exc +from .. import exc as sa_exc +from .. import inspection +from .. import util +from ..sql import expression + PASSIVE_NO_RESULT = util.symbol( "PASSIVE_NO_RESULT", """Symbol returned by a loader callable or other attribute/history diff --git a/lib/sqlalchemy/orm/collections.py b/lib/sqlalchemy/orm/collections.py index 679defb8e..129c74c30 100644 --- a/lib/sqlalchemy/orm/collections.py +++ b/lib/sqlalchemy/orm/collections.py @@ -103,15 +103,14 @@ through the adapter, allowing for some very sophisticated behavior. """ -import inspect import operator import weakref -from ..sql import expression -from .. import util, exc as sa_exc -from . import base - from sqlalchemy.util.compat import inspect_getargspec +from . import base +from .. import exc as sa_exc +from .. import util +from ..sql import expression __all__ = [ "collection", diff --git a/lib/sqlalchemy/orm/dependency.py b/lib/sqlalchemy/orm/dependency.py index 49b7032fc..9f39f4fa2 100644 --- a/lib/sqlalchemy/orm/dependency.py +++ b/lib/sqlalchemy/orm/dependency.py @@ -9,9 +9,17 @@ """ -from .. import sql, util, exc as sa_exc -from . import attributes, exc, sync, unitofwork, util as mapperutil -from .interfaces import ONETOMANY, MANYTOONE, MANYTOMANY +from . import attributes +from . import exc +from . import sync +from . import unitofwork +from . import util as mapperutil +from .interfaces import MANYTOMANY +from .interfaces import MANYTOONE +from .interfaces import ONETOMANY +from .. import exc as sa_exc +from .. import sql +from .. import util class DependencyProcessor(object): diff --git a/lib/sqlalchemy/orm/deprecated_interfaces.py b/lib/sqlalchemy/orm/deprecated_interfaces.py index 6b51404d0..0b99ce85d 100644 --- a/lib/sqlalchemy/orm/deprecated_interfaces.py +++ b/lib/sqlalchemy/orm/deprecated_interfaces.py @@ -5,8 +5,9 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .. import event, util from .interfaces import EXT_CONTINUE +from .. import event +from .. import util @util.langhelpers.dependency_for("sqlalchemy.orm.interfaces") diff --git a/lib/sqlalchemy/orm/descriptor_props.py b/lib/sqlalchemy/orm/descriptor_props.py index 4e8e33b34..90e0b728c 100644 --- a/lib/sqlalchemy/orm/descriptor_props.py +++ b/lib/sqlalchemy/orm/descriptor_props.py @@ -11,13 +11,18 @@ as actively in the load/persist ORM loop. """ -from .interfaces import MapperProperty, PropComparator -from .util import _none_set from . import attributes -from .. import util, sql, exc as sa_exc, event, schema -from ..sql import expression from . import properties from . import query +from .interfaces import MapperProperty +from .interfaces import PropComparator +from .util import _none_set +from .. import event +from .. import exc as sa_exc +from .. import schema +from .. import sql +from .. import util +from ..sql import expression class DescriptorProperty(MapperProperty): diff --git a/lib/sqlalchemy/orm/dynamic.py b/lib/sqlalchemy/orm/dynamic.py index e5c6b80b6..9665e2485 100644 --- a/lib/sqlalchemy/orm/dynamic.py +++ b/lib/sqlalchemy/orm/dynamic.py @@ -12,18 +12,17 @@ basic add/delete mutation. """ -from .. import log, util, exc -from ..sql import operators -from . import ( - attributes, - object_session, - util as orm_util, - strategies, - object_mapper, - exc as orm_exc, - properties, -) +from . import attributes +from . import exc as orm_exc +from . import object_mapper +from . import object_session +from . import properties +from . import strategies +from . import util as orm_util from .query import Query +from .. import exc +from .. import log +from .. import util @log.class_logger diff --git a/lib/sqlalchemy/orm/evaluator.py b/lib/sqlalchemy/orm/evaluator.py index ac031d84f..2de590748 100644 --- a/lib/sqlalchemy/orm/evaluator.py +++ b/lib/sqlalchemy/orm/evaluator.py @@ -6,9 +6,10 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php import operator -from ..sql import operators + from .. import inspect from .. import util +from ..sql import operators class UnevaluatableError(Exception): diff --git a/lib/sqlalchemy/orm/events.py b/lib/sqlalchemy/orm/events.py index dafeb420e..cec53a46f 100644 --- a/lib/sqlalchemy/orm/events.py +++ b/lib/sqlalchemy/orm/events.py @@ -8,17 +8,21 @@ """ORM event interfaces. """ -from .. import event, exc, util -from .base import _mapper_or_none -import inspect import weakref + +from sqlalchemy.util.compat import inspect_getargspec +from . import instrumentation from . import interfaces -from . import mapperlib, instrumentation -from .session import Session, sessionmaker -from .scoping import scoped_session +from . import mapperlib from .attributes import QueryableAttribute +from .base import _mapper_or_none from .query import Query -from sqlalchemy.util.compat import inspect_getargspec +from .scoping import scoped_session +from .session import Session +from .session import sessionmaker +from .. import event +from .. import exc +from .. import util class InstrumentationEvents(event.Events): diff --git a/lib/sqlalchemy/orm/exc.py b/lib/sqlalchemy/orm/exc.py index f0aa02e99..b84b9cf96 100644 --- a/lib/sqlalchemy/orm/exc.py +++ b/lib/sqlalchemy/orm/exc.py @@ -6,7 +6,8 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php """SQLAlchemy ORM exceptions.""" -from .. import exc as sa_exc, util +from .. import exc as sa_exc +from .. import util NO_STATE = (AttributeError, KeyError) """Exception types that may be raised by instrumentation implementations.""" diff --git a/lib/sqlalchemy/orm/identity.py b/lib/sqlalchemy/orm/identity.py index 2487cdb23..e48d540ba 100644 --- a/lib/sqlalchemy/orm/identity.py +++ b/lib/sqlalchemy/orm/identity.py @@ -6,10 +6,11 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php import weakref + from . import attributes -from .. import util -from .. import exc as sa_exc from . import util as orm_util +from .. import exc as sa_exc +from .. import util class IdentityMap(object): diff --git a/lib/sqlalchemy/orm/instrumentation.py b/lib/sqlalchemy/orm/instrumentation.py index 13c2d72bd..2affb237a 100644 --- a/lib/sqlalchemy/orm/instrumentation.py +++ b/lib/sqlalchemy/orm/instrumentation.py @@ -30,9 +30,12 @@ alternate instrumentation forms. """ -from . import exc, collections, interfaces, state -from .. import util from . import base +from . import collections +from . import exc +from . import interfaces +from . import state +from .. import util _memoized_key_collection = util.group_expirable_memoized_property() diff --git a/lib/sqlalchemy/orm/interfaces.py b/lib/sqlalchemy/orm/interfaces.py index 96369bcd1..e846e05c0 100644 --- a/lib/sqlalchemy/orm/interfaces.py +++ b/lib/sqlalchemy/orm/interfaces.py @@ -20,20 +20,20 @@ are exposed when inspecting mappings. from __future__ import absolute_import -from .. import util -from ..sql import operators -from .base import ( - ONETOMANY, - MANYTOONE, - MANYTOMANY, - EXT_CONTINUE, - EXT_STOP, - NOT_EXTENSION, -) -from .base import InspectionAttr, InspectionAttrInfo, _MappedAttribute import collections -from .. import inspect + from . import path_registry +from .base import _MappedAttribute +from .base import EXT_CONTINUE +from .base import EXT_STOP +from .base import InspectionAttr +from .base import MANYTOMANY +from .base import MANYTOONE +from .base import NOT_EXTENSION +from .base import ONETOMANY +from .. import inspect +from .. import util +from ..sql import operators # imported later MapperExtension = SessionExtension = AttributeExtension = None diff --git a/lib/sqlalchemy/orm/loading.py b/lib/sqlalchemy/orm/loading.py index 96eddcb32..1d3561fe1 100644 --- a/lib/sqlalchemy/orm/loading.py +++ b/lib/sqlalchemy/orm/loading.py @@ -14,17 +14,19 @@ as well as some of the attribute loading strategies. """ from __future__ import absolute_import -from .. import util -from . import attributes, exc as orm_exc -from ..sql import util as sql_util -from . import strategy_options -from . import path_registry -from .. import sql +import collections -from .util import _none_set, state_str -from .base import _SET_DEFERRED_EXPIRED, _DEFER_FOR_STATE +from . import attributes +from . import exc as orm_exc +from . import path_registry +from . import strategy_options +from .base import _DEFER_FOR_STATE +from .base import _SET_DEFERRED_EXPIRED +from .util import _none_set +from .util import state_str from .. import exc as sa_exc -import collections +from .. import util +from ..sql import util as sql_util _new_runid = util.counter() diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py index de417e55a..692b48f80 100644 --- a/lib/sqlalchemy/orm/mapper.py +++ b/lib/sqlalchemy/orm/mapper.py @@ -16,28 +16,38 @@ available in :class:`~sqlalchemy.orm.`. """ from __future__ import absolute_import +from collections import deque +from itertools import chain +import sys import types import weakref -from itertools import chain -from collections import deque -from .. import sql, util, log, exc as sa_exc, event, schema, inspection -from ..sql import expression, visitors, operators, util as sql_util -from . import instrumentation, attributes, exc as orm_exc, loading +from . import attributes +from . import exc as orm_exc +from . import instrumentation +from . import loading from . import properties from . import util as orm_util -from .interfaces import MapperProperty, InspectionAttr, _MappedAttribute - -from .base import ( - _class_to_mapper, - _state_mapper, - class_mapper, - state_str, - _INSTRUMENTOR, -) +from .base import _class_to_mapper +from .base import _INSTRUMENTOR +from .base import _state_mapper +from .base import class_mapper +from .base import state_str +from .interfaces import _MappedAttribute +from .interfaces import InspectionAttr +from .interfaces import MapperProperty from .path_registry import PathRegistry - -import sys +from .. import event +from .. import exc as sa_exc +from .. import inspection +from .. import log +from .. import schema +from .. import sql +from .. import util +from ..sql import expression +from ..sql import operators +from ..sql import util as sql_util +from ..sql import visitors _mapper_registry = weakref.WeakKeyDictionary() diff --git a/lib/sqlalchemy/orm/path_registry.py b/lib/sqlalchemy/orm/path_registry.py index f33c209cc..70332cf15 100644 --- a/lib/sqlalchemy/orm/path_registry.py +++ b/lib/sqlalchemy/orm/path_registry.py @@ -8,13 +8,14 @@ """ -from .. import inspection -from .. import util -from .. import exc from itertools import chain -from .base import class_mapper import logging +from .base import class_mapper +from .. import exc +from .. import inspection +from .. import util + log = logging.getLogger(__name__) diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index fc30f0994..9f2c8a4d7 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -14,14 +14,22 @@ in unitofwork.py. """ +from itertools import chain +from itertools import groupby import operator -from itertools import groupby, chain -from .. import sql, util, exc as sa_exc -from . import attributes, sync, exc as orm_exc, evaluator -from .base import state_str, _entity_descriptor + +from . import attributes +from . import evaluator +from . import exc as orm_exc +from . import loading +from . import sync +from .base import _entity_descriptor +from .base import state_str +from .. import exc as sa_exc +from .. import sql +from .. import util from ..sql import expression from ..sql.base import _from_objects -from . import loading def _bulk_insert( diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 9322c8c30..da91b3a1e 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -13,12 +13,13 @@ mapped attributes. """ from __future__ import absolute_import -from .. import util, log -from ..sql import expression from . import attributes +from .interfaces import PropComparator +from .interfaces import StrategizedProperty from .util import _orm_full_deannotate - -from .interfaces import PropComparator, StrategizedProperty +from .. import log +from .. import util +from ..sql import expression __all__ = ["ColumnProperty"] diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index 4e9af84b4..d04c4809f 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -21,36 +21,38 @@ database to return iterable result sets. from itertools import chain -from . import ( - attributes, - interfaces, - persistence, - exc as orm_exc, - loading, -) -from .util import object_mapper -from .base import ( - _entity_descriptor, - _is_aliased_class, - _is_mapped_class, - _orm_columns, - _generative, - InspectionAttr, -) +from . import attributes +from . import exc as orm_exc +from . import interfaces +from . import loading +from . import persistence +from . import properties +from .base import _entity_descriptor +from .base import _generative +from .base import _is_aliased_class +from .base import _is_mapped_class +from .base import _orm_columns +from .base import InspectionAttr from .path_registry import PathRegistry -from .util import ( - AliasedClass, - ORMAdapter, - join as orm_join, - with_parent, - aliased, - _entity_corresponds_to, -) -from .. import sql, util, log, exc as sa_exc, inspect, inspection -from ..sql.expression import _interpret_as_from -from ..sql import util as sql_util, expression, visitors +from .util import _entity_corresponds_to +from .util import aliased +from .util import AliasedClass +from .util import join as orm_join +from .util import object_mapper +from .util import ORMAdapter +from .util import with_parent +from .. import exc as sa_exc +from .. import inspect +from .. import inspection +from .. import log +from .. import sql +from .. import util +from ..sql import expression +from ..sql import util as sql_util +from ..sql import visitors from ..sql.base import ColumnCollection -from . import properties +from ..sql.expression import _interpret_as_from +from ..sql.selectable import ForUpdateArg __all__ = ["Query", "QueryContext", "aliased"] @@ -3787,9 +3789,6 @@ class Query(object): ) -from ..sql.selectable import ForUpdateArg - - class LockmodeArg(ForUpdateArg): @classmethod def parse_legacy_query(self, mode): diff --git a/lib/sqlalchemy/orm/relationships.py b/lib/sqlalchemy/orm/relationships.py index ceaec60f2..eb3117d6e 100644 --- a/lib/sqlalchemy/orm/relationships.py +++ b/lib/sqlalchemy/orm/relationships.py @@ -14,32 +14,37 @@ and `secondaryjoin` aspects of :func:`.relationship`. """ from __future__ import absolute_import -from .. import sql, util, exc as sa_exc, schema, log +import collections import weakref -from .util import CascadeOptions, _orm_annotate, _orm_deannotate -from . import dependency + from . import attributes -from ..sql.util import ( - ClauseAdapter, - join_condition, - _shallow_annotate, - visit_binary_product, - _deep_deannotate, - selectables_overlap, - adapt_criterion_to_null, -) -from ..sql import operators, expression, visitors -from .interfaces import ( - MANYTOMANY, - MANYTOONE, - ONETOMANY, - StrategizedProperty, - PropComparator, -) -from ..inspection import inspect +from . import dependency from . import mapper as mapperlib -import collections +from .interfaces import MANYTOMANY +from .interfaces import MANYTOONE +from .interfaces import ONETOMANY +from .interfaces import PropComparator +from .interfaces import StrategizedProperty +from .util import _orm_annotate +from .util import _orm_deannotate +from .util import CascadeOptions +from .. import exc as sa_exc +from .. import log +from .. import schema +from .. import sql +from .. import util +from ..inspection import inspect +from ..sql import expression +from ..sql import operators +from ..sql import visitors +from ..sql.util import _deep_deannotate +from ..sql.util import _shallow_annotate +from ..sql.util import adapt_criterion_to_null +from ..sql.util import ClauseAdapter +from ..sql.util import join_condition +from ..sql.util import selectables_overlap +from ..sql.util import visit_binary_product def remote(expr): diff --git a/lib/sqlalchemy/orm/scoping.py b/lib/sqlalchemy/orm/scoping.py index 2eeaf5b6d..d3ad6c82d 100644 --- a/lib/sqlalchemy/orm/scoping.py +++ b/lib/sqlalchemy/orm/scoping.py @@ -5,10 +5,13 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .. import exc as sa_exc -from ..util import ScopedRegistry, ThreadLocalRegistry, warn -from . import class_mapper, exc as orm_exc +from . import class_mapper +from . import exc as orm_exc from .session import Session +from .. import exc as sa_exc +from ..util import ScopedRegistry +from ..util import ThreadLocalRegistry +from ..util import warn __all__ = ["scoped_session"] diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index 49eb9408e..28be46cc7 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -7,27 +7,33 @@ """Provides the Session class and related utilities.""" -import weakref -from .. import util, sql, engine, exc as sa_exc -from ..sql import util as sql_util, expression -from . import attributes, exc, query, loading, identity -from .deprecated_interfaces import SessionExtension -from ..inspection import inspect -from .base import ( - object_mapper, - class_mapper, - _class_to_mapper, - _state_mapper, - object_state, - _none_set, - state_str, - instance_str, -) import itertools +import sys +import weakref + +from . import attributes +from . import exc +from . import identity +from . import loading from . import persistence -from .unitofwork import UOWTransaction +from . import query from . import state as statelib -import sys +from .base import _class_to_mapper +from .base import _none_set +from .base import _state_mapper +from .base import instance_str +from .base import object_mapper +from .base import object_state +from .base import state_str +from .deprecated_interfaces import SessionExtension +from .unitofwork import UOWTransaction +from .. import engine +from .. import exc as sa_exc +from .. import sql +from .. import util +from ..inspection import inspect +from ..sql import expression +from ..sql import util as sql_util __all__ = ["Session", "SessionTransaction", "SessionExtension", "sessionmaker"] diff --git a/lib/sqlalchemy/orm/state.py b/lib/sqlalchemy/orm/state.py index 56029f226..814e13dac 100644 --- a/lib/sqlalchemy/orm/state.py +++ b/lib/sqlalchemy/orm/state.py @@ -13,22 +13,22 @@ defines a large part of the ORM's interactivity. """ import weakref -from .. import util -from .. import inspection -from .. import exc as sa_exc -from . import exc as orm_exc, interfaces -from .path_registry import PathRegistry -from .base import ( - PASSIVE_NO_RESULT, - SQL_OK, - NEVER_SET, - ATTR_WAS_SET, - NO_VALUE, - PASSIVE_NO_INITIALIZE, - INIT_OK, - PASSIVE_OFF, -) + from . import base +from . import exc as orm_exc +from . import interfaces +from .base import ATTR_WAS_SET +from .base import INIT_OK +from .base import NEVER_SET +from .base import NO_VALUE +from .base import PASSIVE_NO_INITIALIZE +from .base import PASSIVE_NO_RESULT +from .base import PASSIVE_OFF +from .base import SQL_OK +from .path_registry import PathRegistry +from .. import exc as sa_exc +from .. import inspection +from .. import util @inspection._self_inspects diff --git a/lib/sqlalchemy/orm/strategies.py b/lib/sqlalchemy/orm/strategies.py index 63fd126d2..9823f4d7e 100644 --- a/lib/sqlalchemy/orm/strategies.py +++ b/lib/sqlalchemy/orm/strategies.py @@ -8,26 +8,32 @@ """sqlalchemy.orm.interfaces.LoaderStrategy implementations, and related MapperOptions.""" -from .. import exc as sa_exc, inspect -from .. import util, log, event -from ..sql import util as sql_util, visitors -from .. import sql -from . import ( - attributes, - interfaces, - exc as orm_exc, - loading, - unitofwork, - util as orm_util, - query, -) -from .state import InstanceState -from .util import _none_set, aliased +import itertools + +from . import attributes +from . import exc as orm_exc +from . import interfaces +from . import loading from . import properties -from .interfaces import LoaderStrategy, StrategizedProperty -from .base import _SET_DEFERRED_EXPIRED, _DEFER_FOR_STATE +from . import query +from . import unitofwork +from . import util as orm_util +from .base import _DEFER_FOR_STATE +from .base import _SET_DEFERRED_EXPIRED +from .interfaces import LoaderStrategy +from .interfaces import StrategizedProperty from .session import _state_session -import itertools +from .state import InstanceState +from .util import _none_set +from .util import aliased +from .. import event +from .. import exc as sa_exc +from .. import inspect +from .. import log +from .. import sql +from .. import util +from ..sql import util as sql_util +from ..sql import visitors def _register_attribute( diff --git a/lib/sqlalchemy/orm/strategy_options.py b/lib/sqlalchemy/orm/strategy_options.py index fe99f08d4..bfdf16a1e 100644 --- a/lib/sqlalchemy/orm/strategy_options.py +++ b/lib/sqlalchemy/orm/strategy_options.py @@ -8,24 +8,25 @@ """ -from .interfaces import MapperOption, PropComparator, MapperProperty +from . import util as orm_util from .attributes import QueryableAttribute +from .base import _class_to_mapper +from .base import _is_aliased_class +from .base import _is_mapped_class +from .base import InspectionAttr +from .interfaces import MapperOption +from .interfaces import PropComparator +from .path_registry import _DEFAULT_TOKEN +from .path_registry import _WILDCARD_TOKEN +from .path_registry import PathRegistry +from .path_registry import TokenRegistry +from .util import _orm_full_deannotate +from .. import exc as sa_exc +from .. import inspect from .. import util -from ..sql.base import _generative, Generative -from .. import exc as sa_exc, inspect -from .base import ( - _is_aliased_class, - _class_to_mapper, - _is_mapped_class, - InspectionAttr, -) -from . import util as orm_util -from .path_registry import ( - PathRegistry, - TokenRegistry, - _WILDCARD_TOKEN, - _DEFAULT_TOKEN, -) +from ..sql import expression as sql_expr +from ..sql.base import _generative +from ..sql.base import Generative class Load(Generative, MapperOption): @@ -1445,10 +1446,6 @@ def undefer_group(name): return _UnboundLoad().undefer_group(name) -from ..sql import expression as sql_expr -from .util import _orm_full_deannotate - - @loader_option() def with_expression(loadopt, key, expression): r"""Apply an ad-hoc SQL expression to a "deferred expression" attribute. diff --git a/lib/sqlalchemy/orm/sync.py b/lib/sqlalchemy/orm/sync.py index 0cd488cbd..2134b6dbf 100644 --- a/lib/sqlalchemy/orm/sync.py +++ b/lib/sqlalchemy/orm/sync.py @@ -10,7 +10,9 @@ between instances based on join conditions. """ -from . import exc, util as orm_util, attributes +from . import attributes +from . import exc +from . import util as orm_util def populate( diff --git a/lib/sqlalchemy/orm/unitofwork.py b/lib/sqlalchemy/orm/unitofwork.py index 2b97505f0..5b2baad16 100644 --- a/lib/sqlalchemy/orm/unitofwork.py +++ b/lib/sqlalchemy/orm/unitofwork.py @@ -13,11 +13,13 @@ organizes them in order of dependency, and executes. """ -from .. import util, event -from ..util import topological -from . import attributes, persistence, util as orm_util +from . import attributes from . import exc as orm_exc -import itertools +from . import persistence +from . import util as orm_util +from .. import event +from .. import util +from ..util import topological def track_cascade_events(descriptor, prop): diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py index a1b0cd5da..e9e2cb13d 100644 --- a/lib/sqlalchemy/orm/util.py +++ b/lib/sqlalchemy/orm/util.py @@ -6,26 +6,23 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .. import sql, util, event, exc as sa_exc, inspection -from ..sql import expression, util as sql_util, operators -from .interfaces import PropComparator, MapperProperty -from . import attributes import re -from .base import ( - instance_str, - state_str, - state_class_str, - attribute_str, - state_attribute_str, - object_mapper, - object_state, - _none_set, - _never_set, -) -from .base import class_mapper, _class_to_mapper +from . import attributes +from .base import _class_to_mapper +from .base import class_mapper from .base import InspectionAttr +from .base import object_mapper +from .interfaces import MapperProperty +from .interfaces import PropComparator from .path_registry import PathRegistry +from .. import event +from .. import exc as sa_exc +from .. import inspection +from .. import sql +from .. import util +from ..sql import expression +from ..sql import util as sql_util all_cascades = frozenset( ( diff --git a/lib/sqlalchemy/pool.py b/lib/sqlalchemy/pool.py index c641b67e4..543d24fbf 100644 --- a/lib/sqlalchemy/pool.py +++ b/lib/sqlalchemy/pool.py @@ -17,15 +17,20 @@ regular DB-API connect() methods to be transparently managed by a SQLAlchemy connection pool. """ +from collections import deque import time import traceback import weakref -from . import exc, log, event, interfaces, util +from . import event +from . import exc +from . import interfaces +from . import log +from . import util +from .util import chop_traceback +from .util import memoized_property from .util import queue as sqla_queue -from .util import threading, memoized_property, chop_traceback - -from collections import deque +from .util import threading proxies = {} diff --git a/lib/sqlalchemy/processors.py b/lib/sqlalchemy/processors.py index 46d5dcbc6..c443aee61 100644 --- a/lib/sqlalchemy/processors.py +++ b/lib/sqlalchemy/processors.py @@ -14,8 +14,9 @@ They all share one common characteristic: None is passed through unchanged. """ import codecs -import re import datetime +import re + from . import util diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 598d499dc..1c0348421 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -9,60 +9,3 @@ """ -from .sql.base import SchemaVisitor - - -from .sql.schema import ( - BLANK_SCHEMA, - CheckConstraint, - Column, - ColumnDefault, - Constraint, - DefaultClause, - DefaultGenerator, - FetchedValue, - ForeignKey, - ForeignKeyConstraint, - Index, - MetaData, - PassiveDefault, - PrimaryKeyConstraint, - SchemaItem, - Sequence, - Table, - ThreadLocalMetaData, - UniqueConstraint, - _get_table_key, - ColumnCollectionConstraint, - ColumnCollectionMixin, -) - - -from .sql.naming import conv - - -from .sql.ddl import ( - DDL, - CreateTable, - DropTable, - CreateSequence, - DropSequence, - CreateIndex, - DropIndex, - CreateSchema, - DropSchema, - _DropView, - CreateColumn, - AddConstraint, - DropConstraint, - DDLBase, - DDLElement, - _CreateDropBase, - _DDLCompiles, - sort_tables, - sort_tables_and_constraints, - SetTableComment, - DropTableComment, - SetColumnComment, - DropColumnComment, -) diff --git a/lib/sqlalchemy/sql/__init__.py b/lib/sqlalchemy/sql/__init__.py index 87e2fb6c3..fe6da79c3 100644 --- a/lib/sqlalchemy/sql/__init__.py +++ b/lib/sqlalchemy/sql/__init__.py @@ -5,77 +5,8 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .expression import ( - Alias, - ClauseElement, - ColumnCollection, - ColumnElement, - CompoundSelect, - Delete, - FromClause, - Insert, - Join, - Select, - Selectable, - TableClause, - TableSample, - Update, - alias, - and_, - any_, - all_, - asc, - between, - bindparam, - case, - cast, - collate, - column, - delete, - desc, - distinct, - except_, - except_all, - exists, - extract, - false, - False_, - func, - funcfilter, - insert, - intersect, - intersect_all, - join, - label, - lateral, - literal, - literal_column, - modifier, - not_, - null, - nullsfirst, - nullslast, - or_, - outerjoin, - outparam, - over, - quoted_name, - select, - subquery, - table, - tablesample, - text, - true, - True_, - tuple_, - type_coerce, - union, - union_all, - update, - within_group, -) - -from .visitors import ClauseVisitor +from .expression import ColumnElement +from .expression import FromClause def __go(lcls): diff --git a/lib/sqlalchemy/sql/annotation.py b/lib/sqlalchemy/sql/annotation.py index 64cfa630e..0dc70a812 100644 --- a/lib/sqlalchemy/sql/annotation.py +++ b/lib/sqlalchemy/sql/annotation.py @@ -11,8 +11,8 @@ associations. """ -from .. import util from . import operators +from .. import util class Annotated(object): diff --git a/lib/sqlalchemy/sql/base.py b/lib/sqlalchemy/sql/base.py index 45db215fe..11c9600b8 100644 --- a/lib/sqlalchemy/sql/base.py +++ b/lib/sqlalchemy/sql/base.py @@ -10,11 +10,13 @@ """ -from .. import util, exc import itertools -from .visitors import ClauseVisitor import re +from .visitors import ClauseVisitor +from .. import exc +from .. import util + PARSE_AUTOCOMMIT = util.symbol("PARSE_AUTOCOMMIT") NO_ARG = util.symbol("NO_ARG") diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index a5229e09b..8e8f13751 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -24,19 +24,19 @@ To generate user-defined SQL strings, see """ import contextlib -import re -from . import ( - schema, - sqltypes, - operators, - functions, - visitors, - elements, - selectable, - crud, -) -from .. import util, exc import itertools +import re + +from . import crud +from . import elements +from . import functions +from . import operators +from . import schema +from . import selectable +from . import sqltypes +from . import visitors +from .. import exc +from .. import util RESERVED_WORDS = set( [ diff --git a/lib/sqlalchemy/sql/crud.py b/lib/sqlalchemy/sql/crud.py index 602b91a25..b123a31d7 100644 --- a/lib/sqlalchemy/sql/crud.py +++ b/lib/sqlalchemy/sql/crud.py @@ -9,11 +9,12 @@ within INSERT and UPDATE statements. """ -from .. import util -from .. import exc +import operator + from . import dml from . import elements -import operator +from .. import exc +from .. import util REQUIRED = util.symbol( "REQUIRED", diff --git a/lib/sqlalchemy/sql/ddl.py b/lib/sqlalchemy/sql/ddl.py index f21b3d7f0..aecc184d8 100644 --- a/lib/sqlalchemy/sql/ddl.py +++ b/lib/sqlalchemy/sql/ddl.py @@ -10,12 +10,15 @@ to invoke them for a create/drop call. """ -from .. import util +from .base import _bind_or_error +from .base import _generative +from .base import Executable +from .base import SchemaVisitor from .elements import ClauseElement -from .base import Executable, _generative, SchemaVisitor, _bind_or_error -from ..util import topological from .. import event from .. import exc +from .. import util +from ..util import topological class _DDLCompiles(ClauseElement): diff --git a/lib/sqlalchemy/sql/default_comparator.py b/lib/sqlalchemy/sql/default_comparator.py index 8b329efae..58a4b3045 100644 --- a/lib/sqlalchemy/sql/default_comparator.py +++ b/lib/sqlalchemy/sql/default_comparator.py @@ -8,33 +8,33 @@ """Default implementation of SQL comparison operations. """ -from .. import exc, util -from . import type_api from . import operators -from .elements import ( - BindParameter, - True_, - False_, - BinaryExpression, - Null, - _const_expr, - _clause_element_as_expr, - ClauseList, - ColumnElement, - TextClause, - UnaryExpression, - collate, - _is_literal, - _literal_as_text, - ClauseElement, - and_, - or_, - Slice, - Visitable, - _literal_as_binds, - CollectionAggregate, -) -from .selectable import SelectBase, Alias, Selectable, ScalarSelect +from . import type_api +from .elements import _clause_element_as_expr +from .elements import _const_expr +from .elements import _is_literal +from .elements import _literal_as_text +from .elements import and_ +from .elements import BinaryExpression +from .elements import BindParameter +from .elements import ClauseElement +from .elements import ClauseList +from .elements import collate +from .elements import CollectionAggregate +from .elements import ColumnElement +from .elements import False_ +from .elements import Null +from .elements import or_ +from .elements import TextClause +from .elements import True_ +from .elements import UnaryExpression +from .elements import Visitable +from .selectable import Alias +from .selectable import ScalarSelect +from .selectable import Selectable +from .selectable import SelectBase +from .. import exc +from .. import util def _boolean_compare( diff --git a/lib/sqlalchemy/sql/dml.py b/lib/sqlalchemy/sql/dml.py index 0cea5ccc4..bda0807fe 100644 --- a/lib/sqlalchemy/sql/dml.py +++ b/lib/sqlalchemy/sql/dml.py @@ -9,29 +9,22 @@ Provide :class:`.Insert`, :class:`.Update` and :class:`.Delete`. """ -from .base import ( - Executable, - _generative, - _from_objects, - DialectKWArgs, - ColumnCollection, -) -from .elements import ( - ClauseElement, - _literal_as_text, - Null, - and_, - _clone, - _column_as_key, -) -from .selectable import ( - _interpret_as_from, - _interpret_as_select, - HasPrefixes, - HasCTE, -) -from .. import util +from .base import _from_objects +from .base import _generative +from .base import DialectKWArgs +from .base import Executable +from .elements import _clone +from .elements import _column_as_key +from .elements import _literal_as_text +from .elements import and_ +from .elements import ClauseElement +from .elements import Null +from .selectable import _interpret_as_from +from .selectable import _interpret_as_select +from .selectable import HasCTE +from .selectable import HasPrefixes from .. import exc +from .. import util class UpdateBase( diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index 6facacfb2..d6c4bce05 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -12,18 +12,25 @@ from __future__ import unicode_literals -from .. import util, exc, inspection -from . import type_api -from . import operators -from .visitors import Visitable, cloned_traverse, traverse -from .annotation import Annotated import itertools -from .base import Executable, PARSE_AUTOCOMMIT, Immutable, NO_ARG -from .base import _generative import numbers - -import re import operator +import re + +from . import operators +from . import type_api +from .annotation import Annotated +from .base import _generative +from .base import Executable +from .base import Immutable +from .base import NO_ARG +from .base import PARSE_AUTOCOMMIT +from .visitors import cloned_traverse +from .visitors import traverse +from .visitors import Visitable +from .. import exc +from .. import inspection +from .. import util def _clone(element, **kw): diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index aab9f46d4..04ab4037f 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -81,79 +81,62 @@ __all__ = [ ] -from .visitors import Visitable -from .functions import func, modifier, FunctionElement, Function +from .base import ColumnCollection +from .base import Executable +from .base import Generative +from .dml import Delete +from .dml import Insert +from .dml import Update +from .elements import between +from .elements import BinaryExpression +from .elements import BindParameter +from .elements import BooleanClauseList +from .elements import Case +from .elements import Cast +from .elements import ClauseElement +from .elements import collate +from .elements import CollectionAggregate +from .elements import ColumnClause +from .elements import ColumnElement +from .elements import Extract +from .elements import False_ +from .elements import FunctionFilter +from .elements import Grouping +from .elements import Label +from .elements import literal +from .elements import literal_column +from .elements import not_ +from .elements import Null +from .elements import outparam +from .elements import Over +from .elements import quoted_name +from .elements import TextClause +from .elements import True_ +from .elements import Tuple +from .elements import TypeClause +from .elements import TypeCoerce +from .elements import UnaryExpression +from .elements import WithinGroup +from .functions import func +from .functions import modifier +from .selectable import Alias +from .selectable import alias +from .selectable import CompoundSelect +from .selectable import Exists +from .selectable import FromClause +from .selectable import FromGrouping +from .selectable import Join +from .selectable import Lateral +from .selectable import lateral +from .selectable import ScalarSelect +from .selectable import Select +from .selectable import Selectable +from .selectable import SelectBase +from .selectable import subquery +from .selectable import TableClause +from .selectable import TableSample +from .selectable import tablesample from ..util.langhelpers import public_factory -from .elements import ( - ClauseElement, - ColumnElement, - BindParameter, - CollectionAggregate, - UnaryExpression, - BooleanClauseList, - Label, - Cast, - Case, - ColumnClause, - TextClause, - Over, - Null, - True_, - False_, - BinaryExpression, - Tuple, - TypeClause, - Extract, - Grouping, - WithinGroup, - not_, - quoted_name, - collate, - literal_column, - between, - literal, - outparam, - TypeCoerce, - ClauseList, - FunctionFilter, -) - -from .elements import ( - SavepointClause, - RollbackToSavepointClause, - ReleaseSavepointClause, -) - -from .base import ColumnCollection, Generative, Executable, PARSE_AUTOCOMMIT - -from .selectable import ( - Alias, - Join, - Select, - Selectable, - TableClause, - CompoundSelect, - CTE, - FromClause, - FromGrouping, - Lateral, - SelectBase, - alias, - GenerativeSelect, - subquery, - HasCTE, - HasPrefixes, - HasSuffixes, - lateral, - Exists, - ScalarSelect, - TextAsFrom, - TableSample, - tablesample, -) - - -from .dml import Insert, Update, Delete, UpdateBase, ValuesBase # factory functions - these pull class-bound constructors and classmethods # from SQL elements and selectables into public functions. This allows @@ -216,26 +199,6 @@ funcfilter = public_factory(FunctionFilter, ".expression.funcfilter") # internal functions still being called from tests and the ORM, # these might be better off in some other namespace -from .base import _from_objects -from .elements import ( - _literal_as_text, - _clause_element_as_expr, - _is_column, - _labeled, - _only_column_elements, - _string_or_unprintable, - _truncated_label, - _clone, - _cloned_difference, - _cloned_intersection, - _column_as_key, - _literal_as_binds, - _select_iterables, - _corresponding_column_or_error, - _literal_as_label_reference, - _expression_literal_as_text, -) -from .selectable import _interpret_as_from # old names for compatibility diff --git a/lib/sqlalchemy/sql/functions.py b/lib/sqlalchemy/sql/functions.py index 106fe3792..423113eab 100644 --- a/lib/sqlalchemy/sql/functions.py +++ b/lib/sqlalchemy/sql/functions.py @@ -8,29 +8,31 @@ """SQL function API, factories, and built-in functions. """ -from . import sqltypes, schema -from .base import Executable, ColumnCollection -from .elements import ( - ClauseList, - Cast, - Extract, - _literal_as_binds, - literal_column, - _type_from_args, - ColumnElement, - _clone, - Over, - BindParameter, - FunctionFilter, - Grouping, - WithinGroup, -) -from .selectable import FromClause, Select, Alias -from . import util as sqlutil +from . import annotation from . import operators +from . import schema +from . import sqltypes +from . import util as sqlutil +from .base import ColumnCollection +from .base import Executable +from .elements import _clone +from .elements import _literal_as_binds +from .elements import _type_from_args +from .elements import BindParameter +from .elements import Cast +from .elements import ClauseList +from .elements import ColumnElement +from .elements import Extract +from .elements import FunctionFilter +from .elements import Grouping +from .elements import literal_column +from .elements import Over +from .elements import WithinGroup +from .selectable import Alias +from .selectable import FromClause +from .selectable import Select from .visitors import VisitableType from .. import util -from . import annotation _registry = util.defaultdict(dict) diff --git a/lib/sqlalchemy/sql/naming.py b/lib/sqlalchemy/sql/naming.py index 9eb0b3a69..04f88cf01 100644 --- a/lib/sqlalchemy/sql/naming.py +++ b/lib/sqlalchemy/sql/naming.py @@ -10,21 +10,22 @@ """ -from .schema import ( - Constraint, - ForeignKeyConstraint, - PrimaryKeyConstraint, - UniqueConstraint, - CheckConstraint, - Index, - Table, - Column, -) -from .. import event, events -from .. import exc -from .elements import _truncated_label, _defer_name, _defer_none_name, conv import re +from .elements import _defer_name +from .elements import _defer_none_name +from .elements import conv +from .schema import CheckConstraint +from .schema import Column +from .schema import Constraint +from .schema import ForeignKeyConstraint +from .schema import Index +from .schema import PrimaryKeyConstraint +from .schema import Table +from .schema import UniqueConstraint +from .. import event +from .. import exc + class ConventionDict(object): def __init__(self, const, table, convention): diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py index c770b3d66..c6ddb8491 100644 --- a/lib/sqlalchemy/sql/operators.py +++ b/lib/sqlalchemy/sql/operators.py @@ -10,29 +10,27 @@ """Defines operators used in SQL expressions.""" -from .. import util +from operator import add +from operator import and_ +from operator import contains +from operator import eq +from operator import ge +from operator import getitem +from operator import gt +from operator import inv +from operator import le +from operator import lshift +from operator import lt +from operator import mod +from operator import mul +from operator import ne +from operator import neg +from operator import or_ +from operator import rshift +from operator import sub +from operator import truediv -from operator import ( - and_, - or_, - inv, - add, - mul, - sub, - mod, - truediv, - lt, - le, - ne, - gt, - ge, - eq, - neg, - getitem, - lshift, - rshift, - contains, -) +from .. import util if util.py2k: from operator import div diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py index b48b9bba7..d0350c06b 100644 --- a/lib/sqlalchemy/sql/schema.py +++ b/lib/sqlalchemy/sql/schema.py @@ -30,25 +30,29 @@ as components in SQL expressions. """ from __future__ import absolute_import -from .. import exc, util, event, inspection -from .base import SchemaEventTarget, DialectKWArgs -import operator -from . import visitors -from . import type_api -from .base import _bind_or_error, ColumnCollection -from .elements import ( - ClauseElement, - ColumnClause, - _as_truncated, - TextClause, - _literal_as_text, - ColumnElement, - quoted_name, -) -from .selectable import TableClause import collections +import operator + import sqlalchemy from . import ddl +from . import type_api +from . import visitors +from .base import _bind_or_error +from .base import ColumnCollection +from .base import DialectKWArgs +from .base import SchemaEventTarget +from .elements import _as_truncated +from .elements import _literal_as_text +from .elements import ClauseElement +from .elements import ColumnClause +from .elements import ColumnElement +from .elements import quoted_name +from .elements import TextClause +from .selectable import TableClause +from .. import event +from .. import exc +from .. import inspection +from .. import util RETAIN_SCHEMA = util.symbol("retain_schema") diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index 0af5e3201..108d837bb 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -10,50 +10,45 @@ SQL tables and derived rowsets. """ -from .elements import ( - ClauseElement, - TextClause, - ClauseList, - and_, - Grouping, - UnaryExpression, - literal_column, - BindParameter, -) -from .elements import ( - _clone, - _literal_as_text, - _interpret_as_column_or_from, - _expand_cloned, - _select_iterables, - _anonymous_label, - _clause_element_as_expr, - _cloned_intersection, - _cloned_difference, - True_, - _literal_as_label_reference, - _literal_and_labels_as_label_reference, -) -from .base import ( - Immutable, - Executable, - _generative, - ColumnCollection, - ColumnSet, - _from_objects, - Generative, -) -from . import type_api -from .. import inspection -from .. import util -from .. import exc -from operator import attrgetter -from . import operators -import operator import collections -from .annotation import Annotated import itertools +import operator +from operator import attrgetter + from sqlalchemy.sql.visitors import Visitable +from . import operators +from . import type_api +from .annotation import Annotated +from .base import _from_objects +from .base import _generative +from .base import ColumnCollection +from .base import ColumnSet +from .base import Executable +from .base import Generative +from .base import Immutable +from .elements import _anonymous_label +from .elements import _clause_element_as_expr +from .elements import _clone +from .elements import _cloned_difference +from .elements import _cloned_intersection +from .elements import _expand_cloned +from .elements import _interpret_as_column_or_from +from .elements import _literal_and_labels_as_label_reference +from .elements import _literal_as_label_reference +from .elements import _literal_as_text +from .elements import _select_iterables +from .elements import and_ +from .elements import BindParameter +from .elements import ClauseElement +from .elements import ClauseList +from .elements import Grouping +from .elements import literal_column +from .elements import TextClause +from .elements import True_ +from .elements import UnaryExpression +from .. import exc +from .. import inspection +from .. import util def _interpret_as_from(element): diff --git a/lib/sqlalchemy/sql/sqltypes.py b/lib/sqlalchemy/sql/sqltypes.py index eb3c54a51..cd67f78ce 100644 --- a/lib/sqlalchemy/sql/sqltypes.py +++ b/lib/sqlalchemy/sql/sqltypes.py @@ -9,35 +9,33 @@ """ -import datetime as dt import codecs -import collections +import datetime as dt +import decimal import json from . import elements -from .type_api import ( - TypeEngine, - TypeDecorator, - to_instance, - Variant, - Emulated, - NativeForEmulated, -) -from .elements import ( - quoted_name, - TypeCoerce as type_coerce, - _defer_name, - Slice, - _literal_as_binds, -) -from .. import exc, util, processors -from .base import _bind_or_error, SchemaEventTarget from . import operators -from .. import inspection +from . import type_api +from .base import _bind_or_error +from .base import SchemaEventTarget +from .elements import _defer_name +from .elements import _literal_as_binds +from .elements import quoted_name +from .elements import Slice +from .elements import TypeCoerce as type_coerce +from .type_api import Emulated +from .type_api import to_instance +from .type_api import TypeDecorator +from .type_api import TypeEngine +from .type_api import Variant from .. import event -from ..util import pickle +from .. import exc +from .. import inspection +from .. import processors +from .. import util from ..util import compat -import decimal +from ..util import pickle if util.jython: import array @@ -2807,7 +2805,6 @@ def _resolve_value_to_type(value): # back-assign to type_api -from . import type_api type_api.BOOLEANTYPE = BOOLEANTYPE type_api.STRINGTYPE = STRINGTYPE diff --git a/lib/sqlalchemy/sql/type_api.py b/lib/sqlalchemy/sql/type_api.py index e9ae6ca96..373aeafa4 100644 --- a/lib/sqlalchemy/sql/type_api.py +++ b/lib/sqlalchemy/sql/type_api.py @@ -10,10 +10,12 @@ """ -from .. import exc, util from . import operators -from .visitors import Visitable, VisitableType from .base import SchemaEventTarget +from .visitors import Visitable +from .visitors import VisitableType +from .. import exc +from .. import util # these are back-assigned by sqltypes. BOOLEANTYPE = None diff --git a/lib/sqlalchemy/sql/util.py b/lib/sqlalchemy/sql/util.py index 7d08696cb..bab2e8278 100644 --- a/lib/sqlalchemy/sql/util.py +++ b/lib/sqlalchemy/sql/util.py @@ -9,40 +9,34 @@ """ -from .. import exc, util -from .base import _from_objects, ColumnSet -from . import operators, visitors -from itertools import chain from collections import deque +from itertools import chain -from .elements import ( - BindParameter, - ColumnClause, - ColumnElement, - Null, - UnaryExpression, - literal_column, - Label, - _label_reference, - _textual_label_reference, -) -from .selectable import ( - SelectBase, - ScalarSelect, - Join, - FromClause, - FromGrouping, -) +from . import operators +from . import visitors +from .base import _from_objects +from .base import ColumnSet +from .elements import _label_reference +from .elements import _textual_label_reference +from .elements import BindParameter +from .elements import ColumnClause +from .elements import ColumnElement +from .elements import Null +from .elements import UnaryExpression from .schema import Column +from .selectable import FromClause +from .selectable import FromGrouping +from .selectable import Join +from .selectable import ScalarSelect +from .selectable import SelectBase +from .. import exc +from .. import util join_condition = util.langhelpers.public_factory( Join._join_condition, ".sql.util.join_condition" ) # names that are still being imported from the outside -from .annotation import _shallow_annotate, _deep_annotate, _deep_deannotate -from .elements import _find_columns -from .ddl import sort_tables def find_join_source(clauses, join_to): diff --git a/lib/sqlalchemy/sql/visitors.py b/lib/sqlalchemy/sql/visitors.py index f614c958b..75c07b427 100644 --- a/lib/sqlalchemy/sql/visitors.py +++ b/lib/sqlalchemy/sql/visitors.py @@ -25,9 +25,10 @@ http://techspot.zzzeek.org/2008/01/23/expression-transformations/ """ from collections import deque -from .. import util import operator + from .. import exc +from .. import util __all__ = [ "VisitableType", diff --git a/lib/sqlalchemy/testing/__init__.py b/lib/sqlalchemy/testing/__init__.py index f46ca4528..a834c1c7d 100644 --- a/lib/sqlalchemy/testing/__init__.py +++ b/lib/sqlalchemy/testing/__init__.py @@ -6,70 +6,12 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .warnings import assert_warnings - from . import config - -from .exclusions import ( - db_spec, - _is_excluded, - fails_if, - skip_if, - future, - fails_on, - fails_on_everything_except, - skip, - only_on, - exclude, - against as _against, - _server_version, - only_if, - fails, -) +from .exclusions import against as _against +from .exclusions import skip def against(*queries): return _against(config._current, *queries) - -from .assertions import ( - emits_warning, - emits_warning_on, - uses_deprecated, - eq_, - ne_, - le_, - is_, - is_not_, - startswith_, - assert_raises, - assert_raises_message, - AssertsCompiledSQL, - ComparesTables, - AssertsExecutionResults, - expect_deprecated, - expect_warnings, - in_, - not_in_, - eq_ignore_whitespace, - eq_regex, - is_true, - is_false, -) - -from .util import ( - run_as_contextmanager, - rowset, - fail, - provide_metadata, - adict, - force_drop_names, - teardown_events, -) - crashes = skip - -from .config import db -from .config import requirements as requires - -from . import mock diff --git a/lib/sqlalchemy/testing/assertions.py b/lib/sqlalchemy/testing/assertions.py index 73ab4556a..1a051a143 100644 --- a/lib/sqlalchemy/testing/assertions.py +++ b/lib/sqlalchemy/testing/assertions.py @@ -7,19 +7,26 @@ from __future__ import absolute_import -from . import util as testutil -from sqlalchemy import pool, orm, util -from sqlalchemy.engine import default, url -from sqlalchemy.util import decorator, compat -from sqlalchemy import types as sqltypes, schema, exc as sa_exc -import warnings +import contextlib import re -from .exclusions import db_spec +import warnings + +from sqlalchemy import exc as sa_exc +from sqlalchemy import orm +from sqlalchemy import pool +from sqlalchemy import schema +from sqlalchemy import types as sqltypes +from sqlalchemy import util +from sqlalchemy.engine import default +from sqlalchemy.engine import url +from sqlalchemy.util import compat +from sqlalchemy.util import decorator from . import assertsql from . import config -from .util import fail -import contextlib from . import mock +from . import util as testutil +from .exclusions import db_spec +from .util import fail def expect_warnings(*messages, **kw): diff --git a/lib/sqlalchemy/testing/assertsql.py b/lib/sqlalchemy/testing/assertsql.py index d8e924cb6..67fa46889 100644 --- a/lib/sqlalchemy/testing/assertsql.py +++ b/lib/sqlalchemy/testing/assertsql.py @@ -5,15 +5,16 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from ..engine.default import DefaultDialect -from .. import util -import re import collections import contextlib -from .. import event -from sqlalchemy.schema import _DDLCompiles -from sqlalchemy.engine.util import _distill_params +import re + from sqlalchemy.engine import url +from sqlalchemy.engine.util import _distill_params +from sqlalchemy.schema import _DDLCompiles +from .. import event +from .. import util +from ..engine.default import DefaultDialect class AssertRule(object): diff --git a/lib/sqlalchemy/testing/engines.py b/lib/sqlalchemy/testing/engines.py index 074e3b338..bfb1a24b5 100644 --- a/lib/sqlalchemy/testing/engines.py +++ b/lib/sqlalchemy/testing/engines.py @@ -7,12 +7,14 @@ from __future__ import absolute_import +import re +import warnings import weakref + from . import config from .util import decorator -from .. import event, pool -import re -import warnings +from .. import event +from .. import pool class ConnectionKiller(object): diff --git a/lib/sqlalchemy/testing/exclusions.py b/lib/sqlalchemy/testing/exclusions.py index 9ed9e42c3..43f365e9d 100644 --- a/lib/sqlalchemy/testing/exclusions.py +++ b/lib/sqlalchemy/testing/exclusions.py @@ -11,7 +11,6 @@ import operator import re from sqlalchemy.util.compat import inspect_getargspec - from . import config from .. import util from ..util import decorator diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py index 98184cdd4..b1e592ec1 100644 --- a/lib/sqlalchemy/testing/fixtures.py +++ b/lib/sqlalchemy/testing/fixtures.py @@ -5,15 +5,20 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php +import sys + +import sqlalchemy as sa +from sqlalchemy import event +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.ext.declarative import DeclarativeMeta +from . import assertions from . import config -from . import assertions, schema +from . import schema +from .engines import drop_all_tables +from .entities import BasicEntity +from .entities import ComparableEntity from .util import adict from .. import util -from .engines import drop_all_tables -from .entities import BasicEntity, ComparableEntity -import sys -import sqlalchemy as sa -from sqlalchemy.ext.declarative import declarative_base, DeclarativeMeta # whether or not we use unittest changes things dramatically, # as far as how py.test collection works. @@ -220,9 +225,6 @@ class TablesTest(TestBase): ) -from sqlalchemy import event - - class RemovesEvents(object): @util.memoized_property def _event_fns(self): diff --git a/lib/sqlalchemy/testing/mock.py b/lib/sqlalchemy/testing/mock.py index dc530af5e..7bc4c620d 100644 --- a/lib/sqlalchemy/testing/mock.py +++ b/lib/sqlalchemy/testing/mock.py @@ -8,6 +8,7 @@ """Import stub for mock library. """ from __future__ import absolute_import + from ..util import py33 if py33: diff --git a/lib/sqlalchemy/testing/plugin/noseplugin.py b/lib/sqlalchemy/testing/plugin/noseplugin.py index 0c28a5213..9b6aef7d3 100644 --- a/lib/sqlalchemy/testing/plugin/noseplugin.py +++ b/lib/sqlalchemy/testing/plugin/noseplugin.py @@ -23,8 +23,8 @@ except ImportError: import os import sys -from nose.plugins import Plugin import nose +from nose.plugins import Plugin fixtures = None diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py index 5d6bf2975..ee3fca14f 100644 --- a/lib/sqlalchemy/testing/plugin/plugin_base.py +++ b/lib/sqlalchemy/testing/plugin/plugin_base.py @@ -15,8 +15,8 @@ functionality via py.test. from __future__ import absolute_import -import sys import re +import sys py3k = sys.version_info >= (3, 0) diff --git a/lib/sqlalchemy/testing/plugin/pytestplugin.py b/lib/sqlalchemy/testing/plugin/pytestplugin.py index fd0a48462..d7e51bc59 100644 --- a/lib/sqlalchemy/testing/plugin/pytestplugin.py +++ b/lib/sqlalchemy/testing/plugin/pytestplugin.py @@ -5,12 +5,13 @@ except ImportError: # assume we're a package, use traditional import from . import plugin_base -import pytest import argparse -import inspect import collections +import inspect import os +import pytest + try: import xdist # noqa diff --git a/lib/sqlalchemy/testing/profiling.py b/lib/sqlalchemy/testing/profiling.py index ee3367942..0db912e06 100644 --- a/lib/sqlalchemy/testing/profiling.py +++ b/lib/sqlalchemy/testing/profiling.py @@ -12,19 +12,23 @@ in a more fine-grained way than nose's profiling plugin. """ +import collections +import contextlib import os +import pstats import sys -from .util import gc_collect + from . import config -import pstats -import collections -import contextlib +from .util import gc_collect +from ..util import jython +from ..util import pypy +from ..util import update_wrapper +from ..util import win32 try: import cProfile except ImportError: cProfile = None -from ..util import jython, pypy, win32, update_wrapper _current_test = None diff --git a/lib/sqlalchemy/testing/provision.py b/lib/sqlalchemy/testing/provision.py index 1294c65bb..cd7446e00 100644 --- a/lib/sqlalchemy/testing/provision.py +++ b/lib/sqlalchemy/testing/provision.py @@ -1,13 +1,15 @@ -from sqlalchemy.engine import url as sa_url -from sqlalchemy import create_engine -from sqlalchemy import text -from sqlalchemy import exc -from sqlalchemy.util import compat -from . import config, engines import collections +import logging import os import time -import logging + +from sqlalchemy import create_engine +from sqlalchemy import exc +from sqlalchemy import text +from sqlalchemy.engine import url as sa_url +from sqlalchemy.util import compat +from . import config +from . import engines log = logging.getLogger(__name__) diff --git a/lib/sqlalchemy/testing/replay_fixture.py b/lib/sqlalchemy/testing/replay_fixture.py index 9832b07a2..1427454b2 100644 --- a/lib/sqlalchemy/testing/replay_fixture.py +++ b/lib/sqlalchemy/testing/replay_fixture.py @@ -1,13 +1,14 @@ -from . import fixtures -from . import profiling -from .. import util -import types from collections import deque import contextlib -from . import config -from sqlalchemy import MetaData +import types + from sqlalchemy import create_engine +from sqlalchemy import MetaData from sqlalchemy.orm import Session +from . import config +from . import fixtures +from . import profiling +from .. import util class ReplayFixtureTest(fixtures.TestBase): diff --git a/lib/sqlalchemy/testing/runner.py b/lib/sqlalchemy/testing/runner.py index 6aa820fd5..b4478bedc 100644 --- a/lib/sqlalchemy/testing/runner.py +++ b/lib/sqlalchemy/testing/runner.py @@ -30,10 +30,10 @@ SQLAlchemy itself is possible. """ -from .plugin.noseplugin import NoseSQLAlchemy - import nose +from .plugin.noseplugin import NoseSQLAlchemy + def main(): nose.main(addplugins=[NoseSQLAlchemy()]) diff --git a/lib/sqlalchemy/testing/schema.py b/lib/sqlalchemy/testing/schema.py index b345a9487..1856298d0 100644 --- a/lib/sqlalchemy/testing/schema.py +++ b/lib/sqlalchemy/testing/schema.py @@ -5,9 +5,10 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from . import exclusions -from .. import schema, event from . import config +from . import exclusions +from .. import event +from .. import schema __all__ = "Table", "Column" diff --git a/lib/sqlalchemy/testing/suite/__init__.py b/lib/sqlalchemy/testing/suite/__init__.py index a4e142c5a..8b1378917 100644 --- a/lib/sqlalchemy/testing/suite/__init__.py +++ b/lib/sqlalchemy/testing/suite/__init__.py @@ -1,10 +1 @@ -from sqlalchemy.testing.suite.test_cte import * -from sqlalchemy.testing.suite.test_dialect import * -from sqlalchemy.testing.suite.test_ddl import * -from sqlalchemy.testing.suite.test_insert import * -from sqlalchemy.testing.suite.test_sequence import * -from sqlalchemy.testing.suite.test_select import * -from sqlalchemy.testing.suite.test_results import * -from sqlalchemy.testing.suite.test_update_delete import * -from sqlalchemy.testing.suite.test_reflection import * -from sqlalchemy.testing.suite.test_types import * + diff --git a/lib/sqlalchemy/testing/suite/test_cte.py b/lib/sqlalchemy/testing/suite/test_cte.py index d2f35933b..157b4a17f 100644 --- a/lib/sqlalchemy/testing/suite/test_cte.py +++ b/lib/sqlalchemy/testing/suite/test_cte.py @@ -1,11 +1,13 @@ -from .. import fixtures, config -from ..assertions import eq_ - -from sqlalchemy import Integer, String, select from sqlalchemy import ForeignKey +from sqlalchemy import Integer +from sqlalchemy import select +from sqlalchemy import String from sqlalchemy import testing - -from ..schema import Table, Column +from .. import config +from .. import fixtures +from ..assertions import eq_ +from ..schema import Column +from ..schema import Table class CTETest(fixtures.TablesTest): diff --git a/lib/sqlalchemy/testing/suite/test_ddl.py b/lib/sqlalchemy/testing/suite/test_ddl.py index 7c44388d4..b3c401741 100644 --- a/lib/sqlalchemy/testing/suite/test_ddl.py +++ b/lib/sqlalchemy/testing/suite/test_ddl.py @@ -1,8 +1,12 @@ -from .. import fixtures, config, util -from ..config import requirements +from sqlalchemy import Column +from sqlalchemy import Integer +from sqlalchemy import String +from sqlalchemy import Table +from .. import config +from .. import fixtures +from .. import util from ..assertions import eq_ - -from sqlalchemy import Table, Column, Integer, String +from ..config import requirements class TableDDLTest(fixtures.TestBase): diff --git a/lib/sqlalchemy/testing/suite/test_dialect.py b/lib/sqlalchemy/testing/suite/test_dialect.py index 5e589f3b8..0af6139eb 100644 --- a/lib/sqlalchemy/testing/suite/test_dialect.py +++ b/lib/sqlalchemy/testing/suite/test_dialect.py @@ -1,11 +1,16 @@ -from .. import fixtures, config -from ..config import requirements from sqlalchemy import exc -from sqlalchemy import Integer, String, select, literal_column +from sqlalchemy import Integer +from sqlalchemy import literal_column +from sqlalchemy import select +from sqlalchemy import String from .. import assert_raises -from ..schema import Table, Column -from .. import provide_metadata +from .. import config from .. import eq_ +from .. import fixtures +from .. import provide_metadata +from ..config import requirements +from ..schema import Column +from ..schema import Table class ExceptionTest(fixtures.TablesTest): diff --git a/lib/sqlalchemy/testing/suite/test_insert.py b/lib/sqlalchemy/testing/suite/test_insert.py index 6257451eb..c7b932cb7 100644 --- a/lib/sqlalchemy/testing/suite/test_insert.py +++ b/lib/sqlalchemy/testing/suite/test_insert.py @@ -1,12 +1,15 @@ -from .. import fixtures, config -from ..config import requirements -from .. import exclusions -from ..assertions import eq_ +from sqlalchemy import Integer +from sqlalchemy import literal +from sqlalchemy import literal_column +from sqlalchemy import select +from sqlalchemy import String +from .. import config from .. import engines - -from sqlalchemy import Integer, String, select, literal_column, literal - -from ..schema import Table, Column +from .. import fixtures +from ..assertions import eq_ +from ..config import requirements +from ..schema import Column +from ..schema import Table class LastrowidTest(fixtures.TablesTest): diff --git a/lib/sqlalchemy/testing/suite/test_reflection.py b/lib/sqlalchemy/testing/suite/test_reflection.py index bfed5f1ab..2cb7a07b7 100644 --- a/lib/sqlalchemy/testing/suite/test_reflection.py +++ b/lib/sqlalchemy/testing/suite/test_reflection.py @@ -1,20 +1,28 @@ +import operator +import re + import sqlalchemy as sa +from sqlalchemy import event from sqlalchemy import exc as sa_exc -from sqlalchemy import types as sql_types +from sqlalchemy import ForeignKey from sqlalchemy import inspect -from sqlalchemy import MetaData, Integer, String, func -from sqlalchemy.engine.reflection import Inspector -from sqlalchemy.testing import engines, fixtures -from sqlalchemy.testing.schema import Table, Column -from sqlalchemy.testing import eq_, is_, assert_raises_message +from sqlalchemy import Integer +from sqlalchemy import MetaData +from sqlalchemy import String from sqlalchemy import testing -from .. import config -import operator -from sqlalchemy.schema import DDL, Index -from sqlalchemy import event +from sqlalchemy import types as sql_types +from sqlalchemy.engine.reflection import Inspector +from sqlalchemy.schema import DDL +from sqlalchemy.schema import Index from sqlalchemy.sql.elements import quoted_name -from sqlalchemy import ForeignKey -import re +from sqlalchemy.testing import assert_raises_message +from sqlalchemy.testing import engines +from sqlalchemy.testing import eq_ +from sqlalchemy.testing import fixtures +from sqlalchemy.testing import is_ +from sqlalchemy.testing.schema import Column +from sqlalchemy.testing.schema import Table +from .. import config metadata, users = None, None diff --git a/lib/sqlalchemy/testing/suite/test_results.py b/lib/sqlalchemy/testing/suite/test_results.py index 247f05cf5..11e7ea685 100644 --- a/lib/sqlalchemy/testing/suite/test_results.py +++ b/lib/sqlalchemy/testing/suite/test_results.py @@ -1,14 +1,21 @@ -from .. import fixtures, config -from ..config import requirements -from .. import exclusions -from ..assertions import eq_ +import datetime + +from sqlalchemy import DateTime +from sqlalchemy import func +from sqlalchemy import Integer +from sqlalchemy import select +from sqlalchemy import sql +from sqlalchemy import String +from sqlalchemy import text +from .. import config from .. import engines +from .. import fixtures +from ..assertions import eq_ +from ..config import requirements +from ..schema import Column +from ..schema import Table from ... import testing -from sqlalchemy import Integer, String, select, util, sql, DateTime, text, func -import datetime -from ..schema import Table, Column - class RowFetchTest(fixtures.TablesTest): __backend__ = True diff --git a/lib/sqlalchemy/testing/suite/test_select.py b/lib/sqlalchemy/testing/suite/test_select.py index f184df536..9b5f8bcb2 100644 --- a/lib/sqlalchemy/testing/suite/test_select.py +++ b/lib/sqlalchemy/testing/suite/test_select.py @@ -1,12 +1,18 @@ -from .. import fixtures, config -from ..assertions import eq_ - -from sqlalchemy import util -from sqlalchemy import Integer, String, select, func, bindparam, union, tuple_ -from sqlalchemy import testing +from sqlalchemy import bindparam +from sqlalchemy import func +from sqlalchemy import Integer from sqlalchemy import literal_column - -from ..schema import Table, Column +from sqlalchemy import select +from sqlalchemy import String +from sqlalchemy import testing +from sqlalchemy import tuple_ +from sqlalchemy import union +from sqlalchemy import util +from .. import config +from .. import fixtures +from ..assertions import eq_ +from ..schema import Column +from ..schema import Table class CollateTest(fixtures.TablesTest): diff --git a/lib/sqlalchemy/testing/suite/test_sequence.py b/lib/sqlalchemy/testing/suite/test_sequence.py index 15a850fe9..22ae7d43c 100644 --- a/lib/sqlalchemy/testing/suite/test_sequence.py +++ b/lib/sqlalchemy/testing/suite/test_sequence.py @@ -1,12 +1,16 @@ -from .. import fixtures, config -from ..config import requirements +from .. import config +from .. import fixtures from ..assertions import eq_ +from ..config import requirements +from ..schema import Column +from ..schema import Table +from ... import Integer +from ... import MetaData +from ... import schema +from ... import Sequence +from ... import String from ... import testing -from ... import Integer, String, Sequence, schema, MetaData - -from ..schema import Table, Column - class SequenceTest(fixtures.TablesTest): __requires__ = ("sequences",) diff --git a/lib/sqlalchemy/testing/suite/test_types.py b/lib/sqlalchemy/testing/suite/test_types.py index 1a99f550d..bfeb1e82b 100644 --- a/lib/sqlalchemy/testing/suite/test_types.py +++ b/lib/sqlalchemy/testing/suite/test_types.py @@ -1,33 +1,38 @@ # coding: utf-8 -from .. import fixtures, config +import datetime +import decimal + +from sqlalchemy import and_ +from sqlalchemy import BigInteger +from sqlalchemy import Boolean +from sqlalchemy import cast +from sqlalchemy import Date +from sqlalchemy import DateTime +from sqlalchemy import Float +from sqlalchemy import Integer +from sqlalchemy import JSON +from sqlalchemy import literal +from sqlalchemy import MetaData +from sqlalchemy import null +from sqlalchemy import Numeric +from sqlalchemy import select +from sqlalchemy import String +from sqlalchemy import Text +from sqlalchemy import Time +from sqlalchemy import TIMESTAMP +from sqlalchemy import type_coerce +from sqlalchemy import Unicode +from sqlalchemy import UnicodeText +from .. import config +from .. import fixtures from ..assertions import eq_ from ..config import requirements -from sqlalchemy import Integer, Unicode, UnicodeText, select, TIMESTAMP -from sqlalchemy import ( - Date, - DateTime, - Time, - MetaData, - String, - Text, - Numeric, - Float, - literal, - Boolean, - cast, - null, - JSON, - and_, - type_coerce, - BigInteger, -) -from ..schema import Table, Column +from ..schema import Column +from ..schema import Table from ... import testing -import decimal -import datetime -from ...util import u from ... import util +from ...util import u class _LiteralRoundTripFixture(object): diff --git a/lib/sqlalchemy/testing/suite/test_update_delete.py b/lib/sqlalchemy/testing/suite/test_update_delete.py index b232c3a78..24b99b9ba 100644 --- a/lib/sqlalchemy/testing/suite/test_update_delete.py +++ b/lib/sqlalchemy/testing/suite/test_update_delete.py @@ -1,8 +1,10 @@ -from .. import fixtures, config +from sqlalchemy import Integer +from sqlalchemy import String +from .. import config +from .. import fixtures from ..assertions import eq_ - -from sqlalchemy import Integer, String -from ..schema import Table, Column +from ..schema import Column +from ..schema import Table class SimpleUpdateDeleteTest(fixtures.TablesTest): diff --git a/lib/sqlalchemy/testing/util.py b/lib/sqlalchemy/testing/util.py index 5b015d214..bf9a3e820 100644 --- a/lib/sqlalchemy/testing/util.py +++ b/lib/sqlalchemy/testing/util.py @@ -5,14 +5,19 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from ..util import jython, pypy, defaultdict, decorator, py2k import decimal import gc -import time import random import sys +import time import types +from ..util import decorator +from ..util import defaultdict +from ..util import jython +from ..util import py2k +from ..util import pypy + if jython: def jython_gc_collect(*args): diff --git a/lib/sqlalchemy/testing/warnings.py b/lib/sqlalchemy/testing/warnings.py index e0101b14d..611389fe0 100644 --- a/lib/sqlalchemy/testing/warnings.py +++ b/lib/sqlalchemy/testing/warnings.py @@ -8,8 +8,9 @@ from __future__ import absolute_import import warnings -from .. import exc as sa_exc + from . import assertions +from .. import exc as sa_exc def setup_filters(): diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py index e66582801..a31565f81 100644 --- a/lib/sqlalchemy/types.py +++ b/lib/sqlalchemy/types.py @@ -59,63 +59,50 @@ __all__ = [ "JSON", ] -from .sql.type_api import ( - adapt_type, - TypeEngine, - TypeDecorator, - Variant, - to_instance, - UserDefinedType, -) -from .sql.sqltypes import ( - ARRAY, - BIGINT, - BINARY, - BLOB, - BOOLEAN, - BigInteger, - Binary, - _Binary, - Boolean, - CHAR, - CLOB, - Concatenable, - DATE, - DATETIME, - DECIMAL, - Date, - DateTime, - Enum, - FLOAT, - Float, - Indexable, - INT, - INTEGER, - Integer, - Interval, - JSON, - LargeBinary, - MatchType, - NCHAR, - NVARCHAR, - NullType, - NULLTYPE, - NUMERIC, - Numeric, - PickleType, - REAL, - SchemaType, - SMALLINT, - SmallInteger, - String, - STRINGTYPE, - TEXT, - TIME, - TIMESTAMP, - Text, - Time, - Unicode, - UnicodeText, - VARBINARY, - VARCHAR, -) +from .sql.sqltypes import ARRAY +from .sql.sqltypes import BIGINT +from .sql.sqltypes import BigInteger +from .sql.sqltypes import BINARY +from .sql.sqltypes import Binary +from .sql.sqltypes import BLOB +from .sql.sqltypes import BOOLEAN +from .sql.sqltypes import Boolean +from .sql.sqltypes import CHAR +from .sql.sqltypes import CLOB +from .sql.sqltypes import Concatenable +from .sql.sqltypes import DATE +from .sql.sqltypes import Date +from .sql.sqltypes import DATETIME +from .sql.sqltypes import DateTime +from .sql.sqltypes import DECIMAL +from .sql.sqltypes import Enum +from .sql.sqltypes import FLOAT +from .sql.sqltypes import Float +from .sql.sqltypes import Indexable +from .sql.sqltypes import INT +from .sql.sqltypes import INTEGER +from .sql.sqltypes import Integer +from .sql.sqltypes import Interval +from .sql.sqltypes import JSON +from .sql.sqltypes import LargeBinary +from .sql.sqltypes import NCHAR +from .sql.sqltypes import NUMERIC +from .sql.sqltypes import Numeric +from .sql.sqltypes import NVARCHAR +from .sql.sqltypes import PickleType +from .sql.sqltypes import REAL +from .sql.sqltypes import SMALLINT +from .sql.sqltypes import SmallInteger +from .sql.sqltypes import String +from .sql.sqltypes import TEXT +from .sql.sqltypes import Text +from .sql.sqltypes import TIME +from .sql.sqltypes import Time +from .sql.sqltypes import TIMESTAMP +from .sql.sqltypes import Unicode +from .sql.sqltypes import UnicodeText +from .sql.sqltypes import VARBINARY +from .sql.sqltypes import VARCHAR +from .sql.type_api import TypeDecorator +from .sql.type_api import TypeEngine +from .sql.type_api import UserDefinedType diff --git a/lib/sqlalchemy/util/__init__.py b/lib/sqlalchemy/util/__init__.py index f25c91fbc..bb3881eb3 100644 --- a/lib/sqlalchemy/util/__init__.py +++ b/lib/sqlalchemy/util/__init__.py @@ -5,149 +5,6 @@ # This module is part of SQLAlchemy and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -from .compat import ( - callable, - cmp, - reduce, - threading, - py3k, - py33, - py36, - py2k, - jython, - pypy, - cpython, - win32, - pickle, - dottedgetter, - parse_qsl, - namedtuple, - next, - reraise, - raise_from_cause, - text_type, - safe_kwarg, - string_types, - int_types, - binary_type, - nested, - quote_plus, - with_metaclass, - print_, - itertools_filterfalse, - u, - ue, - b, - unquote_plus, - unquote, - b64decode, - b64encode, - byte_buffer, - itertools_filter, - iterbytes, - StringIO, - inspect_getargspec, - zip_longest, -) - -from ._collections import ( - KeyedTuple, - ImmutableContainer, - immutabledict, - Properties, - OrderedProperties, - ImmutableProperties, - OrderedDict, - OrderedSet, - IdentitySet, - OrderedIdentitySet, - column_set, - column_dict, - ordered_column_set, - populate_column_dict, - unique_list, - UniqueAppender, - PopulateDict, - EMPTY_SET, - to_list, - to_set, - to_column_set, - update_copy, - flatten_iterator, - has_intersection, - LRUCache, - ScopedRegistry, - ThreadLocalRegistry, - WeakSequence, - coerce_generator_arg, - lightweight_named_tuple, - collections_abc, -) - -from .langhelpers import ( - iterate_attributes, - class_hierarchy, - portable_instancemethod, - unbound_method_to_callable, - getargspec_init, - format_argspec_init, - format_argspec_plus, - get_func_kwargs, - get_cls_kwargs, - decorator, - as_interface, - memoized_property, - memoized_instancemethod, - md5_hex, - group_expirable_memoized_property, - dependencies, - decode_slice, - monkeypatch_proxied_specials, - asbool, - bool_or_str, - coerce_kw_type, - duck_type_collection, - assert_arg_type, - symbol, - dictlike_iteritems, - classproperty, - set_creation_order, - warn_exception, - warn, - NoneType, - constructor_copy, - methods_equivalent, - chop_traceback, - asint, - generic_repr, - counter, - PluginLoader, - hybridproperty, - hybridmethod, - safe_reraise, - quoted_token_parser, - get_callable_argspec, - only_once, - attrsetter, - ellipses_string, - warn_limited, - map_bits, - MemoizedSlots, - EnsureKWArgType, - wrap_callable, -) - -from .deprecations import ( - warn_deprecated, - warn_pending_deprecation, - deprecated, - pending_deprecation, - inject_docstring_text, -) # things that used to be not always available, # but are now as of current support Python versions -from collections import defaultdict -from functools import partial -from functools import update_wrapper -from contextlib import contextmanager diff --git a/lib/sqlalchemy/util/_collections.py b/lib/sqlalchemy/util/_collections.py index a29fc7b42..d7a5f49d0 100644 --- a/lib/sqlalchemy/util/_collections.py +++ b/lib/sqlalchemy/util/_collections.py @@ -8,17 +8,17 @@ """Collection classes and helpers.""" from __future__ import absolute_import -import weakref + import operator -from .compat import ( - threading, - itertools_filterfalse, - string_types, - binary_types, - collections_abc, -) -from . import py2k import types +import weakref + +from . import py2k +from .compat import binary_types +from .compat import collections_abc +from .compat import itertools_filterfalse +from .compat import string_types +from .compat import threading EMPTY_SET = frozenset() diff --git a/lib/sqlalchemy/util/compat.py b/lib/sqlalchemy/util/compat.py index c6b1f3378..d88db9275 100644 --- a/lib/sqlalchemy/util/compat.py +++ b/lib/sqlalchemy/util/compat.py @@ -7,8 +7,10 @@ """Handle Python version/platform incompatibilities.""" -import sys +import collections from contextlib import contextmanager +import sys +import time try: import threading @@ -27,8 +29,6 @@ pypy = hasattr(sys, "pypy_version_info") win32 = sys.platform.startswith("win") cpython = not pypy and not jython # TODO: something better for this ? -import collections - next = next if py3k: @@ -246,17 +246,11 @@ if py35: else: from inspect import formatargspec as inspect_formatargspec - -import time - if win32 or jython: time_func = time.clock else: time_func = time.time -from collections import namedtuple -from operator import attrgetter as dottedgetter - if py3k: diff --git a/lib/sqlalchemy/util/deprecations.py b/lib/sqlalchemy/util/deprecations.py index e6612f075..945323530 100644 --- a/lib/sqlalchemy/util/deprecations.py +++ b/lib/sqlalchemy/util/deprecations.py @@ -8,10 +8,12 @@ """Helpers related to deprecation of functions, methods, classes, other functionality.""" -from .. import exc -import warnings import re +import textwrap +import warnings + from .langhelpers import decorator +from .. import exc def warn_deprecated(msg, stacklevel=3): @@ -127,9 +129,6 @@ def _decorate_with_warning(func, wtype, message, docstring_header=None): return decorated -import textwrap - - def _dedent_docstring(text): split_text = text.split("\n", 1) if len(split_text) == 1: diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py index 16b814ea6..0bb7bc404 100644 --- a/lib/sqlalchemy/util/langhelpers.py +++ b/lib/sqlalchemy/util/langhelpers.py @@ -9,6 +9,8 @@ modules, classes, hierarchies, attributes, functions, and methods. """ +from functools import update_wrapper +import hashlib import inspect import itertools import operator @@ -16,11 +18,10 @@ import re import sys import types import warnings -from functools import update_wrapper -from .. import exc -import hashlib -from . import compat + from . import _collections +from . import compat +from .. import exc def md5_hex(x): diff --git a/lib/sqlalchemy/util/queue.py b/lib/sqlalchemy/util/queue.py index ad1f9db34..3baff80fb 100644 --- a/lib/sqlalchemy/util/queue.py +++ b/lib/sqlalchemy/util/queue.py @@ -20,6 +20,7 @@ condition. from collections import deque from time import time as _time + from .compat import threading diff --git a/lib/sqlalchemy/util/topological.py b/lib/sqlalchemy/util/topological.py index 95391c31b..fe454df6b 100644 --- a/lib/sqlalchemy/util/topological.py +++ b/lib/sqlalchemy/util/topological.py @@ -7,8 +7,8 @@ """Topological sorting algorithms.""" -from ..exc import CircularDependencyError from .. import util +from ..exc import CircularDependencyError __all__ = ["sort", "sort_as_subsets", "find_cycles"] |