sqlobject-cvs Mailing List for SQLObject (Page 2)
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
(9) |
Apr
(74) |
May
(29) |
Jun
(16) |
Jul
(28) |
Aug
(10) |
Sep
(57) |
Oct
(9) |
Nov
(29) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(14) |
Mar
(6) |
Apr
(3) |
May
(12) |
Jun
(34) |
Jul
(9) |
Aug
(29) |
Sep
(22) |
Oct
(2) |
Nov
(15) |
Dec
(52) |
2005 |
Jan
(47) |
Feb
(78) |
Mar
(14) |
Apr
(35) |
May
(33) |
Jun
(16) |
Jul
(26) |
Aug
(63) |
Sep
(40) |
Oct
(96) |
Nov
(96) |
Dec
(123) |
2006 |
Jan
(159) |
Feb
(144) |
Mar
(64) |
Apr
(31) |
May
(88) |
Jun
(48) |
Jul
(16) |
Aug
(64) |
Sep
(87) |
Oct
(92) |
Nov
(56) |
Dec
(76) |
2007 |
Jan
(94) |
Feb
(103) |
Mar
(126) |
Apr
(123) |
May
(85) |
Jun
(11) |
Jul
(130) |
Aug
(47) |
Sep
(65) |
Oct
(70) |
Nov
(12) |
Dec
(11) |
2008 |
Jan
(30) |
Feb
(55) |
Mar
(88) |
Apr
(20) |
May
(50) |
Jun
|
Jul
(38) |
Aug
(1) |
Sep
(9) |
Oct
(5) |
Nov
(6) |
Dec
(39) |
2009 |
Jan
(8) |
Feb
(16) |
Mar
(3) |
Apr
(33) |
May
(44) |
Jun
(1) |
Jul
(10) |
Aug
(33) |
Sep
(74) |
Oct
(22) |
Nov
|
Dec
(15) |
2010 |
Jan
(28) |
Feb
(22) |
Mar
(46) |
Apr
(29) |
May
(1) |
Jun
(1) |
Jul
(27) |
Aug
(8) |
Sep
(5) |
Oct
(33) |
Nov
(24) |
Dec
(41) |
2011 |
Jan
(4) |
Feb
(12) |
Mar
(35) |
Apr
(29) |
May
(19) |
Jun
(16) |
Jul
(32) |
Aug
(25) |
Sep
(5) |
Oct
(11) |
Nov
(21) |
Dec
(12) |
2012 |
Jan
(3) |
Feb
(4) |
Mar
(20) |
Apr
(4) |
May
(25) |
Jun
(13) |
Jul
|
Aug
|
Sep
(2) |
Oct
(25) |
Nov
(9) |
Dec
(1) |
2013 |
Jan
(6) |
Feb
(8) |
Mar
|
Apr
(10) |
May
(31) |
Jun
(7) |
Jul
(18) |
Aug
(33) |
Sep
(4) |
Oct
(16) |
Nov
|
Dec
(27) |
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(11) |
May
(39) |
Jun
(8) |
Jul
(11) |
Aug
(4) |
Sep
|
Oct
(27) |
Nov
|
Dec
(71) |
2015 |
Jan
(17) |
Feb
(47) |
Mar
(33) |
Apr
|
May
|
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(8) |
2016 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
|
May
(12) |
Jun
(7) |
Jul
(9) |
Aug
(31) |
Sep
(8) |
Oct
(3) |
Nov
(15) |
Dec
(1) |
2017 |
Jan
(13) |
Feb
(7) |
Mar
(14) |
Apr
(8) |
May
(10) |
Jun
(4) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(8) |
Nov
(4) |
Dec
(5) |
2018 |
Jan
(2) |
Feb
(8) |
Mar
|
Apr
(4) |
May
|
Jun
(6) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2019 |
Jan
(1) |
Feb
(16) |
Mar
(1) |
Apr
(3) |
May
(5) |
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
(2) |
2021 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
(4) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
|
2024 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(9) |
2025 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: phd <no...@so...> - 2023-09-18 17:59:38
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 69c1c2f36c2893f82b9270782eb802a9f96df589 (commit) via ae1ca49def118ed7a0aa897e6613ef8563ef4d3f (commit) from 0d633b72642bace7da86a51470aca1044b82c808 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/69c1c2f36c2893f82b9270782eb802a9f96df589 commit 69c1c2f36c2893f82b9270782eb802a9f96df589 Author: Oleg Broytman <ph...@ph...> Date: Mon Sep 18 19:36:16 2023 +0300 Fix(SQLiteConnection): Release connections to fix memory leak Release connections from threads that are no longer active. This fixes memory leak in multithreaded programs in Windows. `SQLite` requires different connections per thread so `SQLiteConnection` creates and stores connections per thread. When a thread finishes its connections should be closed. But if a program doesn't cooperate and doesn't close connections at the end of a thread SQLObject leaks memory as connection objects are stuck in `SQLiteConnection`. On Linux the leak is negligible as Linux reuses thread IDs so new connections replaces old and old connections are garbage collected. But Windows doesn't reuse thread IDs so old connections pile and never released. To fix the problem `SQLiteConnection` now enumerate threads and release connections from non-existing threads. Fixes: #186. diff --git a/docs/News.rst b/docs/News.rst index f37f366..dd8a26a 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,9 +5,28 @@ News .. contents:: Contents: :backlinks: none -SQLObject (master) +SQLObject (masterdoesn't ) ================== +Drivers +------- + +* Fix(SQLiteConnection): Release connections from threads that are + no longer active. This fixes memory leak in multithreaded programs + in Windows. + + ``SQLite`` requires different connections per thread so + ``SQLiteConnection`` creates and stores connections per thread. + When a thread finishes its connections should be closed. + But if a program doesn't cooperate and doesn't close connections at + the end of a thread SQLObject leaks memory as connection objects are + stuck in ``SQLiteConnection``. On Linux the leak is negligible as + Linux reuses thread IDs so new connections replaces old and old + connections are garbage collected. But Windows doesn't reuse thread + IDs so old connections pile and never released. To fix the problem + ``SQLiteConnection`` now enumerate threads and release connections + from non-existing threads. + CI -- diff --git a/sqlobject/sqlite/sqliteconnection.py b/sqlobject/sqlite/sqliteconnection.py index 89635e3..47d0a9c 100644 --- a/sqlobject/sqlite/sqliteconnection.py +++ b/sqlobject/sqlite/sqliteconnection.py @@ -4,6 +4,7 @@ try: from _thread import get_ident except ImportError: from thread import get_ident +from threading import enumerate as enumerate_threads try: from urllib import quote except ImportError: @@ -150,6 +151,7 @@ class SQLiteConnection(DBAPI): self._connectionNumbers[id(conn)] = self._connectionCount self._connectionCount += 1 return conn + self._releaseUnusedConnections() threadid = get_ident() if (self._pool is not None and threadid in self._threadPool): conn = self._threadPool[threadid] @@ -213,6 +215,19 @@ class SQLiteConnection(DBAPI): conn.text_factory = str # Convert text data to str, not unicode return conn + def _releaseUnusedConnections(self): + """Release connections from threads that're no longer active""" + thread_ids = set(t.ident for t in enumerate_threads()) + tp_set = set(self._threadPool) + unused_connections = [ + self._threadPool[tid] for tid in (tp_set - thread_ids) + ] + for unused_connection in unused_connections: + try: + self.releaseConnection(unused_connection, explicit=True) + except self.module.ProgrammingError: + pass # Ignore error in `conn.close()` from a different thread + def close(self): DBAPI.close(self) self._threadPool = {} http://sourceforge.net/p/sqlobject/sqlobject/ci/ae1ca49def118ed7a0aa897e6613ef8563ef4d3f commit ae1ca49def118ed7a0aa897e6613ef8563ef4d3f Author: Oleg Broytman <ph...@ph...> Date: Mon Sep 18 02:29:36 2023 +0300 Fix(SQLiteConnection): Clear `_threadOrigination` diff --git a/sqlobject/sqlite/sqliteconnection.py b/sqlobject/sqlite/sqliteconnection.py index 06cf3c4..89635e3 100644 --- a/sqlobject/sqlite/sqliteconnection.py +++ b/sqlobject/sqlite/sqliteconnection.py @@ -181,6 +181,8 @@ class SQLiteConnection(DBAPI): else: if self._pool and conn in self._pool: self._pool.remove(conn) + if threadid: + del self._threadOrigination[id(conn)] conn.close() def _setAutoCommit(self, conn, auto): @@ -214,6 +216,7 @@ class SQLiteConnection(DBAPI): def close(self): DBAPI.close(self) self._threadPool = {} + self._threadOrigination = {} if self._memory: self._memoryConn.close() self.makeMemoryConnection() ----------------------------------------------------------------------- Summary of changes: docs/News.rst | 21 ++++++++++++++++++++- sqlobject/sqlite/sqliteconnection.py | 18 ++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2023-09-17 17:17:53
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 0d633b72642bace7da86a51470aca1044b82c808 (commit) from 00ed0745fd94cf2a030083cc6d09c97a9fc5be22 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/0d633b72642bace7da86a51470aca1044b82c808 commit 0d633b72642bace7da86a51470aca1044b82c808 Author: Oleg Broytman <ph...@ph...> Date: Sun Sep 17 19:32:32 2023 +0300 CI(GHActions): Ensure `pip` only if needed This is to work around a problem in conda with Python 3.7 - it brings in wrong version of `setuptools` incompatible with Python 3.7. diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 60b4188..392147f 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -59,7 +59,7 @@ jobs: - name: Install dependencies run: | python --version - python -m ensurepip + python -m pip || python -m ensurepip --default-pip --upgrade python -m pip install --upgrade pip setuptools wheel pip --version pip install --upgrade virtualenv "tox >= 3.15, < 4" diff --git a/docs/News.rst b/docs/News.rst index 2d05200..f37f366 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -8,6 +8,14 @@ News SQLObject (master) ================== +CI +-- + +* GHActions: Ensure ``pip`` only if needed + + This is to work around a problem in conda with Python 3.7 - + it brings in wrong version of ``setuptools`` incompatible with Python 3.7. + SQLObject 3.10.2 ================ ----------------------------------------------------------------------- Summary of changes: .github/workflows/run-tests.yaml | 2 +- docs/News.rst | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2023-08-09 12:16:23
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated discards 86aa2af44e73569ca1bbbdc4947209f3d58b6143 (commit) via 00ed0745fd94cf2a030083cc6d09c97a9fc5be22 (commit) This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this: * -- * -- B -- O -- O -- O (86aa2af44e73569ca1bbbdc4947209f3d58b6143) \ N -- N -- N (00ed0745fd94cf2a030083cc6d09c97a9fc5be22) When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B. Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/00ed0745fd94cf2a030083cc6d09c97a9fc5be22 commit 00ed0745fd94cf2a030083cc6d09c97a9fc5be22 Author: Oleg Broytman <ph...@ph...> Date: Wed Aug 9 15:11:03 2023 +0300 Build: Prepare for the next release [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index d5bdebc..f6bb586 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,13 +1,25 @@ Hello! -I'm pleased to announce version 3.10.2, a minor feature release -and the second bugfix release of branch 3.10 of SQLObject. +I'm pleased to announce version 3.10.3a1, the first alpha of the upcoming +release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3a2, the second alpha of the upcoming +release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3b1, the first beta of the upcoming +release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3rc1, the first release candidate +of the upcoming release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3, the first bugfix release of branch +3.10 of SQLObject. What's new in SQLObject ======================= -The contributor for this release is Igor Yudytskiy. +The contributors for this release are ... Thanks! Minor features -------------- @@ -51,7 +63,7 @@ Site: http://sqlobject.org Download: -https://pypi.org/project/SQLObject/3.10.2a0.dev20221222/ +https://pypi.org/project/SQLObject/3.10.3a0.dev20230810/ News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index e3ff798..3b336e9 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.10.2 -================ +SQLObject 3.10.3a0 +================== SQLObject is a free and open-source (LGPL) Python object-relational mapper. Your database tables are described as classes, and rows are diff --git a/docs/News.rst b/docs/News.rst index 5180fbc..2d05200 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,6 +5,9 @@ News .. contents:: Contents: :backlinks: none +SQLObject (master) +================== + SQLObject 3.10.2 ================ ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2023-08-09 12:12:10
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.10.2 has been created at eb74cb0962b6758614083ff280443fd968c1e944 (tag) tagging e628604d8aa2a796883a020abd3c52a54b477d8f (commit) replaces 3.10.1 tagged by Oleg Broytman on Wed Aug 9 14:02:08 2023 +0300 - Log ----------------------------------------------------------------- Release 3.10.2 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEAXmp+v5763cG/OMobggLcLYoewMFAmTTcjAACgkQbggLcLYo ewPQShAAhHBFDjX0IC2nK8QlX3lRiFXMCeK12Gqx1COmk0BZfWvPNneoyUPCKKey euoR8tJneas32cFnciQyli+o6O21cXgkqfDRfztemdH2g1f7/eJ3CcvCXQXfQxhq BoR5+AaidTIq4f83Sixw54mPBasZ3dxsKQhK6dfCZsawd3oS0gmbRXelCzTaU3DT CR7hqvb7om+HbYmtB/6l5EHDOOSkNdNvapn5myx/h8BTGNpTXaqRf0Ps9qsQEMlN mEmzByg3IZxO1Rtot5dHm/WenMlSHqAf+rF8Kp2fuNCk0qXLisl2XoXFMjGCuxmp p0cjW/D3jI9JqBVg/NYd7YzCX/iRBT/w27qGs8C0br+lccOdbfCSV8ObkyiZ07So 0/HskeDCDn1FbNhGeF+9HlQVvs/x+msFT2csjEnl6wW9IvaXjamuGOhxH7T32zmj lha35MSR4ExpoiUgPdzCNvuergsdZprWSNoBBNDbLT21OHmkBYoL7jYeSAJ9LKa0 SZmIZNlG3bKouWTe9bzovBd6YFy/YkfpGYbsS/ncF02RFsDk/1rlQhIONSy58BGZ LPOzGar26hUvkWKp5tuw9aMEnCTLAAnseB6oiudJXVXb8VglgoR3Yn3aovfBB+XW Rr4tFpbQUGoYije8wRqzCGVJ7x0/2sZ5wrbz4/lFb5jnJbqef7A= =zakf -----END PGP SIGNATURE----- Oleg Broytman (10): Build: Prepare for the next release Build(RELEASE-CHECKLIST): Minor update Docs(News): Split `News.rst` Docs(News): Add forgotten release date CI(GHActions): Install all Python and PyPy versions from `conda-forge` Feat(SQLBuilder): Add method `Alias.select()` Feat(SQLBuilder): Add detailed error message Fix(SQLRelatedJoin): Fixed a bug when the table joins with itself Merge branch 'issue-185' Release 3.10.2 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2023-08-09 12:12:05
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 86aa2af44e73569ca1bbbdc4947209f3d58b6143 (commit) via e628604d8aa2a796883a020abd3c52a54b477d8f (commit) via e0fa0ab0500747efe2e16e5bdcb301a266e55de0 (commit) via a4ee6cdb15c8e253db0d81cd766396d66bfd2e61 (commit) via 0ecd7da093be2152e2da955004bd66003e3dad8f (commit) via 79294e3d5d6f2d728093a873265d035496c9349f (commit) from 423a0f74a5a995e6b1de1a9c861641ecfd836d7d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/86aa2af44e73569ca1bbbdc4947209f3d58b6143 commit 86aa2af44e73569ca1bbbdc4947209f3d58b6143 Author: Oleg Broytman <ph...@ph...> Date: Wed Aug 9 15:11:03 2023 +0300 Build: Prepare for the next release [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index d5bdebc..b58c9a3 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,7 +1,19 @@ Hello! -I'm pleased to announce version 3.10.2, a minor feature release -and the second bugfix release of branch 3.10 of SQLObject. +I'm pleased to announce version 3.10.3a1, the first alpha of the upcoming +release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3a2, the second alpha of the upcoming +release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3b1, the first beta of the upcoming +release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3rc1, the first release candidate +of the upcoming release of branch 3.10 of SQLObject. + +I'm pleased to announce version 3.10.3, the first bugfix release of branch +3.10 of SQLObject. What's new in SQLObject @@ -51,7 +63,7 @@ Site: http://sqlobject.org Download: -https://pypi.org/project/SQLObject/3.10.2a0.dev20221222/ +https://pypi.org/project/SQLObject/3.10.3a0.dev20230810/ News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index e3ff798..3b336e9 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.10.2 -================ +SQLObject 3.10.3a0 +================== SQLObject is a free and open-source (LGPL) Python object-relational mapper. Your database tables are described as classes, and rows are diff --git a/docs/News.rst b/docs/News.rst index 5180fbc..2d05200 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,6 +5,9 @@ News .. contents:: Contents: :backlinks: none +SQLObject (master) +================== + SQLObject 3.10.2 ================ http://sourceforge.net/p/sqlobject/sqlobject/ci/e628604d8aa2a796883a020abd3c52a54b477d8f commit e628604d8aa2a796883a020abd3c52a54b477d8f Author: Oleg Broytman <ph...@ph...> Date: Wed Aug 9 14:01:26 2023 +0300 Release 3.10.2 diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 1b1914e..d5bdebc 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,19 +1,7 @@ Hello! -I'm pleased to announce version 3.10.2a1, the first alpha of the upcoming -release of branch 3.10 of SQLObject. - -I'm pleased to announce version 3.10.2a2, the second alpha of the upcoming -release of branch 3.10 of SQLObject. - -I'm pleased to announce version 3.10.2b1, the first beta of the upcoming -release of branch 3.10 of SQLObject. - -I'm pleased to announce version 3.10.2rc1, the first release candidate -of the upcoming release of branch 3.10 of SQLObject. - -I'm pleased to announce version 3.10.2, the first bugfix release of branch -3.10 of SQLObject. +I'm pleased to announce version 3.10.2, a minor feature release +and the second bugfix release of branch 3.10 of SQLObject. What's new in SQLObject diff --git a/README.rst b/README.rst index 3896cef..e3ff798 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.10.2a0 -================== +SQLObject 3.10.2 +================ SQLObject is a free and open-source (LGPL) Python object-relational mapper. Your database tables are described as classes, and rows are diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 8da2c52..d633b09 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -10,7 +10,7 @@ cd "`dirname \"$0\"`" && PROG_DIR="`pwd`" && cd .. && -build_docs 3.10.1 && +build_docs 3.10.2 && build_docs master devel && rm -rf docs/html && diff --git a/docs/News.rst b/docs/News.rst index 3525ea2..5180fbc 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,8 +5,10 @@ News .. contents:: Contents: :backlinks: none -SQLObject (master) -================== +SQLObject 3.10.2 +================ + +Released 2023 Aug 09. Minor features -------------- diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index 7753d96..8bf191f 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.10.1' +version = '3.10.2' major = 3 minor = 10 -micro = 1 +micro = 2 release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/e0fa0ab0500747efe2e16e5bdcb301a266e55de0 commit e0fa0ab0500747efe2e16e5bdcb301a266e55de0 Merge: 423a0f7 a4ee6cd Author: Oleg Broytman <ph...@ph...> Date: Tue Aug 8 22:42:54 2023 +0300 Merge branch 'issue-185' * branch 'issue-185': Fix(SQLRelatedJoin): Fixed a bug when the table joins with itself Feat(SQLBuilder): Add detailed error message Feat(SQLBuilder): Add method `Alias.select()` http://sourceforge.net/p/sqlobject/sqlobject/ci/a4ee6cdb15c8e253db0d81cd766396d66bfd2e61 commit a4ee6cdb15c8e253db0d81cd766396d66bfd2e61 Author: Oleg Broytman <ph...@ph...> Date: Fri Jul 28 23:54:08 2023 +0300 Fix(SQLRelatedJoin): Fixed a bug when the table joins with itself In the resulting SQL two instances of the table must use different aliases. Fixes: #185. diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 3d251d9..1b1914e 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -19,13 +19,20 @@ I'm pleased to announce version 3.10.2, the first bugfix release of branch What's new in SQLObject ======================= -Contributors for this release are +The contributor for this release is Igor Yudytskiy. Minor features -------------- * Class ``Alias`` grows a method ``.select()`` to match ``SQLObject.select()``. +Bug fixes +--------- + +* Fixed a bug in ``SQLRelatedJoin`` in the case where the table joins with + itself; in the resulting SQL two instances of the table must use different + aliases. Thanks to Igor Yudytskiy for providing an elaborated bug report. + For a more complete list, please see the news: http://sqlobject.org/News.html diff --git a/docs/News.rst b/docs/News.rst index 9a0a05a..3525ea2 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -13,6 +13,13 @@ Minor features * Class ``Alias`` grows a method ``.select()`` to match ``SQLObject.select()``. +Bug fixes +--------- + +* Fixed a bug in ``SQLRelatedJoin`` in the case where the table joins with + itself; in the resulting SQL two instances of the table must use different + aliases. + CI -- diff --git a/sqlobject/joins.py b/sqlobject/joins.py index e2c835a..fa2b337 100644 --- a/sqlobject/joins.py +++ b/sqlobject/joins.py @@ -298,11 +298,14 @@ class OtherTableToJoin(sqlbuilder.SQLExpression): self.joinColumn = joinColumn def tablesUsedImmediate(self): - return [self.otherTable, self.interTable] + return [ + '%s _SO_SQLRelatedJoin_OtherTable' % self.otherTable, + self.interTable, + ] def __sqlrepr__(self, db): - return '%s.%s = %s.%s' % (self.otherTable, self.otherIdName, - self.interTable, self.joinColumn) + return '_SO_SQLRelatedJoin_OtherTable.%s = %s.%s' % ( + self.otherIdName, self.interTable, self.joinColumn) class JoinToTable(sqlbuilder.SQLExpression): @@ -313,11 +316,14 @@ class JoinToTable(sqlbuilder.SQLExpression): self.joinColumn = joinColumn def tablesUsedImmediate(self): - return [self.table, self.interTable] + return [ + '%s _SO_SQLRelatedJoin_ThisTable' % self.table, + self.interTable, + ] def __sqlrepr__(self, db): - return '%s.%s = %s.%s' % (self.interTable, self.joinColumn, self.table, - self.idName) + return '%s.%s = _SO_SQLRelatedJoin_ThisTable.%s' % ( + self.interTable, self.joinColumn, self.idName) class TableToId(sqlbuilder.SQLExpression): @@ -327,10 +333,11 @@ class TableToId(sqlbuilder.SQLExpression): self.idValue = idValue def tablesUsedImmediate(self): - return [self.table] + return ['%s _SO_SQLRelatedJoin_ThisTable' % self.table] def __sqlrepr__(self, db): - return '%s.%s = %s' % (self.table, self.idName, self.idValue) + return '_SO_SQLRelatedJoin_ThisTable.%s = %s' % ( + self.idName, self.idValue) class SOSQLRelatedJoin(SORelatedJoin): @@ -339,7 +346,9 @@ class SOSQLRelatedJoin(SORelatedJoin): conn = inst._connection else: conn = None - results = self.otherClass.select(sqlbuilder.AND( + results = sqlbuilder.Alias( + self.otherClass, '_SO_SQLRelatedJoin_OtherTable' + ).select(sqlbuilder.AND( OtherTableToJoin( self.otherClass.sqlmeta.table, self.otherClass.sqlmeta.idName, self.intermediateTable, self.otherColumn @@ -350,9 +359,11 @@ class SOSQLRelatedJoin(SORelatedJoin): ), TableToId(self.soClass.sqlmeta.table, self.soClass.sqlmeta.idName, inst.id), - ), clauseTables=(self.soClass.sqlmeta.table, - self.otherClass.sqlmeta.table, - self.intermediateTable), + ), clauseTables=( + '%s _SO_SQLRelatedJoin_ThisTable' % self.soClass.sqlmeta.table, + '%s _SO_SQLRelatedJoin_OtherTable' % + self.otherClass.sqlmeta.table, + self.intermediateTable), connection=conn) return results.orderBy(self.orderBy) diff --git a/sqlobject/tests/test_SQLRelatedJoin.py b/sqlobject/tests/test_SQLRelatedJoin.py index 7620258..5e235dd 100644 --- a/sqlobject/tests/test_SQLRelatedJoin.py +++ b/sqlobject/tests/test_SQLRelatedJoin.py @@ -1,5 +1,6 @@ import pytest -from sqlobject import RelatedJoin, SQLObject, SQLRelatedJoin, StringCol +from sqlobject import RelatedJoin, SQLObject, SQLRelatedJoin, StringCol, \ + ForeignKey from sqlobject.tests.dbtest import setupClass, supports @@ -62,3 +63,29 @@ def test_related_join_transaction(): finally: trans.commit(True) Tourtment._connection.autoCommit = True + + +class RecursiveGroup(SQLObject): + name = StringCol(length=255, unique=True) + subgroups = SQLRelatedJoin( + 'RecursiveGroup', + otherColumn='group_id', + intermediateTable='rec_group_map', + createRelatedTable=False, + ) + + +class RecGroupMap(SQLObject): + recursive_group = ForeignKey('RecursiveGroup') + group = ForeignKey('RecursiveGroup') + + +def test_rec_group(): + setupClass([RecursiveGroup, RecGroupMap]) + a = RecursiveGroup(name='a') + a1 = RecursiveGroup(name='a1') + a.addRecursiveGroup(a1) + a2 = RecursiveGroup(name='a2') + a.addRecursiveGroup(a2) + + assert sorted(a.subgroups, key=lambda x: x.name) == [a1, a2] http://sourceforge.net/p/sqlobject/sqlobject/ci/0ecd7da093be2152e2da955004bd66003e3dad8f commit 0ecd7da093be2152e2da955004bd66003e3dad8f Author: Oleg Broytman <ph...@ph...> Date: Sat Jul 29 00:08:16 2023 +0300 Feat(SQLBuilder): Add detailed error message diff --git a/sqlobject/sqlbuilder.py b/sqlobject/sqlbuilder.py index 22118ff..f998c0a 100644 --- a/sqlobject/sqlbuilder.py +++ b/sqlobject/sqlbuilder.py @@ -480,7 +480,8 @@ class Table(SQLExpression): def __getattr__(self, attr): if attr.startswith('__'): - raise AttributeError + raise AttributeError("Attribute '%s' is forbidden in '%s'" % ( + attr, self.__class__.__name__)) return self.FieldClass(self.tableName, attr) def __sqlrepr__(self, db): @@ -502,7 +503,8 @@ class SQLObjectTable(Table): def __getattr__(self, attr): if attr.startswith('__'): - raise AttributeError + raise AttributeError("Attribute '%s' is forbidden in '%s'" % ( + attr, self.__class__.__name__)) if attr == 'id': return self._getattrFromID(attr) elif attr in self.soClass.sqlmeta.columns: @@ -565,14 +567,16 @@ class TableSpace: def __getattr__(self, attr): if attr.startswith('__'): - raise AttributeError + raise AttributeError("Attribute '%s' is forbidden in '%s'" % ( + attr, self.__class__.__name__)) return self.TableClass(attr) class ConstantSpace: def __getattr__(self, attr): if attr.startswith('__'): - raise AttributeError + raise AttributeError("Attribute '%s' is forbidden in '%s'" % ( + attr, self.__class__.__name__)) return SQLConstant(attr) @@ -628,7 +632,8 @@ class AliasTable(Table): def __getattr__(self, attr): if attr.startswith('__'): - raise AttributeError + raise AttributeError("Attribute '%s' is forbidden in '%s'" % ( + attr, self.__class__.__name__)) if self.table: attr = getattr(self.table.q, attr).fieldName return self.FieldClass(self.tableName, attr, self.alias, self) @@ -645,7 +650,8 @@ class AliasSQLMeta(): def __getattr__(self, attr): if attr.startswith('__'): - raise AttributeError + raise AttributeError("Attribute '%s' is forbidden in '%s'" % ( + attr, self.__class__.__name__)) table = self.__table if (attr == "table"): return '%s %s' % (table.sqlmeta.table, self.__alias) http://sourceforge.net/p/sqlobject/sqlobject/ci/79294e3d5d6f2d728093a873265d035496c9349f commit 79294e3d5d6f2d728093a873265d035496c9349f Author: Oleg Broytman <ph...@ph...> Date: Fri Jul 28 23:38:37 2023 +0300 Feat(SQLBuilder): Add method `Alias.select()` diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 0040aed..3d251d9 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -21,6 +21,11 @@ What's new in SQLObject Contributors for this release are +Minor features +-------------- + +* Class ``Alias`` grows a method ``.select()`` to match ``SQLObject.select()``. + For a more complete list, please see the news: http://sqlobject.org/News.html diff --git a/docs/News.rst b/docs/News.rst index 507a370..9a0a05a 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -8,6 +8,11 @@ News SQLObject (master) ================== +Minor features +-------------- + +* Class ``Alias`` grows a method ``.select()`` to match ``SQLObject.select()``. + CI -- diff --git a/sqlobject/sqlbuilder.py b/sqlobject/sqlbuilder.py index 9eabcf5..22118ff 100644 --- a/sqlobject/sqlbuilder.py +++ b/sqlobject/sqlbuilder.py @@ -638,16 +638,54 @@ class AliasTable(Table): self.alias) +class AliasSQLMeta(): + def __init__(self, table, alias): + self.__table = table + self.__alias = alias + + def __getattr__(self, attr): + if attr.startswith('__'): + raise AttributeError ... 56 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2023-07-18 13:14:00
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 423a0f74a5a995e6b1de1a9c861641ecfd836d7d (commit) via db162aa7542a1be03d8a3a5f93f17038d7979ead (commit) via f089c78127c7631fe8f4258487d377f4b4bcde68 (commit) via 8872b7924b98f15456edf9750a64e02b54da67dc (commit) from 1d0f1bc72a475ce82fac0b1c701b77bcd1e51d3e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/423a0f74a5a995e6b1de1a9c861641ecfd836d7d commit 423a0f74a5a995e6b1de1a9c861641ecfd836d7d Author: Oleg Broytman <ph...@ph...> Date: Tue Jul 18 15:50:51 2023 +0300 CI(GHActions): Install all Python and PyPy versions from `conda-forge` diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 31b170b..60b4188 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -4,6 +4,8 @@ on: [push, pull_request] jobs: run-tests: + env: + not_in_conda: "[]" strategy: matrix: @@ -40,12 +42,13 @@ jobs: - uses: actions/checkout@v2 - uses: s-weigand/setup-conda@v1 with: + conda-channels: conda-forge python-version: ${{ matrix.python-version }} - if: ${{ runner.os == 'Linux' && matrix.python-version != '3.11' }} + if: ${{ !contains(fromJSON(env.not_in_conda), matrix.python-version) }} - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - if: ${{ runner.os != 'Linux' || matrix.python-version == '3.11' }} + if: ${{ contains(fromJSON(env.not_in_conda), matrix.python-version) }} - name: Cache pip uses: actions/cache@v3 with: @@ -56,9 +59,10 @@ jobs: - name: Install dependencies run: | python --version + python -m ensurepip python -m pip install --upgrade pip setuptools wheel pip --version - pip install --upgrade virtualenv "tox < 4" + pip install --upgrade virtualenv "tox >= 3.15, < 4" - name: Set PYVER run: | import os, sys diff --git a/devscripts/requirements/requirements.txt b/devscripts/requirements/requirements.txt index f77d60a..a419296 100644 --- a/devscripts/requirements/requirements.txt +++ b/devscripts/requirements/requirements.txt @@ -1,5 +1,3 @@ ---install-option=-O2 - # DateTime from Zope DateTime diff --git a/docs/News.rst b/docs/News.rst index 230e7db..507a370 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -8,6 +8,11 @@ News SQLObject (master) ================== +CI +-- + +* Install all Python and PyPy versions from ``conda-forge``. + SQLObject 3.10.1 ================ http://sourceforge.net/p/sqlobject/sqlobject/ci/db162aa7542a1be03d8a3a5f93f17038d7979ead commit db162aa7542a1be03d8a3a5f93f17038d7979ead Author: Oleg Broytman <ph...@ph...> Date: Mon Dec 26 20:07:18 2022 +0300 Docs(News): Add forgotten release date SQLObject 3.10.1 was released at 2022 Dec 22. [skip ci] diff --git a/docs/News.rst b/docs/News.rst index a0ebdf7..230e7db 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -11,6 +11,8 @@ SQLObject (master) SQLObject 3.10.1 ================ +Released 2022 Dec 22. + Minor features -------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/f089c78127c7631fe8f4258487d377f4b4bcde68 commit f089c78127c7631fe8f4258487d377f4b4bcde68 Author: Oleg Broytman <ph...@ph...> Date: Mon Dec 26 20:02:09 2022 +0300 Docs(News): Split `News.rst` [skip ci] diff --git a/docs/News.rst b/docs/News.rst index 36c0229..a0ebdf7 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -78,557 +78,10 @@ Documentation * DevGuide: commit messages must be pure ASCII. -SQLObject 3.9.1 -=============== - -Released 2021 Feb 27. - -Drivers -------- - -* Adapt to the latest ``pg8000``. - -* Protect ``getuser()`` - it can raise ``ImportError`` on w32 - due to absent of ``pwd`` module. - -Build ------ - -* Change URLs for ``oursql`` in ``extras_require`` in ``setup.py``. - Provide separate URLs for Python 2.7 and 3.4+. - -* Add ``mariadb`` in ``extras_require`` in ``setup.py``. - -CI --- - -* For tests with Python 3.4 run ``tox`` under Python 3.5. - -Tests ------ - -* Refactor ``tox.ini``. - -SQLObject 3.9.0 -=============== - -Released 2020 Dec 15. - -Features --------- - -* Add ``JSONCol``: a universal json column that converts simple Python objects - (None, bool, int, float, long, dict, list, str/unicode to/from JSON using - json.dumps/loads. A subclass of StringCol. Requires ``VARCHAR``/``TEXT`` - columns at backends, doesn't work with ``JSON`` columns. - -* Extend/fix support for ``DateTime`` from ``Zope``. - -* Drop support for very old version of ``mxDateTime`` - without ``mx.`` namespace. - -Drivers -------- - -* Support `mariadb <https://pypi.org/project/mariadb/>`_. - -CI --- - -* Run tests with Python 3.9 at Travis and AppVeyor. - -SQLObject 3.8.1 -=============== - -Released 2020 Oct 01. - -Documentation -------------- - -* Use conf.py options to exclude sqlmeta options. - -Tests ------ - -* Fix ``PyGreSQL`` version for Python 3.4. - -CI --- - -* Run tests with Python 3.8 at AppVeyor. - -SQLObject 3.8.0 -=============== - -Released 7 Dec 2019. - -Features --------- - -* Add driver ``supersqlite``. Not all tests are passing - so the driver isn't added to the list of default drivers. - -Minor features --------------- - -* Improve sqlrepr'ing ``ALL/ANY/SOME()``: always put the expression - at the right side of the comparison operation. - -Bug fixes ---------- - -* Fixed a bug in cascade deletion/nullification. - -* Fixed a bug in ``PostgresConnection.columnsFromSchema``: - PostgreSQL 12 removed outdated catalog attribute - ``pg_catalog.pg_attrdef.adsrc``. - -* Fixed a bug working with microseconds in Time columns. - -CI --- - -* Run tests with Python 3.8 at Travis CI. - -SQLObject 3.7.3 -=============== - -Released 22 Sep 2019. - -Bug fixes ---------- - -* Avoid excessive parentheses around ``ALL/ANY/SOME()``. - -Tests ------ - -* Add tests for cascade deletion. - -* Add tests for ``sqlbuilder.ALL/ANY/SOME()``. - -* Fix calls to ``pytest.mark.skipif`` - make conditions bool instead of str. - -* Fix module-level calls to ``pytest.mark.skip`` - add reasons. - -* Fix escape sequences ``'\%'`` -> ``'\\%'``. - -CI --- - -* Reduce the number of virtual machines/containers: - one OS, one DB, one python version, many drivers per VM. - -* Fix sqlite test under Python 3.7+ at AppVeyor. - -SQLObject 3.7.2 -=============== - -Released 1 May 2019. - -Minor features --------------- - -* Adapt Postgres exception handling to ``psycopg2`` version ``2.8``: - in the recent ``psycopg2`` errors are in ``psycopg2.errors`` module. - -* Removed RdbhostConnection: David Keeney and rdbhost seem to be unavailable - since 2017. - -SQLObject 3.7.1 -=============== - -Released 2 Feb 2019. - -Bug fixes ---------- - -* Fixed a unicode problem in the latest mysqlclient. - -Documentation -------------- - -* Exclude sqlmeta members from some of the api docs. - The inclusion of of these sqlmeta members in these files breaks - reproducible builds. - -Development ------------ - -* Source code was made flake8-clean using the latest flake8. - -CI --- - -* Run tests with Python 3.7. - -SQLObject 3.7.0 -=============== - -Released 6 June 2018. - -Features --------- - -* Add signals on commit and rollback; pull request by Scott Stahl. - -Bug fixes ---------- - -* Fix SSL-related parameters for MySQL-connector (connector uses - a different param style). Bug reported by Christophe Popov. - -Drivers -------- - -* Remove psycopg1. Driver ``psycopg`` is now just an alias for ``psycopg2``. - -Tests ------ - -* Install psycopg2 from `psycopg2-binary`_ package. - -.. _`psycopg2-binary`: https://pypi.org/project/psycopg2-binary/ - -SQLObject 3.6.0 -=============== - -Released 24 Feb 2018. - -Minor features --------------- - -* Close cursors after using to free resources immediately - instead of waiting for gc. - -Bug fixes ---------- - -* Fix for TypeError using selectBy on a BLOBCol. PR by Michael S. Root. - -Drivers -------- - -* Extend support for oursql and Python 3 (requires our fork of the driver). - -* Fix cursor.arraysize - pymssql doesn't have arraysize. - -* Set timeout for ODBC with MSSQL. - -* Fix _setAutoCommit for MSSQL. - -Documentation -------------- - -* Document extras that are available for installation. - -Build ------ - -* Use ``python_version`` environment marker in ``setup.py`` to make - ``install_requires`` and ``extras_require`` declarative. This makes - the universal wheel truly universal. - -* Use ``python_requires`` keyword in ``setup.py``. - -SQLObject 3.5.0 -=============== - -Released 15 Nov 2017. - -Minor features --------------- - -* Add Python3 special methods for division to SQLExpression. - Pull request by Michael S. Root. - -Drivers -------- - -* Add support for `pg8000 <https://pypi.org/project/pg8000/>`_ - PostgreSQL driver. - -* Fix autoreconnect with pymysql driver. Contributed by Shailesh Mungikar. - -Documentation -------------- - -* Remove generated HTML from eggs/wheels (docs are installed into wrong - place). Generated docs are still included in the source distribution. - -Tests ------ - -* Add tests for PyGreSQL, py-postgresql and pg8000 at AppVeyor. - -* Fixed bugs in py-postgresql at AppVeyor. SQLObject requires - the latest version of the driver from our fork. - -SQLObject 3.4.0 -=============== - -Released 5 Aug 2017. - -Features --------- - -* Python 2.6 is no longer supported. The minimal supported version is - Python 2.7. - -Drivers (work in progress) --------------------------- - -* Encode binary values for py-postgresql driver. This fixes the - last remaining problems with the driver. - -* Encode binary values for PyGreSQL driver using the same encoding as for - py-postgresql driver. This fixes the last remaining problems with the driver. - - Our own encoding is needed because unescape_bytea(escape_bytea()) is not - idempotent. See the comment for PQunescapeBytea at - https://www.postgresql.org/docs/9.6/static/libpq-exec.html: - - This conversion is not exactly the inverse of PQescapeBytea, because the - string is not expected to be "escaped" when received from PQgetvalue. In - particular this means there is no need for string quoting considerations. - -* List all drivers in extras_require in setup.py. - -Minor features --------------- - -* Use base64.b64encode/b64decode instead of deprecated - encodestring/decodestring. - -Tests ------ - -* Fix a bug with sqlite-memory: rollback transaction and close connection. - The solution was found by Dr. Neil Muller. - -* Use remove-old-files.py from ppu to cleanup pip cache - at Travis and AppVeyor. - -* Add test_csvimport.py more as an example how to use load_csv - from sqlobject.util.csvimport. - -SQLObject 3.3.0 -=============== - -Released 7 May 2017. - -Features --------- - -* Support for Python 2.6 is declared obsolete and will be removed - in the next release. - -Minor features --------------- - -* Convert scripts repository to devscripts subdirectory. - Some of thses scripts are version-dependent so it's better to have them - in the main repo. - -* Test for __nonzero__ under Python 2, __bool__ under Python 3 in BoolCol. - -Drivers (work in progress) --------------------------- - -* Add support for PyODBC and PyPyODBC (pure-python ODBC DB API driver) for - MySQL, PostgreSQL and MS SQL. Driver names are ``pyodbc``, ``pypyodbc`` - or ``odbc`` (try ``pyodbc`` and ``pypyodbc``). There are some problems - with pyodbc and many problems with pypyodbc. - -Documentation -------------- - -* Stop updating http://sqlobject.readthedocs.org/ - it's enough to have - http://sqlobject.org/ - -Tests ... 337 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2022-12-22 16:31:12
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.10.1 has been created at 09e211d7fc0bd56f387295377df6a5a70743ff83 (tag) tagging 5347ce559a2dc11f4ca190e5291b22e0b5beecbb (commit) replaces 3.10.0 tagged by Oleg Broytman on Thu Dec 22 19:23:53 2022 +0300 - Log ----------------------------------------------------------------- Release 3.10.1 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEAXmp+v5763cG/OMobggLcLYoewMFAmOkhJkACgkQbggLcLYo ewOFNA//dxEwmwny00voxi9seEkHBw39+WB5DtJvSnMugYmhUkwMg9oIEDpqQX+E 8u8Kk2Wm6XvHEa4YvnuO6wKL+2NDc3THp4wAyHyG4F4P2HzlgCiAJ+jt699y7T6N 7/V+f5YldmU6qIiXbdCNghN1UeD53Oenci1xw4Tv+jnUnRbY5eYd7VaspSBwkLF2 XSX3vvMnIVjbWWEkumWmgdPKNkAHaiOOffsk4jXhSv5ggCtT9yAffX3VD6YuRQxj s+cnjv1YqQL32hB2m6zYCL8bTnsqv7Tbo9G/I5ZN8WA3pTShj3maodOqYHHNGwGX 5xEpgJvm3Jc/zNOu9SIhPqm41+kgp7HTJiEX3sbhY4RNpB/+EMXSKKY6Khvpucm9 6TSGgGMQTtZF2O/dHfkCtqTavbnNybSgVNv8ZnfG/9UbkBzs0NwIO8MeB3asxQ8A I+1w9yxYOjhQPE4yy9vVCHVraZ1zyeGCOIG1hUus9kkVRzzMSoMthcy/iQ1bajLh czmsaBtngjYZ6CitKvyOuM9v+K62PozdAUlK1Xv2hZsCO2KET4POXTSqX/zrysZT 1CMbqVwJ3nrD4jbg0/3914KlvsUhrasOPzWCcvPs9OigmvyV6GQ0EEWZnExNQjuy PwMAiJ/oOlgZ1FCsJfiFLhHfwy2FGGdHuD4n3jtCJ/JrnB8/fp4= =+xis -----END PGP SIGNATURE----- Oleg Broytman (26): Build: Prepare for the next release CI(GHActions): fail fast, use `setup-python@v4`, `cache@v3` Build(devscripts/release): Disable progress bar for `twine` Docs(ANNOUNCE): Add Developer Guide and brief installation instruction Docs(ANNOUNCE): Reorder URLs: first users then developers Add lists of supported DB API drivers It's free, open-source (MIT), Python Tests(tox): Remove `basepython` Tests, CI: Add Python 3.11 Tests(tox): Fix the list of `flake8` environments Fix(compat): Use `.exec_module(.create_module())` instead of `.load_module()` Docs(README): Update CI: Unify names CI(GHActions): Use `conda` to install older Pythons CI(GHActions): Set `$LD_LIBRARY_PATH` Tests(tox): Limit "tox < 4" Feat(MySQL): Add `mysql-connector-python` Fix(dbconnection): autocommit value must be bool Tests: Allow transactions with MySQL Tests: Skip some inheritance tests under `mysql-connector-python` Tests(mysql-connector-python): Limit versions Merge branch 'conda-install-old-pythons' Merge branch 'mysql-connector-python' CI(GHActions): More descriptive step names Build(RELEASE-CHECKLIST): Minor update Release 3.10.1 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2022-12-22 16:31:10
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, mssql has been created at 0ab2d1d6ae3f50a15f234386b6185ed968d3bd72 (commit) - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/0ab2d1d6ae3f50a15f234386b6185ed968d3bd72 commit 0ab2d1d6ae3f50a15f234386b6185ed968d3bd72 Author: Oleg Broytman <ph...@ph...> Date: Fri Dec 2 19:21:45 2022 +0300 WIP: Tests(MSSQL): Run only two test files; set timeout diff --git a/tox.ini b/tox.ini index fcf70dd..d53fbc3 100644 --- a/tox.ini +++ b/tox.ini @@ -620,7 +620,7 @@ platform = win32 commands = -sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "CREATE DATABASE sqlobject_test" - pytest -D "mssql://SA:YourStrong!Passw0rd@localhost:1433/sqlobject_test?driver=pymssql&debug=1" + pytest -D "mssql://SA:YourStrong!Passw0rd@localhost:1433/sqlobject_test?driver=pymssql&debug=1&timeout=30" tests/test_basic.py tests/test_transactions.py sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" [testenv:py27-mssql-pymssql-w32] @@ -638,7 +638,7 @@ platform = win32 commands = -sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "CREATE DATABASE sqlobject_test" - pytest -D "mssql://SA:YourStrong!Passw0rd@localhost:1433/sqlobject_test?driver=pytds&debug=1" + pytest -D "mssql://SA:YourStrong!Passw0rd@localhost:1433/sqlobject_test?driver=pytds&debug=1&timeout=30" tests/test_basic.py tests/test_transactions.py sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" [testenv:py27-mssql-pytds-w32] http://sourceforge.net/p/sqlobject/sqlobject/ci/c3ca3de7003527f009821bc0149bcd55c2f6a552 commit c3ca3de7003527f009821bc0149bcd55c2f6a552 Author: Oleg Broytman <ph...@ph...> Date: Thu Nov 24 18:07:35 2022 +0300 WIP: Limit OS, Python versions, backends diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 3a37c58..c6a2ffe 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -7,12 +7,14 @@ jobs: strategy: matrix: - os: [ubuntu-latest, windows-latest] - python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11"] + #os: [ubuntu-latest, windows-latest] + os: [windows-latest] + #python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: ["3.7"] include: - - os: ubuntu-latest - os-name: Linux - pip-cache-path: ~/.cache/pip + #- os: ubuntu-latest + # os-name: Linux + # pip-cache-path: ~/.cache/pip - os: windows-latest os-name: w32 pip-cache-path: ~\AppData\Local\pip\Cache @@ -23,18 +25,18 @@ jobs: steps: # Setup MySQL - - uses: ankane/setup-mysql@v1 + #- uses: ankane/setup-mysql@v1 # Setup PostgreSQL - - uses: ankane/setup-postgres@v1 - - name: Setup Postgres user - run: | - sudo -u postgres psql --command="ALTER USER runner CREATEDB ENCRYPTED PASSWORD 'test'" - if: ${{ runner.os == 'Linux' }} - - name: Setup Postgres user - run: | - psql --command="CREATE USER runner CREATEDB ENCRYPTED PASSWORD 'test'" - if: ${{ runner.os == 'Windows' }} + #- uses: ankane/setup-postgres@v1 + #- name: Setup Postgres user + # run: | + # sudo -u postgres psql --command="ALTER USER runner CREATEDB ENCRYPTED PASSWORD 'test'" + # if: ${{ runner.os == 'Linux' }} + #- name: Setup Postgres user + # run: | + # psql --command="CREATE USER runner CREATEDB ENCRYPTED PASSWORD 'test'" + # if: ${{ runner.os == 'Windows' }} # Setup MS SQL - uses: ankane/setup-sqlserver@v1 @@ -89,18 +91,18 @@ jobs: tox --version - name: Run tox @ Linux run: | - devscripts/tox-select-envs $PYVER-mysql - devscripts/tox-select-envs $PYVER-postgres - devscripts/tox-select-envs $PYVER-sqlite + #devscripts/tox-select-envs $PYVER-mysql + #devscripts/tox-select-envs $PYVER-postgres + #devscripts/tox-select-envs $PYVER-sqlite devscripts/tox-select-envs $PYVER-mssql devscripts/tox-select-envs $PYVER-pytds devscripts/tox-select-envs $PYVER-flake8 if: ${{ runner.os == 'Linux' }} - name: Run tox @ w32 run: | - devscripts\tox-select-envs.cmd %PYVER%-mysql - devscripts\tox-select-envs.cmd %PYVER%-postgres - devscripts\tox-select-envs.cmd %PYVER%-sqlite + #devscripts\tox-select-envs.cmd %PYVER%-mysql + #devscripts\tox-select-envs.cmd %PYVER%-postgres + #devscripts\tox-select-envs.cmd %PYVER%-sqlite devscripts\tox-select-envs.cmd %PYVER%-mssql devscripts\tox-select-envs.cmd %PYVER%-pytds if: ${{ runner.os == 'Windows' }} http://sourceforge.net/p/sqlobject/sqlobject/ci/d25545bf6d5def67ed4eb656787f80bd71c7bfee commit d25545bf6d5def67ed4eb656787f80bd71c7bfee Author: Oleg Broytman <ph...@ph...> Date: Fri Dec 2 19:20:06 2022 +0300 CI(MSSQL): Enable TCP for MSSQL diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 75da13e..3a37c58 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -46,6 +46,16 @@ jobs: sudo apt-get install --yes freetds-bin echo "SELECT @@VERSION" | tsql -H localhost -p 1433 -U sa -P 'YourStrong!Passw0rd' if: ${{ runner.os == 'Linux' }} + - name: Enable TCP for MSSQL + run: | + [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SqlWmiManagement') + $wmi = New-Object 'Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer' localhost + $tcp = $wmi.ServerInstances['MSSQLSERVER'].ServerProtocols['Tcp'] + $tcp.IsEnabled = $true + $tcp.Alter() + Restart-Service -Name MSSQLSERVER -Force + shell: powershell + if: ${{ runner.os == 'Windows' }} # Setup Python/pip - uses: actions/checkout@v2 http://sourceforge.net/p/sqlobject/sqlobject/ci/945f696258e623ebf27b6e98aed44b777c9221c2 commit 945f696258e623ebf27b6e98aed44b777c9221c2 Author: Oleg Broytman <ph...@ph...> Date: Fri Dec 2 19:19:01 2022 +0300 CI(MSSQL): Install and run `tsql` diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 642afee..75da13e 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -40,6 +40,12 @@ jobs: - uses: ankane/setup-sqlserver@v1 with: accept-eula: true + - name: tsql + run: | + sudo apt-get update --yes + sudo apt-get install --yes freetds-bin + echo "SELECT @@VERSION" | tsql -H localhost -p 1433 -U sa -P 'YourStrong!Passw0rd' + if: ${{ runner.os == 'Linux' }} # Setup Python/pip - uses: actions/checkout@v2 http://sourceforge.net/p/sqlobject/sqlobject/ci/4988fdf775add1d96a57a4cf06a45cb809efc2e8 commit 4988fdf775add1d96a57a4cf06a45cb809efc2e8 Author: Oleg Broytman <ph...@ph...> Date: Thu Nov 24 18:48:01 2022 +0300 CI: Run tests with MS SQL at GH Actions diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 7b5c8b4..642afee 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -36,6 +36,11 @@ jobs: psql --command="CREATE USER runner CREATEDB ENCRYPTED PASSWORD 'test'" if: ${{ runner.os == 'Windows' }} + # Setup MS SQL + - uses: ankane/setup-sqlserver@v1 + with: + accept-eula: true + # Setup Python/pip - uses: actions/checkout@v2 - uses: actions/setup-python@v4 @@ -71,6 +76,8 @@ jobs: devscripts/tox-select-envs $PYVER-mysql devscripts/tox-select-envs $PYVER-postgres devscripts/tox-select-envs $PYVER-sqlite + devscripts/tox-select-envs $PYVER-mssql + devscripts/tox-select-envs $PYVER-pytds devscripts/tox-select-envs $PYVER-flake8 if: ${{ runner.os == 'Linux' }} - name: Run tox @ w32 @@ -78,4 +85,6 @@ jobs: devscripts\tox-select-envs.cmd %PYVER%-mysql devscripts\tox-select-envs.cmd %PYVER%-postgres devscripts\tox-select-envs.cmd %PYVER%-sqlite + devscripts\tox-select-envs.cmd %PYVER%-mssql + devscripts\tox-select-envs.cmd %PYVER%-pytds if: ${{ runner.os == 'Windows' }} diff --git a/devscripts/requirements/requirements_pymssql.txt b/devscripts/requirements/requirements_pymssql.txt new file mode 100644 index 0000000..da5918e --- /dev/null +++ b/devscripts/requirements/requirements_pymssql.txt @@ -0,0 +1,2 @@ +pymssql < 2.2; python_version <= '3.5' +pymssql; python_version >= '3.6' diff --git a/docs/News.rst b/docs/News.rst index 6bb8c30..10acacb 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -21,6 +21,8 @@ Tests, CI * Run tests with Python 3.11. +* Run tests with MS SQL at GH Actions. + SQLObject 3.10.0 ================ diff --git a/tox.ini b/tox.ini index 81df7f6..fcf70dd 100644 --- a/tox.ini +++ b/tox.ini @@ -31,6 +31,8 @@ deps = pyodbc: pyodbc pypyodbc: pypyodbc supersqlite: supersqlite + mssql-pymssql: -rdevscripts/requirements/requirements_pymssql.txt + mssql-pytds: python-tds firebird-fdb: fdb firebirdsql: firebirdsql passenv = CI @@ -369,25 +371,6 @@ commands = # Windows testing -[mssql-pyodbc-w32] -platform = win32 -commands = - {envpython} -c "import pyodbc; print(pyodbc.drivers())" - -sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" - sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "CREATE DATABASE sqlobject_test" - pytest -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pyodbc&odbcdrv=SQL%20Server&timeout=30&debug=1" - sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" - -[testenv:py27-mssql-pyodbc-noauto-w32] -platform = win32 -commands = - easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base - {[mssql-pyodbc-w32]commands} - -[testenv:py3{4,5,6,7,8,9,10,11}-mssql-pyodbc-noauto-w32] -platform = win32 -commands = {[mssql-pyodbc-w32]commands} - [mysql-connector-w32] platform = win32 commands = @@ -631,3 +614,53 @@ commands = [testenv:py3{4,5,6,7,8,9,10,11}-sqlite-memory-w32] platform = win32 commands = {[sqlite-memory-w32]commands} + +[mssql-pymssql-w32] +platform = win32 +commands = + -sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" + sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "CREATE DATABASE sqlobject_test" + pytest -D "mssql://SA:YourStrong!Passw0rd@localhost:1433/sqlobject_test?driver=pymssql&debug=1" + sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" + +[testenv:py27-mssql-pymssql-w32] +platform = win32 +commands = + easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base + {[mssql-pymssql-w32]commands} + +[testenv:py3{4,5,6,7,8,9,10,11}-mssql-pymssql-w32] +platform = win32 +commands = {[mssql-pymssql-w32]commands} + +[mssql-pytds-w32] +platform = win32 +commands = + -sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" + sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "CREATE DATABASE sqlobject_test" + pytest -D "mssql://SA:YourStrong!Passw0rd@localhost:1433/sqlobject_test?driver=pytds&debug=1" + sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" + +[testenv:py27-mssql-pytds-w32] +platform = win32 +commands = + easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base + {[mssql-pytds-w32]commands} + +[testenv:py3{4,5,6,7,8,9,10,11}-mssql-pytds-w32] +platform = win32 +commands = {[mssql-pytds-w32]commands} + +[mssql-pyodbc-w32] +platform = win32 +commands = + {envpython} -c "import pyodbc; print(pyodbc.drivers())" + -sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" + sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "CREATE DATABASE sqlobject_test" + pytest -D "mssql://SA:YourStrong!Passw0rd@localhost/sqlobject_test?driver=pyodbc&odbcdrv=SQL%20Server&debug=1" + sqlcmd -U SA -P "YourStrong!Passw0rd" -Q "DROP DATABASE sqlobject_test" + +[testenv:py27-mssql-pyodbc-noauto-w32] +platform = win32 +commands = + easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base http://sourceforge.net/p/sqlobject/sqlobject/ci/57213a91846acad97526d3b8ab5796b98ca45499 commit 57213a91846acad97526d3b8ab5796b98ca45499 Author: Oleg Broytman <ph...@ph...> Date: Thu Nov 24 18:37:38 2022 +0300 Feat(MSSQL): Use driver `pytds` diff --git a/README.rst b/README.rst index 8c31039..3591a36 100644 --- a/README.rst +++ b/README.rst @@ -10,9 +10,9 @@ SQLObject supports a number of backends: MySQL/MariaDB (with a number of DB API drivers: ``MySQLdb``, ``mysqlclient``, ``mysql-connector``, ``PyMySQL``, ``mariadb``), PostgreSQL (``psycopg2``, ``PyGreSQL``, partially ``pg8000`` and ``py-postgresql``), SQLite (builtin ``sqlite``, -``pysqlite``, partially ``supersqlite``); connections to other backends -- Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are less -debugged). +``pysqlite``, partially ``supersqlite``); MSSQL Server (``pymssql`` or +``pytds``); connections to other backends - Firebird, Sybase and MaxDB +(also known as SAPDB) - are less debugged). Python 2.7 or 3.4+ is required. diff --git a/docs/News.rst b/docs/News.rst index 0eaaa97..6bb8c30 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -14,6 +14,8 @@ Minor features * Use ``module_loader.exec_module(module_loader.create_module())`` instead of ``module_loader.load_module()`` when available. +* Use driver ``pytds``. + Tests, CI --------- diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index 56f2541..772cc35 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -53,8 +53,8 @@ PostgreSQL_ psycopg2_ is recommended; PyGreSQL_, py-postgresql_ and pg8000_ are supported; SQLite_ has a built-in driver, PySQLite_ or supersqlite_. Firebird_ is supported via fdb_ or kinterbasdb_; pyfirebirdsql_ is supported but has problems. `MAX DB`_ (also known as SAP DB) is supported -via sapdb_. Sybase via Sybase_. `MSSQL Server`_ via pymssql_ (+ FreeTDS_) -or adodbapi_ (Win32). PyODBC_ and PyPyODBC_ are supported for MySQL, +via sapdb_. Sybase via Sybase_. `MSSQL Server`_ via pymssql_ (+ FreeTDS_), +`pytds`_ or adodbapi_ (Win32). PyODBC_ and PyPyODBC_ are supported for MySQL, PostgreSQL and MSSQL but have problems (not all tests passed). .. _MySQL: https://www.mysql.com/ @@ -83,6 +83,7 @@ PostgreSQL and MSSQL but have problems (not all tests passed). .. _`MSSQL Server`: http://www.microsoft.com/sql/ .. _pymssql: http://www.pymssql.org/en/latest/index.html .. _FreeTDS: http://www.freetds.org/ +.. _pytds: https://pypi.org/project/python-tds/ .. _adodbapi: http://adodbapi.sourceforge.net/ .. _PyODBC: https://pypi.org/project/pyodbc/ .. _PyPyODBC: https://pypi.org/project/pypyodbc/ diff --git a/setup.py b/setup.py index b67aa31..32c7e42 100755 --- a/setup.py +++ b/setup.py @@ -110,9 +110,6 @@ and `GitHub <https://github.com/sqlobject>`_. 'fdb': ['fdb'], 'firebirdsql': ['firebirdsql'], 'kinterbasdb': ['kinterbasdb'], - # MS SQL - 'adodbapi': ['adodbapi'], - 'pymssql': ['pymssql'], # MySQL 'mysql:python_version=="2.7"': ['MySQL-python'], 'mysql:python_version>="3.4"': ['mysqlclient'], @@ -123,6 +120,10 @@ and `GitHub <https://github.com/sqlobject>`_. 'oursql3 @ git+https://github.com/sqlobject/oursql.git@py3k'], 'pymysql': ['pymysql'], 'mariadb': ['mariadb'], + # MS SQL + 'adodbapi': ['adodbapi'], + 'pymssql': ['pymssql'], + 'pytds': ['python-tds'], # ODBC 'odbc': ['pyodbc'], 'pyodbc': ['pyodbc'], diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index 13cb89a..4d2ac35 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -16,7 +16,7 @@ class MSSQLConnection(DBAPI): def __init__(self, db, user, password='', host='localhost', port=None, autoCommit=0, **kw): - drivers = kw.pop('driver', None) or 'adodb,pymssql' + drivers = kw.pop('driver', None) or 'adodb,pymssql,pytds' for driver in drivers.split(','): driver = driver.strip() if not driver: @@ -28,6 +28,9 @@ class MSSQLConnection(DBAPI): elif driver == 'pymssql': import pymssql self.module = pymssql + elif driver == 'pytds': + import pytds + self.module = pytds elif driver == 'pyodbc': import pyodbc self.module = pyodbc @@ -43,7 +46,7 @@ class MSSQLConnection(DBAPI): else: raise ValueError( 'Unknown MSSQL driver "%s", ' - 'expected adodb, pymssql, ' + 'expected adodb, pymssql, pytds, ' 'odbc, pyodbc or pypyodbc' % driver) except ImportError: pass @@ -84,9 +87,10 @@ class MSSQLConnection(DBAPI): kw.pop("ncli", None) kw.pop("sspi", None) - elif driver == 'pymssql': + elif driver in ('pymssql', 'pytds'): + self.dbconnection = self.module.connect self.module.Binary = lambda st: str(st) - # don't know whether pymssql uses unicode + # don't know whether pymssql/pytds use unicode self.usingUnicodeStrings = False def _make_conn_str(keys): @@ -95,7 +99,9 @@ class MSSQLConnection(DBAPI): ('database', keys.db), ('user', keys.user), ('password', keys.password), - ('host', keys.host), + ('host', keys.host) + if driver == 'pymssql' else # pytds + ('dsn', keys.host), ('port', keys.port), ('timeout', keys.timeout), ): @@ -183,7 +189,7 @@ class MSSQLConnection(DBAPI): c.close() elif self.driver == 'pymssql': conn.autocommit(auto) - elif self.driver in ('odbc', 'pyodbc', 'pypyodbc'): + elif self.driver in ('pytds', 'odbc', 'pyodbc', 'pypyodbc'): conn.autocommit = auto HAS_IDENTITY = """ http://sourceforge.net/p/sqlobject/sqlobject/ci/55f85966c333f3488e7ca7a912ef09d2bae8b2d0 commit 55f85966c333f3488e7ca7a912ef09d2bae8b2d0 Author: Oleg Broytman <ph...@ph...> Date: Thu Nov 24 18:31:03 2022 +0300 Refactor(mssqlconnection): Use `self.module` Move ODBC-related code. diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index d439543..13cb89a 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -23,9 +23,11 @@ class MSSQLConnection(DBAPI): continue ... 679 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2022-12-22 16:31:08
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 1d0f1bc72a475ce82fac0b1c701b77bcd1e51d3e (commit) via 5347ce559a2dc11f4ca190e5291b22e0b5beecbb (commit) via bd1459096795e5ce5f4c31c2ce10955aba44fac1 (commit) from d85fd1c45bc700cd1233afb34d124c75be538847 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/1d0f1bc72a475ce82fac0b1c701b77bcd1e51d3e commit 1d0f1bc72a475ce82fac0b1c701b77bcd1e51d3e Author: Oleg Broytman <ph...@ph...> Date: Thu Dec 22 19:29:48 2022 +0300 Build: Prepare for the next release [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 8f84a2d..0040aed 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,34 +1,25 @@ Hello! -I'm pleased to announce version 3.10.1, the first minor feature release of -branch 3.10 of SQLObject. +I'm pleased to announce version 3.10.2a1, the first alpha of the upcoming +release of branch 3.10 of SQLObject. +I'm pleased to announce version 3.10.2a2, the second alpha of the upcoming +release of branch 3.10 of SQLObject. -What's new in SQLObject -======================= - -Minor features --------------- - -* Use ``module_loader.exec_module(module_loader.create_module())`` - instead of ``module_loader.load_module()`` when available. +I'm pleased to announce version 3.10.2b1, the first beta of the upcoming +release of branch 3.10 of SQLObject. -Drivers -------- +I'm pleased to announce version 3.10.2rc1, the first release candidate +of the upcoming release of branch 3.10 of SQLObject. -* Added ``mysql-connector-python``. +I'm pleased to announce version 3.10.2, the first bugfix release of branch +3.10 of SQLObject. -Tests ------ -* Run tests with Python 3.11. - -CI --- +What's new in SQLObject +======================= -* Ubuntu >= 22 and ``setup-python`` dropped Pythons < 3.7. - Use ``conda`` via ``s-weigand/setup-conda`` instead of ``setup-python`` - to install older Pythons on Linux. +Contributors for this release are For a more complete list, please see the news: http://sqlobject.org/News.html @@ -60,7 +51,7 @@ Site: http://sqlobject.org Download: -https://pypi.org/project/SQLObject/3.10.1 +https://pypi.org/project/SQLObject/3.10.2a0.dev20221222/ News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index 8fb170f..3896cef 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.10.1 -================ +SQLObject 3.10.2a0 +================== SQLObject is a free and open-source (LGPL) Python object-relational mapper. Your database tables are described as classes, and rows are diff --git a/docs/News.rst b/docs/News.rst index 68b4368..36c0229 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,6 +5,9 @@ News .. contents:: Contents: :backlinks: none +SQLObject (master) +================== + SQLObject 3.10.1 ================ http://sourceforge.net/p/sqlobject/sqlobject/ci/5347ce559a2dc11f4ca190e5291b22e0b5beecbb commit 5347ce559a2dc11f4ca190e5291b22e0b5beecbb Author: Oleg Broytman <ph...@ph...> Date: Thu Dec 22 19:22:18 2022 +0300 Release 3.10.1 diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 4082821..8f84a2d 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,25 +1,34 @@ Hello! -I'm pleased to announce version 3.10.1a1, the first alpha of the upcoming -release of branch 3.10 of SQLObject. +I'm pleased to announce version 3.10.1, the first minor feature release of +branch 3.10 of SQLObject. -I'm pleased to announce version 3.10.1a2, the second alpha of the upcoming -release of branch 3.10 of SQLObject. -I'm pleased to announce version 3.10.1b1, the first beta of the upcoming -release of branch 3.10 of SQLObject. +What's new in SQLObject +======================= -I'm pleased to announce version 3.10.1rc1, the first release candidate -of the upcoming release of branch 3.10 of SQLObject. +Minor features +-------------- -I'm pleased to announce version 3.10.1, the first bugfix release of branch -3.10 of SQLObject. +* Use ``module_loader.exec_module(module_loader.create_module())`` + instead of ``module_loader.load_module()`` when available. +Drivers +------- -What's new in SQLObject -======================= +* Added ``mysql-connector-python``. + +Tests +----- + +* Run tests with Python 3.11. + +CI +-- -Contributors for this release are +* Ubuntu >= 22 and ``setup-python`` dropped Pythons < 3.7. + Use ``conda`` via ``s-weigand/setup-conda`` instead of ``setup-python`` + to install older Pythons on Linux. For a more complete list, please see the news: http://sqlobject.org/News.html @@ -51,7 +60,7 @@ Site: http://sqlobject.org Download: -https://pypi.org/project/SQLObject/3.10.1a0.dev20221020/ +https://pypi.org/project/SQLObject/3.10.1 News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index 8c31039..8fb170f 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.10.1a0 -================== +SQLObject 3.10.1 +================ SQLObject is a free and open-source (LGPL) Python object-relational mapper. Your database tables are described as classes, and rows are diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 8942edb..8da2c52 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -10,7 +10,7 @@ cd "`dirname \"$0\"`" && PROG_DIR="`pwd`" && cd .. && -build_docs 3.10.0 && +build_docs 3.10.1 && build_docs master devel && rm -rf docs/html && diff --git a/docs/News.rst b/docs/News.rst index c9d65c9..68b4368 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,8 +5,8 @@ News .. contents:: Contents: :backlinks: none -SQLObject (master) -================== +SQLObject 3.10.1 +================ Minor features -------------- diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index e01c255..7753d96 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.10.0' +version = '3.10.1' major = 3 minor = 10 -micro = 0 +micro = 1 release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/bd1459096795e5ce5f4c31c2ce10955aba44fac1 commit bd1459096795e5ce5f4c31c2ce10955aba44fac1 Author: Oleg Broytman <ph...@ph...> Date: Thu Dec 22 19:18:57 2022 +0300 Build(RELEASE-CHECKLIST): Minor update [skip ci] diff --git a/devscripts/RELEASE-CHECKLIST b/devscripts/RELEASE-CHECKLIST index f47ec41..91d4703 100644 --- a/devscripts/RELEASE-CHECKLIST +++ b/devscripts/RELEASE-CHECKLIST @@ -1,54 +1,48 @@ 0. Run full test suite in all branches and in master. Continue if all tests passed. -1. Check out the release branch. If it is a stable release - edit - docs/News.rst to set release date. Commit. - -2. If release branch is not master - run devscripts/prerelease $NEW_TAG; if +1. If release branch is not master - run devscripts/prerelease $NEW_TAG; if it's master - run devscripts/prerelease $NEW_TAG master. - The script checks out the release branch and calls editor; update - version, the list of contributors, the list of changes and download - URL in ANNOUNCE.rst; edit __version__.py and README.rst in the release - branch - fix versions. Edit section [egg_info] in setup.cfg - set if - it is a stable or development release. In setup.py edit "Development - Status" in trove classifiers; edit download URLs: if a non-stable - version - append 'dev' and date stamp, for a stable version remove - 'dev' and date stamp). - - If it's the first stable release of the branch - edit build-all-docs, - advance stable branch. - - Commit. Verify. + The script checks out the release branch and calls editor; if it's the + first stable release of the branch - edit build-all-docs, advance stable + branch; if it is a stable release - edit docs/News.rst to set release + date; update version, the list of contributors, the list of changes and + download URL in ANNOUNCE.rst; edit __version__.py and README.rst in the + release branch - fix versions. Edit section [egg_info] in setup.cfg - + set if it is a stable or development release. In setup.py edit + "Development Status" in trove classifiers; edit download URLs: if a + non-stable version - append 'dev' and date stamp, for a stable version + remove 'dev' and date stamp). Commit. Verify. -3. If it's not master - null-merge to the next higher branch. +2. If it's not master - null-merge to the next higher branch. -4. If release branch is not master - run devscripts/prerelease-tag +3. If release branch is not master - run devscripts/prerelease-tag $NEW_TAG; if it's master - run devscripts/prerelease-tag $NEW_TAG master. This checks out the release branch and creates the new tag at the head of the release branch. -5. Run devscripts/release. This generates and uploads new archives to PyPI +4. Run devscripts/release. This generates and uploads new archives to PyPI and if it is a stable release - uploads archives and release announcement (ANNOUNCE.rst) to SourceForge. -6. Move old releases at SourceForge to subdirectory OldFiles. +5. Move old releases at SourceForge to subdirectory OldFiles. -7. Run devscripts/postrelease. The script restores ANNOUNCE.rst and +6. Run devscripts/postrelease. The script restores ANNOUNCE.rst and setup.cfg from the previous commit (HEAD~). It calls editor; update next version, remove the list of contributors and the list of changes, edit download URL in ANNOUNCE.rst. Edit README.rst and docs/News.rst - add new version. -8. Run devscripts/push-all in the development repository to push all +7. Run devscripts/push-all in the development repository to push all branches and tags to the public repositories. -9. Generate new docs using devscripts/build-all-docs. Upload docs using +8. Generate new docs using devscripts/build-all-docs. Upload docs using devscripts/publish-docs. -10. Send announcement to the SQLObject mailing list. For a stable - release send announcements to python, python-announce and python-db - mailing lists. +9. Send announcement to the SQLObject mailing list. For a stable + release send announcements to python, python-announce and python-db + mailing lists. 10. Announce new release(s) at Twitter (https://twitter.com/SQLObject) and Wikipedia (https://en.wikipedia.org/wiki/SQLObject). If it is a stable ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 12 +++++------ README.rst | 2 +- devscripts/RELEASE-CHECKLIST | 48 +++++++++++++++++++------------------------- devscripts/build-all-docs | 2 +- docs/News.rst | 3 +++ sqlobject/__version__.py | 4 ++-- 6 files changed, 34 insertions(+), 37 deletions(-) hooks/post-receive -- SQLObject development repository |
From: phd <no...@so...> - 2022-12-15 21:49:43
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via d85fd1c45bc700cd1233afb34d124c75be538847 (commit) via ea5eb96b06800024edb745b9a2e120466203a425 (commit) via 857297c3ae774e180c58e16118ca261d61f73cda (commit) via eeb61ea9059372d005cd5fe3398f0d73b827bd0f (commit) via 613839ed6f4948b1504f762d1622a987cdce0407 (commit) via 8b1204c5983ded07f95a20db96553de7d9d9f431 (commit) via 4927a0677762005a794862e940209b7046ea695d (commit) via 89a7e24d7de75c745c60481d0da68aa204427f59 (commit) via 089c9885aebbce49bae7f0388ee57df5b182ffd0 (commit) via b46a80e04bb2c5f3a873549edd5947527f0088d1 (commit) via 0745abd1c5a2c0123c18879ed9f1baa08f7bc5ef (commit) via 295eb1aee711bcbc7c01612a5e4657415fef7f25 (commit) from 44c441439545d48f9eccf172ff0b0b76bb18ac8d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/d85fd1c45bc700cd1233afb34d124c75be538847 commit d85fd1c45bc700cd1233afb34d124c75be538847 Author: Oleg Broytman <ph...@ph...> Date: Fri Dec 16 00:30:41 2022 +0300 CI(GHActions): More descriptive step names Add OS name. diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index bc67698..31b170b 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -27,11 +27,11 @@ jobs: # Setup PostgreSQL - uses: ankane/setup-postgres@v1 - - name: Setup Postgres user + - name: Setup Postgres user @ Linux run: | sudo -u postgres psql --command="ALTER USER runner CREATEDB ENCRYPTED PASSWORD 'test'" if: ${{ runner.os == 'Linux' }} - - name: Setup Postgres user + - name: Setup Postgres user @ w32 run: | psql --command="CREATE USER runner CREATEDB ENCRYPTED PASSWORD 'test'" if: ${{ runner.os == 'Windows' }} http://sourceforge.net/p/sqlobject/sqlobject/ci/ea5eb96b06800024edb745b9a2e120466203a425 commit ea5eb96b06800024edb745b9a2e120466203a425 Merge: 857297c eeb61ea Author: Oleg Broytman <ph...@ph...> Date: Fri Dec 16 00:25:13 2022 +0300 Merge branch 'mysql-connector-python' Add driver `mysql-connector-python`. http://sourceforge.net/p/sqlobject/sqlobject/ci/857297c3ae774e180c58e16118ca261d61f73cda commit 857297c3ae774e180c58e16118ca261d61f73cda Merge: 295eb1a 089c988 Author: Oleg Broytman <ph...@ph...> Date: Fri Dec 16 00:15:10 2022 +0300 Merge branch 'conda-install-old-pythons' Use `conda` to install older Pythons. http://sourceforge.net/p/sqlobject/sqlobject/ci/eeb61ea9059372d005cd5fe3398f0d73b827bd0f commit eeb61ea9059372d005cd5fe3398f0d73b827bd0f Author: Oleg Broytman <ph...@ph...> Date: Sun Dec 4 21:01:09 2022 +0300 Tests(mysql-connector-python): Limit versions Versions 8.0.30+ require charset `utf8mb4` on the server which is not available on old MySQL and MariaDB servers. diff --git a/devscripts/requirements/requirements_connector_python.txt b/devscripts/requirements/requirements_connector_python.txt index d06b191..e4bffe7 100644 --- a/devscripts/requirements/requirements_connector_python.txt +++ b/devscripts/requirements/requirements_connector_python.txt @@ -3,8 +3,9 @@ protobuf < 3.19; python_version == '3.4' mysql-connector-python <= 8.0.22, > 2.0; python_version == '3.4' mysql-connector-python <= 8.0.23, >= 8.0.5; python_version == '3.5' mysql-connector-python <= 8.0.28, >= 8.0.6; python_version == '3.6' -mysql-connector-python >= 8.0.13; python_version == '3.7' -mysql-connector-python >= 8.0.19; python_version == '3.8' -mysql-connector-python >= 8.0.24; python_version == '3.9' -mysql-connector-python >= 8.0.28; python_version == '3.10' -mysql-connector-python >= 8.0.31; python_version >= '3.11' +mysql-connector-python <= 8.0.29, >= 8.0.13; python_version == '3.7' +mysql-connector-python <= 8.0.29, >= 8.0.19; python_version == '3.8' +mysql-connector-python <= 8.0.29, >= 8.0.24; python_version == '3.9' +mysql-connector-python <= 8.0.29, >= 8.0.28; python_version == '3.10' +#mysql-connector-python >= 8.0.31; python_version >= '3.11' +mysql-connector-python == 8.0.29; python_version >= '3.11' http://sourceforge.net/p/sqlobject/sqlobject/ci/613839ed6f4948b1504f762d1622a987cdce0407 commit 613839ed6f4948b1504f762d1622a987cdce0407 Author: Oleg Broytman <ph...@ph...> Date: Sun Dec 4 20:58:15 2022 +0300 Tests: Skip some inheritance tests under `mysql-connector-python` M-C-P falls into an infinite loop. diff --git a/sqlobject/inheritance/tests/test_deep_inheritance.py b/sqlobject/inheritance/tests/test_deep_inheritance.py index 1ef4d36..4bdc8e3 100644 --- a/sqlobject/inheritance/tests/test_deep_inheritance.py +++ b/sqlobject/inheritance/tests/test_deep_inheritance.py @@ -72,6 +72,11 @@ def test_creation_fail2(): def test_deep_inheritance(): + conn = getConnection() + if conn.module.__name__ == 'mysql.connector' \ + and conn.connector_type == 'mysql.connector-python': + skip("connector-python falls into an infinite loop here") + setupClass([DIManager, DIEmployee, DIPerson]) manager = DIManager(firstName='Project', lastName='Manager', @@ -81,7 +86,6 @@ def test_deep_inheritance(): so_position='Project leader', manager=manager).id DIPerson(firstName='Oneof', lastName='Authors', manager=manager) - conn = getConnection() cache = conn.cache cache.clear() diff --git a/sqlobject/inheritance/tests/test_inheritance.py b/sqlobject/inheritance/tests/test_inheritance.py index cc26c8f..2dfd0e3 100644 --- a/sqlobject/inheritance/tests/test_inheritance.py +++ b/sqlobject/inheritance/tests/test_inheritance.py @@ -1,7 +1,21 @@ +import pytest from pytest import raises from sqlobject import IntCol, StringCol from sqlobject.inheritance import InheritableSQLObject -from sqlobject.tests.dbtest import setupClass +from sqlobject.tests.dbtest import getConnection, setupClass + + +try: + connection = getConnection() +except (AttributeError, NameError): + # The module was imported during documentation building + pass +else: + if connection.module.__name__ == 'mysql.connector' \ + and connection.connector_type == 'mysql.connector-python': + pytestmark = pytest.mark.skip( + "connector-python falls into an infinite loop here") + ######################################## # Inheritance diff --git a/sqlobject/inheritance/tests/test_inheritance_tree.py b/sqlobject/inheritance/tests/test_inheritance_tree.py index 58cdb7e..34666c3 100644 --- a/sqlobject/inheritance/tests/test_inheritance_tree.py +++ b/sqlobject/inheritance/tests/test_inheritance_tree.py @@ -1,6 +1,7 @@ +from pytest import skip from sqlobject import StringCol from sqlobject.inheritance import InheritableSQLObject -from sqlobject.tests.dbtest import setupClass +from sqlobject.tests.dbtest import getConnection, setupClass ######################################## # Inheritance Tree @@ -28,6 +29,11 @@ class Tree5(Tree2): def test_tree(): + conn = getConnection() + if conn.module.__name__ == 'mysql.connector' \ + and conn.connector_type == 'mysql.connector-python': + skip("connector-python falls into an infinite loop here") + setupClass([Tree1, Tree2, Tree3, Tree4, Tree5]) Tree1(aprop='t1') # t1 diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index ac3e062..76b1172 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -67,6 +67,10 @@ class MySQLConnection(DBAPI): self.CR_SERVER_LOST = \ mysql.connector.errorcode.CR_SERVER_LOST self.ER_DUP_ENTRY = mysql.connector.errorcode.ER_DUP_ENTRY + if driver == 'connector-python': + self.connector_type = 'mysql.connector-python' + else: + self.connector_type = 'mysql.connector' elif driver == 'oursql': import oursql self.module = oursql http://sourceforge.net/p/sqlobject/sqlobject/ci/8b1204c5983ded07f95a20db96553de7d9d9f431 commit 8b1204c5983ded07f95a20db96553de7d9d9f431 Author: Oleg Broytman <ph...@ph...> Date: Sun Dec 4 20:56:57 2022 +0300 Tests: Allow transactions with MySQL MySQL (mostly MariaDB these days) enabled transactions by default long ago. diff --git a/sqlobject/tests/dbtest.py b/sqlobject/tests/dbtest.py index c7c8b0e..e934ac5 100644 --- a/sqlobject/tests/dbtest.py +++ b/sqlobject/tests/dbtest.py @@ -43,7 +43,7 @@ supportsMatrix = { '+memorydb': 'sqlite', '+rlike': 'mysql postgres sqlite', '+schema': 'postgres', - '-transactions': 'mysql', + '-transactions': ' ', } http://sourceforge.net/p/sqlobject/sqlobject/ci/4927a0677762005a794862e940209b7046ea695d commit 4927a0677762005a794862e940209b7046ea695d Author: Oleg Broytman <ph...@ph...> Date: Sun Dec 4 20:55:57 2022 +0300 Fix(dbconnection): autocommit value must be bool diff --git a/sqlobject/dbconnection.py b/sqlobject/dbconnection.py index 6a383e7..e691f2d 100644 --- a/sqlobject/dbconnection.py +++ b/sqlobject/dbconnection.py @@ -799,7 +799,7 @@ class Transaction(object): self._obsolete = True self._dbConnection = dbConnection self._connection = dbConnection.getConnection() - self._dbConnection._setAutoCommit(self._connection, 0) + self._dbConnection._setAutoCommit(self._connection, False) self.cache = CacheSet(cache=dbConnection.doCache) self._deletedCache = {} self._obsolete = False @@ -924,7 +924,7 @@ class Transaction(object): def _makeObsolete(self): self._obsolete = True if self._dbConnection.autoCommit: - self._dbConnection._setAutoCommit(self._connection, 1) + self._dbConnection._setAutoCommit(self._connection, True) self._dbConnection.releaseConnection(self._connection, explicit=True) self._connection = None @@ -938,7 +938,7 @@ class Transaction(object): "without rolling back this one" self._obsolete = False self._connection = self._dbConnection.getConnection() - self._dbConnection._setAutoCommit(self._connection, 0) + self._dbConnection._setAutoCommit(self._connection, False) def __del__(self): if self._obsolete: http://sourceforge.net/p/sqlobject/sqlobject/ci/89a7e24d7de75c745c60481d0da68aa204427f59 commit 89a7e24d7de75c745c60481d0da68aa204427f59 Author: Oleg Broytman <ph...@ph...> Date: Sun Dec 4 20:54:55 2022 +0300 Feat(MySQL): Add `mysql-connector-python` diff --git a/devscripts/requirements/requirements_connector_python.txt b/devscripts/requirements/requirements_connector_python.txt new file mode 100644 index 0000000..d06b191 --- /dev/null +++ b/devscripts/requirements/requirements_connector_python.txt @@ -0,0 +1,10 @@ +mysql-connector-python <= 8.0.23; python_version == '2.7' +protobuf < 3.19; python_version == '3.4' +mysql-connector-python <= 8.0.22, > 2.0; python_version == '3.4' +mysql-connector-python <= 8.0.23, >= 8.0.5; python_version == '3.5' +mysql-connector-python <= 8.0.28, >= 8.0.6; python_version == '3.6' +mysql-connector-python >= 8.0.13; python_version == '3.7' +mysql-connector-python >= 8.0.19; python_version == '3.8' +mysql-connector-python >= 8.0.24; python_version == '3.9' +mysql-connector-python >= 8.0.28; python_version == '3.10' +mysql-connector-python >= 8.0.31; python_version >= '3.11' diff --git a/docs/News.rst b/docs/News.rst index 02bcdb4..c9d65c9 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -14,6 +14,11 @@ Minor features * Use ``module_loader.exec_module(module_loader.create_module())`` instead of ``module_loader.load_module()`` when available. +Drivers +------- + +* Added ``mysql-connector-python``. + Tests ----- @@ -468,7 +473,8 @@ Minor features 'kinterbasdb' in that order. pyfirebirdsql is supported but has problems. * Add ``driver`` keyword for MySQLConnection. Allowed values are 'mysqldb', - 'connector', 'oursql' and 'pymysql'. Default is to test for mysqldb only. + 'connector', 'connector-python', 'oursql' and 'pymysql'. Default is to + test for mysqldb only. * Add support for `MySQL Connector <https://pypi.org/project/mysql-connector/>`_ (pure python; `binary diff --git a/setup.py b/setup.py index b67aa31..db82465 100755 --- a/setup.py +++ b/setup.py @@ -117,6 +117,7 @@ and `GitHub <https://github.com/sqlobject>`_. 'mysql:python_version=="2.7"': ['MySQL-python'], 'mysql:python_version>="3.4"': ['mysqlclient'], 'mysql-connector': ['mysql-connector'], + 'mysql-connector-python': ['mysql-connector-python'], 'oursql:python_version=="2.7"': [ 'oursql @ git+https://github.com/sqlobject/oursql.git@master'], 'oursql:python_version>="3.4"': [ diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index c4a72a6..ac3e062 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -59,7 +59,7 @@ class MySQLConnection(DBAPI): self.CR_SERVER_LOST = \ MySQLdb.constants.CR.CR_SERVER_LOST self.ER_DUP_ENTRY = MySQLdb.constants.ER.DUP_ENTRY - elif driver == 'connector': + elif driver in ('connector', 'connector-python'): import mysql.connector self.module = mysql.connector self.CR_SERVER_GONE_ERROR = \ @@ -92,7 +92,7 @@ class MySQLConnection(DBAPI): else: raise ValueError( 'Unknown MySQL driver "%s", ' - 'expected mysqldb, connector, ' + 'expected mysqldb, connector, connector-python, ' 'oursql, pymysql, mariadb, ' 'odbc, pyodbc or pypyodbc' % driver) except ImportError: @@ -118,7 +118,7 @@ class MySQLConnection(DBAPI): "client_flag", "local_infile"): if key in kw: self.kw[key] = int(kw.pop(key)) - if driver == 'connector': + if driver in ('connector', 'connector-python'): for key in ("ssl_key", "ssl_cert", "ssl_ca", "ssl_capath"): if key in kw: self.kw[key] = kw.pop(key) @@ -154,7 +154,7 @@ class MySQLConnection(DBAPI): elif driver == 'mariadb': self.kw.pop("charset", None) - elif driver == 'connector': + elif driver in ('connector', 'connector-python'): registerConverter(bytes, ConnectorBytesConverter) global mysql_Bin @@ -185,7 +185,7 @@ class MySQLConnection(DBAPI): def character_set_name(self): return dbEncoding + '_' + dbEncoding Connection.character_set_name = character_set_name - if self.driver == 'connector': + if self.driver in ('connector', 'connector-python'): self.kw['consume_results'] = True try: if self.driver in ('odbc', 'pyodbc', 'pypyodbc'): @@ -237,7 +237,7 @@ class MySQLConnection(DBAPI): try: conn.autocommit(auto) except TypeError: - # mysql-connector has autocommit as a property + # mysql-connector{-python} has autocommit as a property conn.autocommit = auto def _force_reconnect(self, conn): @@ -252,7 +252,8 @@ class MySQLConnection(DBAPI): self.printDebug(conn, query, 'QueryR') dbEncoding = self.dbEncoding if dbEncoding and not isinstance(query, bytes) and ( - self.driver in ('mysqldb', 'connector', 'oursql', 'mariadb')): + self.driver in ('mysqldb', 'connector', 'connector-python', + 'oursql', 'mariadb')): query = query.encode(dbEncoding, 'surrogateescape') # When a server connection is lost and a query is attempted, most of # the time the query will raise a SERVER_LOST exception, then at the diff --git a/tox.ini b/tox.ini index 81df7f6..9d1bd95 100644 --- a/tox.ini +++ b/tox.ini @@ -19,6 +19,7 @@ deps = mysqldb: mysql-python mysqlclient: mysqlclient mysql-connector: mysql-connector <= 2.2.2 + mysql-connector-python: -rdevscripts/requirements/requirements_connector_python.txt mysql-oursql: git+https://github.com/sqlobject/oursql.git@master#egg=oursql mysql-oursql3: git+https://github.com/sqlobject/oursql.git@py3k#egg=oursql pymysql: -rdevscripts/requirements/requirements_pymysql.txt @@ -97,6 +98,22 @@ commands = [testenv:py3{4,5,6,7,8,9,10,11}-mysql-connector] commands = {[mysql-connector]commands} +[mysql-connector-python] +commands = + {[testenv]commands} + -mysql --execute="drop database sqlobject_test;" + mysql --execute="create database sqlobject_test;" + pytest -D "mysql://runner:@localhost/sqlobject_test?driver=connector-python&charset=utf8&debug=1" + mysql --execute="drop database sqlobject_test;" + +[testenv:py27-mysql-connector-python{,-w32}] +commands = + easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base + {[mysql-connector-python]commands} + +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-connector-python{,-w32}] +commands = {[mysql-connector-python]commands} + [oursql] commands = {[testenv]commands} http://sourceforge.net/p/sqlobject/sqlobject/ci/089c9885aebbce49bae7f0388ee57df5b182ffd0 commit 089c9885aebbce49bae7f0388ee57df5b182ffd0 Author: Oleg Broytman <ph...@ph...> Date: Thu Dec 15 19:55:37 2022 +0300 Tests(tox): Limit "tox < 4" `tox` 4+ has incompatible `tox.ini` syntax. It's impossible to use one `tox.ini` for Pythons < 3.7 and 3.7+. diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 5eb73dc..bc67698 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -58,7 +58,7 @@ jobs: python --version python -m pip install --upgrade pip setuptools wheel pip --version - pip install --upgrade virtualenv tox + pip install --upgrade virtualenv "tox < 4" - name: Set PYVER run: | import os, sys diff --git a/devscripts/requirements/requirements_tox.txt b/devscripts/requirements/requirements_tox.txt index 8b5960b..b72a322 100644 --- a/devscripts/requirements/requirements_tox.txt +++ b/devscripts/requirements/requirements_tox.txt @@ -1 +1 @@ -tox >= 3.15 +tox >= 3.15, < 4 http://sourceforge.net/p/sqlobject/sqlobject/ci/b46a80e04bb2c5f3a873549edd5947527f0088d1 commit b46a80e04bb2c5f3a873549edd5947527f0088d1 Author: Oleg Broytman <ph...@ph...> Date: Fri Dec 9 15:17:15 2022 +0300 CI(GHActions): Set `$LD_LIBRARY_PATH` Python 2.7 on Linux requires `$LD_LIBRARY_PATH`. diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index a0fc314..5eb73dc 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -62,8 +62,15 @@ jobs: - name: Set PYVER run: | import os, sys + ld_library_path = None pyver = '%d%d' % tuple(sys.version_info[:2]) + if os.name == 'posix': + if pyver == '27': # Python 2.7 on Linux requires `$LD_LIBRARY_PATH` + ld_library_path = os.path.join( + os.path.dirname(os.path.dirname(sys.executable)), 'lib') with open(os.environ['GITHUB_ENV'], 'a') as f: + if ld_library_path: + f.write('LD_LIBRARY_PATH=' + ld_library_path + '\n') f.write('PYVER=' + pyver + '\n') f.write('PGPASSWORD=test\n') shell: python http://sourceforge.net/p/sqlobject/sqlobject/ci/0745abd1c5a2c0123c18879ed9f1baa08f7bc5ef ... 98 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-11-18 15:31:11
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated discards c4b428015b5286fba37f49ffecff592dc1217e03 (commit) via 44c441439545d48f9eccf172ff0b0b76bb18ac8d (commit) via 6509ac8c44f0ef98e6d64007a7cc9efd2abf083b (commit) via 302bfb6818745c31b5c863eacfdc315b5784d396 (commit) via 25ab36002ae4affa9d9337b5b11fdee94aecfa1c (commit) via e2e7df6412ea84348729eb9450e7107bd5170c74 (commit) This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this: * -- * -- B -- O -- O -- O (c4b428015b5286fba37f49ffecff592dc1217e03) \ N -- N -- N (44c441439545d48f9eccf172ff0b0b76bb18ac8d) When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B. Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/44c441439545d48f9eccf172ff0b0b76bb18ac8d commit 44c441439545d48f9eccf172ff0b0b76bb18ac8d Author: Oleg Broytman <ph...@ph...> Date: Fri Nov 18 18:29:44 2022 +0300 Docs(README): Update Copied from https://github.com/sqlobject/.github/tree/master/profile [skip ci] diff --git a/README.rst b/README.rst index c910205..8c31039 100644 --- a/README.rst +++ b/README.rst @@ -1,15 +1,86 @@ SQLObject 3.10.1a0 ================== -Thanks for looking at SQLObject. SQLObject is an object-relational -mapper, i.e., a library that will wrap your database tables in Python -classes, and your rows in Python instances. +SQLObject is a free and open-source (LGPL) Python object-relational +mapper. Your database tables are described as classes, and rows are +instances of those classes. SQLObject is meant to be easy to use and +quick to get started with. -It currently supports MySQL, PostgreSQL and SQLite; connections to other -backends - Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are -lesser debugged). +SQLObject supports a number of backends: MySQL/MariaDB (with a number of +DB API drivers: ``MySQLdb``, ``mysqlclient``, ``mysql-connector``, +``PyMySQL``, ``mariadb``), PostgreSQL (``psycopg2``, ``PyGreSQL``, +partially ``pg8000`` and ``py-postgresql``), SQLite (builtin ``sqlite``, +``pysqlite``, partially ``supersqlite``); connections to other backends +- Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are less +debugged). Python 2.7 or 3.4+ is required. -For more information please see the documentation in -`<docs/SQLObject.rst>`_, or online at http://sqlobject.org/ + +Where is SQLObject +================== + +Site: +http://sqlobject.org + +Download: +https://pypi.org/project/SQLObject/ + +News and changes: +http://sqlobject.org/News.html + +StackOverflow: +https://stackoverflow.com/questions/tagged/sqlobject + +Mailing lists: +https://sourceforge.net/p/sqlobject/mailman/ + +Development: +http://sqlobject.org/devel/ + +Developer Guide: +http://sqlobject.org/DeveloperGuide.html + + +Example +======= + +Install:: + + $ pip install sqlobject + +Create a simple class that wraps a table:: + + >>> from sqlobject import * + >>> + >>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:') + >>> + >>> class Person(SQLObject): + ... fname = StringCol() + ... mi = StringCol(length=1, default=None) + ... lname = StringCol() + ... + >>> Person.createTable() + +Use the object:: + + >>> p = Person(fname="John", lname="Doe") + >>> p + <Person 1 fname='John' mi=None lname='Doe'> + >>> p.fname + 'John' + >>> p.mi = 'Q' + >>> p2 = Person.get(1) + >>> p2 + <Person 1 fname='John' mi='Q' lname='Doe'> + >>> p is p2 + True + +Queries:: + + >>> p3 = Person.selectBy(lname="Doe")[0] + >>> p3 + <Person 1 fname='John' mi='Q' lname='Doe'> + >>> pc = Person.select(Person.q.lname=="Doe").count() + >>> pc + 1 http://sourceforge.net/p/sqlobject/sqlobject/ci/6509ac8c44f0ef98e6d64007a7cc9efd2abf083b commit 6509ac8c44f0ef98e6d64007a7cc9efd2abf083b Author: Oleg Broytman <ph...@ph...> Date: Thu Nov 17 21:54:35 2022 +0300 Fix(compat): Use `.exec_module(.create_module())` instead of `.load_module()` Use `module_loader.exec_module(module_loader.create_module())` instead of `module_loader.load_module()` when available. diff --git a/docs/News.rst b/docs/News.rst index e2d0b97..0eaaa97 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -8,6 +8,12 @@ News SQLObject (master) ================== +Minor features +-------------- + +* Use ``module_loader.exec_module(module_loader.create_module())`` + instead of ``module_loader.load_module()`` when available. + Tests, CI --------- diff --git a/sqlobject/compat.py b/sqlobject/compat.py index 72d696f..fc8edf2 100644 --- a/sqlobject/compat.py +++ b/sqlobject/compat.py @@ -47,4 +47,13 @@ else: def load_module_from_file(base_name, module_name, filename): specs = importlib.util.spec_from_file_location(module_name, filename) - return specs.loader.load_module() + loader = specs.loader + if hasattr(loader, 'create_module'): + module = loader.create_module(specs) + else: + module = None + if module is None: + return specs.loader.load_module() + else: + loader.exec_module(module) + return module http://sourceforge.net/p/sqlobject/sqlobject/ci/302bfb6818745c31b5c863eacfdc315b5784d396 commit 302bfb6818745c31b5c863eacfdc315b5784d396 Author: Oleg Broytman <ph...@ph...> Date: Thu Oct 27 19:05:04 2022 +0300 Tests(tox): Fix the list of `flake8` environments diff --git a/tox.ini b/tox.ini index 1f8bbbf..81df7f6 100644 --- a/tox.ini +++ b/tox.ini @@ -358,7 +358,7 @@ commands = {[firebirdsql]commands} # Special test environments -[testenv:py{27,34,35,36,37,38,39}-flake8] +[testenv:py{27,34,35,36,37,38,39,310,311}-flake8] changedir = ./ deps = flake8 http://sourceforge.net/p/sqlobject/sqlobject/ci/25ab36002ae4affa9d9337b5b11fdee94aecfa1c commit 25ab36002ae4affa9d9337b5b11fdee94aecfa1c Author: Oleg Broytman <ph...@ph...> Date: Tue Oct 25 01:26:30 2022 +0300 Tests, CI: Add Python 3.11 diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 2c0330d..80335a8 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest] - python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10"] + python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11"] include: - os: ubuntu-latest os-name: Linux diff --git a/devscripts/test-sqlobject.cmd b/devscripts/test-sqlobject.cmd index 8c7e38d..f227bf0 100644 --- a/devscripts/test-sqlobject.cmd +++ b/devscripts/test-sqlobject.cmd @@ -3,7 +3,7 @@ SetLocal EnableDelayedExpansion set SavePATH=%PATH% -for %%V in (27 34 35 36 37 38 39 310) do ( +for %%V in (27 34 35 36 37 38 39 310 311) do ( for %%s in (32 64) do ( set PATH=C:\Python%%V-%%s;C:\Python%%V-%%s\Scripts;!SavePATH! set TOXPYTHON=C:\Python%%V-%%s\python.exe diff --git a/docs/News.rst b/docs/News.rst index 42f5616..e2d0b97 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -8,6 +8,11 @@ News SQLObject (master) ================== +Tests, CI +--------- + +* Run tests with Python 3.11. + SQLObject 3.10.0 ================ diff --git a/setup.py b/setup.py index 57ea539..b67aa31 100755 --- a/setup.py +++ b/setup.py @@ -62,6 +62,7 @@ and `GitHub <https://github.com/sqlobject>`_. "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Database", "Topic :: Database :: Front-Ends", "Topic :: Software Development :: Libraries :: Python Modules", diff --git a/tox.ini b/tox.ini index cc53f36..1f8bbbf 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 3.15 -envlist = py27,py3{4,5,6,7,8,9,10}-sqlite{,-memory},py{27,310}-flake8 +envlist = py27,py3{4,5,6,7,8,9,10,11}-sqlite{,-memory},py{27,36,311}-flake8 # Base test environment settings [testenv] @@ -62,7 +62,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysqldb]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysqldb] +[testenv:py3{4,5,6,7,8,9,10,11}-mysqldb] commands = {envpython} -c "print('MySQL-python requires Python 2.7')" deps = @@ -78,7 +78,7 @@ commands = commands = {envpython} -c "print('mysqlclient requires Python 3.4+')" deps = -[testenv:py3{4,5,6,7,8,9,10}-mysqlclient] +[testenv:py3{4,5,6,7,8,9,10,11}-mysqlclient] commands = {[mysqlclient]commands} [mysql-connector] @@ -94,7 +94,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-connector]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-connector] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-connector] commands = {[mysql-connector]commands} [oursql] @@ -110,7 +110,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[oursql]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-oursql3-noauto] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-oursql3-noauto] commands = {[oursql]commands} [pymysql] @@ -126,7 +126,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pymysql]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-pymysql] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pymysql] commands = {[pymysql]commands} [mariadb] @@ -141,7 +141,7 @@ commands = commands = {envpython} -c "print('mariadb requires Python 3.6+')" deps = -[testenv:py3{6,7,8,9,10}-mariadb] +[testenv:py3{6,7,8,9,10,11}-mariadb] commands = {[mariadb]commands} [mysql-pyodbc] @@ -158,7 +158,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pyodbc]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-pyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pyodbc-noauto] commands = {[mysql-pyodbc]commands} [mysql-pypyodbc] @@ -174,7 +174,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pypyodbc]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-pypyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pypyodbc-noauto] commands = {[mysql-pypyodbc]commands} # PostgreSQL test environments @@ -191,7 +191,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[psycopg]commands} -[testenv:py3{4,5,6,7,8,9,10}-postgres-psycopg] +[testenv:py3{4,5,6,7,8,9,10,11}-postgres-psycopg] commands = {[psycopg]commands} [pygresql] @@ -207,7 +207,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pygresql]commands} -[testenv:py3{4,5,6,7,8,9,10}-postgres-pygresql] +[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pygresql] commands = {[pygresql]commands} [pypostgresql] @@ -222,7 +222,7 @@ commands = commands = {envpython} -c "print('pypostgresql requires Python 3.4+')" deps = -[testenv:py3{4,5,6,7,8,9,10}-postgres-pypostgresql-noauto] +[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pypostgresql-noauto] commands = {[pypostgresql]commands} [pg8000] @@ -241,7 +241,7 @@ commands = [testenv:py3{4,5,6}-postgres-pg8000] commands = {[pg8000]commands} -[testenv:py3{7,8,9,10}-postgres-pg8000-noauto] +[testenv:py3{7,8,9,10,11}-postgres-pg8000-noauto] commands = {[pg8000]commands} [postgres-pyodbc] @@ -258,7 +258,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[postgres-pyodbc]commands} -[testenv:py3{4,5,6,7,8,9,10}-postgres-pyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pyodbc-noauto] commands = {[postgres-pyodbc]commands} [postgres-pypyodbc] @@ -274,7 +274,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[postgres-pypyodbc]commands} -[testenv:py3{4,5,6,7,8,9,10}-postgres-pypyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pypyodbc-noauto] commands = {[postgres-pypyodbc]commands} @@ -291,7 +291,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite]commands} -[testenv:py3{4,5,6,7,8,9,10}-sqlite] +[testenv:py3{4,5,6,7,8,9,10,11}-sqlite] commands = {[sqlite]commands} [sqlite-memory] @@ -304,7 +304,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite-memory]commands} -[testenv:py3{4,5,6,7,8,9,10}-sqlite-memory] +[testenv:py3{4,5,6,7,8,9,10,11}-sqlite-memory] commands = {[sqlite-memory]commands} [sqlite-supersqlite] @@ -319,7 +319,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite-supersqlite]commands} -[testenv:py3{4,5,6,7,8,9,10}-sqlite-supersqlite] +[testenv:py3{4,5,6,7,8,9,10,11}-sqlite-supersqlite] commands = {[sqlite-supersqlite]commands} @@ -337,7 +337,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[fdb]commands} -[testenv:py3{4,5,6,7,8,9,10}-firebird-fdb] +[testenv:py3{4,5,6,7,8,9,10,11}-firebird-fdb] commands = {[fdb]commands} [firebirdsql] @@ -353,7 +353,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[firebirdsql]commands} -[testenv:py3{4,5,6,7,8,9,10}-firebirdsql] +[testenv:py3{4,5,6,7,8,9,10,11}-firebirdsql] commands = {[firebirdsql]commands} @@ -384,7 +384,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mssql-pyodbc-w32]commands} -[testenv:py3{4,5,6,7,8,9,10}-mssql-pyodbc-noauto-w32] +[testenv:py3{4,5,6,7,8,9,10,11}-mssql-pyodbc-noauto-w32] platform = win32 commands = {[mssql-pyodbc-w32]commands} @@ -403,7 +403,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-connector-w32]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-connector-w32] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-connector-w32] platform = win32 commands = {[mysql-connector-w32]commands} @@ -422,7 +422,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pymysql-w32]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-pymysql-w32] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pymysql-w32] platform = win32 commands = {[pymysql-w32]commands} @@ -440,7 +440,7 @@ platform = win32 commands = {envpython} -c "print('mariadb requires Python 3.6+')" deps = -[testenv:py3{6,7,8,9,10}-mariadb-w32] +[testenv:py3{6,7,8,9,10,11}-mariadb-w32] platform = win32 commands = {[mariadb-w32]commands} @@ -460,7 +460,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pyodbc-w32]commands} -[testenv:py3{4,5,6,7,8,9,10}-mysql-pyodbc-noauto-w32] +[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pyodbc-noauto-w32] platform = win32 commands = {[mysql-pyodbc-w32]commands} @@ -480,7 +480,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pypyodbc-w32]commands} ... 119 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-10-24 22:27:52
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via c4b428015b5286fba37f49ffecff592dc1217e03 (commit) via 780cc55642eddbdc1b41557f79fe1d406415f334 (commit) via 8417bda4771e6281f3851bc18c4c2fed5d48a2c0 (commit) via e3f4e1a00f36a197cc9318ea4fc5911da02ea7ef (commit) via 3fa162e89cbb1611e03ccbf140cecb7fbddd4f1c (commit) from 8d80a738de4e210cdf679a13ad328cae3902bc61 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/c4b428015b5286fba37f49ffecff592dc1217e03 commit c4b428015b5286fba37f49ffecff592dc1217e03 Author: Oleg Broytman <ph...@ph...> Date: Tue Oct 25 01:26:30 2022 +0300 Build(devscripts/test-sqlobject.cmd): Add Python 3.11 [skip ci] diff --git a/devscripts/test-sqlobject.cmd b/devscripts/test-sqlobject.cmd index 8c7e38d..f227bf0 100644 --- a/devscripts/test-sqlobject.cmd +++ b/devscripts/test-sqlobject.cmd @@ -3,7 +3,7 @@ SetLocal EnableDelayedExpansion set SavePATH=%PATH% -for %%V in (27 34 35 36 37 38 39 310) do ( +for %%V in (27 34 35 36 37 38 39 310 311) do ( for %%s in (32 64) do ( set PATH=C:\Python%%V-%%s;C:\Python%%V-%%s\Scripts;!SavePATH! set TOXPYTHON=C:\Python%%V-%%s\python.exe http://sourceforge.net/p/sqlobject/sqlobject/ci/780cc55642eddbdc1b41557f79fe1d406415f334 commit 780cc55642eddbdc1b41557f79fe1d406415f334 Author: Oleg Broytman <ph...@ph...> Date: Sun Sep 25 14:52:49 2022 +0300 It's free, open-source (MIT), Python [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index db59849..4082821 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -28,9 +28,10 @@ http://sqlobject.org/News.html What is SQLObject ================= -SQLObject is an object-relational mapper. Your database tables are described -as classes, and rows are instances of those classes. SQLObject is meant to be -easy to use and quick to get started with. +SQLObject is a free and open-source (LGPL) Python object-relational +mapper. Your database tables are described as classes, and rows are +instances of those classes. SQLObject is meant to be easy to use and +quick to get started with. SQLObject supports a number of backends: MySQL/MariaDB (with a number of DB API drivers: ``MySQLdb``, ``mysqlclient``, ``mysql-connector``, http://sourceforge.net/p/sqlobject/sqlobject/ci/8417bda4771e6281f3851bc18c4c2fed5d48a2c0 commit 8417bda4771e6281f3851bc18c4c2fed5d48a2c0 Author: Oleg Broytman <ph...@ph...> Date: Sun Sep 25 14:48:53 2022 +0300 Add lists of supported DB API drivers [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index ae69435..db59849 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -32,9 +32,13 @@ SQLObject is an object-relational mapper. Your database tables are described as classes, and rows are instances of those classes. SQLObject is meant to be easy to use and quick to get started with. -SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite; -connections to other backends - Firebird, Sybase, MSSQL -and MaxDB (also known as SAPDB) - are lesser debugged). +SQLObject supports a number of backends: MySQL/MariaDB (with a number of +DB API drivers: ``MySQLdb``, ``mysqlclient``, ``mysql-connector``, +``PyMySQL``, ``mariadb``), PostgreSQL (``psycopg2``, ``PyGreSQL``, +partially ``pg8000`` and ``py-postgresql``), SQLite (builtin ``sqlite``, +``pysqlite``, partially ``supersqlite``); connections to other backends +- Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are less +debugged). Python 2.7 or 3.4+ is required. http://sourceforge.net/p/sqlobject/sqlobject/ci/e3f4e1a00f36a197cc9318ea4fc5911da02ea7ef commit e3f4e1a00f36a197cc9318ea4fc5911da02ea7ef Author: Oleg Broytman <ph...@ph...> Date: Fri Sep 23 16:22:22 2022 +0300 Docs(ANNOUNCE): Reorder URLs: first users then developers Change the URL for mailing lists. [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 7d270b0..ae69435 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -45,15 +45,6 @@ Where is SQLObject Site: http://sqlobject.org -Development: -http://sqlobject.org/devel/ - -Developer Guide: -http://sqlobject.org/DeveloperGuide.html - -Mailing list: -https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss - Download: https://pypi.org/project/SQLObject/3.10.1a0.dev20221020/ @@ -63,6 +54,15 @@ http://sqlobject.org/News.html StackOverflow: https://stackoverflow.com/questions/tagged/sqlobject +Mailing lists: +https://sourceforge.net/p/sqlobject/mailman/ + +Development: +http://sqlobject.org/devel/ + +Developer Guide: +http://sqlobject.org/DeveloperGuide.html + Example ======= http://sourceforge.net/p/sqlobject/sqlobject/ci/3fa162e89cbb1611e03ccbf140cecb7fbddd4f1c commit 3fa162e89cbb1611e03ccbf140cecb7fbddd4f1c Author: Oleg Broytman <ph...@ph...> Date: Fri Sep 23 15:54:40 2022 +0300 Docs(ANNOUNCE): Add Developer Guide and brief installation instruction [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index c9b634b..7d270b0 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -48,6 +48,9 @@ http://sqlobject.org Development: http://sqlobject.org/devel/ +Developer Guide: +http://sqlobject.org/DeveloperGuide.html + Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss @@ -64,6 +67,10 @@ https://stackoverflow.com/questions/tagged/sqlobject Example ======= +Install:: + + $ pip install sqlobject + Create a simple class that wraps a table:: >>> from sqlobject import * ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 38 +++++++++++++++++++++++++------------- devscripts/test-sqlobject.cmd | 2 +- 2 files changed, 26 insertions(+), 14 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-09-21 19:48:32
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 8d80a738de4e210cdf679a13ad328cae3902bc61 (commit) via fb5a71609a3ace1441555cb687539bc1c0f147eb (commit) from 66fe5d47cd4277a1aee2e1876c4fe535c3bf11ff (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/8d80a738de4e210cdf679a13ad328cae3902bc61 commit 8d80a738de4e210cdf679a13ad328cae3902bc61 Author: Oleg Broytman <ph...@ph...> Date: Wed Sep 21 11:00:07 2022 +0300 Build(devscripts/release): Disable progress bar for `twine` [skip ci] diff --git a/devscripts/release b/devscripts/release index 3873ec2..8893a52 100755 --- a/devscripts/release +++ b/devscripts/release @@ -24,5 +24,5 @@ if [ "$state" = final ]; then devscripts/sftp-frs fi && -twine upload --skip-existing dist/* && +twine upload --disable-progress-bar --skip-existing dist/* && exec rm -rf build dist docs/html SQLObject.egg-info http://sourceforge.net/p/sqlobject/sqlobject/ci/fb5a71609a3ace1441555cb687539bc1c0f147eb commit fb5a71609a3ace1441555cb687539bc1c0f147eb Author: Oleg Broytman <ph...@ph...> Date: Wed Sep 21 02:39:07 2022 +0300 CI(GHActions): fail fast, use `setup-python@v4`, `cache@v3` diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index edf0a59..2c0330d 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -6,7 +6,6 @@ jobs: run-tests: strategy: - fail-fast: false matrix: os: [ubuntu-latest, windows-latest] python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10"] @@ -39,11 +38,11 @@ jobs: # Setup Python/pip - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Cache pip - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ matrix.pip-cache-path }} key: ${{ runner.os }}-pip ----------------------------------------------------------------------- Summary of changes: .github/workflows/run-tests.yaml | 5 ++--- devscripts/release | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-09-20 17:20:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 66fe5d47cd4277a1aee2e1876c4fe535c3bf11ff (commit) from 1a0168e0b4c891c51b6255e1295111409bf98fc5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/66fe5d47cd4277a1aee2e1876c4fe535c3bf11ff commit 66fe5d47cd4277a1aee2e1876c4fe535c3bf11ff Author: Oleg Broytman <ph...@ph...> Date: Tue Sep 20 20:19:26 2022 +0300 Build: Prepare for the next release [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index cfec8c1..c9b634b 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,54 +1,25 @@ Hello! -I'm pleased to announce version 3.10.0, the first release of branch -3.10 of SQLObject. - - -What's new in SQLObject -======================= - -Contributors for this release are -James Hudson, Juergen Gmach, Hugo van Kemenade. -Many thanks! - -Features --------- - -* Allow connections in ``ConnectionHub`` to be strings. - This allows to open a new connection in every thread. - -* Add compatibility with ``Pendulum``. +I'm pleased to announce version 3.10.1a1, the first alpha of the upcoming +release of branch 3.10 of SQLObject. -Tests ------ +I'm pleased to announce version 3.10.1a2, the second alpha of the upcoming +release of branch 3.10 of SQLObject. -* Run tests with Python 3.10. +I'm pleased to announce version 3.10.1b1, the first beta of the upcoming +release of branch 3.10 of SQLObject. -CI --- +I'm pleased to announce version 3.10.1rc1, the first release candidate +of the upcoming release of branch 3.10 of SQLObject. -* GitHub Actions. - -* Stop testing at Travis CI. - -* Stop testing at AppVeyor. - -Documentation -------------- - -* DevGuide: source code must be pure ASCII. - -* DevGuide: ``reStructuredText`` format for docstrings is recommended. - -* DevGuide: de-facto good commit message format is required: - subject/body/trailers. +I'm pleased to announce version 3.10.1, the first bugfix release of branch +3.10 of SQLObject. -* DevGuide: ``conventional commit`` format for commit message subject lines - is recommended. -* DevGuide: ``Markdown`` format for commit message bodies is recommended. +What's new in SQLObject +======================= -* DevGuide: commit messages must be pure ASCII. +Contributors for this release are For a more complete list, please see the news: http://sqlobject.org/News.html @@ -81,7 +52,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.org/project/SQLObject/3.10.0 +https://pypi.org/project/SQLObject/3.10.1a0.dev20221020/ News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index 92b1dd7..c910205 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.10.0 -================ +SQLObject 3.10.1a0 +================== Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python diff --git a/docs/News.rst b/docs/News.rst index 12c0a78..42f5616 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,6 +5,9 @@ News .. contents:: Contents: :backlinks: none +SQLObject (master) +================== + SQLObject 3.10.0 ================ ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 57 ++++++++++++++------------------------------------------- README.rst | 4 ++-- docs/News.rst | 3 +++ 3 files changed, 19 insertions(+), 45 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-09-20 16:54:03
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, pyodbc-test has been deleted was c0f546208bbf28ded39b2ca4b6d88fefb506338c - Log ----------------------------------------------------------------- c0f546208bbf28ded39b2ca4b6d88fefb506338c CI: Run only 1 MSSQL ODBC test at AppVeyor ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-09-20 16:54:01
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, pymssql-test has been deleted was af41b34dd079e3c7dcd2e69188de209a0677e844 - Log ----------------------------------------------------------------- af41b34dd079e3c7dcd2e69188de209a0677e844 CI: Run only pymssql tests ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-09-20 16:52:08
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.10.0 has been created at 35e97fe860a7b7399dbb93f823d922f23911a4ec (tag) tagging 1a0168e0b4c891c51b6255e1295111409bf98fc5 (commit) replaces 3.9.1 tagged by Oleg Broytman on Tue Sep 20 19:51:30 2022 +0300 - Log ----------------------------------------------------------------- Release 3.10.0 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEAXmp+v5763cG/OMobggLcLYoewMFAmMp75IACgkQbggLcLYo ewMJZg/7BLCfXzxIayc/t4f9cgDLP0pj1gd7eq1x4SOSiscrNhoSCwPvNzD/7P4i cAOKyd2xGweuyTyLYp/tmGIzCmlnI4nilIG20yWWb/INkE+1hRD3I9PrcifElCt0 zNq+hro0uJojtrTk3djNSivlQKQlrb69tHm7yuoYT6OlEWTol+JBWbDQRGQffhMi yzGF8XafWjYMvYiDs2OglYtfQ+seU82aHoIUAJuUEuod65qwlc7ga+ie9a6Lm1M1 UOb5VItc6GPUPDag6+CbuarR9v7kOVVGoEPlZ7TLOtlDOPzQqwR5ansHdGrUbILi hh6WJpFbgBoBVzu9h8Nliz+w2TEuUrmd/b2OTl8Px82QdmJjWD3wlygziKC7PzWt cBexi9AQElLMm7r0zWMcMmGHsOI6rup20vtmGuz3A2HAD7QOekXNl7fzWCSBeQB+ G9n8vbGi0saIRaTB/jsFft8dgf9CwuFNJZQWbbphAKSKCw82IKdr9XwGbd2cV9+E CLe+Jn0zRUfHHJqZ26NpvUUxLTITaYYRzdZglyINEx2VeAOMhs4L6Pquv9ZUqbWH vlb5FPjG8FaPpSJ4y+VoZB28yUgRcWEUj5RZ21MwOIHQnXfOI1l6i5rnpS1aiEjz 7gzisUi57LHhJjPmPEX7wuWn5PpbQcHeRycEkzIqa2+SwXd+X2k= =5ta6 -----END PGP SIGNATURE----- Hugo van Kemenade (1): Remove "U" option in open for Python 3.11 compatibility James Hudson (1): Add new converter for pendulum.DateTime Jürgen Gmach (6): fix typo fix typo remove redundant dot fix hint about indexes fix address example fix description for `joinColumn` Oleg Broytman (58): Build: Prepare for the next release Build(devscripts): Update `RELEASE-CHECKLIST` Build(devscripts): Update `RELEASE-CHECKLIST` Build(devscripts): Fix `build-all-docs`: Set the current version CI: Downgrade `pip` to `<19.2` for Python 3.4 compatibility Tests(tox): Install `zope.datetime` Docs: Add compatibility with `Pendulum` Tests(tox): Install `pendulum` for new test in `test_datetime` Tests(test_datetime): Fix `test_PendulumDateTime` Merge branch 'pr/169': Add compatibility with Pendulum #169 Docs: Change Travis CI URLs Tests(tox): Limit `VIRTUALENV_PIP` version for Python 3.4 Tests(tox): Limit `pip` and `setuptools` versions for Python 3.4 Build(devscripts): `rsync -a<anything>` -> `rsync -ahPv` Build: Remove personal script `setup` Merge branch 'pr/172' Merge branch 'pr/173' Merge branch 'pr/174' Merge branch 'pr/175' Merge branch 'pr/176' Docs(Authors): Add Juergen Gmach Tests: Python 3.10 Docs(DevGuide): Document more requirements Docs(Authors): Add Hugo van Kemenade Feat(dbconnection): Allow connections in `ConnectionHub` to be strings Build(devscripts): Run Python 3.10 in `test-sqlobject.cmd` Test(tox): `postgres-psycopg` -> `psycopg` Test(tox): Use our branch `combined-fixes` for `py-postgresql` Tests(tox): Limit version of `psycopg2-binary` for Python 3.4 Tests(tox): Use long options for MySQL/PostgreSQL tools Style: Fix `flake8` E275 missing whitespace after keyword Style: Fix `flake8` E501 line too long Style(hashcol): Improve docstring formatting Fix(test): Use `"`-quotes for command line CI: Stop testing at Travis CI and AppVeyor Tests(tox): Stop collecting test coverage CI: GitHub Actions CI(GHActions): Use `devscripts/tox-select-envs` CI(GHActions): Run tests on w64 CI(GHActions): Run `flake8` tests CI(GHActions): Run tests with PostgreSQL Tests(tox): Run Postgres tests in default order Tests(tox): Skip some tests CI(GHActions): Run tests under Python 3.5 Tests(tox): Fix `pymysql` versions Fix(MySQL): Fix encoding Tests(tox): Enable tests for `mysql-connector` Fix(MySQL): Convert bytes to unicode CI(GHActions): MySQL Fix(mysql-connector): Fix dbName under Python 2 Fix(tox): Skip `py27-mysqldb` Fix(tox): Make `mysql-connector` connect as the local user Fix(mysql-connector): Convert bytearrays Feat(GHActions): Python 3.6-3.10 CI(GHActions): Fix versions for newer Pythons CI(GHActions): Show `tox`/`pytest` version Merge branch 'github-actions' Release 3.10.0 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2022-09-20 16:52:05
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 1a0168e0b4c891c51b6255e1295111409bf98fc5 (commit) via 656fa2f278ec521b5bf5526170b3616bc048e2cc (commit) via abd02481adbab503e0787c0d32f5c86248cce543 (commit) via 012da8ffa26f4b8419f19be8d00fdf544297725e (commit) via b79929b1abfa4ccb96be0838adb5c6b7f7b5c88b (commit) via 30ba31d4d49c212124d4994abc4b237cc2e57100 (commit) via 4261d5a101b91697e5fea93c88223bc48f24ad40 (commit) via 04da46e0d3773b80fa2db2021956b53c95574da8 (commit) via 18dbbc65877e2adb451db69aec207d542f90733f (commit) via b815441e42211f13586088c502831cabb2fd44b7 (commit) via c38bed3e3ef61b7d30a250146db6515a51fc7f01 (commit) via 6259596b1095a24daf5ba6eaeb36253e17661597 (commit) via b0299a54f5cd611e1f8a9d1ddc214508f79504e9 (commit) via 1e4019e1c117b359d6d39823468c48da14df096d (commit) via 988e73e6aa311920dda0bb583b4778ba49991540 (commit) via f1a3d33bba66bb888e9138df23b49264ea1f1268 (commit) via 17bf01d0e15fb6bbb95a5777cac7c2f6236b4031 (commit) via 0d8ba319dd141f617b3663ca353d77f83d834da5 (commit) via 804dcee1a00dd168ff7fe7bb559b1c8b6f68e915 (commit) via 6843aa173302384aebd69f7187b0b23551762927 (commit) via 1c5ed87d699191c13a5754637f138c9db5656981 (commit) via 4cb3e4e694dff3d582bce785a2e62489055479fa (commit) via d2921ea11e634169b3cbeba3707fc6bd5f048d07 (commit) via ec1b75d8e4dde24154ee972ce117c01cc247b372 (commit) via 8cde480dfa2940ae1ea4626873627d7ed2d4f325 (commit) via 50e50dc0c972ab80c6dc8f3ca64fe7c762cb73ed (commit) via 71ba79e666a738d37cf1d57eb82e2be1b61a2c90 (commit) via 1aed26838d1616b3686b74697e01bb4da5e47b79 (commit) via 836763622ef5b93f933cbd712ef7b65cdb742183 (commit) via 42a1f53a2368e4a53d0bef0227295d3fec9f4731 (commit) via 576f82f00163ef041ff994f9ed9cca168300c835 (commit) via 71da8511dd6ab1b45c2d2057849602b7d66a8435 (commit) via 91057747751df3793898898903fb371709ccc1f8 (commit) via 9f3ca7e00da3d820b7181a9988f82424b2439254 (commit) via 18f55ff5894eeb33dc77d6318cf32f0d4341f661 (commit) via 2a7d26086f73028fdb651f9e22e99c812b81b883 (commit) via c3933b813383cc1b269b6c2564e89e3c7aa523e9 (commit) from b74820a65dbbaa48064bc0f3d98091b1a3820a41 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/1a0168e0b4c891c51b6255e1295111409bf98fc5 commit 1a0168e0b4c891c51b6255e1295111409bf98fc5 Author: Oleg Broytman <ph...@ph...> Date: Tue Sep 20 19:40:58 2022 +0300 Release 3.10.0 diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 5f6c2aa..cfec8c1 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,25 +1,54 @@ Hello! -I'm pleased to announce version 3.9.2a1, the first alpha of the upcoming -release of branch 3.9 of SQLObject. +I'm pleased to announce version 3.10.0, the first release of branch +3.10 of SQLObject. -I'm pleased to announce version 3.9.2a2, the second alpha of the upcoming -release of branch 3.9 of SQLObject. -I'm pleased to announce version 3.9.2b1, the first beta of the upcoming -release of branch 3.9 of SQLObject. +What's new in SQLObject +======================= -I'm pleased to announce version 3.9.2rc1, the first release candidate -of the upcoming release of branch 3.9 of SQLObject. +Contributors for this release are +James Hudson, Juergen Gmach, Hugo van Kemenade. +Many thanks! -I'm pleased to announce version 3.9.2, the first bugfix release of branch -3.9 of SQLObject. +Features +-------- +* Allow connections in ``ConnectionHub`` to be strings. + This allows to open a new connection in every thread. -What's new in SQLObject -======================= +* Add compatibility with ``Pendulum``. + +Tests +----- + +* Run tests with Python 3.10. + +CI +-- + +* GitHub Actions. + +* Stop testing at Travis CI. + +* Stop testing at AppVeyor. + +Documentation +------------- + +* DevGuide: source code must be pure ASCII. + +* DevGuide: ``reStructuredText`` format for docstrings is recommended. + +* DevGuide: de-facto good commit message format is required: + subject/body/trailers. + +* DevGuide: ``conventional commit`` format for commit message subject lines + is recommended. + +* DevGuide: ``Markdown`` format for commit message bodies is recommended. -Contributors for this release are +* DevGuide: commit messages must be pure ASCII. For a more complete list, please see the news: http://sqlobject.org/News.html @@ -52,7 +81,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.org/project/SQLObject/3.9.2a0.dev20210227/ +https://pypi.org/project/SQLObject/3.10.0 News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index 2152854..92b1dd7 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.9.2a0 -================= +SQLObject 3.10.0 +================ Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 8cb4ba1..8942edb 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -10,7 +10,7 @@ cd "`dirname \"$0\"`" && PROG_DIR="`pwd`" && cd .. && -build_docs 3.9.1 && +build_docs 3.10.0 && build_docs master devel && rm -rf docs/html && diff --git a/docs/News.rst b/docs/News.rst index 6709089..12c0a78 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,8 +5,10 @@ News .. contents:: Contents: :backlinks: none -SQLObject (master) -================== +SQLObject 3.10.0 +================ + +Released 2022 Sep 20. Features -------- @@ -47,9 +49,6 @@ Documentation * DevGuide: commit messages must be pure ASCII. -* Change Travis CI URLs: - CI relocated from travis-ci.org to travis-ci.com. - SQLObject 3.9.1 =============== diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index cb43f08..e01c255 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.9.1' +version = '3.10.0' major = 3 -minor = 9 -micro = 1 +minor = 10 +micro = 0 release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/656fa2f278ec521b5bf5526170b3616bc048e2cc commit 656fa2f278ec521b5bf5526170b3616bc048e2cc Merge: 8cde480 abd0248 Author: Oleg Broytman <ph...@ph...> Date: Tue Sep 20 19:29:08 2022 +0300 Merge branch 'github-actions' http://sourceforge.net/p/sqlobject/sqlobject/ci/abd02481adbab503e0787c0d32f5c86248cce543 commit abd02481adbab503e0787c0d32f5c86248cce543 Author: Oleg Broytman <ph...@ph...> Date: Sun Sep 18 20:28:28 2022 +0300 CI(GHActions): Show `tox`/`pytest` version diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 6bc5a27..edf0a59 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -64,6 +64,9 @@ jobs: f.write('PGPASSWORD=test\n') shell: python + - name: tox version + run: | + tox --version - name: Run tox @ Linux run: | devscripts/tox-select-envs $PYVER-mysql diff --git a/tox.ini b/tox.ini index 60e6814..828cc91 100644 --- a/tox.ini +++ b/tox.ini @@ -18,6 +18,7 @@ basepython = commands = {envpython} --version {envpython} -c "import struct; print(struct.calcsize('P') * 8)" + {envpython} -m pytest --version deps = -rdevscripts/requirements/requirements_tests.txt py34: pendulum < 2.1 @@ -370,6 +371,7 @@ commands = {[firebirdsql]commands} changedir = ./ deps = flake8 + pytest < 7.0 commands = {[testenv]commands} flake8 . http://sourceforge.net/p/sqlobject/sqlobject/ci/012da8ffa26f4b8419f19be8d00fdf544297725e commit 012da8ffa26f4b8419f19be8d00fdf544297725e Author: Oleg Broytman <ph...@ph...> Date: Sat Sep 17 22:55:44 2022 +0300 CI(GHActions): Fix versions for newer Pythons diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index fe4b24d..6bc5a27 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -52,7 +52,7 @@ jobs: - name: Install dependencies run: | python --version - python -m pip install --upgrade "pip<21.0" "setuptools<45" wheel + python -m pip install --upgrade pip setuptools wheel pip --version pip install --upgrade virtualenv tox - name: Set PYVER diff --git a/tox.ini b/tox.ini index 7b3ee57..60e6814 100644 --- a/tox.ini +++ b/tox.ini @@ -19,8 +19,6 @@ commands = {envpython} --version {envpython} -c "import struct; print(struct.calcsize('P') * 8)" deps = - py27,py34: pip < 19.2 - py27,py34: setuptools < 44 -rdevscripts/requirements/requirements_tests.txt py34: pendulum < 2.1 py34: zope.datetime < 4.3 @@ -45,7 +43,6 @@ deps = firebirdsql: firebirdsql passenv = CI setenv = - VIRTUALENV_PIP = 19.1.1 PGPASSWORD = test # Don't fail or warn on uninstalled commands platform = linux http://sourceforge.net/p/sqlobject/sqlobject/ci/b79929b1abfa4ccb96be0838adb5c6b7f7b5c88b commit b79929b1abfa4ccb96be0838adb5c6b7f7b5c88b Author: Oleg Broytman <ph...@ph...> Date: Fri Sep 16 23:27:28 2022 +0300 Feat(GHActions): Python 3.6-3.10 diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index a00242e..fe4b24d 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -9,7 +9,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] - python-version: ["2.7", "3.5"] + python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10"] include: - os: ubuntu-latest os-name: Linux diff --git a/devscripts/requirements/requirements_tests.txt b/devscripts/requirements/requirements_tests.txt index 7367495..d6a5117 100644 --- a/devscripts/requirements/requirements_tests.txt +++ b/devscripts/requirements/requirements_tests.txt @@ -1,4 +1,8 @@ -r requirements.txt pytest < 5.0; python_version == '2.7' or python_version == '3.4' -pytest; python_version >= '3.5' + +# Pytest 7.0 introduced a major bug; see +# https://github.com/pytest-dev/pytest/issues/9620 + +pytest < 7.0; python_version >= '3.5' http://sourceforge.net/p/sqlobject/sqlobject/ci/30ba31d4d49c212124d4994abc4b237cc2e57100 commit 30ba31d4d49c212124d4994abc4b237cc2e57100 Author: Oleg Broytman <ph...@ph...> Date: Fri Sep 16 16:33:04 2022 +0300 Fix(mysql-connector): Convert bytearrays diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index 0a670f7..c4a72a6 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -480,10 +480,10 @@ class MySQLConnection(DBAPI): return col.Col, {} def listTables(self): - return [v[0] for v in self.queryAll("SHOW TABLES")] + return _decodeBytearrays(self.queryAll("SHOW TABLES")) def listDatabases(self): - return [v[0] for v in self.queryAll("SHOW DATABASES")] + return _decodeBytearrays(self.queryAll("SHOW DATABASES")) def _createOrDropDatabase(self, op="CREATE"): self.query('%s DATABASE %s' % (op, self.db)) @@ -547,3 +547,11 @@ def ConnectorBytesConverter(value, db): assert db == 'mysql' value = value.decode('latin1') return StringLikeConverter(value, db) + + +def _decodeBytearrays(v_list): + if not v_list: + return [] + if not PY2 and isinstance(v_list[0][0], bytearray): + return [v[0].decode('ascii') for v in v_list] + return [v[0] for v in v_list] http://sourceforge.net/p/sqlobject/sqlobject/ci/4261d5a101b91697e5fea93c88223bc48f24ad40 commit 4261d5a101b91697e5fea93c88223bc48f24ad40 Author: Oleg Broytman <ph...@ph...> Date: Thu Sep 15 22:29:50 2022 +0300 Fix(tox): Make `mysql-connector` connect as the local user diff --git a/tox.ini b/tox.ini index 37c39a6..7b3ee57 100644 --- a/tox.ini +++ b/tox.ini @@ -97,7 +97,7 @@ commands = {[testenv]commands} -mysql --execute="drop database sqlobject_test;" mysql --execute="create database sqlobject_test;" - pytest -D "mysql://localhost/sqlobject_test?driver=connector&charset=utf8&debug=1" + pytest -D "mysql://runner:@localhost/sqlobject_test?driver=connector&charset=utf8&debug=1" mysql --execute="drop database sqlobject_test;" [testenv:py27-mysql-connector] http://sourceforge.net/p/sqlobject/sqlobject/ci/04da46e0d3773b80fa2db2021956b53c95574da8 commit 04da46e0d3773b80fa2db2021956b53c95574da8 Author: Oleg Broytman <ph...@ph...> Date: Thu Sep 15 20:29:20 2022 +0300 Fix(tox): Skip `py27-mysqldb` Old `MySQLdb` for Python 2.7 requires old MySQL, it cannot be compiled with MySQL 8+. diff --git a/tox.ini b/tox.ini index eecaa8f..37c39a6 100644 --- a/tox.ini +++ b/tox.ini @@ -68,7 +68,7 @@ commands = pytest -D "mysql://localhost/sqlobject_test?driver=mysqldb&debug=1" mysql --execute="drop database sqlobject_test;" -[testenv:py27-mysqldb] +[testenv:py27-mysqldb-noauto] commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysqldb]commands} http://sourceforge.net/p/sqlobject/sqlobject/ci/18dbbc65877e2adb451db69aec207d542f90733f commit 18dbbc65877e2adb451db69aec207d542f90733f Author: Oleg Broytman <ph...@ph...> Date: Thu Sep 15 20:08:23 2022 +0300 Fix(mysql-connector): Fix dbName under Python 2 diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index e1d74c8..0a670f7 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -542,7 +542,8 @@ class MySQLConnection(DBAPI): def ConnectorBytesConverter(value, db): - assert db == 'mysql' if not PY2: + # For PY2 this converter is called also for SQLite + assert db == 'mysql' value = value.decode('latin1') return StringLikeConverter(value, db) http://sourceforge.net/p/sqlobject/sqlobject/ci/b815441e42211f13586088c502831cabb2fd44b7 commit b815441e42211f13586088c502831cabb2fd44b7 Author: Oleg Broytman <ph...@ph...> Date: Tue Apr 19 18:12:59 2022 +0300 CI(GHActions): MySQL diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index a2eacd0..a00242e 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -23,6 +23,9 @@ jobs: steps: + # Setup MySQL + - uses: ankane/setup-mysql@v1 + # Setup PostgreSQL - uses: ankane/setup-postgres@v1 - name: Setup Postgres user @@ -63,12 +66,14 @@ jobs: - name: Run tox @ Linux run: | + devscripts/tox-select-envs $PYVER-mysql devscripts/tox-select-envs $PYVER-postgres devscripts/tox-select-envs $PYVER-sqlite devscripts/tox-select-envs $PYVER-flake8 if: ${{ runner.os == 'Linux' }} - name: Run tox @ w64 run: | + devscripts\tox-select-envs.cmd %PYVER%-mysql devscripts\tox-select-envs.cmd %PYVER%-postgres devscripts\tox-select-envs.cmd %PYVER%-sqlite if: ${{ runner.os == 'Windows' }} diff --git a/tox.ini b/tox.ini index 2dca2f1..eecaa8f 100644 --- a/tox.ini +++ b/tox.ini @@ -63,10 +63,10 @@ whitelist_externals = [mysqldb] commands = {[testenv]commands} - -mysql --user=root --execute="drop database sqlobject_test;" - mysql --user=root --execute="create database sqlobject_test;" - pytest -D "mysql://root:@localhost/sqlobject_test?driver=mysqldb&debug=1" - mysql --user=root --execute="drop database sqlobject_test;" + -mysql --execute="drop database sqlobject_test;" + mysql --execute="create database sqlobject_test;" + pytest -D "mysql://localhost/sqlobject_test?driver=mysqldb&debug=1" + mysql --execute="drop database sqlobject_test;" [testenv:py27-mysqldb] commands = @@ -80,10 +80,10 @@ deps = [mysqlclient] ... 2945 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2021-11-06 21:36:13
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via b74820a65dbbaa48064bc0f3d98091b1a3820a41 (commit) via 6b1514aa4d881b947e799595d6d92cffdb342922 (commit) via e08d480941586f26a9a136fa43fa2e39931ece1f (commit) via 3b4018ab660ff8642f10ee100e40757605ea68b5 (commit) via 298b2ef169a7035734ba4dfaf37a16160869bd57 (commit) via cceb38356c121f7319e05090b389e23db5bf417c (commit) via fb11f13693c7449fc4229d1cfe3f519a652d0cde (commit) via fa13293d11eb11c1fb1400234fdc7c7c27c31b8e (commit) via f73d5f8df8d3fac02e110d2138976cba750924d5 (commit) via bc88b43dc6b34c42c25e3fd751df214bf83b2e37 (commit) via 8878c12bb3e1508ea34b277e30b5e542be3139cf (commit) via caa8261b0b21bca42dc10825359ab7114470dc22 (commit) via d7c7996ed212ee18b416f527a7dfc4e746434465 (commit) from 0d612ecb5e3f367a7734636d31cd2e80d1edd27e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/b74820a65dbbaa48064bc0f3d98091b1a3820a41 commit b74820a65dbbaa48064bc0f3d98091b1a3820a41 Author: Oleg Broytman <ph...@ph...> Date: Sun Nov 7 00:33:20 2021 +0300 Tests: Python 3.10 diff --git a/docs/News.rst b/docs/News.rst index af6b8a7..4c45d13 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -13,6 +13,11 @@ Features * Add compatibility with ``Pendulum``. +Tests +----- + +* Run tests with Python 3.10. + Documentation ------------- diff --git a/setup.py b/setup.py index c7f59f2..d98fb37 100755 --- a/setup.py +++ b/setup.py @@ -61,6 +61,7 @@ and `GitHub <https://github.com/sqlobject>`_. "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Topic :: Database", "Topic :: Database :: Front-Ends", "Topic :: Software Development :: Libraries :: Python Modules", diff --git a/tox.ini b/tox.ini index 88febe6..5f65b49 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 3.15 -envlist = py27,py3{4,5,6,7,8,9}-sqlite{,-memory},py{27,39}-flake8 +envlist = py27,py3{4,5,6,7,8,9,10}-sqlite{,-memory},py{27,310}-flake8 # Base test environment settings [testenv] @@ -14,12 +14,13 @@ basepython = py37: {env:TOXPYTHON:python3.7} py38: {env:TOXPYTHON:python3.8} py39: {env:TOXPYTHON:python3.9} + py310: {env:TOXPYTHON:python3.10} commands = {envpython} --version {envpython} -c "import struct; print(struct.calcsize('P') * 8)" deps = - pip < 19.2 - setuptools < 44 + py27,py34: pip < 19.2 + py27,py34: setuptools < 44 -rdevscripts/requirements/requirements_tests.txt py34: pendulum < 2.1 py34: zope.datetime < 4.3 @@ -70,7 +71,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysqldb]commands} -[testenv:py3{4,5,6,7,8,9}-mysqldb] +[testenv:py3{4,5,6,7,8,9,10}-mysqldb] commands = {envpython} -c "print('MySQL-python requires Python 2.7')" deps = @@ -86,7 +87,7 @@ commands = commands = {envpython} -c "print('mysqlclient requires Python 3.4+')" deps = -[testenv:py3{4,5,6,7,8,9}-mysqlclient] +[testenv:py3{4,5,6,7,8,9,10}-mysqlclient] commands = {[mysqlclient]commands} [mysql-connector] @@ -102,7 +103,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-connector]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-connector-noauto] +[testenv:py3{4,5,6,7,8,9,10}-mysql-connector-noauto] commands = {[mysql-connector]commands} [oursql] @@ -118,7 +119,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[oursql]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-oursql3-noauto] +[testenv:py3{4,5,6,7,8,9,10}-mysql-oursql3-noauto] commands = {[oursql]commands} [pymysql] @@ -134,7 +135,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pymysql]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-pymysql] +[testenv:py3{4,5,6,7,8,9,10}-mysql-pymysql] commands = {[pymysql]commands} [mariadb] @@ -149,7 +150,7 @@ commands = commands = {envpython} -c "print('mariadb requires Python 3.6+')" deps = -[testenv:py3{6,7,8,9}-mariadb] +[testenv:py3{6,7,8,9,10}-mariadb] commands = {[mariadb]commands} [mysql-pyodbc] @@ -166,7 +167,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pyodbc]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-pyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10}-mysql-pyodbc-noauto] commands = {[mysql-pyodbc]commands} [mysql-pypyodbc] @@ -182,7 +183,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pypyodbc]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-pypyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10}-mysql-pypyodbc-noauto] commands = {[mysql-pypyodbc]commands} # PostgreSQL test environments @@ -199,7 +200,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[psycopg]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-psycopg] +[testenv:py3{4,5,6,7,8,9,10}-postgres-psycopg] commands = {[psycopg]commands} [pygresql] @@ -215,7 +216,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pygresql]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pygresql] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pygresql] commands = {[pygresql]commands} [pypostgresql] @@ -230,7 +231,7 @@ commands = commands = {envpython} -c "print('pypostgresql requires Python 3.4+')" deps = -[testenv:py3{4,5,6,7,8,9}-postgres-pypostgresql] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pypostgresql] commands = {[pypostgresql]commands} [pg8000] @@ -246,7 +247,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pg8000]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pg8000] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pg8000] commands = {[pg8000]commands} [postgres-pyodbc] @@ -263,7 +264,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[postgres-pyodbc]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pyodbc-noauto] commands = {[postgres-pyodbc]commands} [postgres-pypyodbc] @@ -279,7 +280,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[postgres-pypyodbc]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pypyodbc-noauto] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pypyodbc-noauto] commands = {[postgres-pypyodbc]commands} @@ -296,7 +297,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite]commands} -[testenv:py3{4,5,6,7,8,9}-sqlite] +[testenv:py3{4,5,6,7,8,9,10}-sqlite] commands = {[sqlite]commands} [sqlite-memory] @@ -309,7 +310,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite-memory]commands} -[testenv:py3{4,5,6,7,8,9}-sqlite-memory] +[testenv:py3{4,5,6,7,8,9,10}-sqlite-memory] commands = {[sqlite-memory]commands} [sqlite-supersqlite] @@ -324,7 +325,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite-supersqlite]commands} -[testenv:py3{4,5,6,7,8,9}-sqlite-supersqlite] +[testenv:py3{4,5,6,7,8,9,10}-sqlite-supersqlite] commands = {[sqlite-supersqlite]commands} @@ -342,7 +343,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[fdb]commands} -[testenv:py3{4,5,6,7,8,9}-firebird-fdb] +[testenv:py3{4,5,6,7,8,9,10}-firebird-fdb] commands = {[fdb]commands} [firebirdsql] @@ -358,7 +359,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[firebirdsql]commands} -[testenv:py3{4,5,6,7,8,9}-firebirdsql] +[testenv:py3{4,5,6,7,8,9,10}-firebirdsql] commands = {[firebirdsql]commands} @@ -388,7 +389,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mssql-pyodbc-w32]commands} -[testenv:py3{4,5,6,7,8,9}-mssql-pyodbc-noauto-w32] +[testenv:py3{4,5,6,7,8,9,10}-mssql-pyodbc-noauto-w32] platform = win32 commands = {[mssql-pyodbc-w32]commands} @@ -407,7 +408,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-connector-w32]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-connector-w32] +[testenv:py3{4,5,6,7,8,9,10}-mysql-connector-w32] platform = win32 commands = {[mysql-connector-w32]commands} @@ -426,7 +427,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pymysql-w32]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-pymysql-w32] +[testenv:py3{4,5,6,7,8,9,10}-mysql-pymysql-w32] platform = win32 commands = {[pymysql-w32]commands} @@ -444,7 +445,7 @@ platform = win32 commands = {envpython} -c "print('mariadb requires Python 3.6+')" deps = -[testenv:py3{6,7,8,9}-mariadb-w32] +[testenv:py3{6,7,8,9,10}-mariadb-w32] platform = win32 commands = {[mariadb-w32]commands} @@ -464,7 +465,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pyodbc-w32]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-pyodbc-noauto-w32] +[testenv:py3{4,5,6,7,8,9,10}-mysql-pyodbc-noauto-w32] platform = win32 commands = {[mysql-pyodbc-w32]commands} @@ -484,7 +485,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[mysql-pypyodbc-w32]commands} -[testenv:py3{4,5,6,7,8,9}-mysql-pypyodbc-noauto-w32] +[testenv:py3{4,5,6,7,8,9,10}-mysql-pypyodbc-noauto-w32] platform = win32 commands = {[mysql-pypyodbc-w32]commands} @@ -503,7 +504,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[psycopg-w32]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-psycopg-w32] +[testenv:py3{4,5,6,7,8,9,10}-postgres-psycopg-w32] platform = win32 commands = {[psycopg-w32]commands} @@ -522,7 +523,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pygresql-w32]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pygresql-w32] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pygresql-w32] platform = win32 commands = {[pygresql-w32]commands} @@ -540,7 +541,7 @@ platform = win32 commands = {envpython} -c "print('pypostgresql requires Python 3.4+')" deps = -[testenv:py3{4,5,6,7,8,9}-postgres-pypostgresql-w32] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pypostgresql-w32] platform = win32 commands = {[pypostgresql-w32]commands} @@ -559,7 +560,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[pg8000-w32]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pg8000-w32] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pg8000-w32] platform = win32 commands = {[pg8000-w32]commands} @@ -579,7 +580,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[postgres-pyodbc-w32]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pyodbc-noauto-w32] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pyodbc-noauto-w32] platform = win32 commands = {[postgres-pyodbc-w32]commands} @@ -599,7 +600,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[postgres-pypyodbc-w32]commands} -[testenv:py3{4,5,6,7,8,9}-postgres-pypyodbc-noauto-w32] +[testenv:py3{4,5,6,7,8,9,10}-postgres-pypyodbc-noauto-w32] platform = win32 commands = {[postgres-pypyodbc-w32]commands} @@ -616,7 +617,7 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite-w32]commands} -[testenv:py3{4,5,6,7,8,9}-sqlite-w32] +[testenv:py3{4,5,6,7,8,9,10}-sqlite-w32] platform = win32 commands = {[sqlite-w32]commands} @@ -632,6 +633,6 @@ commands = easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base {[sqlite-memory-w32]commands} -[testenv:py3{4,5,6,7,8,9}-sqlite-memory-w32] +[testenv:py3{4,5,6,7,8,9,10}-sqlite-memory-w32] platform = win32 commands = {[sqlite-memory-w32]commands} http://sourceforge.net/p/sqlobject/sqlobject/ci/6b1514aa4d881b947e799595d6d92cffdb342922 commit 6b1514aa4d881b947e799595d6d92cffdb342922 Author: Oleg Broytman <ph...@ph...> Date: Sun Oct 31 12:51:59 2021 +0300 Docs(Authors): Add Juergen Gmach [skip ci] diff --git a/docs/Authors.rst b/docs/Authors.rst index 5ac9144..7011504 100644 --- a/docs/Authors.rst +++ b/docs/Authors.rst @@ -38,6 +38,7 @@ Contributions have been made by: * Scott Stahl <sstahl at onshift.com> * Markus Elfring <elfring at users.sourceforge.net> * James Hudson <james.hudson at boughtbymany.com> +* Juergen Gmach <juergen.gmach at googlemail.com> * Oleg Broytman <ph...@ph...> .. image:: https://sourceforge.net/sflogo.php?group_id=74338&type=10 http://sourceforge.net/p/sqlobject/sqlobject/ci/e08d480941586f26a9a136fa43fa2e39931ece1f commit e08d480941586f26a9a136fa43fa2e39931ece1f Merge: 3b4018a fa13293 Author: Oleg Broytman <ph...@ph...> Date: Sun Oct 31 12:50:40 2021 +0300 Merge branch 'pr/176' [skip ci] http://sourceforge.net/p/sqlobject/sqlobject/ci/3b4018ab660ff8642f10ee100e40757605ea68b5 commit 3b4018ab660ff8642f10ee100e40757605ea68b5 Merge: 298b2ef f73d5f8 Author: Oleg Broytman <ph...@ph...> Date: Sun Oct 31 12:50:36 2021 +0300 Merge branch 'pr/175' [skip ci] http://sourceforge.net/p/sqlobject/sqlobject/ci/298b2ef169a7035734ba4dfaf37a16160869bd57 commit 298b2ef169a7035734ba4dfaf37a16160869bd57 Merge: cceb383 bc88b43 Author: Oleg Broytman <ph...@ph...> Date: Sun Oct 31 12:50:32 2021 +0300 Merge branch 'pr/174' [skip ci] http://sourceforge.net/p/sqlobject/sqlobject/ci/cceb38356c121f7319e05090b389e23db5bf417c commit cceb38356c121f7319e05090b389e23db5bf417c Merge: fb11f13 8878c12 Author: Oleg Broytman <ph...@ph...> Date: Sun Oct 31 12:50:27 2021 +0300 Merge branch 'pr/173' [skip ci] http://sourceforge.net/p/sqlobject/sqlobject/ci/fb11f13693c7449fc4229d1cfe3f519a652d0cde commit fb11f13693c7449fc4229d1cfe3f519a652d0cde Merge: d7c7996 caa8261 Author: Oleg Broytman <ph...@ph...> Date: Sun Oct 31 12:50:16 2021 +0300 Merge branch 'pr/172' [skip ci] http://sourceforge.net/p/sqlobject/sqlobject/ci/fa13293d11eb11c1fb1400234fdc7c7c27c31b8e commit fa13293d11eb11c1fb1400234fdc7c7c27c31b8e Author: Jürgen Gmach <jue...@go...> Date: Tue Oct 19 15:56:45 2021 +0200 fix description for `joinColumn` diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index ddbe2c5..33beaf3 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -1357,7 +1357,7 @@ Several keyword arguments are allowed to the `MultipleJoin` constructor: have a table ``Product``, and another table has a column ``ProductNo`` that points to this table, then you'd use ``joinColumn="ProductNo"``. WARNING: the argument you pass must - conform to the column name in the database, not to the column in the + conform to the column name in the database, not to the attribute in the class. So, if you have a SQLObject containing the ``ProductNo`` column, this will probably be translated into ``product_no_id`` in the DB (``product_no`` is the normal uppercase- to-lowercase + http://sourceforge.net/p/sqlobject/sqlobject/ci/f73d5f8df8d3fac02e110d2138976cba750924d5 commit f73d5f8df8d3fac02e110d2138976cba750924d5 Author: Jürgen Gmach <jue...@go...> Date: Mon Oct 18 17:55:24 2021 +0200 fix address example diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index ddbe2c5..3fe858a 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -546,8 +546,8 @@ addresses, of course:: ... 109 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2021-10-06 10:00:57
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 0d612ecb5e3f367a7734636d31cd2e80d1edd27e (commit) via 6a4df62a61757f64c452359a57ff956bac6f452d (commit) via f4741f8e03171883554319c6d7d59a26dedd1762 (commit) via 87757d537df98bb7fb9b40e6f402266ef39b2c7e (commit) via 924c868a16fde2c2d31609c3c26d4d49052ef0a0 (commit) via b21d76a239533d8b126b4ceb162dfb7c04fee60b (commit) via 661f41c795e020ffea9d16df0e340d54c73974c1 (commit) via 6624e0a319fb81e11a586cb5ac2f8fd5c4b95b27 (commit) via 84a4595b6a3f881979fb2d1a8ee39196fca08243 (commit) via 51387761fa25f7d41916a3876753ef86ad4f4d7f (commit) via 48e7eac934099caec2d7f3a0b86ff2badb000ec4 (commit) via 1f50e64d9fa6cd96843cdbf3901c0517a075cfe6 (commit) from df7ad69dca4d25021b0f07f90aac075b38d20227 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/0d612ecb5e3f367a7734636d31cd2e80d1edd27e commit 0d612ecb5e3f367a7734636d31cd2e80d1edd27e Author: Oleg Broytman <ph...@ph...> Date: Tue Oct 5 10:47:59 2021 +0300 Build: Remove personal script `setup` [skip ci] diff --git a/devscripts/setup b/devscripts/setup deleted file mode 100755 index e28d676..0000000 --- a/devscripts/setup +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/sh - -umask 022 # -rwxr-xr-x -cd "`dirname \"$0\"`"/.. && - -for py_ver in 2.7 3.4 3.5 3.6 3.7 3.8 3.9; do - python$py_ver -m pip install --install-option=-O2 --upgrade . -done && - -exec rm -rf build dist SQLObject.egg-info MANIFEST *.egg http://sourceforge.net/p/sqlobject/sqlobject/ci/6a4df62a61757f64c452359a57ff956bac6f452d commit 6a4df62a61757f64c452359a57ff956bac6f452d Author: Oleg Broytman <ph...@ph...> Date: Sun Oct 3 17:52:17 2021 +0300 Build(devscripts): `rsync -a<anything>` -> `rsync -ahPv` Especially remove option `-4`. [skip ci] diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 34aacd3..8cb4ba1 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -3,7 +3,7 @@ build_docs() { git checkout "$1" && devscripts/build-docs && - rsync -ahP --del --exclude=/robots.txt docs/html/ ../SQLObject-docs/"$2"/ + rsync -ahPv --del --exclude=/robots.txt docs/html/ ../SQLObject-docs/"$2"/ } cd "`dirname \"$0\"`" && diff --git a/devscripts/release b/devscripts/release index 33bb23f..3873ec2 100755 --- a/devscripts/release +++ b/devscripts/release @@ -19,8 +19,8 @@ version=`python setup.py --version` split_tag $version if [ "$state" = final ]; then - rsync -ahP4 dist/* frs.sourceforge.net:/home/frs/project/sqlobject/sqlobject/"$version"/ && - rsync -ahP4 ANNOUNCE.rst frs.sourceforge.net:/home/frs/project/sqlobject/sqlobject/"$version"/README.rst || exit 1 + rsync -ahPv dist/* frs.sourceforge.net:/home/frs/project/sqlobject/sqlobject/"$version"/ && + rsync -ahPv ANNOUNCE.rst frs.sourceforge.net:/home/frs/project/sqlobject/sqlobject/"$version"/README.rst || exit 1 devscripts/sftp-frs fi && diff --git a/docs/rebuild b/docs/rebuild index 1270384..4798a23 100755 --- a/docs/rebuild +++ b/docs/rebuild @@ -2,4 +2,4 @@ PYTHONPATH=.. make html && find . -name \*.tmp -type f -delete && -exec rsync -ahP --del --exclude=.buildinfo --exclude=objects.inv _build/html . +exec rsync -ahPv --del --exclude=.buildinfo --exclude=objects.inv _build/html . http://sourceforge.net/p/sqlobject/sqlobject/ci/f4741f8e03171883554319c6d7d59a26dedd1762 commit f4741f8e03171883554319c6d7d59a26dedd1762 Author: Oleg Broytman <ph...@ph...> Date: Sun Jul 25 19:54:28 2021 +0300 Tests(tox): Limit `pip` and `setuptools` versions for Python 3.4 diff --git a/tox.ini b/tox.ini index 64e08bd..88febe6 100644 --- a/tox.ini +++ b/tox.ini @@ -18,6 +18,8 @@ commands = {envpython} --version {envpython} -c "import struct; print(struct.calcsize('P') * 8)" deps = + pip < 19.2 + setuptools < 44 -rdevscripts/requirements/requirements_tests.txt py34: pendulum < 2.1 py34: zope.datetime < 4.3 http://sourceforge.net/p/sqlobject/sqlobject/ci/87757d537df98bb7fb9b40e6f402266ef39b2c7e commit 87757d537df98bb7fb9b40e6f402266ef39b2c7e Author: Oleg Broytman <ph...@ph...> Date: Sun Jul 25 14:49:55 2021 +0300 Tests(tox): Limit `VIRTUALENV_PIP` version for Python 3.4 diff --git a/tox.ini b/tox.ini index c03d56c..64e08bd 100644 --- a/tox.ini +++ b/tox.ini @@ -40,6 +40,8 @@ deps = firebird-fdb: fdb firebirdsql: firebirdsql passenv = CI TRAVIS TRAVIS_* APPVEYOR DISTUTILS_USE_SDK MSSdk INCLUDE LIB PGPASSWORD WINDIR +setenv = + VIRTUALENV_PIP = 19.1.1 # Don't fail or warn on uninstalled commands platform = linux whitelist_externals = http://sourceforge.net/p/sqlobject/sqlobject/ci/924c868a16fde2c2d31609c3c26d4d49052ef0a0 commit 924c868a16fde2c2d31609c3c26d4d49052ef0a0 Author: Oleg Broytman <ph...@ph...> Date: Mon Jul 19 00:32:56 2021 +0300 Docs: Change Travis CI URLs CI relocated from travis-ci.org to travis-ci.com. [skip ci] diff --git a/docs/DeveloperGuide.rst b/docs/DeveloperGuide.rst index 966c379..4ac9556 100644 --- a/docs/DeveloperGuide.rst +++ b/docs/DeveloperGuide.rst @@ -272,8 +272,8 @@ exercised, even if the tests are absolutely complete. We now use Travis CI and AppVeyor to run tests. See the statuses: -.. image:: https://travis-ci.org/sqlobject/sqlobject.svg?branch=master - :target: https://travis-ci.org/sqlobject/sqlobject +.. image:: https://api.travis-ci.com/sqlobject/sqlobject.svg?branch=master + :target: https://travis-ci.com/github/sqlobject/sqlobject .. image:: https://ci.appveyor.com/api/projects/status/github/sqlobject/sqlobject?branch=master :target: https://ci.appveyor.com/project/phdru/sqlobject diff --git a/docs/News.rst b/docs/News.rst index 96cc7f7..af6b8a7 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -13,6 +13,12 @@ Features * Add compatibility with ``Pendulum``. +Documentation +------------- + +* Change Travis CI URLs: + CI relocated from travis-ci.org to travis-ci.com. + SQLObject 3.9.1 =============== diff --git a/setup.py b/setup.py index 3dfd2ca..c7f59f2 100755 --- a/setup.py +++ b/setup.py @@ -42,8 +42,8 @@ For development see the projects at `SourceForge <https://sourceforge.net/projects/sqlobject/>`_ and `GitHub <https://github.com/sqlobject>`_. -.. image:: https://travis-ci.org/sqlobject/sqlobject.svg?branch=master - :target: https://travis-ci.org/sqlobject/sqlobject +.. image:: https://api.travis-ci.com/sqlobject/sqlobject.svg?branch=master + :target: https://travis-ci.com/github/sqlobject/sqlobject """, long_description_content_type="text/x-rst", classifiers=[ http://sourceforge.net/p/sqlobject/sqlobject/ci/b21d76a239533d8b126b4ceb162dfb7c04fee60b commit b21d76a239533d8b126b4ceb162dfb7c04fee60b Merge: 5138776 661f41c Author: Oleg Broytman <ph...@ph...> Date: Fri Jun 4 19:57:47 2021 +0300 Merge branch 'pr/169': Add compatibility with Pendulum #169 diff --cc tox.ini index 28717e6,158c18c..c03d56c --- a/tox.ini +++ b/tox.ini @@@ -19,8 -19,8 +19,10 @@@ commands {envpython} -c "import struct; print(struct.calcsize('P') * 8)" deps = -rdevscripts/requirements/requirements_tests.txt + py34: pendulum < 2.1 + py34: zope.datetime < 4.3 + !py34: pendulum + !py34: zope.datetime mysqldb: mysql-python mysqlclient: mysqlclient mysql-connector: mysql-connector <= 2.2.2 http://sourceforge.net/p/sqlobject/sqlobject/ci/661f41c795e020ffea9d16df0e340d54c73974c1 commit 661f41c795e020ffea9d16df0e340d54c73974c1 Author: Oleg Broytman <ph...@ph...> Date: Fri Jun 4 19:32:04 2021 +0300 Tests(test_datetime): Fix `test_PendulumDateTime` Reset `default_datetime_implementation` back to `datetime`. diff --git a/sqlobject/tests/test_datetime.py b/sqlobject/tests/test_datetime.py index 21ed5a6..b40e4dd 100644 --- a/sqlobject/tests/test_datetime.py +++ b/sqlobject/tests/test_datetime.py @@ -131,6 +131,7 @@ if mxdatetime_available: assert dt2.col3.second == int(_now.second) if pendulumDateTimeType: + col.default_datetime_implementation = DATETIME_IMPLEMENTATION import pendulum class DateTimePendulum(SQLObject): http://sourceforge.net/p/sqlobject/sqlobject/ci/6624e0a319fb81e11a586cb5ac2f8fd5c4b95b27 commit 6624e0a319fb81e11a586cb5ac2f8fd5c4b95b27 Author: Oleg Broytman <ph...@ph...> Date: Fri Jun 4 19:27:58 2021 +0300 Tests(tox): Install `pendulum` for new test in `test_datetime` diff --git a/tox.ini b/tox.ini index 67765a3..158c18c 100644 --- a/tox.ini +++ b/tox.ini @@ -19,6 +19,8 @@ commands = {envpython} -c "import struct; print(struct.calcsize('P') * 8)" deps = -rdevscripts/requirements/requirements_tests.txt + py34: pendulum < 2.1 + !py34: pendulum mysqldb: mysql-python mysqlclient: mysqlclient mysql-connector: mysql-connector <= 2.2.2 http://sourceforge.net/p/sqlobject/sqlobject/ci/84a4595b6a3f881979fb2d1a8ee39196fca08243 commit 84a4595b6a3f881979fb2d1a8ee39196fca08243 Author: Oleg Broytman <ph...@ph...> Date: Fri Jun 4 19:25:48 2021 +0300 Docs: Add compatibility with `Pendulum` Authors: Add James Hudson. [skip ci] diff --git a/docs/Authors.rst b/docs/Authors.rst index 9f1c6fe..5ac9144 100644 --- a/docs/Authors.rst +++ b/docs/Authors.rst @@ -37,6 +37,7 @@ Contributions have been made by: * Michael S. Root <miker at tippett.com> * Scott Stahl <sstahl at onshift.com> * Markus Elfring <elfring at users.sourceforge.net> +* James Hudson <james.hudson at boughtbymany.com> * Oleg Broytman <ph...@ph...> .. image:: https://sourceforge.net/sflogo.php?group_id=74338&type=10 diff --git a/docs/News.rst b/docs/News.rst index 37935f3..96cc7f7 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -8,6 +8,11 @@ News SQLObject (master) ================== +Features +-------- + +* Add compatibility with ``Pendulum``. + SQLObject 3.9.1 =============== http://sourceforge.net/p/sqlobject/sqlobject/ci/51387761fa25f7d41916a3876753ef86ad4f4d7f commit 51387761fa25f7d41916a3876753ef86ad4f4d7f Author: Oleg Broytman <ph...@ph...> Date: Fri Jun 4 19:16:26 2021 +0300 Tests(tox): Install `zope.datetime` diff --git a/tox.ini b/tox.ini index 67765a3..28717e6 100644 --- a/tox.ini +++ b/tox.ini @@ -19,6 +19,8 @@ commands = {envpython} -c "import struct; print(struct.calcsize('P') * 8)" deps = -rdevscripts/requirements/requirements_tests.txt + py34: zope.datetime < 4.3 + !py34: zope.datetime mysqldb: mysql-python mysqlclient: mysqlclient mysql-connector: mysql-connector <= 2.2.2 http://sourceforge.net/p/sqlobject/sqlobject/ci/48e7eac934099caec2d7f3a0b86ff2badb000ec4 commit 48e7eac934099caec2d7f3a0b86ff2badb000ec4 Author: Oleg Broytman <ph...@ph...> Date: Fri Jun 4 19:13:02 2021 +0300 CI: Downgrade `pip` to `<19.2` for Python 3.4 compatibility diff --git a/.travis.yml b/.travis.yml index 638d648..adcd77a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -127,7 +127,7 @@ before_install: sudo chmod 644 /var/lib/firebird/create_test_db fi -install: travis_retry pip install --upgrade "pip<21" "setuptools<44" "tox>=3.15" coveralls codecov ppu +install: travis_retry pip install --upgrade "pip<19.2" "setuptools<44" "tox>=3.15" coveralls codecov ppu script: devscripts/tox-select-envs $TESTS diff --git a/appveyor.yml b/appveyor.yml index 38a7a1e..808f440 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -124,7 +124,7 @@ install: - "SET TOXPYTHON=%PYTHON_HOME%\\python.exe" - "python --version" - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" - - "python -m pip install --upgrade \"pip<21\" \"setuptools<44\"" + - "python -m pip install --upgrade \"pip<19.2\" \"setuptools<44\"" - "pip install --upgrade \"tox>=3.15\" ppu" - "pip --version" # List ODBC drivers http://sourceforge.net/p/sqlobject/sqlobject/ci/1f50e64d9fa6cd96843cdbf3901c0517a075cfe6 commit 1f50e64d9fa6cd96843cdbf3901c0517a075cfe6 Author: James Hudson <jam...@bo...> Date: Thu Jun 3 16:23:41 2021 +0100 Add new converter for pendulum.DateTime diff --git a/sqlobject/converters.py b/sqlobject/converters.py index fa6ea1c..667fdde 100644 --- a/sqlobject/converters.py +++ b/sqlobject/converters.py @@ -22,6 +22,13 @@ except ImportError: mxDateTimeType = None mxDateTimeDeltaType = None +try: + import pendulum +except ImportError: + pendulumDateTimeType = None +else: + pendulumDateTimeType = pendulum.DateTime + try: from DateTime import DateTime as zopeDateTime except ImportError: @@ -215,6 +222,13 @@ if mxDateTimeType: registerConverter(mxDateTimeDeltaType, mxTimeConverter) +if pendulumDateTimeType: + def pendulumConverter(value, db): + return "'%s'" % value.to_datetime_string() + + registerConverter(pendulum.DateTime, pendulumConverter) + + if zopeDateTimeType: def zopeDateTimeConverter(value, db): return "'%s'" % value.strftime("%Y-%m-%d %H:%M:%S") diff --git a/sqlobject/tests/test_datetime.py b/sqlobject/tests/test_datetime.py index 06ce1ae..21ed5a6 100644 --- a/sqlobject/tests/test_datetime.py +++ b/sqlobject/tests/test_datetime.py @@ -7,7 +7,7 @@ from sqlobject.col import DateCol, DateTimeCol, TimeCol, use_microseconds, \ DATETIME_IMPLEMENTATION, MXDATETIME_IMPLEMENTATION, mxdatetime_available, \ ZOPE_DATETIME_IMPLEMENTATION, zope_datetime_available from sqlobject.tests.dbtest import getConnection, setupClass - +from sqlobject.converters import pendulumDateTimeType ######################################## # Date/time columns @@ -130,6 +130,26 @@ if mxdatetime_available: assert dt2.col3.minute == _now.minute assert dt2.col3.second == int(_now.second) +if pendulumDateTimeType: + import pendulum + + class DateTimePendulum(SQLObject): + col1 = DateTimeCol() + + def test_PendulumDateTime(): + setupClass(DateTimePendulum) + _now = pendulum.now() + dtp = DateTimePendulum(col1=_now) + + assert isinstance(dtp.col1, datetime) + assert dtp.col1.year == _now.year + assert dtp.col1.month == _now.month + assert dtp.col1.day == _now.day + assert dtp.col1.hour == _now.hour + assert dtp.col1.minute == _now.minute + assert int(dtp.col1.second) == int(_now.second) + + if zope_datetime_available: col.default_datetime_implementation = ZOPE_DATETIME_IMPLEMENTATION from DateTime import DateTime as zopeDateTime ----------------------------------------------------------------------- Summary of changes: .travis.yml | 2 +- appveyor.yml | 2 +- devscripts/build-all-docs | 2 +- devscripts/release | 4 ++-- devscripts/setup | 10 ---------- docs/Authors.rst | 1 + docs/DeveloperGuide.rst | 4 ++-- docs/News.rst | 11 +++++++++++ docs/rebuild | 2 +- setup.py | 4 ++-- sqlobject/converters.py | 14 ++++++++++++++ sqlobject/tests/test_datetime.py | 23 ++++++++++++++++++++++- tox.ini | 8 ++++++++ 13 files changed, 66 insertions(+), 21 deletions(-) delete mode 100755 devscripts/setup hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2021-02-27 14:19:44
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated discards 6f143c27b70eaf624e64272f2851e9e23cc06ee2 (commit) via df7ad69dca4d25021b0f07f90aac075b38d20227 (commit) via a95ac237f6c8289afa872c879622cb14cb7af995 (commit) via cf99cde3cb2a828ee165e2b32dc886a0b881f17e (commit) via 1551a039c36ae52b03076a7826b3fded29950245 (commit) via 8bcaa3cc57c96d915549b8666548b4e0d5fabaa9 (commit) via 3173e08bcd55284c5b914d7d59088c94ad83f7c7 (commit) via aa8815be7576ca097233993d6387a34196570c1d (commit) via 47307e617424d8a4bdcad350ca235a72396fd23f (commit) via 99861557ab30dd842c4b0d22f0c995d7f29d1778 (commit) via 00c4a089d8185576f4ebcf5eba94d96044f3b092 (commit) via 28974d303f13f085113018651ad7f074d510937c (commit) via 9e9724b152a4bbc359708906cf327af2d7fe2e51 (commit) via 70355ffdaab154c93494c5ed2e32395a5bbd4737 (commit) via 52740edf09bb92b5d57d1364411db4c6bdc8d4fc (commit) via d724e34b67a89e3dfddf2b2d7914673170312e71 (commit) via da5e27ffd5bd80acdba7459c276f5cd80c0e6162 (commit) via a784248acfa8d1ba01b69553100fe20c4f0859ba (commit) via 6f6f974c00bf095cb8120ca2df3ca6ef18d52a94 (commit) via a2b0c6297dafc14a37503fb8c089e0cbc4d9e925 (commit) via 78cf7a8465a224ee11dac455c6b8affe92fa016f (commit) This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this: * -- * -- B -- O -- O -- O (6f143c27b70eaf624e64272f2851e9e23cc06ee2) \ N -- N -- N (df7ad69dca4d25021b0f07f90aac075b38d20227) When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B. Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/df7ad69dca4d25021b0f07f90aac075b38d20227 commit df7ad69dca4d25021b0f07f90aac075b38d20227 Author: Oleg Broytman <ph...@ph...> Date: Sat Feb 27 17:04:44 2021 +0300 Build(devscripts): Fix `build-all-docs`: Set the current version [skip ci] diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 1f21c9a..34aacd3 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -10,7 +10,7 @@ cd "`dirname \"$0\"`" && PROG_DIR="`pwd`" && cd .. && -build_docs 3.9.0 && +build_docs 3.9.1 && build_docs master devel && rm -rf docs/html && http://sourceforge.net/p/sqlobject/sqlobject/ci/a95ac237f6c8289afa872c879622cb14cb7af995 commit a95ac237f6c8289afa872c879622cb14cb7af995 Author: Oleg Broytman <ph...@ph...> Date: Sat Feb 27 17:00:20 2021 +0300 Build(devscripts): Update `RELEASE-CHECKLIST` Reorder instructions: run `push-all` after `postrelease`. [skip ci] diff --git a/devscripts/RELEASE-CHECKLIST b/devscripts/RELEASE-CHECKLIST index 42f6b10..f47ec41 100644 --- a/devscripts/RELEASE-CHECKLIST +++ b/devscripts/RELEASE-CHECKLIST @@ -34,15 +34,15 @@ 6. Move old releases at SourceForge to subdirectory OldFiles. -7. Run devscripts/push-all in the development repository to push all - branches and tags to the public repositories. - -8. Run devscripts/postrelease. The script restores ANNOUNCE.rst and +7. Run devscripts/postrelease. The script restores ANNOUNCE.rst and setup.cfg from the previous commit (HEAD~). It calls editor; update next version, remove the list of contributors and the list of changes, edit download URL in ANNOUNCE.rst. Edit README.rst and docs/News.rst - add new version. +8. Run devscripts/push-all in the development repository to push all + branches and tags to the public repositories. + 9. Generate new docs using devscripts/build-all-docs. Upload docs using devscripts/publish-docs. http://sourceforge.net/p/sqlobject/sqlobject/ci/cf99cde3cb2a828ee165e2b32dc886a0b881f17e commit cf99cde3cb2a828ee165e2b32dc886a0b881f17e Author: Oleg Broytman <ph...@ph...> Date: Sat Feb 27 16:58:29 2021 +0300 Build(devscripts): Update `RELEASE-CHECKLIST` Remove duplicate "commit and merge" instructions. [skip ci] diff --git a/devscripts/RELEASE-CHECKLIST b/devscripts/RELEASE-CHECKLIST index e85de5e..42f6b10 100644 --- a/devscripts/RELEASE-CHECKLIST +++ b/devscripts/RELEASE-CHECKLIST @@ -17,8 +17,7 @@ 'dev' and date stamp). If it's the first stable release of the branch - edit build-all-docs, - advance stable branch. Commit. If it's not master - merge to all higher - branches and master. + advance stable branch. Commit. Verify. http://sourceforge.net/p/sqlobject/sqlobject/ci/1551a039c36ae52b03076a7826b3fded29950245 commit 1551a039c36ae52b03076a7826b3fded29950245 Author: Oleg Broytman <ph...@ph...> Date: Sat Feb 27 16:49:36 2021 +0300 Build: Prepare for the next release [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index fdee54b..5f6c2aa 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,37 +1,25 @@ Hello! -I'm pleased to announce version 3.9.1, the first minor feature release -of branch 3.9 of SQLObject. +I'm pleased to announce version 3.9.2a1, the first alpha of the upcoming +release of branch 3.9 of SQLObject. +I'm pleased to announce version 3.9.2a2, the second alpha of the upcoming +release of branch 3.9 of SQLObject. -What's new in SQLObject -======================= - -Drivers -------- - -* Adapt to the latest ``pg8000``. - -* Protect ``getuser()`` - it can raise ``ImportError`` on w32 - due to absent of ``pwd`` module. +I'm pleased to announce version 3.9.2b1, the first beta of the upcoming +release of branch 3.9 of SQLObject. -Build ------ +I'm pleased to announce version 3.9.2rc1, the first release candidate +of the upcoming release of branch 3.9 of SQLObject. -* Change URLs for ``oursql`` in ``extras_require`` in ``setup.py``. - Provide separate URLs for Python 2.7 and 3.4+. +I'm pleased to announce version 3.9.2, the first bugfix release of branch +3.9 of SQLObject. -* Add ``mariadb`` in ``extras_require`` in ``setup.py``. -CI --- - -* For tests with Python 3.4 run ``tox`` under Python 3.5. - -Tests ------ +What's new in SQLObject +======================= -* Refactor ``tox.ini``. +Contributors for this release are For a more complete list, please see the news: http://sqlobject.org/News.html @@ -64,7 +52,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.org/project/SQLObject/3.9.1 +https://pypi.org/project/SQLObject/3.9.2a0.dev20210227/ News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index 80d6966..2152854 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.9.1 -=============== +SQLObject 3.9.2a0 +================= Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python diff --git a/docs/News.rst b/docs/News.rst index 06c9c8f..37935f3 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,6 +5,9 @@ News .. contents:: Contents: :backlinks: none +SQLObject (master) +================== + SQLObject 3.9.1 =============== http://sourceforge.net/p/sqlobject/sqlobject/ci/8bcaa3cc57c96d915549b8666548b4e0d5fabaa9 commit 8bcaa3cc57c96d915549b8666548b4e0d5fabaa9 Author: Oleg Broytman <ph...@ph...> Date: Sat Feb 27 16:40:16 2021 +0300 Release 3.9.1 diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 7287250..fdee54b 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,25 +1,37 @@ Hello! -I'm pleased to announce version 3.9.1a1, the first alpha of the upcoming -release of branch 3.9 of SQLObject. +I'm pleased to announce version 3.9.1, the first minor feature release +of branch 3.9 of SQLObject. -I'm pleased to announce version 3.9.1a2, the second alpha of the upcoming -release of branch 3.9 of SQLObject. -I'm pleased to announce version 3.9.1b1, the first beta of the upcoming -release of branch 3.9 of SQLObject. +What's new in SQLObject +======================= -I'm pleased to announce version 3.9.1rc1, the first release candidate -of the upcoming release of branch 3.9 of SQLObject. +Drivers +------- -I'm pleased to announce version 3.9.1, the first bugfix release of branch -3.9 of SQLObject. +* Adapt to the latest ``pg8000``. +* Protect ``getuser()`` - it can raise ``ImportError`` on w32 + due to absent of ``pwd`` module. -What's new in SQLObject -======================= +Build +----- + +* Change URLs for ``oursql`` in ``extras_require`` in ``setup.py``. + Provide separate URLs for Python 2.7 and 3.4+. + +* Add ``mariadb`` in ``extras_require`` in ``setup.py``. + +CI +-- + +* For tests with Python 3.4 run ``tox`` under Python 3.5. + +Tests +----- -Contributors for this release are +* Refactor ``tox.ini``. For a more complete list, please see the news: http://sqlobject.org/News.html @@ -52,7 +64,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.org/project/SQLObject/3.9.1a0.dev20201215/ +https://pypi.org/project/SQLObject/3.9.1 News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index 2442b67..80d6966 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.9.1a0 -================= +SQLObject 3.9.1 +=============== Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python diff --git a/docs/News.rst b/docs/News.rst index f190d96..06c9c8f 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,8 +5,10 @@ News .. contents:: Contents: :backlinks: none -SQLObject (master) -================== +SQLObject 3.9.1 +=============== + +Released 2021 Feb 27. Drivers ------- diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index f133a87..cb43f08 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.9.0' +version = '3.9.1' major = 3 minor = 9 -micro = 0 +micro = 1 release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/3173e08bcd55284c5b914d7d59088c94ad83f7c7 commit 3173e08bcd55284c5b914d7d59088c94ad83f7c7 Author: Oleg Broytman <ph...@ph...> Date: Tue Feb 23 22:00:41 2021 +0300 Feat(PostgreSQL): Protect `getuser()` It can raise `ImportError` on w32 due to absent of `pwd` module. diff --git a/docs/News.rst b/docs/News.rst index 234fca5..f190d96 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -13,6 +13,9 @@ Drivers * Adapt to the latest ``pg8000``. +* Protect ``getuser()`` - it can raise ``ImportError`` on w32 + due to absent of ``pwd`` module. + Build ----- diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 749ca57..722f3d4 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -35,6 +35,15 @@ class ErrorMessage(str): return obj +def _getuser(): + # ``getuser()`` on w32 can raise ``ImportError`` + # due to absent of ``pwd`` module. + try: + return getuser() + except ImportError: + return None + + class PostgresConnection(DBAPI): supportTransactions = True @@ -174,7 +183,7 @@ class PostgresConnection(DBAPI): dsn_dict["host"] = None dsn_dict["unix_sock"] = host if user is None: - dsn_dict["user"] = getuser() + dsn_dict["user"] = _getuser() self.dsn = dsn self.driver = driver self.unicodeCols = kw.pop('unicodeCols', False) http://sourceforge.net/p/sqlobject/sqlobject/ci/aa8815be7576ca097233993d6387a34196570c1d commit aa8815be7576ca097233993d6387a34196570c1d Author: Oleg Broytman <ph...@ph...> Date: Tue Feb 23 21:20:21 2021 +0300 Tests(tox.ini): Limit `pg8000` version for Python 2.7 and 3.4 Revert back to stock `pg8000`. diff --git a/devscripts/requirements/requirements_pg8000.txt b/devscripts/requirements/requirements_pg8000.txt new file mode 100644 index 0000000..06cd178 --- /dev/null +++ b/devscripts/requirements/requirements_pg8000.txt @@ -0,0 +1,3 @@ +pg8000 < 1.13; python_version == '2.7' +pg8000 < 1.12.4; python_version == '3.4' +pg8000; python_version >= '3.5' diff --git a/devscripts/requirements/requirements_pygresql.txt b/devscripts/requirements/requirements_pygresql.txt index ea4052c..5fbb351 100644 --- a/devscripts/requirements/requirements_pygresql.txt +++ b/devscripts/requirements/requirements_pygresql.txt @@ -1,2 +1,2 @@ -pygresql<5.2; python_version == '3.4' +pygresql < 5.2; python_version == '3.4' pygresql; python_version != '3.4' diff --git a/setup.py b/setup.py index 11a6cba..3dfd2ca 100755 --- a/setup.py +++ b/setup.py @@ -133,7 +133,9 @@ and `GitHub <https://github.com/sqlobject>`_. 'pygresql': ['pygresql'], 'pypostgresql': ['py-postgresql'], 'py-postgresql': ['py-postgresql'], - 'pg8000': ['pg8000'], + 'pg8000:python_version=="2.7"': ['pg8000<1.13'], + 'pg8000:python_version=="3.4"': ['pg8000<1.12.4'], + 'pg8000:python_version>="3.5"': ['pg8000'], # 'sapdb': ['sapdb'], 'sqlite': ['pysqlite'], diff --git a/tox.ini b/tox.ini index 95bfdbd..67765a3 100644 --- a/tox.ini +++ b/tox.ini @@ -29,7 +29,7 @@ deps = postgres-psycopg: psycopg2-binary pygresql: -rdevscripts/requirements/requirements_pygresql.txt pypostgresql: git+https://github.com/sqlobject/py-postgresql.git@fix_w32#egg=py-postgresql - postgres-pg8000: git+https://github.com/sqlobject/pg8000.git@getuser#egg=pg8000 + pg8000: -rdevscripts/requirements/requirements_pg8000.txt pyodbc: pyodbc pypyodbc: pypyodbc supersqlite: supersqlite http://sourceforge.net/p/sqlobject/sqlobject/ci/47307e617424d8a4bdcad350ca235a72396fd23f commit 47307e617424d8a4bdcad350ca235a72396fd23f Author: Oleg Broytman <ph...@ph...> Date: Tue Feb 23 21:12:58 2021 +0300 Feat(PostgreSQL): Adapt to the latest `pg8000` diff --git a/docs/News.rst b/docs/News.rst index 43d381c..234fca5 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -8,6 +8,11 @@ News SQLObject (master) ================== +Drivers +------- + +* Adapt to the latest ``pg8000``. + Build ----- diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 85a5094..749ca57 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -10,13 +10,26 @@ from sqlobject.dbconnection import DBAPI class ErrorMessage(str): def __new__(cls, e, append_msg=''): - obj = str.__new__(cls, e.args[0] + append_msg) - if hasattr(e, 'pgcode'): # psycopg2 or psycopg2.errors - obj.code = getattr(e, 'pgcode', None) - obj.error = getattr(e, 'pgerror', None) + eargs0 = emessage = e.args[0] + if e.__module__.startswith('pg8000') \ + and isinstance(e.args, tuple) and len(e.args) > 1: + # pg8000 =~ 1.12 for Python 3.4 + ecode = e.args[2] + eerror = emessage = e.args[3] + elif e.__module__.startswith('pg8000') and isinstance(eargs0, dict): + # pg8000 =~ 1.13 for Python 2.7 ... 1629 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2021-02-27 14:19:02
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.9.1 has been created at ee68a88b0c59503c5b6d47a9d0dc02a98cd26046 (tag) tagging 8bcaa3cc57c96d915549b8666548b4e0d5fabaa9 (commit) replaces 3.9.0 tagged by Oleg Broytman on Sat Feb 27 16:44:15 2021 +0300 - Log ----------------------------------------------------------------- Release 3.9.1 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEAXmp+v5763cG/OMobggLcLYoewMFAmA6TK8ACgkQbggLcLYo ewPs+RAAtUJHRPIjAxbWOxiHwomwyg8Sx74I8T9xjvPK3vsNrtWMK/apNZdFz9eh X2ULMdIbgo4JT1PwQUbtfUtJKC6CfboCpX0lT0tur4LBsdLAmS+a8XH41d1Ti5io ouIsii6LuDp1i+44LHFhO+Q9rDucevxwL0M4moMZPIs5rz4Whq8co1X/U74S2r+P uR7ZVz/g7G7r0hFuFBrFV9ukouy+24ReWIByGwJieijlAwcq+9WuQ9rx63QVQUoC gf1DpoX+o/Js+AQTw/d7DJMNG5W7zE3xCjfK5ZLe5jtwmbi0h02OndoglKORmui7 3/Y9WCkXKudAoFE+dADev5yrlqmKLEcXrmCT25WExCbn1DaK13/mVNsAngaOW/gN LtZU48yj503WqoVO/aMmZZPT+hcIaTUaP4Jlinq8JOYZIsiVqitf9mxrO+Q4C/C1 C68kdxLBAQqg+9YmHF15y5n18o2uK0Qf2vfA2gE3BgVUFvMQUpvZ+w5WM31+l6HL 0LdUNu9Y1maRzMmApQm+Y01xH/ToizlyLFC3i4vrl+72nRSA0xO4iAq0bkgs5IZK 5ddC0FGof2G0nYD8KgpkA6BTp9jYMMBD42nq+zV2Elckcx2TWoFKeMzy4MsyPfM9 YAj4FA6lPM+RvmP5h8SZfyZw21dmlj//cmXzf3tjvBixwSG0XIs= =zvEq -----END PGP SIGNATURE----- Oleg Broytman (16): Prepare for the next release Build(setup.py): Change URLs for ``oursql`` in ``extras_require`` Build(setup.py): Add ``mariadb`` in ``extras_require`` CI(AppVeyor): Upgrade `tox` Test(tox): Fix `py-postgresql` package name CI(.travis.yml): Use `- |` for multiline shell blocks Tests: Refactor `tox.ini` Tests(tox.ini): Limit `PyMySQL` version for Python 2.7 and 3.4 Docs(News): Update News Build(devscripts): Rename `split.sh` -> `split_tag.sh` Build(devscripts): Split post-release tag and counter Build(devscripts/postrelease): Improve commit message Feat(PostgreSQL): Adapt to the latest `pg8000` Tests(tox.ini): Limit `pg8000` version for Python 2.7 and 3.4 Feat(PostgreSQL): Protect `getuser()` Release 3.9.1 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2020-12-15 14:11:54
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.9.0 has been created at 0b8f6005fca05b7e543bdf6e805492763aa36a89 (tag) tagging 73ffdca9970cde63e66636335e6161e73a48ad84 (commit) replaces 3.8.1 tagged by Oleg Broytman on Tue Dec 15 17:02:49 2020 +0300 - Log ----------------------------------------------------------------- Release 3.9.0 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEAXmp+v5763cG/OMobggLcLYoewMFAl/YwgkACgkQbggLcLYo ewNsrhAAkZvGY3c4PsAgEgVxBcEEQG80Rs7hSecDCZRm0VbtSXPFJAa7ZvTvkvUm mJLR70bcWBt7Mn7WS88sxSlaTJtYLl1ldzr7Ord5jLH0WpwxivGn52pWrL3SrrF8 vHHcfQDlcD5tFdN0WTk6lfN2B1vGmL0ksRz/RpS9cF/dU5qUzrf5UzycZ8adH8Hq U8ZP0AHM09wnS7PVkzlyFZ3OPh/FoGsE/G9lFdrtkhDTG7unRO0hvVlTQRbtFhRL PIur16XVLxx9tMXnUpx8/jdFp3nasX90zHJY7yO/odP5EWoIPTTgUqDBGSNGZoev +4f4PAU4NeQglESgxgWEmVc/bTqza2pIGcDCO3ZHCO2G48aClfAtFH3baopwZw3H yWPz0sAc6zrl7ZQBByGCkO2bkFwZmguFSFirCzPD/aSB24COuFc3Yn6fXOwBgQlS zMM5BQROpIEFey+iMOPGM5gNFmT3S6JNLzVoFurZlEc4Nr/ZI9EqUgzWNNFUtGts 66E1Y+49uDDUrmASw267uXSHnJRQsHKX3VtzN9gtzYS9J3I1u5S46Jn/aAjpHUTg PKPpG19ApvcEdsMsZozgKuQpIp9KkQAJToxkeQ2rFE33s2p2jrzZYUe6Wi+pZXvj 9E5Svl6UPlBhvdxbEgHlIekyDCpDXHNli+kHTJ765bvUNX6dDhI= =YpYk -----END PGP SIGNATURE----- Michael S. Root (1): Update for JSON column and functions Oleg Broytman (22): Prepare for the next release Tests,CI: Run tests with Python 3.9 at Travis and AppVeyor CI: Turn off `fast_finish` CI(AppVeyor): Use `PostgreSQL` 9.6 Tests: Clear microseconds Feat(mysql): Check if the server allows to use JSON functions Test(mysql/json): Test JSON functions Fix(col): Fix `JSONValidator` Python 3.9 is supported Fix(col): Comment out `SOJSONCol._sqlType()` Merge branch 'jsoncol' Docs(News): Add `JSONCol` Tests(tox): Add `py39-sqlite` to the default list of environments Feat(DateTime): Drop support for very old version of `mxDateTime` Feat(DateTime): Extend/fix support for `DateTime` from `Zope` Merge branch 'DateTime' Test(devscripts/test-sqlobject.cmd): Run tests with Python 3.9 Feat(mysql): Support `mariadb` CI(Travis): Install mysql-compatible development files Test(tox): Skip tests with `mysql-connector` and `oursql` Test(tox): Do not restore `validators.py` Release 3.9.0 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2020-12-15 14:11:51
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 6f143c27b70eaf624e64272f2851e9e23cc06ee2 (commit) via 73ffdca9970cde63e66636335e6161e73a48ad84 (commit) via 27239030fc3098b9653b036f8f95cb17460bcd71 (commit) via ed8dd808114faace25c01ead78ae83f2ca09ceb9 (commit) via fb39c1809498fbb93e5e6dbf23391b8aaaa7efc0 (commit) via 805632876ff07142ed0f71b4b557a878e805d370 (commit) via 11247f12ca31106288caf51fdf2cb1b2de92dd6b (commit) via a591c0b9d137ccfc2e5b9dddd744392ca1e45d86 (commit) via e7b379f442a5aa8071076fd3438e9a56c0fb8eed (commit) via b6d0201febccc7895e398b548d8c2f60e8ead1d1 (commit) via 3635f444399c34e256dba87687e6ab657e85447a (commit) via ed106ef2c461ea31387f9597d6f17d934c3eebd0 (commit) via ff4154781fa1cd4befdcfdefca9604461a3566cf (commit) via 1b9aff1e6983b4e3f708933884333d8cc93512ec (commit) via 48b1521d3fd55fb1bd968d6fdd34656e471004b1 (commit) via 3a4e35f61d6779c555032b8fd70dddef1dcec7f0 (commit) via 6d5d0c200b8428b009a35d8f4c5912413e5db7c6 (commit) via ac96456b98cbb0e95a3bdafab263d3f59e7d8e77 (commit) via 470c8f43e956d34a500e18d9fe428c16927cabd2 (commit) via 7ccfeb89506ef301ec11253d3fed550e39ab6278 (commit) via a80792d2a52980ddc644c728f4c968f2015dd2d7 (commit) via f2e34acc8dd32ef00f28275c4bca044e9ca03d05 (commit) via 5a9174719f50e03caec767209b239fd0e2caf5c6 (commit) from 270dd73d1d0a6db0abc453bf74743189151d8a08 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/6f143c27b70eaf624e64272f2851e9e23cc06ee2 commit 6f143c27b70eaf624e64272f2851e9e23cc06ee2 Author: Oleg Broytman <ph...@ph...> Date: Tue Dec 15 17:10:24 2020 +0300 Prepare for the next release diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 36371d0..7287250 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,40 +1,25 @@ Hello! -I'm pleased to announce version 3.9.0, the first release -of branch 3.9 of SQLObject. +I'm pleased to announce version 3.9.1a1, the first alpha of the upcoming +release of branch 3.9 of SQLObject. +I'm pleased to announce version 3.9.1a2, the second alpha of the upcoming +release of branch 3.9 of SQLObject. -What's new in SQLObject -======================= - -Contributors for this release are: - -+ Michael S. Root, Ameya Bapat - ``JSONCol``; - -+ Jerry Nance - reported a bug with ``DateTime`` from ``Zope``. +I'm pleased to announce version 3.9.1b1, the first beta of the upcoming +release of branch 3.9 of SQLObject. -Features --------- +I'm pleased to announce version 3.9.1rc1, the first release candidate +of the upcoming release of branch 3.9 of SQLObject. -* Add ``JSONCol``: a universal json column that converts simple Python objects - (None, bool, int, float, long, dict, list, str/unicode to/from JSON using - json.dumps/loads. A subclass of StringCol. Requires ``VARCHAR``/``TEXT`` - columns at backends, doesn't work with ``JSON`` columns. +I'm pleased to announce version 3.9.1, the first bugfix release of branch +3.9 of SQLObject. -* Extend/fix support for ``DateTime`` from ``Zope``. -* Drop support for very old version of ``mxDateTime`` - without ``mx.`` namespace. - -Drivers -------- - -* Support `mariadb <https://pypi.org/project/mariadb/>`_. - -CI --- +What's new in SQLObject +======================= -* Run tests with Python 3.9 at Travis and AppVeyor. +Contributors for this release are For a more complete list, please see the news: http://sqlobject.org/News.html @@ -47,9 +32,9 @@ SQLObject is an object-relational mapper. Your database tables are described as classes, and rows are instances of those classes. SQLObject is meant to be easy to use and quick to get started with. -It currently supports MySQL, PostgreSQL and SQLite; connections to other -backends - Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are -lesser debugged). +SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite; +connections to other backends - Firebird, Sybase, MSSQL +and MaxDB (also known as SAPDB) - are lesser debugged). Python 2.7 or 3.4+ is required. @@ -67,7 +52,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.org/project/SQLObject/3.9.0 +https://pypi.org/project/SQLObject/3.9.1a0.dev20201215/ News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index cd66ddf..2442b67 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.9.0 -=============== +SQLObject 3.9.1a0 +================= Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python diff --git a/docs/News.rst b/docs/News.rst index e1e5916..5d5b066 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,6 +5,9 @@ News .. contents:: Contents: :backlinks: none +SQLObject (master) +================== + SQLObject 3.9.0 =============== http://sourceforge.net/p/sqlobject/sqlobject/ci/73ffdca9970cde63e66636335e6161e73a48ad84 commit 73ffdca9970cde63e66636335e6161e73a48ad84 Author: Oleg Broytman <ph...@ph...> Date: Tue Dec 15 16:56:18 2020 +0300 Release 3.9.0 diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 9beb8c9..36371d0 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,25 +1,40 @@ Hello! -I'm pleased to announce version 3.8.1a1, the first alpha of the upcoming -release of branch 3.8 of SQLObject. +I'm pleased to announce version 3.9.0, the first release +of branch 3.9 of SQLObject. -I'm pleased to announce version 3.8.1a2, the second alpha of the upcoming -release of branch 3.8 of SQLObject. -I'm pleased to announce version 3.8.1b1, the first beta of the upcoming -release of branch 3.8 of SQLObject. +What's new in SQLObject +======================= -I'm pleased to announce version 3.8.1rc1, the first release candidate -of the upcoming release of branch 3.8 of SQLObject. +Contributors for this release are: -I'm pleased to announce version 3.8.2, the first bugfix release of branch -3.8 of SQLObject. ++ Michael S. Root, Ameya Bapat - ``JSONCol``; ++ Jerry Nance - reported a bug with ``DateTime`` from ``Zope``. -What's new in SQLObject -======================= +Features +-------- + +* Add ``JSONCol``: a universal json column that converts simple Python objects + (None, bool, int, float, long, dict, list, str/unicode to/from JSON using + json.dumps/loads. A subclass of StringCol. Requires ``VARCHAR``/``TEXT`` + columns at backends, doesn't work with ``JSON`` columns. + +* Extend/fix support for ``DateTime`` from ``Zope``. + +* Drop support for very old version of ``mxDateTime`` + without ``mx.`` namespace. + +Drivers +------- + +* Support `mariadb <https://pypi.org/project/mariadb/>`_. + +CI +-- -Contributors for this release are +* Run tests with Python 3.9 at Travis and AppVeyor. For a more complete list, please see the news: http://sqlobject.org/News.html @@ -32,8 +47,9 @@ SQLObject is an object-relational mapper. Your database tables are described as classes, and rows are instances of those classes. SQLObject is meant to be easy to use and quick to get started with. -SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, -Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB). +It currently supports MySQL, PostgreSQL and SQLite; connections to other +backends - Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are +lesser debugged). Python 2.7 or 3.4+ is required. @@ -51,7 +67,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.org/project/SQLObject/3.8.2a0.dev20201001/ +https://pypi.org/project/SQLObject/3.9.0 News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index a0f632d..cd66ddf 100644 --- a/README.rst +++ b/README.rst @@ -1,13 +1,15 @@ -SQLObject 3.8.2a0 -================= +SQLObject 3.9.0 +=============== Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python classes, and your rows in Python instances. -It currently supports MySQL through the `MySQLdb` package, PostgreSQL -through the `psycopg` package, SQLite, Firebird, MaxDB (SAP DB), MS SQL, -and Sybase. Python 2.7 or 3.4+ is required. +It currently supports MySQL, PostgreSQL and SQLite; connections to other +backends - Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are +lesser debugged). + +Python 2.7 or 3.4+ is required. For more information please see the documentation in `<docs/SQLObject.rst>`_, or online at http://sqlobject.org/ diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 4eab620..1f21c9a 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -10,7 +10,7 @@ cd "`dirname \"$0\"`" && PROG_DIR="`pwd`" && cd .. && -build_docs 3.8.1 && +build_docs 3.9.0 && build_docs master devel && rm -rf docs/html && diff --git a/docs/News.rst b/docs/News.rst index 253ef84..e1e5916 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -5,8 +5,10 @@ News .. contents:: Contents: :backlinks: none -SQLObject (master) -================== +SQLObject 3.9.0 +=============== + +Released 2020 Dec 15. Features -------- @@ -24,7 +26,7 @@ Features Drivers ------- -* Support ``mariadb``. +* Support `mariadb <https://pypi.org/project/mariadb/>`_. CI -- diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index 579bdd6..f133a87 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.8.1' +version = '3.9.0' major = 3 -minor = 8 -micro = 1 +minor = 9 +micro = 0 release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/27239030fc3098b9653b036f8f95cb17460bcd71 commit 27239030fc3098b9653b036f8f95cb17460bcd71 Author: Oleg Broytman <ph...@ph...> Date: Mon Dec 14 01:14:16 2020 +0300 Test(tox): Do not restore `validators.py` It seems we no longer need the hack at AppVeyor. diff --git a/devscripts/CI/validators.py b/devscripts/CI/validators.py deleted file mode 100644 index 233d5dd..0000000 --- a/devscripts/CI/validators.py +++ /dev/null @@ -1,3089 +0,0 @@ -## FormEncode, a Form processor -## Copyright (C) 2003, Ian Bicking <ia...@co...> - -""" -Validator/Converters for use with FormEncode. -""" - -import cgi -import locale -import re -import warnings -from encodings import idna - -try: # import dnspython - import dns.resolver - import dns.exception -except (IOError, ImportError): - have_dns = False -else: - have_dns = True - - -# These are only imported when needed -httplib = None -random = None -sha1 = None -socket = None -urlparse = None - -from .api import (FancyValidator, Identity, Invalid, NoDefault, Validator, - deprecation_warning, is_empty) - -assert Identity and Invalid and NoDefault # silence unused import warnings - -# Dummy i18n translation function, nothing is translated here. -# Instead this is actually done in api.message. -# The surrounding _('string') of the strings is only for extracting -# the strings automatically. -# If you run pygettext with this source comment this function out temporarily. -_ = lambda s: s - - -############################################################ -## Utility methods -############################################################ - -# These all deal with accepting both datetime and mxDateTime modules and types -datetime_module = None -mxDateTime_module = None - - -def import_datetime(module_type): - global datetime_module, mxDateTime_module - module_type = module_type.lower() if module_type else 'datetime' - if module_type == 'datetime': - if datetime_module is None: - import datetime as datetime_module - return datetime_module - elif module_type == 'mxdatetime': - if mxDateTime_module is None: - from mx import DateTime as mxDateTime_module - return mxDateTime_module - else: - raise ImportError('Invalid datetime module %r' % module_type) - - -def datetime_now(module): - if module.__name__ == 'datetime': - return module.datetime.now() - else: - return module.now() - - -def datetime_makedate(module, year, month, day): - if module.__name__ == 'datetime': - return module.date(year, month, day) - else: - try: - return module.DateTime(year, month, day) - except module.RangeError as e: - raise ValueError(str(e)) - - -def datetime_time(module): - if module.__name__ == 'datetime': - return module.time - else: - return module.Time - - -def datetime_isotime(module): - if module.__name__ == 'datetime': - return module.time.isoformat - else: - return module.ISO.Time - - -############################################################ -## Wrapper Validators -############################################################ - -class ConfirmType(FancyValidator): - """ - Confirms that the input/output is of the proper type. - - Uses the parameters: - - subclass: - The class or a tuple of classes; the item must be an instance - of the class or a subclass. - type: - A type or tuple of types (or classes); the item must be of - the exact class or type. Subclasses are not allowed. - - Examples:: - - >>> cint = ConfirmType(subclass=int) - >>> cint.to_python(True) - True - >>> cint.to_python('1') - Traceback (most recent call last): - ... - Invalid: '1' is not a subclass of <type 'int'> - >>> cintfloat = ConfirmType(subclass=(float, int)) - >>> cintfloat.to_python(1.0), cintfloat.from_python(1.0) - (1.0, 1.0) - >>> cintfloat.to_python(1), cintfloat.from_python(1) - (1, 1) - >>> cintfloat.to_python(None) - Traceback (most recent call last): - ... - Invalid: None is not a subclass of one of the types <type 'float'>, <type 'int'> - >>> cint2 = ConfirmType(type=int) - >>> cint2(accept_python=False).from_python(True) - Traceback (most recent call last): - ... - Invalid: True must be of the type <type 'int'> - """ - - accept_iterator = True - - subclass = None - type = None - - messages = dict( - subclass=_('%(object)r is not a subclass of %(subclass)s'), - inSubclass=_('%(object)r is not a subclass of one of the types %(subclassList)s'), - inType=_('%(object)r must be one of the types %(typeList)s'), - type=_('%(object)r must be of the type %(type)s')) - - def __init__(self, *args, **kw): - FancyValidator.__init__(self, *args, **kw) - if self.subclass: - if isinstance(self.subclass, list): - self.subclass = tuple(self.subclass) - elif not isinstance(self.subclass, tuple): - self.subclass = (self.subclass,) - self._validate_python = self.confirm_subclass - if self.type: - if isinstance(self.type, list): - self.type = tuple(self.type) - elif not isinstance(self.type, tuple): - self.type = (self.type,) - self._validate_python = self.confirm_type - - def confirm_subclass(self, value, state): - if not isinstance(value, self.subclass): - if len(self.subclass) == 1: - msg = self.message('subclass', state, object=value, - subclass=self.subclass[0]) - else: ... 5086 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2020-10-01 15:22:26
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.8.1 has been created at 3d4fb1ce0e6c397ea6553af47a0433db121450d0 (tag) tagging cb7575ab2050260311e6ace0226917dfdeb3dfbc (commit) replaces 3.8.0 tagged by Oleg Broytman on Thu Oct 1 18:04:01 2020 +0300 - Log ----------------------------------------------------------------- Release 3.8.1 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEAXmp+v5763cG/OMobggLcLYoewMFAl917+EACgkQbggLcLYo ewNakRAAu/4aAE4lBVZyFTt3Ib7U7ocWHliZk3GKex0qdNjDKcrP6CkHKgcDot0r GB+2A7ICVAF92/tYAeQMzW7sXg/IZX6MaA8nTIop/WRRkPDytIIg5uIgcu5/3kOL nKAP5nPZ/8M8s1L8Hp3RuQ4h3DfzeiVvyfE7SWJ4eNY8/qnJDQHKqKV/BC7epdST +/G8CWDdG0fMUhgGlfluQHErVuzRAmxC3pwooTET72kNRd2tDHaEvtgxu8jAx5sN AaamcYCysCQJ+ZUQuzHtYJr25Qs0D5MFs9lWyYWQ3k8GxZgnUAezf3Kb7CG0Kf3N 3kP4+mODOqjpm/1N26A2Q+oIeWE1WZIR7tnrmuCpCoxc24Ic+Fvqxu2oOPcHpRRD ODg+xqJ+gkfAg9+5GSD1NZ+alfvWKg4FIBBqUkTebhSHknJL/Z7QOT+ad0me4frC Auoe/t9yNRkhGtEefzdaJU9YwC7Eo/yrObqwTcFvxKo8u+bYZCd+AOS9k/vKLBnc GzTFuGiHRdRhH8cTZUvsS9YFsD4rwQNRX37sfeKyeAc5CQoFiNKX0KCWhbTzxdcu Tq4bnsSTY8/j+IaXez4gQdlT9y+oCRvsXZIkfE96XTGIdKZU8cQEN3ecMuqpIRk6 jj5nz0L1X/sKL3OHC3lVbvCxkAleF3PdVLoeyst+BiSvkJEEJw0= =WHN3 -----END PGP SIGNATURE----- Neil (2): Use conf.py options to exclude sqlmeta options Rerun genapidocs and new & updated files Oleg Broytman (16): Prepare for the next release CI(Travis): Set default OS to `linux`, dist to `xenial` CI(Travis): Remove duplicate Firebird tests CI(AppVeyor): Run tests with Python 3.8 Tests(tox): Refactor the list of environments Limit `setuptools<44` for Python 2.7 Tests(tox): Delete SQLite database under w32 Tests: Add `test-sqlobject.cmd` CI: pip<21 for Python 2.7 Fix(col.TimeValidator): Remove debug print Fix `PyGreSQL` version for Python 3.4 Style: Fix `flake8` E741 ambiguous variable name 'l' Style: Fix `flake8` warnings CI(AppVeyor): Ignore errors with `PyGreSQL` Merge pull request #158 from drnlm/feature/explicit_exclude_option Release 3.8.1 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |