pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/databases/py-alembic py-alembic: updated to 1.7.5



details:   https://anonhg.NetBSD.org/pkgsrc/rev/c8adb504707d
branches:  trunk
changeset: 769405:c8adb504707d
user:      adam <adam%pkgsrc.org@localhost>
date:      Sun Nov 14 18:42:37 2021 +0000

description:
py-alembic: updated to 1.7.5

1.7.5
Released: November 11, 2021
bug

[bug] [tests]
Adjustments to the test suite to accommodate for error message changes occurring as of SQLAlchemy 1.4.27.
1.7.4
Released: October 6, 2021
bug

[bug] [regression]
Fixed a regression that prevented the use of post write hooks on python version lower than 3.9
[bug] [environment]
Fixed issue where the MigrationContext.autocommit_block() feature would fail to function when using a SQLAlchemy engine using 2.0 future mode.

1.7.3
Released: September 17, 2021
bug

[bug] [mypy]
Fixed type annotations for the “constraint_name” argument of operations create_primary_key(), create_foreign_key(). Pull request courtesy TilmanK.

1.7.2
Released: September 17, 2021
bug

[bug] [typing]
Added missing attributes from context stubs.

[bug] [mypy]
Fixed an import in one of the .pyi files that was triggering an assertion error in some versions of mypy.

[bug] [ops] [regression]
Fixed issue where registration of custom ops was prone to failure due to the registration process running exec() on generated code that as of the 1.7 series includes pep-484 annotations, which in the 
case of end user code would result in name resolution errors when the exec occurs. The logic in question has been altered so that the annotations are rendered as forward references so that the exec() 
can proceed.

1.7.1
Released: August 30, 2021
bug

[bug] [installation]
Corrected “universal wheel” directive in setup.cfg so that building a wheel does not target Python 2. The PyPi files index for 1.7.0 was corrected manually. Pull request courtesy layday.

[bug] [pep484]
Fixed issue in generated .pyi files where default values for Optional arguments were missing, thereby causing mypy to consider them as required.

[bug] [batch] [regression]
Fixed regression in batch mode due to 883 where the “auto” mode of batch would fail to accommodate any additional migration directives beyond encountering an add_column() directive, due to a 
mis-application of the conditional logic that was added as part of this change, leading to “recreate” mode not being used in cases where it is required for SQLite such as for unique constraints.

1.7.0
Released: August 30, 2021
changed

[changed] [installation]
Alembic 1.7 now supports Python 3.6 and above; support for prior versions including Python 2.7 has been dropped.
[changed] [installation]
Make the python-dateutil library an optional dependency. This library is only required if the timezone option is used in the Alembic configuration. An extra require named tz is available with pip 
install alembic[tz] to install it.

[changed] [installation]
The dependency on pkg_resources which is part of setuptools has been removed, so there is no longer any runtime dependency on setuptools. The functionality has been replaced with importlib.metadata 
and importlib.resources which are both part of Python std.lib, or via pypy dependency importlib-metadata for Python version < 3.8 and importlib-resources for Python version < 3.9 (while 
importlib.resources was added to Python in 3.7, it did not include the “files” API until 3.9).

feature

[feature] [environment]
Enhance version_locations parsing to handle paths containing spaces. The new configuration option version_path_separator specifies the character to use when splitting the version_locations string. 
The default for new configurations is version_path_separator = os, which will use os.pathsep (e.g., ; on Windows).

[feature] [tests]
Created a “test suite” similar to the one for SQLAlchemy, allowing developers of third-party dialects to test their code against a set of Alembic tests that have been specially selected to exercise 
back-end database operations. At the time of release, third-party dialects that have adopted the Alembic test suite to verify compatibility include CockroachDB and SAP ASE (Sybase).

[feature] [general]
pep-484 type annotations have been added throughout the library. Additionally, stub .pyi files have been added for the “dynamically” generated Alembic modules alembic.op and alembic.config, which 
include complete function signatures and docstrings, so that the functions in these namespaces will have both IDE support (vscode, pycharm, etc) as well as support for typing tools like Mypy. The 
files themselves are statically generated from their source functions within the source tree.
usecase

