summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHong Minhee <minhee@dahlia.kr>2013-04-11 05:34:07 +0900
committerHong Minhee <minhee@dahlia.kr>2013-04-11 05:34:07 +0900
commit3c780af24f0e69155edc946e114cbdd1839fb488 (patch)
tree10dfe56e35db0e347c5705d20f1d034149c80d5e
parent45f013170c345a987efafc6d23b36035a124a8ce (diff)
downloadalembic-3c780af24f0e69155edc946e114cbdd1839fb488.tar.gz
Use relative imports
This change does not affect to any behaviors of it, but is just stylish improvements to remove 2to3 dependency. 1. All old-style absolute imports e.g. `from alembic import util` are replaced by relative imports e.g. `from . import util`. 2. Use of proxy modules (`alembic.op` and `alembic.context`) are replaced by deferred import patterns, but these modules still exist. 3. Imports are grouped by 3 types of their origins (standard libraries, third party libraries, and local modules) and blank lines are put between each group of imports. This style is from PEP 8: <http://www.python.org/dev/peps/pep-0008/#imports> For stylish change, I can't do that much, because it was intentionally done as it was by the author. If the author will allow me to make it more closer to PEP 8 style, I will do that as well.
-rw-r--r--alembic/__init__.py4
-rw-r--r--alembic/autogenerate.py7
-rw-r--r--alembic/command.py7
-rw-r--r--alembic/config.py3
-rw-r--r--alembic/context.py4
-rw-r--r--alembic/ddl/__init__.py4
-rw-r--r--alembic/ddl/base.py3
-rw-r--r--alembic/ddl/impl.py8
-rw-r--r--alembic/ddl/mssql.py9
-rw-r--r--alembic/ddl/mysql.py11
-rw-r--r--alembic/ddl/oracle.py7
-rw-r--r--alembic/ddl/postgresql.py6
-rw-r--r--alembic/ddl/sqlite.py6
-rw-r--r--alembic/environment.py16
-rw-r--r--alembic/migration.py11
-rw-r--r--alembic/op.py4
-rw-r--r--alembic/operations.py14
-rw-r--r--alembic/script.py7
-rw-r--r--alembic/util.py5
-rw-r--r--tests/__init__.py30
-rw-r--r--tests/test_autogenerate.py15
-rw-r--r--tests/test_bulk_insert.py6
-rw-r--r--tests/test_config.py6
-rw-r--r--tests/test_mssql.py11
-rw-r--r--tests/test_mysql.py5
-rw-r--r--tests/test_offline_environment.py7
-rw-r--r--tests/test_op.py7
-rw-r--r--tests/test_oracle.py11
-rw-r--r--tests/test_postgresql.py9
-rw-r--r--tests/test_sql_script.py5
-rw-r--r--tests/test_versioning.py12
31 files changed, 153 insertions, 107 deletions
diff --git a/alembic/__init__.py b/alembic/__init__.py
index eb81028..0625c43 100644
--- a/alembic/__init__.py
+++ b/alembic/__init__.py
@@ -5,6 +5,6 @@ __version__ = '0.5.0'
package_dir = path.abspath(path.dirname(__file__))
-from alembic import op
-from alembic import context
+from . import op
+from . import context
diff --git a/alembic/autogenerate.py b/alembic/autogenerate.py
index 91ddcfc..c54d788 100644
--- a/alembic/autogenerate.py
+++ b/alembic/autogenerate.py
@@ -1,13 +1,14 @@
"""Provide the 'autogenerate' feature which can produce migration operations
automatically."""
-from alembic import util
+import logging
+import re
+
+from . import util
from sqlalchemy.engine.reflection import Inspector
from sqlalchemy.util import OrderedSet
from sqlalchemy import schema as sa_schema, types as sqltypes
-import re
-import logging
log = logging.getLogger(__name__)
###################################################
diff --git a/alembic/command.py b/alembic/command.py
index aad9691..ddaf00a 100644
--- a/alembic/command.py
+++ b/alembic/command.py
@@ -1,8 +1,9 @@
-from alembic.script import ScriptDirectory
-from alembic.environment import EnvironmentContext
-from alembic import util, autogenerate as autogen
import os
+from .script import ScriptDirectory
+from .environment import EnvironmentContext
+from . import util, autogenerate as autogen
+
def list_templates(config):
"""List available templates"""
diff --git a/alembic/config.py b/alembic/config.py
index 822df8c..cf667b9 100644
--- a/alembic/config.py
+++ b/alembic/config.py
@@ -1,10 +1,11 @@
-from alembic import command, util, package_dir
from argparse import ArgumentParser
import ConfigParser
import inspect
import os
import sys
+from . import command, util, package_dir
+
class Config(object):
"""Represent an Alembic configuration.
diff --git a/alembic/context.py b/alembic/context.py
index 51b38ff..9c0f676 100644
--- a/alembic/context.py
+++ b/alembic/context.py
@@ -1,5 +1,5 @@
-from alembic.environment import EnvironmentContext
-from alembic import util
+from .environment import EnvironmentContext
+from . import util
# create proxy functions for
# each method on the EnvironmentContext class.
diff --git a/alembic/ddl/__init__.py b/alembic/ddl/__init__.py
index e252fae..bfc8ab4 100644
--- a/alembic/ddl/__init__.py
+++ b/alembic/ddl/__init__.py
@@ -1,2 +1,2 @@
-import postgresql, mysql, sqlite, mssql, oracle
-from impl import DefaultImpl \ No newline at end of file
+from . import postgresql, mysql, sqlite, mssql, oracle
+from .impl import DefaultImpl
diff --git a/alembic/ddl/base.py b/alembic/ddl/base.py
index 053cf45..5d703a5 100644
--- a/alembic/ddl/base.py
+++ b/alembic/ddl/base.py
@@ -1,9 +1,10 @@
import functools
+
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.schema import DDLElement, Column
from sqlalchemy import Integer
-
from sqlalchemy import types as sqltypes
+
class AlterTable(DDLElement):
"""Represent an ALTER TABLE statement.
diff --git a/alembic/ddl/impl.py b/alembic/ddl/impl.py
index 60cf4d5..ce24864 100644
--- a/alembic/ddl/impl.py
+++ b/alembic/ddl/impl.py
@@ -1,11 +1,11 @@
-from sqlalchemy import text
from sqlalchemy.sql.expression import _BindParamClause
from sqlalchemy.ext.compiler import compiles
-from sqlalchemy import schema
-from alembic.ddl import base
-from alembic import util
+from sqlalchemy import schema, text
from sqlalchemy import types as sqltypes
+from .. import util
+from . import base
+
class ImplMeta(type):
def __init__(cls, classname, bases, dict_):
newtype = type.__init__(cls, classname, bases, dict_)
diff --git a/alembic/ddl/mssql.py b/alembic/ddl/mssql.py
index 0f2a759..4125251 100644
--- a/alembic/ddl/mssql.py
+++ b/alembic/ddl/mssql.py
@@ -1,9 +1,10 @@
-from alembic.ddl.impl import DefaultImpl
-from alembic.ddl.base import alter_table, AddColumn, ColumnName, \
+from sqlalchemy.ext.compiler import compiles
+
+from .. import util
+from .impl import DefaultImpl
+from .base import alter_table, AddColumn, ColumnName, \
format_table_name, format_column_name, ColumnNullable, alter_column,\
format_server_default,ColumnDefault, format_type, ColumnType
-from alembic import util
-from sqlalchemy.ext.compiler import compiles
class MSSQLImpl(DefaultImpl):
__dialect__ = 'mssql'
diff --git a/alembic/ddl/mysql.py b/alembic/ddl/mysql.py
index 04d8473..d04727e 100644
--- a/alembic/ddl/mysql.py
+++ b/alembic/ddl/mysql.py
@@ -1,12 +1,13 @@
-from alembic.ddl.impl import DefaultImpl
-from alembic.ddl.base import ColumnNullable, ColumnName, ColumnDefault, \
- ColumnType, AlterColumn
from sqlalchemy.ext.compiler import compiles
-from alembic.ddl.base import alter_table
-from alembic import util
from sqlalchemy import types as sqltypes
from sqlalchemy import schema
+from .impl import DefaultImpl
+from .base import ColumnNullable, ColumnName, ColumnDefault, \
+ ColumnType, AlterColumn
+from .base import alter_table
+from .. import util
+
class MySQLImpl(DefaultImpl):
__dialect__ = 'mysql'
diff --git a/alembic/ddl/oracle.py b/alembic/ddl/oracle.py
index c87e130..28eb246 100644
--- a/alembic/ddl/oracle.py
+++ b/alembic/ddl/oracle.py
@@ -1,8 +1,9 @@
-from alembic.ddl.impl import DefaultImpl
-from alembic.ddl.base import alter_table, AddColumn, ColumnName, \
+from sqlalchemy.ext.compiler import compiles
+
+from .impl import DefaultImpl
+from .base import alter_table, AddColumn, ColumnName, \
format_column_name, ColumnNullable, \
format_server_default,ColumnDefault, format_type, ColumnType
-from sqlalchemy.ext.compiler import compiles
class OracleImpl(DefaultImpl):
__dialect__ = 'oracle'
diff --git a/alembic/ddl/postgresql.py b/alembic/ddl/postgresql.py
index fce467b..d63958b 100644
--- a/alembic/ddl/postgresql.py
+++ b/alembic/ddl/postgresql.py
@@ -1,7 +1,9 @@
-from alembic.ddl.impl import DefaultImpl
+import re
+
from sqlalchemy import types as sqltypes
+
from .base import compiles, alter_table, format_table_name, RenameTable
-import re
+from .impl import DefaultImpl
class PostgresqlImpl(DefaultImpl):
__dialect__ = 'postgresql'
diff --git a/alembic/ddl/sqlite.py b/alembic/ddl/sqlite.py
index b08e60f..8afc993 100644
--- a/alembic/ddl/sqlite.py
+++ b/alembic/ddl/sqlite.py
@@ -1,8 +1,8 @@
-from alembic.ddl.impl import DefaultImpl
-from alembic import util
+from .. import util
+from .impl import DefaultImpl
#from sqlalchemy.ext.compiler import compiles
-#from alembic.ddl.base import AddColumn, alter_table
+#from .base import AddColumn, alter_table
#from sqlalchemy.schema import AddConstraint
class SQLiteImpl(DefaultImpl):
diff --git a/alembic/environment.py b/alembic/environment.py
index 584b6f0..1808145 100644
--- a/alembic/environment.py
+++ b/alembic/environment.py
@@ -1,9 +1,9 @@
-import alembic
-from alembic.operations import Operations
-from alembic.migration import MigrationContext
-from alembic import util
from contextlib import contextmanager
+from .operations import Operations
+from .migration import MigrationContext
+from . import util
+
class EnvironmentContext(object):
"""Represent the state made available to an ``env.py`` script.
@@ -99,12 +99,14 @@ class EnvironmentContext(object):
be made available as ``from alembic import context``.
"""
- alembic.context._install_proxy(self)
+ from .context import _install_proxy
+ _install_proxy(self)
return self
def __exit__(self, *arg, **kw):
- alembic.context._remove_proxy()
- alembic.op._remove_proxy()
+ from . import context, op
+ context._remove_proxy()
+ op._remove_proxy()
def is_offline_mode(self):
"""Return True if the current migrations environment
diff --git a/alembic/migration.py b/alembic/migration.py
index b336ec9..82fee9c 100644
--- a/alembic/migration.py
+++ b/alembic/migration.py
@@ -1,12 +1,13 @@
-from alembic import util
+import codecs
+import logging
+import sys
+
from sqlalchemy import MetaData, Table, Column, String, literal_column
from sqlalchemy import create_engine
-from alembic import ddl
-import sys
from sqlalchemy.engine import url as sqla_url
-import codecs
-import logging
+from . import ddl, util
+
log = logging.getLogger(__name__)
class MigrationContext(object):
diff --git a/alembic/op.py b/alembic/op.py
index 6934ccc..8e5f777 100644
--- a/alembic/op.py
+++ b/alembic/op.py
@@ -1,5 +1,5 @@
-from alembic.operations import Operations
-from alembic import util
+from .operations import Operations
+from . import util
# create proxy functions for
# each method on the Operations class.
diff --git a/alembic/operations.py b/alembic/operations.py
index 1e21bc7..1b29a75 100644
--- a/alembic/operations.py
+++ b/alembic/operations.py
@@ -1,9 +1,10 @@
-from alembic import util
-from alembic.ddl import impl
+from contextlib import contextmanager
+
from sqlalchemy.types import NULLTYPE, Integer
from sqlalchemy import schema as sa_schema
-from contextlib import contextmanager
-import alembic
+
+from . import util
+from .ddl import impl
__all__ = ('Operations',)
@@ -45,10 +46,11 @@ class Operations(object):
@classmethod
@contextmanager
def context(cls, migration_context):
+ from .op import _install_proxy, _remove_proxy
op = Operations(migration_context)
- alembic.op._install_proxy(op)
+ _install_proxy(op)
yield op
- alembic.op._remove_proxy()
+ _remove_proxy()
def _primary_key_constraint(self, name, table_name, cols, schema=None):
diff --git a/alembic/script.py b/alembic/script.py
index 2fbccae..53dbb2e 100644
--- a/alembic/script.py
+++ b/alembic/script.py
@@ -1,10 +1,11 @@
from __future__ import with_statement
+import datetime
import os
-from alembic import util
-import shutil
import re
-import datetime
+import shutil
+
+from . import util
_rev_file = re.compile(r'.*\.py$')
_legacy_rev = re.compile(r'([a-f0-9]+)\.py$')
diff --git a/alembic/util.py b/alembic/util.py
index 7f06f4a..826247f 100644
--- a/alembic/util.py
+++ b/alembic/util.py
@@ -1,16 +1,17 @@
from __future__ import with_statement
-from mako.template import Template
import sys
import os
import textwrap
-from sqlalchemy.engine import url
import imp
import warnings
import re
import inspect
import uuid
+from mako.template import Template
+from sqlalchemy.engine import url
+
class CommandError(Exception):
pass
diff --git a/tests/__init__.py b/tests/__init__.py
index 4d9a5b9..83d5825 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,23 +1,33 @@
from __future__ import with_statement
-from sqlalchemy.engine import default
-import shutil
+try:
+ import builtins
+except ImportError:
+ import __builtin__ as builtins
+try:
+ import configparser
+except ImportError:
+ import ConfigParser as configparser
+import io
import os
+import re
+import shutil
+import StringIO
+import textwrap
+
+from nose import SkipTest
+from sqlalchemy.engine import default
from sqlalchemy import create_engine, text
+from sqlalchemy.exc import SQLAlchemyError
+from sqlalchemy.util import decorator
+
+import alembic
from alembic import util
from alembic.migration import MigrationContext
from alembic.environment import EnvironmentContext
-import re
-import alembic
from alembic.operations import Operations
from alembic.script import ScriptDirectory, Script
-import StringIO
from alembic.ddl.impl import _impls
-import ConfigParser
-from nose import SkipTest
-from sqlalchemy.exc import SQLAlchemyError
-from sqlalchemy.util import decorator
-import textwrap
staging_directory = os.path.join(os.path.dirname(__file__), 'scratch')
files_directory = os.path.join(os.path.dirname(__file__), 'files')
diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py
index 8f2d116..1519d82 100644
--- a/tests/test_autogenerate.py
+++ b/tests/test_autogenerate.py
@@ -1,3 +1,8 @@
+
+import re
+import sys
+from unittest import TestCase
+
from sqlalchemy import MetaData, Column, Table, Integer, String, Text, \
Numeric, CHAR, ForeignKey, DATETIME, \
TypeDecorator, CheckConstraint, Unicode, Enum,\
@@ -7,14 +12,12 @@ from sqlalchemy.types import NULLTYPE, TIMESTAMP
from sqlalchemy.dialects import mysql
from sqlalchemy.engine.reflection import Inspector
from sqlalchemy.sql import and_, column, literal_column
-from alembic import autogenerate
+
+from alembic import autogenerate, util
from alembic.migration import MigrationContext
-from unittest import TestCase
-from tests import staging_env, sqlite_db, clear_staging_env, eq_, \
+from . import staging_env, sqlite_db, clear_staging_env, eq_, \
eq_ignore_whitespace, requires_07, db_for_dialect
-from alembic import util
-import re
-import sys
+
py3k = sys.version_info >= (3, )
def _model_one(schema=None):
diff --git a/tests/test_bulk_insert.py b/tests/test_bulk_insert.py
index d6c37a3..a3fe28c 100644
--- a/tests/test_bulk_insert.py
+++ b/tests/test_bulk_insert.py
@@ -1,10 +1,12 @@
-from tests import op_fixture, eq_, assert_raises_message
+from unittest import TestCase
+
from alembic import op
from sqlalchemy import Integer, String
from sqlalchemy.sql import table, column
-from unittest import TestCase
from sqlalchemy import Table, Column, MetaData
+from . import op_fixture, eq_, assert_raises_message
+
def _table_fixture(dialect, as_sql):
context = op_fixture(dialect, as_sql)
t1 = table("ins_table",
diff --git a/tests/test_config.py b/tests/test_config.py
index 0b6df76..9610600 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -1,9 +1,9 @@
-from alembic import config
+from alembic import config, util
from alembic.migration import MigrationContext
from alembic.operations import Operations
-from alembic import util
from alembic.script import ScriptDirectory
-from tests import eq_, capture_db, assert_raises_message
+
+from . import eq_, capture_db, assert_raises_message
def test_config_no_file_main_option():
cfg = config.Config()
diff --git a/tests/test_mssql.py b/tests/test_mssql.py
index 66cdb9a..398d228 100644
--- a/tests/test_mssql.py
+++ b/tests/test_mssql.py
@@ -1,11 +1,14 @@
"""Test op functions against MSSQL."""
from __future__ import with_statement
-from tests import op_fixture, capture_context_buffer, \
+
+from unittest import TestCase
+
+from sqlalchemy import Integer, Column
+
+from alembic import op, command, util
+from . import op_fixture, capture_context_buffer, \
_no_sql_testing_config, assert_raises_message, staging_env, \
three_rev_fixture, clear_staging_env
-from alembic import op, command, util
-from sqlalchemy import Integer, Column
-from unittest import TestCase
class FullEnvironmentTests(TestCase):
diff --git a/tests/test_mysql.py b/tests/test_mysql.py
index 246181a..8ffa2a5 100644
--- a/tests/test_mysql.py
+++ b/tests/test_mysql.py
@@ -1,7 +1,8 @@
-from tests import op_fixture, assert_raises_message
-from alembic import op, util
from sqlalchemy import Integer, func
+from alembic import op, util
+from . import op_fixture, assert_raises_message
+
def test_rename_column():
context = op_fixture('mysql')
op.alter_column('t1', 'c1', new_column_name="c2", existing_type=Integer)
diff --git a/tests/test_offline_environment.py b/tests/test_offline_environment.py
index c5e5c59..4a727d3 100644
--- a/tests/test_offline_environment.py
+++ b/tests/test_offline_environment.py
@@ -1,9 +1,10 @@
-from tests import clear_staging_env, staging_env, \
+from unittest import TestCase
+
+from alembic import command, util
+from . import clear_staging_env, staging_env, \
_no_sql_testing_config, \
three_rev_fixture, env_file_fixture,\
assert_raises_message
-from alembic import command, util
-from unittest import TestCase
class OfflineEnvironmentTest(TestCase):
diff --git a/tests/test_op.py b/tests/test_op.py
index 3e91472..9d6a2d2 100644
--- a/tests/test_op.py
+++ b/tests/test_op.py
@@ -1,12 +1,13 @@
"""Test against the builders in the op.* module."""
-from tests import op_fixture, assert_raises_message
-from alembic import op
from sqlalchemy import Integer, Column, ForeignKey, \
Table, String, Boolean
from sqlalchemy.sql import column, func
-
from sqlalchemy import event
+
+from alembic import op
+from . import op_fixture, assert_raises_message
+
@event.listens_for(Table, "after_parent_attach")
def _add_cols(table, metadata):
if table.name == "tbl_with_auto_appended_column":
diff --git a/tests/test_oracle.py b/tests/test_oracle.py
index 87a3e4f..ae9677d 100644
--- a/tests/test_oracle.py
+++ b/tests/test_oracle.py
@@ -1,11 +1,14 @@
"""Test op functions against ORACLE."""
from __future__ import with_statement
-from tests import op_fixture, capture_context_buffer, \
+
+from unittest import TestCase
+
+from sqlalchemy import Integer, Column
+
+from alembic import op, command
+from . import op_fixture, capture_context_buffer, \
_no_sql_testing_config, staging_env, \
three_rev_fixture, clear_staging_env
-from alembic import op, command
-from sqlalchemy import Integer, Column
-from unittest import TestCase
class FullEnvironmentTests(TestCase):
diff --git a/tests/test_postgresql.py b/tests/test_postgresql.py
index 3adaa2b..3c0bb39 100644
--- a/tests/test_postgresql.py
+++ b/tests/test_postgresql.py
@@ -1,13 +1,16 @@
from __future__ import with_statement
-from tests import db_for_dialect, eq_, staging_env, \
- clear_staging_env, _no_sql_testing_config,\
- capture_context_buffer, requires_07, write_script
+
from unittest import TestCase
+
from sqlalchemy import DateTime, MetaData, Table, Column, text, Integer, String
from sqlalchemy.engine.reflection import Inspector
+
from alembic import command, util
from alembic.migration import MigrationContext
from alembic.script import ScriptDirectory
+from . import db_for_dialect, eq_, staging_env, \
+ clear_staging_env, _no_sql_testing_config,\
+ capture_context_buffer, requires_07, write_script
class PGOfflineEnumTest(TestCase):
@requires_07
diff --git a/tests/test_sql_script.py b/tests/test_sql_script.py
index e5a41e0..6cea44c 100644
--- a/tests/test_sql_script.py
+++ b/tests/test_sql_script.py
@@ -2,12 +2,13 @@
from __future__ import with_statement, unicode_literals
-from tests import clear_staging_env, staging_env, \
+import unittest
+
+from . import clear_staging_env, staging_env, \
_no_sql_testing_config, capture_context_buffer, \
three_rev_fixture, write_script
from alembic import command, util
from alembic.script import ScriptDirectory
-import unittest
cfg = None
a, b, c = None, None, None
diff --git a/tests/test_versioning.py b/tests/test_versioning.py
index fdf400f..84dd777 100644
--- a/tests/test_versioning.py
+++ b/tests/test_versioning.py
@@ -1,11 +1,13 @@
from __future__ import with_statement
-from tests import clear_staging_env, staging_env, \
- _sqlite_testing_config, sqlite_db, eq_, write_script, \
- assert_raises_message
+
+import os
+import unittest
+
from alembic import command, util
from alembic.script import ScriptDirectory
-import unittest
-import os
+from . import clear_staging_env, staging_env, \
+ _sqlite_testing_config, sqlite_db, eq_, write_script, \
+ assert_raises_message
class VersioningTest(unittest.TestCase):
def test_001_revisions(self):