"""
from __future__ import absolute_import
-from ..util.compat import py33
+from ..util.compat import py3k
-if py33:
+if py3k:
from unittest.mock import MagicMock, Mock, call, patch, ANY
else:
try:
def load_file_as_module(name):
path = os.path.join(os.path.dirname(bootstrap_file), "%s.py" % name)
- if sys.version_info >= (3, 3):
+ if sys.version_info.major >= 3:
from importlib import machinery
mod = machinery.SourceFileLoader(name, path).load_module()
else:
from nose.plugins import Plugin
fixtures = None
-py3k = sys.version_info >= (3, 0)
+py3k = sys.version_info.major >= 3
class NoseSQLAlchemy(Plugin):
import sys
import re
-py3k = sys.version_info >= (3, 0)
+py3k = sys.version_info.major >= 3
if py3k:
import configparser
import sys
-py3k = sys.version_info >= (3, 0)
+py3k = sys.version_info.major >= 3
import pytest
import argparse
import io
import sys
-if sys.version_info < (2, 6):
- raise NotImplementedError("Python 2.6 or greater is required.")
+if sys.version_info < (2, 7):
+ raise NotImplementedError("Python 2.7 or greater is required.")
py27 = sys.version_info >= (2, 7)
-py2k = sys.version_info < (3, 0)
-py3k = sys.version_info >= (3, 0)
-py33 = sys.version_info >= (3, 3)
+py2k = sys.version_info.major < 3
+py3k = sys.version_info.major >= 3
py35 = sys.version_info >= (3, 5)
py36 = sys.version_info >= (3, 6)
spec.loader.exec_module(module)
return module
-elif py33:
+elif py3k:
import importlib.machinery
def load_module_py(module_id, path):
del sys.modules[module_id]
return module
-if py33:
+if py3k:
def get_bytecode_suffixes():
try:
return importlib.machinery.BYTECODE_SUFFIXES
def get_current_bytecode_suffixes():
if py35:
suffixes = importlib.machinery.BYTECODE_SUFFIXES
- elif py33:
+ else:
if sys.flags.optimize:
suffixes = importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES
else:
suffixes = importlib.machinery.BYTECODE_SUFFIXES
- else:
- if sys.flags.optimize:
- suffixes = [".pyo"]
- else:
- suffixes = [".pyc"]
return suffixes
SQLAlchemy as of version **0.7.3**, however more features are available with
newer versions such as the 0.9 or 1.0 series.
-Alembic supports Python versions 2.6 and above.
+Alembic supports Python versions 2.7, 3.4 and above.
+
+.. versionchanged:: 1.0.0 Support for Python 2.6 and 3.3 was dropped.
Community
=========
--- /dev/null
+.. change::
+ :tags: feature, general
+ :tickets: 491
+
+ For Alembic 1.0, Python 2.6 / 3.3 support is being dropped, allowing a
+ fixed setup.py to be built as well as universal wheels. Pull request
+ courtesy Hugo.
+
+
+
'python-dateutil'
]
-try:
- import argparse
-except ImportError:
- requires.append('argparse')
-
class PyTest(TestCommand):
user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")]
version=VERSION,
description="A database migration tool for SQLAlchemy.",
long_description=open(readme).read(),
+ python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Console',
'Intended Audience :: Developers',
'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Database :: Front-Ends',
ForeignKeyConstraint
from alembic.testing import eq_
-py3k = sys.version_info >= (3, )
+py3k = sys.version_info.major >= 3
from ._autogen_fixtures import AutogenFixtureTest