[usecase] [batch]
Named CHECK constraints are now supported by batch mode, and will automatically be part of the recreated table assuming they are named. They also can be explicitly dropped using op.drop_constraint(). 
For “unnamed” CHECK constraints, these are still skipped as they cannot be distinguished from the CHECK constraints that are generated by the Boolean and Enum datatypes.
Note that this change may require adjustments to migrations that drop or rename columns which feature an associated named check constraint, such that an additional op.drop_constraint() directive 
should be added for that named constraint as there will no longer be an associated column for it; for the Boolean and Enum datatypes, an existing_type keyword may be passed to 
BatchOperations.drop_constraint as well.
See also Changing the Type of Boolean, Enum and other implicit CHECK datatypes
Including CHECK constraints

bug

[bug] [operations]
Fixed regression due to 803 where the .info and .comment attributes of Table would be lost inside of the DropTableOp class, which when “reversed” into a CreateTableOp would then have lost these 
elements. Pull request courtesy Nicolas CANIART.

[bug] [batch] [sqlite]
Batch “auto” mode will now select for “recreate” if the add_column() operation is used on SQLite, and the column itself meets the criteria for SQLite where ADD COLUMN is not allowed, in this case a 
functional or parenthesized SQL expression or a Computed (i.e. generated) column.

[bug] [commands]
Re-implemented the python-editor dependency as a small internal function to avoid the need for external dependencies.

[bug] [postgresql]
Fixed issue where usage of the PostgreSQL postgresql_include option within a Operations.create_index() would raise a KeyError, as the additional column(s) need to be added to the table object used by 
the construct internally. The issue is equivalent to the SQL Server issue fixed in 513. Pull request courtesy Steven Bronson.

1.6.5
Released: May 27, 2021
bug

[bug] [autogenerate]
Fixed issue where dialect-specific keyword arguments within the DropIndex operation directive would not render in the autogenerated Python code. As support was improved for adding dialect specific 
arguments to directives as part of 803, in particular arguments such as “postgresql_concurrently” which apply to the actual create/drop of the index, support was needed for these to render even in a 
drop index operation. Pull request courtesy Jet Zhou.

1.6.4
Released: May 24, 2021
bug

[bug] [op directives] [regression]
Fixed regression caused by just fixed 844 that scaled back the filter for unique=True/index=True too far such that these directives no longer worked for the op.create_table() op, this has been fixed.

1.6.3
Released: May 21, 2021
bug

[bug] [autogenerate] [regression]
Fixed 1.6-series regression where UniqueConstraint and to a lesser extent Index objects would be doubled up in the generated model when the unique=True / index=True flags were used.

[bug] [autogenerate]
Fixed a bug where paths defined in post-write hook options would be wrongly escaped in non posix environment (Windows).

[bug] [regression] [versioning]
Fixed regression where a revision file that contained its own down revision as a dependency would cause an endless loop in the traversal logic.

1.6.2
Released: May 6, 2021
bug

[bug] [regression] [versioning]
Fixed additional regression nearly the same as that of 838 just released in 1.6.1 but within a slightly different codepath, where “alembic downgrade head” (or equivalent) would fail instead of 
iterating no revisions.

1.6.1
Released: May 6, 2021
bug

[bug] [regression] [versioning]
Fixed regression in new revisioning traversal where “alembic downgrade base” would fail if the database itself were clean and unversioned; additionally repairs the case where downgrade would fail if 
attempting to downgrade to the current head that is already present.

1.6.0
Released: May 3, 2021
feature

[feature] [autogenerate]
Fix the documentation regarding the default command-line argument position of the revision script filename within the post-write hook arguments. Implement a REVISION_SCRIPT_FILENAME token, enabling 
the position to be changed. Switch from str.split() to shlex.split() for more robust command-line argument parsing.

[feature]
Implement a .cwd (current working directory) suboption for post-write hooks (of type console_scripts). This is useful for tools like pre-commit, which rely on the working directory to locate the 
necessary config files. Add pre-commit as an example to the documentation. Minor change: rename some variables from ticket 819 to improve readability.

bug

