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
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: phd <no...@so...> - 2023-10-25 16:24: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 annotated tag, 3.10.3 has been created
at 6669c842c2292ba4524001dfe5c3580895ca354b (tag)
tagging 27d347f0d25f29fbd8245d860d387cc306398c42 (commit)
replaces 3.10.2
tagged by Oleg Broytman
on Wed Oct 25 19:16:58 2023 +0300
- Log -----------------------------------------------------------------
Release 3.10.3
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEAXmp+v5763cG/OMobggLcLYoewMFAmU5P3oACgkQbggLcLYo
ewMhjA//f0Pn4l9HHGPRlIWHOXGMc7VN/y8JwMUgHyGkoVY1kFYCfes/tKHkGioK
3ckYz4WrSZtCX/nYn5bZvVtOmbuln8uTuBRojielpEQJJ0AsdUqbzYsHkRcueR1t
K2hoOuM6awEccumJRfUU1Grdc3JnhKyeScRv5kgZAoYoRXtF13ffSmQapXJKwjsT
UloviNKyNkcBc5mniex/qGAsruvKHTVINhT2EOeSjbT7y+b7dse0oznLCt3huekh
KsFuZIj0CcqJZXHRGeQRLlzwLBbYstEvatK3o0oYSQcpprG7Hvmg/i3TwIrzW5GE
n9ju+fZSGZIvD1m76R5XW+LySbfCAz7Td1wYJWe8zDo7/fHgf8FhN/zbVo0TV37K
jjZPEBd//KZbFp8yoGCcULelW4SxCcA4V/OPtx//DvfygmV789XIz6oN25CCidfo
DkvG+r63z2nxE+rkoElOcfQDc1FWXke1HyU/XR0UctF6x+qH99f1bDyL/+EKk0Qo
DjRVIatHPF7YJ09DwYttFdDh0gtUGAtY/F1z8exvNbeE3vHd/sCEVmpcwEh02dWG
v820ZYSKqqbb1LcVBmdJdW7KCt3Ohv10357zFoMjk0xVxb+lh3rb+nFiR6A1JwoL
iiO1vyY78+Fe8NxxpGKGTxXCnPUbNjaK1JdjIic8xl1L6Ptkrbc=
=k+W+
-----END PGP SIGNATURE-----
Oleg Broytman (11):
Build: Prepare for the next release
CI(GHActions): Ensure `pip` only if needed
Fix(SQLiteConnection): Clear `_threadOrigination`
Fix(SQLiteConnection): Release connections to fix memory leak
Build(devscripts): Delete `test-sqlobject.cmd`
Style: Fix `flame8` warnings "invalid escape sequence"
Tests: Do not install `pendulum` for Python 3.12+
Drivers: Drop `supersqlite`
Tests,CI: Python 3.12
Fix(SQLRelatedJoin): Relax aliasing
Release 3.10.3
-----------------------------------------------------------------------
hooks/post-receive
--
SQLObject development repository
|
|
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
|