Wed Oct 21 08:58:38 2020 UTC ()
py-sqlalchemy: updated to 1.3.20

1.3.20

Released: October 12, 2020
orm

[orm] [bug]

An ArgumentError with more detail is now raised if the target parameter for Query.join() is set to an unmapped object. Prior to this change a less detailed AttributeError was raised. Pull request courtesy Ramon Williams.

[orm] [bug]

Fixed issue where using a loader option against a string attribute name that is not actually a mapped attribute, such as a plain Python descriptor, would raise an uninformative AttributeError; a descriptive error is now raised.

engine

[engine] [bug]

Fixed issue where a non-string object sent to SQLAlchemyError or a subclass, as occurs with some third party dialects, would fail to stringify correctly. Pull request courtesy Andrzej Bartosiナгki.

[engine] [bug]

Repaired a function-level import that was not using SQLAlchemy窶冱 standard late-import system within the sqlalchemy.exc module.

sql

[sql] [bug]

Fixed issue where the pickle.dumps() operation against Over construct would produce a recursion overflow.

[sql] [bug]

Fixed bug where an error was not raised in the case where a column() were added to more than one table() at a time. This raised correctly for the Column and Table objects. An ArgumentError is now raised when this occurs.

postgresql

[postgresql] [usecase]

The psycopg2 dialect now support PostgreSQL multiple host connections, by passing host/port combinations to the query string. Pull request courtesy Ramon Williams.

See also

Specfiying multiple fallback hosts

[postgresql] [bug]

Adjusted the Comparator.any() and Comparator.all() methods to implement a straight 窶廸OT窶� operation for negation, rather than negating the comparison operator.

[postgresql] [bug]

Fixed issue where the ENUM type would not consult the schema translate map when emitting a CREATE TYPE or DROP TYPE during the test to see if the type exists or not. Additionally, repaired an issue where if the same enum were encountered multiple times in a single DDL sequence, the 窶彡heck窶� query would run repeatedly rather than relying upon a cached value.

mysql

[mysql] [usecase]

Adjusted the MySQL dialect to correctly parenthesize functional index expressions as accepted by MySQL 8. Pull request courtesy Ramon Williams.

[mysql] [bug]

The 窶徭kip_locked窶� keyword used with with_for_update() will emit a warning when used on MariaDB backends, and will then be ignored. This is a deprecated behavior that will raise in SQLAlchemy 1.4, as an application that requests 窶徭kip locked窶� is looking for a non-blocking operation which is not available on those backends.

[mysql] [bug]

Fixed bug where an UPDATE statement against a JOIN using MySQL multi-table format would fail to include the table prefix for the target table if the statement had no WHERE clause, as only the WHERE clause were scanned to detect a 窶徇ulti table update窶� at that particular point. The target is now also scanned if it窶冱 a JOIN to get the leftmost table as the primary table and the additional entries as additional FROM entries.

[mysql] [change]

Add new MySQL reserved words: cube, lateral added in MySQL 8.0.1 and 8.0.14, respectively; this indicates that these terms will be quoted if used as table or column identifier names.

mssql

[mssql] [bug]

Fixed issue where a SQLAlchemy connection URI for Azure DW with authentication=ActiveDirectoryIntegrated (and no username+password) was not constructing the ODBC connection string in a way that was acceptable to the Azure DW instance.

misc

[bug] [pool]

Fixed issue where the following pool parameters were not being propagated to the new pool created when Engine.dispose() were called: pre_ping, use_lifo. Additionally the recycle and reset_on_return parameter is now propagated for the AssertionPool class.

[bug] [associationproxy] [ext]

An informative error is now raised when attempting to use an association proxy element as a plain column expression to be SELECTed from or used in a SQL function; this use case is not currently supported.

[bug] [tests]

Fixed incompatibilities in the test suite when running against Pytest 6.x.


(adam)
diff -r1.64 -r1.65 pkgsrc/databases/py-sqlalchemy/Makefile
diff -r1.19 -r1.20 pkgsrc/databases/py-sqlalchemy/PLIST
diff -r1.58 -r1.59 pkgsrc/databases/py-sqlalchemy/distinfo

cvs diff -r1.64 -r1.65 pkgsrc/databases/py-sqlalchemy/Makefile (expand / switch to unified diff)