[bug] [autogenerate]
Refactored the implementation of MigrateOperation constructs such as CreateIndexOp, CreateTableOp, etc. so that they no longer rely upon maintaining a persistent version of each schema object 
internally; instead, the state variables of each operation object will be used to produce the corresponding construct when the operation is invoked. The rationale is so that environments which make 
use of operation-manipulation schemes such as those those discussed in Fine-Grained Autogenerate Generation with Rewriters are better supported, allowing end-user code to manipulate the public 
attributes of these objects which will then be expressed in the final output, an example is some_create_index_op.kw["postgresql_concurrently"] = True.
Previously, these objects when generated from autogenerate would typically hold onto the original, reflected element internally without honoring the other state variables of each construct, 
preventing the public API from working.

[bug] [environment]
Fixed regression caused by the SQLAlchemy 1.4/2.0 compatibility switch where calling .rollback() or .commit() explicitly within the context.begin_transaction() context manager would cause it to fail 
when the block ended, as it did not expect that the transaction was manually closed.

[bug] [autogenerate]
Improved the rendering of op.add_column() operations when adding multiple columns to an existing table, so that the order of these statements matches the order in which the columns were declared in 
the application’s table metadata. Previously the added columns were being sorted alphabetically.

[bug] [versioning]
The algorithm used for calculating downgrades/upgrades/iterating revisions has been rewritten, to resolve ongoing issues of branches not being handled consistently particularly within downgrade 
operations, as well as for overall clarity and maintainability. This change includes that a deprecation warning is emitted if an ambiguous command such as “downgrade -1” when multiple heads are 
present is given.
In particular, the change implements a long-requested use case of allowing downgrades of a single branch to a branchpoint.
Huge thanks to Simon Bowly for their impressive efforts in successfully tackling this very difficult problem.

[bug] [batch] ¶
Added missing batch_op.create_table_comment(), batch_op.drop_table_comment() directives to batch ops.

diffstat:

 databases/py-alembic/Makefile |  17 +++++++++-----
 databases/py-alembic/PLIST    |  50 ++++++++++++++++++++++++++++++++++++++++++-
 databases/py-alembic/distinfo |   8 +++---
 3 files changed, 64 insertions(+), 11 deletions(-)

diffs (158 lines):

diff -r 78fe93b73137 -r c8adb504707d databases/py-alembic/Makefile
--- a/databases/py-alembic/Makefile     Sun Nov 14 18:42:27 2021 +0000
+++ b/databases/py-alembic/Makefile     Sun Nov 14 18:42:37 2021 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.27 2021/01/26 11:20:07 adam Exp $
+# $NetBSD: Makefile,v 1.28 2021/11/14 18:42:37 adam Exp $
 
-DISTNAME=      alembic-1.5.2
+DISTNAME=      alembic-1.7.5
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    databases python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=a/alembic/}
@@ -11,22 +11,27 @@
 LICENSE=       mit
 
 DEPENDS+=      ${PYPKGPREFIX}-dateutil-[0-9]*:../../time/py-dateutil