--- pkgsrc/databases/py-sqlalchemy/Makefile 2020/09/10 09:19:16 1.64
+++ pkgsrc/databases/py-sqlalchemy/Makefile 2020/10/21 08:58:38 1.65
@@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
1# $NetBSD: Makefile,v 1.64 2020/09/10 09:19:16 adam Exp $ 1# $NetBSD: Makefile,v 1.65 2020/10/21 08:58:38 adam Exp $
2 2
3DISTNAME= SQLAlchemy-1.3.19 3DISTNAME= SQLAlchemy-1.3.20
4PKGNAME= ${PYPKGPREFIX}-${DISTNAME:tl} 4PKGNAME= ${PYPKGPREFIX}-${DISTNAME:tl}
5CATEGORIES= databases python 5CATEGORIES= databases python
6MASTER_SITES= ${MASTER_SITE_PYPI:=S/SQLAlchemy/} 6MASTER_SITES= ${MASTER_SITE_PYPI:=S/SQLAlchemy/}
7 7
8MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= https://www.sqlalchemy.org/ 9HOMEPAGE= https://www.sqlalchemy.org/
10COMMENT= Python SQL toolkit and Object Relational Mapper 10COMMENT= Python SQL toolkit and Object Relational Mapper
11LICENSE= mit 11LICENSE= mit
12 12
13TEST_DEPENDS+= ${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock 13TEST_DEPENDS+= ${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock
14TEST_DEPENDS+= ${PYPKGPREFIX}-test-xdist-[0-9]*:../../devel/py-test-xdist 14TEST_DEPENDS+= ${PYPKGPREFIX}-test-xdist-[0-9]*:../../devel/py-test-xdist
15 15
16PYTHON_VERSIONED_DEPENDENCIES= test:test 16PYTHON_VERSIONED_DEPENDENCIES= test:test

cvs diff -r1.19 -r1.20 pkgsrc/databases/py-sqlalchemy/PLIST (expand / switch to unified diff)

--- pkgsrc/databases/py-sqlalchemy/PLIST 2020/04/10 07:58:16 1.19
+++ pkgsrc/databases/py-sqlalchemy/PLIST 2020/10/21 08:58:38 1.20
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.19 2020/04/10 07:58:16 adam Exp $ 1@comment $NetBSD: PLIST,v 1.20 2020/10/21 08:58:38 adam Exp $
2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO 2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt 3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt 4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
5${PYSITELIB}/${EGG_INFODIR}/requires.txt 5${PYSITELIB}/${EGG_INFODIR}/requires.txt
6${PYSITELIB}/${EGG_INFODIR}/top_level.txt 6${PYSITELIB}/${EGG_INFODIR}/top_level.txt
7${PYSITELIB}/sqlalchemy/__init__.py 7${PYSITELIB}/sqlalchemy/__init__.py
8${PYSITELIB}/sqlalchemy/__init__.pyc 8${PYSITELIB}/sqlalchemy/__init__.pyc
9${PYSITELIB}/sqlalchemy/__init__.pyo 9${PYSITELIB}/sqlalchemy/__init__.pyo
10${PYSITELIB}/sqlalchemy/connectors/__init__.py 10${PYSITELIB}/sqlalchemy/connectors/__init__.py
11${PYSITELIB}/sqlalchemy/connectors/__init__.pyc 11${PYSITELIB}/sqlalchemy/connectors/__init__.pyc
12${PYSITELIB}/sqlalchemy/connectors/__init__.pyo 12${PYSITELIB}/sqlalchemy/connectors/__init__.pyo
13${PYSITELIB}/sqlalchemy/connectors/mxodbc.py 13${PYSITELIB}/sqlalchemy/connectors/mxodbc.py
14${PYSITELIB}/sqlalchemy/connectors/mxodbc.pyc 14${PYSITELIB}/sqlalchemy/connectors/mxodbc.pyc
@@ -576,26 +576,29 @@ ${PYSITELIB}/sqlalchemy/testing/util.pyc @@ -576,26 +576,29 @@ ${PYSITELIB}/sqlalchemy/testing/util.pyc
576${PYSITELIB}/sqlalchemy/testing/util.pyo 576${PYSITELIB}/sqlalchemy/testing/util.pyo
577${PYSITELIB}/sqlalchemy/testing/warnings.py 577${PYSITELIB}/sqlalchemy/testing/warnings.py
578${PYSITELIB}/sqlalchemy/testing/warnings.pyc 578${PYSITELIB}/sqlalchemy/testing/warnings.pyc
579${PYSITELIB}/sqlalchemy/testing/warnings.pyo 579${PYSITELIB}/sqlalchemy/testing/warnings.pyo
580${PYSITELIB}/sqlalchemy/types.py 580${PYSITELIB}/sqlalchemy/types.py
581${PYSITELIB}/sqlalchemy/types.pyc 581${PYSITELIB}/sqlalchemy/types.pyc
582${PYSITELIB}/sqlalchemy/types.pyo 582${PYSITELIB}/sqlalchemy/types.pyo
583${PYSITELIB}/sqlalchemy/util/__init__.py 583${PYSITELIB}/sqlalchemy/util/__init__.py
584${PYSITELIB}/sqlalchemy/util/__init__.pyc 584${PYSITELIB}/sqlalchemy/util/__init__.pyc
585${PYSITELIB}/sqlalchemy/util/__init__.pyo 585${PYSITELIB}/sqlalchemy/util/__init__.pyo
586${PYSITELIB}/sqlalchemy/util/_collections.py 586${PYSITELIB}/sqlalchemy/util/_collections.py
587${PYSITELIB}/sqlalchemy/util/_collections.pyc 587${PYSITELIB}/sqlalchemy/util/_collections.pyc
588${PYSITELIB}/sqlalchemy/util/_collections.pyo 588${PYSITELIB}/sqlalchemy/util/_collections.pyo
 589${PYSITELIB}/sqlalchemy/util/_preloaded.py
 590${PYSITELIB}/sqlalchemy/util/_preloaded.pyc
 591${PYSITELIB}/sqlalchemy/util/_preloaded.pyo
589${PYSITELIB}/sqlalchemy/util/compat.py 592${PYSITELIB}/sqlalchemy/util/compat.py
590${PYSITELIB}/sqlalchemy/util/compat.pyc 593${PYSITELIB}/sqlalchemy/util/compat.pyc
591${PYSITELIB}/sqlalchemy/util/compat.pyo 594${PYSITELIB}/sqlalchemy/util/compat.pyo
592${PYSITELIB}/sqlalchemy/util/deprecations.py 595${PYSITELIB}/sqlalchemy/util/deprecations.py
593${PYSITELIB}/sqlalchemy/util/deprecations.pyc 596${PYSITELIB}/sqlalchemy/util/deprecations.pyc
594${PYSITELIB}/sqlalchemy/util/deprecations.pyo 597${PYSITELIB}/sqlalchemy/util/deprecations.pyo
595${PYSITELIB}/sqlalchemy/util/langhelpers.py 598${PYSITELIB}/sqlalchemy/util/langhelpers.py
596${PYSITELIB}/sqlalchemy/util/langhelpers.pyc 599${PYSITELIB}/sqlalchemy/util/langhelpers.pyc
597${PYSITELIB}/sqlalchemy/util/langhelpers.pyo 600${PYSITELIB}/sqlalchemy/util/langhelpers.pyo
598${PYSITELIB}/sqlalchemy/util/queue.py 601${PYSITELIB}/sqlalchemy/util/queue.py
599${PYSITELIB}/sqlalchemy/util/queue.pyc 602${PYSITELIB}/sqlalchemy/util/queue.pyc
600${PYSITELIB}/sqlalchemy/util/queue.pyo 603${PYSITELIB}/sqlalchemy/util/queue.pyo
601${PYSITELIB}/sqlalchemy/util/topological.py 604${PYSITELIB}/sqlalchemy/util/topological.py

cvs diff -r1.58 -r1.59 pkgsrc/databases/py-sqlalchemy/distinfo (expand / switch to unified diff)

--- pkgsrc/databases/py-sqlalchemy/distinfo 2020/09/10 09:19:16 1.58
+++ pkgsrc/databases/py-sqlalchemy/distinfo 2020/10/21 08:58:38 1.59
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
1$NetBSD: distinfo,v 1.58 2020/09/10 09:19:16 adam Exp $ 1$NetBSD: distinfo,v 1.59 2020/10/21 08:58:38 adam Exp $
2 2
3SHA1 (SQLAlchemy-1.3.19.tar.gz) = ebbe5bbd118de0358bfb6d3118a688899a856852 3SHA1 (SQLAlchemy-1.3.20.tar.gz) = 880084078adb72592538fb36e259f1415f4ccb35
4RMD160 (SQLAlchemy-1.3.19.tar.gz) = 1c7c84c15452cdf8ad88ea1f3bf61e76cd8a6a72 4RMD160 (SQLAlchemy-1.3.20.tar.gz) = 0a97e75868632ceaf86b7de78d681d88b693e065
5SHA512 (SQLAlchemy-1.3.19.tar.gz) = acd3d7c130970dfcc5792243b3f0f28f72b750bad0a3898358aeee9ac72ba38fd4298734ec481abf0fc5ebe1e1398c16672a6c327bac5b7821d08c67508690c8 5SHA512 (SQLAlchemy-1.3.20.tar.gz) = 29c52ada1a66f906ed2563df2ab093eceb7c09de45749c96031f30a1512d20b1d698e00640c777169ef3db99ab012151770a3daea45a51df934269b554ff4b28
6Size (SQLAlchemy-1.3.19.tar.gz) = 6197860 bytes 6Size (SQLAlchemy-1.3.20.tar.gz) = 6264898 bytes