-DEPENDS+=      ${PYPKGPREFIX}-editor>=0.3:../../editors/py-editor
 DEPENDS+=      ${PYPKGPREFIX}-mako-[0-9]*:../../devel/py-mako
 DEPENDS+=      ${PYPKGPREFIX}-sqlalchemy>=1.3.0:../../databases/py-sqlalchemy
 TEST_DEPENDS+= ${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock
+TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test
 
 USE_LANGUAGES= # none
 
-PYTHON_VERSIONED_DEPENDENCIES= test:test
+PYTHON_VERSIONS_INCOMPATIBLE=  27
+
+.include "../../lang/python/pyversion.mk"
+.if ${_PYTHON_VERSION} < 39
+DEPENDS+=      ${PYPKGPREFIX}-importlib-metadata-[0-9]*:../../devel/py-importlib-metadata
+DEPENDS+=      ${PYPKGPREFIX}-importlib-resources-[0-9]*:../../devel/py-importlib-resources
+.endif
 
 post-install:
        cd ${DESTDIR}${PREFIX}/bin && \
        ${MV} alembic alembic-${PYVERSSUFFIX} || ${TRUE}
 
 do-test:
-       cd ${WRKSRC} && pytest-${PYVERSSUFFIX}
+       cd ${WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYVERSSUFFIX}
 
 .include "../../lang/python/egg.mk"
-.include "../../lang/python/versioned_dependencies.mk"
 .include "../../mk/bsd.pkg.mk"
diff -r 78fe93b73137 -r c8adb504707d databases/py-alembic/PLIST
--- a/databases/py-alembic/PLIST        Sun Nov 14 18:42:27 2021 +0000
+++ b/databases/py-alembic/PLIST        Sun Nov 14 18:42:37 2021 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.7 2021/01/26 11:20:07 adam Exp $
+@comment $NetBSD: PLIST,v 1.8 2021/11/14 18:42:37 adam Exp $
 bin/alembic-${PYVERSSUFFIX}
 ${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
 ${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
@@ -36,6 +36,7 @@
 ${PYSITELIB}/alembic/config.pyo
 ${PYSITELIB}/alembic/context.py
 ${PYSITELIB}/alembic/context.pyc
+${PYSITELIB}/alembic/context.pyi
 ${PYSITELIB}/alembic/context.pyo
 ${PYSITELIB}/alembic/ddl/__init__.py
 ${PYSITELIB}/alembic/ddl/__init__.pyc
@@ -61,8 +62,15 @@
 ${PYSITELIB}/alembic/ddl/sqlite.py
 ${PYSITELIB}/alembic/ddl/sqlite.pyc
 ${PYSITELIB}/alembic/ddl/sqlite.pyo
+${PYSITELIB}/alembic/environment.py
+${PYSITELIB}/alembic/environment.pyc
+${PYSITELIB}/alembic/environment.pyo
+${PYSITELIB}/alembic/migration.py
+${PYSITELIB}/alembic/migration.pyc
+${PYSITELIB}/alembic/migration.pyo
 ${PYSITELIB}/alembic/op.py
 ${PYSITELIB}/alembic/op.pyc
+${PYSITELIB}/alembic/op.pyi
 ${PYSITELIB}/alembic/op.pyo
 ${PYSITELIB}/alembic/operations/__init__.py
 ${PYSITELIB}/alembic/operations/__init__.pyc
@@ -82,6 +90,7 @@
 ${PYSITELIB}/alembic/operations/toimpl.py
 ${PYSITELIB}/alembic/operations/toimpl.pyc
 ${PYSITELIB}/alembic/operations/toimpl.pyo
+${PYSITELIB}/alembic/py.typed
 ${PYSITELIB}/alembic/runtime/__init__.py
 ${PYSITELIB}/alembic/runtime/__init__.pyc
 ${PYSITELIB}/alembic/runtime/__init__.pyo
@@ -103,6 +112,12 @@
 ${PYSITELIB}/alembic/script/write_hooks.py
 ${PYSITELIB}/alembic/script/write_hooks.pyc
 ${PYSITELIB}/alembic/script/write_hooks.pyo
+${PYSITELIB}/alembic/templates/async/README
+${PYSITELIB}/alembic/templates/async/alembic.ini.mako
+${PYSITELIB}/alembic/templates/async/env.py
+${PYSITELIB}/alembic/templates/async/env.pyc
+${PYSITELIB}/alembic/templates/async/env.pyo
+${PYSITELIB}/alembic/templates/async/script.py.mako
 ${PYSITELIB}/alembic/templates/generic/README
 ${PYSITELIB}/alembic/templates/generic/alembic.ini.mako
 ${PYSITELIB}/alembic/templates/generic/env.py
@@ -142,6 +157,36 @@
 ${PYSITELIB}/alembic/testing/requirements.py
 ${PYSITELIB}/alembic/testing/requirements.pyc
 ${PYSITELIB}/alembic/testing/requirements.pyo
+${PYSITELIB}/alembic/testing/schemacompare.py
+${PYSITELIB}/alembic/testing/schemacompare.pyc
+${PYSITELIB}/alembic/testing/schemacompare.pyo
+${PYSITELIB}/alembic/testing/suite/__init__.py
+${PYSITELIB}/alembic/testing/suite/__init__.pyc
+${PYSITELIB}/alembic/testing/suite/__init__.pyo
+${PYSITELIB}/alembic/testing/suite/_autogen_fixtures.py
+${PYSITELIB}/alembic/testing/suite/_autogen_fixtures.pyc
+${PYSITELIB}/alembic/testing/suite/_autogen_fixtures.pyo
+${PYSITELIB}/alembic/testing/suite/test_autogen_comments.py
+${PYSITELIB}/alembic/testing/suite/test_autogen_comments.pyc
+${PYSITELIB}/alembic/testing/suite/test_autogen_comments.pyo
+${PYSITELIB}/alembic/testing/suite/test_autogen_computed.py
+${PYSITELIB}/alembic/testing/suite/test_autogen_computed.pyc
+${PYSITELIB}/alembic/testing/suite/test_autogen_computed.pyo
+${PYSITELIB}/alembic/testing/suite/test_autogen_diffs.py
+${PYSITELIB}/alembic/testing/suite/test_autogen_diffs.pyc
+${PYSITELIB}/alembic/testing/suite/test_autogen_diffs.pyo
+${PYSITELIB}/alembic/testing/suite/test_autogen_fks.py
+${PYSITELIB}/alembic/testing/suite/test_autogen_fks.pyc
+${PYSITELIB}/alembic/testing/suite/test_autogen_fks.pyo
+${PYSITELIB}/alembic/testing/suite/test_autogen_identity.py
+${PYSITELIB}/alembic/testing/suite/test_autogen_identity.pyc
+${PYSITELIB}/alembic/testing/suite/test_autogen_identity.pyo
+${PYSITELIB}/alembic/testing/suite/test_environment.py
+${PYSITELIB}/alembic/testing/suite/test_environment.pyc
+${PYSITELIB}/alembic/testing/suite/test_environment.pyo
+${PYSITELIB}/alembic/testing/suite/test_op.py
+${PYSITELIB}/alembic/testing/suite/test_op.pyc
+${PYSITELIB}/alembic/testing/suite/test_op.pyo
 ${PYSITELIB}/alembic/testing/util.py
 ${PYSITELIB}/alembic/testing/util.pyc
 ${PYSITELIB}/alembic/testing/util.pyo
@@ -154,6 +199,9 @@
 ${PYSITELIB}/alembic/util/compat.py
 ${PYSITELIB}/alembic/util/compat.pyc
 ${PYSITELIB}/alembic/util/compat.pyo
+${PYSITELIB}/alembic/util/editor.py
+${PYSITELIB}/alembic/util/editor.pyc
+${PYSITELIB}/alembic/util/editor.pyo
 ${PYSITELIB}/alembic/util/exc.py
 ${PYSITELIB}/alembic/util/exc.pyc
 ${PYSITELIB}/alembic/util/exc.pyo
diff -r 78fe93b73137 -r c8adb504707d databases/py-alembic/distinfo
--- a/databases/py-alembic/distinfo     Sun Nov 14 18:42:27 2021 +0000
+++ b/databases/py-alembic/distinfo     Sun Nov 14 18:42:37 2021 +0000
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.25 2021/10/26 10:09:48 nia Exp $
+$NetBSD: distinfo,v 1.26 2021/11/14 18:42:37 adam Exp $
 
-BLAKE2s (alembic-1.5.2.tar.gz) = c3d91e7ee0504eac509646de62ca788c2f9a9061ec45379e8904874afeda30c4
-SHA512 (alembic-1.5.2.tar.gz) = 35a00cee17d626aec55d6fe5b99dec58dfc52167a1ff1559cb69a45b9eccdaf1a0ceb58f8c2bd0d6e590ac2577fea32d82b412b5e706d0b9c183775d44253668
-Size (alembic-1.5.2.tar.gz) = 1129660 bytes
+BLAKE2s (alembic-1.7.5.tar.gz) = afdaf8cf13b445fd0f04da31afcad6f67afd6167749efa6cd90b7d0f48b08ba7
+SHA512 (alembic-1.7.5.tar.gz) = 4223116c3610f3196335c1fb2032a9a236c3e6ec4e4ca5cb85ccc3667d614e77d51d9fee1ee0173a32451198929428c1fcf39afd90b6df32584b076e0a4ab1a4
+Size (alembic-1.7.5.tar.gz) = 1229596 bytes


Home | Main Index | Thread Index | Old Index