sqlobject-cvs Mailing List for SQLObject (Page 6)
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
(9) |
Apr
(74) |
May
(29) |
Jun
(16) |
Jul
(28) |
Aug
(10) |
Sep
(57) |
Oct
(9) |
Nov
(29) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(14) |
Mar
(6) |
Apr
(3) |
May
(12) |
Jun
(34) |
Jul
(9) |
Aug
(29) |
Sep
(22) |
Oct
(2) |
Nov
(15) |
Dec
(52) |
2005 |
Jan
(47) |
Feb
(78) |
Mar
(14) |
Apr
(35) |
May
(33) |
Jun
(16) |
Jul
(26) |
Aug
(63) |
Sep
(40) |
Oct
(96) |
Nov
(96) |
Dec
(123) |
2006 |
Jan
(159) |
Feb
(144) |
Mar
(64) |
Apr
(31) |
May
(88) |
Jun
(48) |
Jul
(16) |
Aug
(64) |
Sep
(87) |
Oct
(92) |
Nov
(56) |
Dec
(76) |
2007 |
Jan
(94) |
Feb
(103) |
Mar
(126) |
Apr
(123) |
May
(85) |
Jun
(11) |
Jul
(130) |
Aug
(47) |
Sep
(65) |
Oct
(70) |
Nov
(12) |
Dec
(11) |
2008 |
Jan
(30) |
Feb
(55) |
Mar
(88) |
Apr
(20) |
May
(50) |
Jun
|
Jul
(38) |
Aug
(1) |
Sep
(9) |
Oct
(5) |
Nov
(6) |
Dec
(39) |
2009 |
Jan
(8) |
Feb
(16) |
Mar
(3) |
Apr
(33) |
May
(44) |
Jun
(1) |
Jul
(10) |
Aug
(33) |
Sep
(74) |
Oct
(22) |
Nov
|
Dec
(15) |
2010 |
Jan
(28) |
Feb
(22) |
Mar
(46) |
Apr
(29) |
May
(1) |
Jun
(1) |
Jul
(27) |
Aug
(8) |
Sep
(5) |
Oct
(33) |
Nov
(24) |
Dec
(41) |
2011 |
Jan
(4) |
Feb
(12) |
Mar
(35) |
Apr
(29) |
May
(19) |
Jun
(16) |
Jul
(32) |
Aug
(25) |
Sep
(5) |
Oct
(11) |
Nov
(21) |
Dec
(12) |
2012 |
Jan
(3) |
Feb
(4) |
Mar
(20) |
Apr
(4) |
May
(25) |
Jun
(13) |
Jul
|
Aug
|
Sep
(2) |
Oct
(25) |
Nov
(9) |
Dec
(1) |
2013 |
Jan
(6) |
Feb
(8) |
Mar
|
Apr
(10) |
May
(31) |
Jun
(7) |
Jul
(18) |
Aug
(33) |
Sep
(4) |
Oct
(16) |
Nov
|
Dec
(27) |
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(11) |
May
(39) |
Jun
(8) |
Jul
(11) |
Aug
(4) |
Sep
|
Oct
(27) |
Nov
|
Dec
(71) |
2015 |
Jan
(17) |
Feb
(47) |
Mar
(33) |
Apr
|
May
|
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(8) |
2016 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
|
May
(12) |
Jun
(7) |
Jul
(9) |
Aug
(31) |
Sep
(8) |
Oct
(3) |
Nov
(15) |
Dec
(1) |
2017 |
Jan
(13) |
Feb
(7) |
Mar
(14) |
Apr
(8) |
May
(10) |
Jun
(4) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(8) |
Nov
(4) |
Dec
(5) |
2018 |
Jan
(2) |
Feb
(8) |
Mar
|
Apr
(4) |
May
|
Jun
(6) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2019 |
Jan
(1) |
Feb
(16) |
Mar
(1) |
Apr
(3) |
May
(5) |
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
(2) |
2021 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
(4) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
|
2024 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(9) |
2025 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Oleg B. <no...@so...> - 2017-10-03 23:02: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 8fb6fd7e3dbc0073665929f59fd4230c9af296f3 (commit) via e3e522ec5fb30e4dde949828ba233bfe45144171 (commit) via ec4889a8c1b02cddc90cd62b6ead36e87d4222b0 (commit) via ea7d88912f90a2bfc23d444554c968bc8515e944 (commit) via b06e2072ce95012ed04810ae951b08be19115aaa (commit) via 81c84618c9342f1119e97e83cd046446a7de568c (commit) via 4446696f44d1172ede047a11d89f94c8672c3e25 (commit) via e6241109b11e9018ae801e02a7893b6f206c8fb1 (commit) via 4ae096a649a465d08a1b65a2164a086bfafa95ad (commit) from 4bf401075edc7addd6a89d1c10d1179c77a3325e (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/8fb6fd7e3dbc0073665929f59fd4230c9af296f3 commit 8fb6fd7e3dbc0073665929f59fd4230c9af296f3 Author: Oleg Broytman <ph...@ph...> Date: Tue Oct 3 23:00:30 2017 +0300 Tests(CI): Explicitly list python versions diff --git a/.travis.yml b/.travis.yml index 3b18a1c..60548f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ sudo: required language: python python: - - "3.6" + - "2.7" cache: pip @@ -24,55 +24,101 @@ addons: - firebird2.5-super postgresql: "9.4" -env: - - TOXENV=py27-mysqldb - - TOXENV=py34-mysqlclient - - TOXENV=py35-mysqlclient - - TOXENV=py36-mysqlclient - - TOXENV=py27-mysql-connector - - TOXENV=py34-mysql-connector - - TOXENV=py35-mysql-connector - - TOXENV=py36-mysql-connector - - TOXENV=py27-mysql-oursql - - TOXENV=py27-pymysql - - TOXENV=py34-pymysql - - TOXENV=py35-pymysql - - TOXENV=py36-pymysql - - TOXENV=py27-postgres-psycopg - - TOXENV=py34-postgres-psycopg - - TOXENV=py35-postgres-psycopg - - TOXENV=py36-postgres-psycopg - - TOXENV=py27-postgres-pygresql - - TOXENV=py34-postgres-pygresql - - TOXENV=py35-postgres-pygresql - - TOXENV=py36-postgres-pygresql - - TOXENV=py34-pypostgresql - - TOXENV=py35-pypostgresql - - TOXENV=py36-pypostgresql - - TOXENV=py27-postgres-pg8000 - - TOXENV=py34-postgres-pg8000 - - TOXENV=py35-postgres-pg8000 - - TOXENV=py36-postgres-pg8000 - - TOXENV=py27-sqlite - - TOXENV=py34-sqlite - - TOXENV=py35-sqlite - - TOXENV=py36-sqlite - - TOXENV=py27-sqlite-memory - - TOXENV=py34-sqlite-memory - - TOXENV=py35-sqlite-memory - - TOXENV=py36-sqlite-memory - - TOXENV=py27-flake8 - - TOXENV=py34-flake8 - - TOXENV=py27-firebird-fdb - - TOXENV=py34-firebird-fdb - - TOXENV=py35-firebird-fdb - - TOXENV=py36-firebird-fdb - - TOXENV=py27-firebirdsql - - TOXENV=py34-firebirdsql - - TOXENV=py35-firebirdsql - - TOXENV=py36-firebirdsql - matrix: + include: + - python: "2.7" + env: TOXENV=py27-mysqldb + - python: "3.4" + env: TOXENV=py34-mysqlclient + - python: "3.5" + env: TOXENV=py35-mysqlclient + - python: "3.6" + env: TOXENV=py36-mysqlclient + - python: "2.7" + env: TOXENV=py27-mysql-connector + - python: "3.4" + env: TOXENV=py34-mysql-connector + - python: "3.5" + env: TOXENV=py35-mysql-connector + - python: "3.6" + env: TOXENV=py36-mysql-connector + - python: "2.7" + env: TOXENV=py27-mysql-oursql + - python: "2.7" + env: TOXENV=py27-pymysql + - python: "3.4" + env: TOXENV=py34-pymysql + - python: "3.5" + env: TOXENV=py35-pymysql + - python: "3.6" + env: TOXENV=py36-pymysql + - python: "2.7" + env: TOXENV=py27-postgres-psycopg + - python: "3.4" + env: TOXENV=py34-postgres-psycopg + - python: "3.5" + env: TOXENV=py35-postgres-psycopg + - python: "3.6" + env: TOXENV=py36-postgres-psycopg + - python: "2.7" + env: TOXENV=py27-postgres-pygresql + - python: "3.4" + env: TOXENV=py34-postgres-pygresql + - python: "3.5" + env: TOXENV=py35-postgres-pygresql + - python: "3.6" + env: TOXENV=py36-postgres-pygresql + - python: "3.4" + env: TOXENV=py34-pypostgresql + - python: "3.5" + env: TOXENV=py35-pypostgresql + - python: "3.6" + env: TOXENV=py36-pypostgresql + - python: "2.7" + env: TOXENV=py27-postgres-pg8000 + - python: "3.4" + env: TOXENV=py34-postgres-pg8000 + - python: "3.5" + env: TOXENV=py35-postgres-pg8000 + - python: "3.6" + env: TOXENV=py36-postgres-pg8000 + - python: "2.7" + env: TOXENV=py27-sqlite + - python: "3.4" + env: TOXENV=py34-sqlite + - python: "3.5" + env: TOXENV=py35-sqlite + - python: "3.6" + env: TOXENV=py36-sqlite + - python: "2.7" + env: TOXENV=py27-sqlite-memory + - python: "3.4" + env: TOXENV=py34-sqlite-memory + - python: "3.5" + env: TOXENV=py35-sqlite-memory + - python: "3.6" + env: TOXENV=py36-sqlite-memory + - python: "2.7" + env: TOXENV=py27-flake8 + - python: "3.4" + env: TOXENV=py34-flake8 + - python: "2.7" + env: TOXENV=py27-firebird-fdb + - python: "3.4" + env: TOXENV=py34-firebird-fdb + - python: "3.5" + env: TOXENV=py35-firebird-fdb + - python: "3.6" + env: TOXENV=py36-firebird-fdb + - python: "2.7" + env: TOXENV=py27-firebirdsql + - python: "3.4" + env: TOXENV=py34-firebirdsql + - python: "3.5" + env: TOXENV=py35-firebirdsql + - python: "3.6" + env: TOXENV=py36-firebirdsql + allow_failures: - env: TOXENV=py27-postgres-pg8000 - env: TOXENV=py27-firebird-fdb @@ -83,6 +129,7 @@ matrix: - env: TOXENV=py34-firebirdsql - env: TOXENV=py35-firebirdsql - env: TOXENV=py36-firebirdsql + fast_finish: true before_install: http://sourceforge.net/p/sqlobject/sqlobject/ci/e3e522ec5fb30e4dde949828ba233bfe45144171 commit e3e522ec5fb30e4dde949828ba233bfe45144171 Author: Shailesh Mungikar <sha...@dr...> Date: Sat Sep 23 16:40:54 2017 +0530 Fix for #139: autoreconnect does not work with pymysql driver diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 893d397..31ffed8 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -22,7 +22,7 @@ I'm pleased to announce version 3.4.1, the first bugfix release of branch What's new in SQLObject ======================= -Contributor for this release is +Contributor for this release is Shailesh Mungikar. For a more complete list, please see the news: http://sqlobject.org/News.html diff --git a/docs/Authors.rst b/docs/Authors.rst index cf35dfc..1d0a063 100644 --- a/docs/Authors.rst +++ b/docs/Authors.rst @@ -34,6 +34,7 @@ Contributions have been made by: * Gregor Horvath <gh at gregor-horvath.com> * Nathan Edwards <nje5 at georgetown.edu> * Lutz Steinborn <l.steinborn at 4c-gmbh.de> +* Shailesh Mungikar <shailesh.mungikar at druva.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 22094c4..a2e2b25 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -16,6 +16,8 @@ Drivers * Add support for `pg8000 <https://pypi.python.org/pypi/pg8000>`_ PostgreSQL driver (from git). There is a minor problem with Python 2.7. +* Fix autoreconnect with pymysql driver. Contributed by Shailesh Mungikar. + Tests ----- diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index eb56223..bcda054 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -206,6 +206,13 @@ class MySQLConnection(DBAPI): # mysql-connector has autocommit as a property conn.autocommit = auto + def _force_reconnect(self, conn): + if self.driver.lower() == 'pymysql': + conn.ping(True) + self._setAutoCommit(conn, bool(self.autoCommit)) + if self.dbEncoding: + conn.query("SET NAMES %s" % self.dbEncoding) + def _executeRetry(self, conn, cursor, query): if self.debug: self.printDebug(conn, query, 'QueryR') @@ -225,6 +232,8 @@ class MySQLConnection(DBAPI): # reconnect flag must be set when making the connection to indicate # that autoreconnecting is desired. In MySQLdb 1.2.2 or newer this is # done by calling ping(True) on the connection. + # PyMySQL needs explicit reconnect + # each time we detect connection timeout. for count in range(3): try: return cursor.execute(query) @@ -235,6 +244,8 @@ class MySQLConnection(DBAPI): raise dberrors.OperationalError(ErrorMessage(e)) if self.debug: self.printDebug(conn, str(e), 'ERROR') + if self.driver.lower() == 'pymysql': + self._force_reconnect(conn) else: raise dberrors.OperationalError(ErrorMessage(e)) except self.module.IntegrityError as e: http://sourceforge.net/p/sqlobject/sqlobject/ci/ec4889a8c1b02cddc90cd62b6ead36e87d4222b0 commit ec4889a8c1b02cddc90cd62b6ead36e87d4222b0 Author: Oleg Broytman <ph...@ph...> Date: Wed Aug 23 09:46:12 2017 +0300 Tests(CI): Fix bugs in py-postgresql at AppVeyor diff --git a/docs/News.rst b/docs/News.rst index 863d4be..22094c4 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -21,6 +21,9 @@ 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 git. + SQLObject 3.4.0 =============== diff --git a/tox.ini b/tox.ini index 7c5d0ee..51231c3 100644 --- a/tox.ini +++ b/tox.ini @@ -25,7 +25,7 @@ deps = pymysql: pymysql postgres-psycopg: psycopg2 postgres-pygresql: pygresql - pypostgresql: py-postgresql + pypostgresql: git+https://github.com/sqlobject/py-postgresql.git@fix_w32#egg=pypostgresql postgres-pg8000: git+https://github.com/mfenniak/pg8000.git#egg=pg8000 pyodbc: pyodbc pypyodbc: pypyodbc http://sourceforge.net/p/sqlobject/sqlobject/ci/ea7d88912f90a2bfc23d444554c968bc8515e944 commit ea7d88912f90a2bfc23d444554c968bc8515e944 Author: Oleg Broytman <ph...@ph...> Date: Sat Aug 19 03:33:36 2017 +0300 Feat(setup): Add keywords and platforms diff --git a/setup.py b/setup.py index f9fe802..cba0bf3 100755 --- a/setup.py +++ b/setup.py @@ -121,7 +121,9 @@ and `GitHub <https://github.com/sqlobject>`_. maintainer_email="ph...@ph...", url="http://sqlobject.org/", download_url="https://pypi.python.org/pypi/SQLObject/%s" % version, + keywords=["sql", "orm", "object-relational mapper"], license="LGPL", + platforms="Any", packages=["sqlobject"] + ['sqlobject.%s' % package for package in subpackages], scripts=["scripts/sqlobject-admin", "scripts/sqlobject-convertOldURI"], http://sourceforge.net/p/sqlobject/sqlobject/ci/b06e2072ce95012ed04810ae951b08be19115aaa commit b06e2072ce95012ed04810ae951b08be19115aaa Author: Oleg Broytman <ph...@ph...> Date: Fri Aug 18 22:59:16 2017 +0300 Tests(CI): Remove PyGreSQL tests with 32-bit Python 32-bit PyGreSQL requires 32-bit libraries for PostgreSQL, but AppVeyor has only 64-bit Pg preinstalled. diff --git a/appveyor.yml b/appveyor.yml index 0b76195..12ae77d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -114,41 +114,21 @@ environment: PYTHON_HOME: "C:\\Python36-x64" db: postgresql - TOX_ENV: "py27-postgres-pygresql-w32" - PYTHON_ARCH: "32" - PYTHON_VERSION: "2.7" - PYTHON_HOME: "C:\\Python27" - db: postgresql - - TOX_ENV: "py27-postgres-pygresql-w32" PYTHON_ARCH: "64" PYTHON_VERSION: "2.7" PYTHON_HOME: "C:\\Python27-x64" db: postgresql - TOX_ENV: "py34-postgres-pygresql-w32" - PYTHON_ARCH: "32" - PYTHON_VERSION: "3.4" - PYTHON_HOME: "C:\\Python34" - db: postgresql - - TOX_ENV: "py34-postgres-pygresql-w32" PYTHON_ARCH: "64" PYTHON_VERSION: "3.4" PYTHON_HOME: "C:\\Python34-x64" db: postgresql - TOX_ENV: "py35-postgres-pygresql-w32" - PYTHON_ARCH: "32" - PYTHON_VERSION: "3.5" - PYTHON_HOME: "C:\\Python35" - db: postgresql - - TOX_ENV: "py35-postgres-pygresql-w32" PYTHON_ARCH: "64" PYTHON_VERSION: "3.5" PYTHON_HOME: "C:\\Python35-x64" db: postgresql - TOX_ENV: "py36-postgres-pygresql-w32" - PYTHON_ARCH: "32" - PYTHON_VERSION: "3.6" - PYTHON_HOME: "C:\\Python36" - db: postgresql - - TOX_ENV: "py36-postgres-pygresql-w32" PYTHON_ARCH: "64" PYTHON_VERSION: "3.6" PYTHON_HOME: "C:\\Python36-x64" http://sourceforge.net/p/sqlobject/sqlobject/ci/81c84618c9342f1119e97e83cd046446a7de568c commit 81c84618c9342f1119e97e83cd046446a7de568c Author: Oleg Broytman <ph...@ph...> Date: Fri Aug 18 22:59:16 2017 +0300 Tests(CI): Reorder env vars in appveyor.yml Reorder environment variables in appveyor.yml to make them more visible in the web interface. diff --git a/appveyor.yml b/appveyor.yml index 6573e06..0b76195 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -33,254 +33,254 @@ environment: CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\run_with_env.cmd" matrix: - - PYTHON_HOME: "C:\\Python27" - PYTHON_VERSION: "2.7" + - TOX_ENV: "py27-mssql-pyodbc-w32" PYTHON_ARCH: "32" + PYTHON_VERSION: "2.7" + PYTHON_HOME: "C:\\Python27" db: mssql2014 - TOX_ENV: "py27-mssql-pyodbc-w32" - - PYTHON_HOME: "C:\\Python34-x64" - PYTHON_VERSION: "3.4" + - TOX_ENV: "py34-mssql-pyodbc-w32" PYTHON_ARCH: "64" + PYTHON_VERSION: "3.4" + PYTHON_HOME: "C:\\Python34-x64" db: mssql2014 - TOX_ENV: "py34-mssql-pyodbc-w32" - - PYTHON_HOME: "C:\\Python27" - PYTHON_VERSION: "2.7" + - TOX_ENV: "py27-mysql-connector-w32" PYTHON_ARCH: "32" + PYTHON_VERSION: "2.7" + PYTHON_HOME: "C:\\Python27" db: mysql - TOX_ENV: "py27-mysql-connector-w32" - - PYTHON_HOME: "C:\\Python34" - PYTHON_VERSION: "3.4" + - TOX_ENV: "py34-mysql-connector-w32" PYTHON_ARCH: "32" + PYTHON_VERSION: "3.4" + PYTHON_HOME: "C:\\Python34" db: mysql - TOX_ENV: "py34-mysql-connector-w32" - - PYTHON_HOME: "C:\\Python35" - PYTHON_VERSION: "3.5" + - TOX_ENV: "py35-mysql-connector-w32" PYTHON_ARCH: "32" + PYTHON_VERSION: "3.5" + PYTHON_HOME: "C:\\Python35" db: mysql - TOX_ENV: "py35-mysql-connector-w32" - - PYTHON_HOME: "C:\\Python36" - PYTHON_VERSION: "3.6" + - TOX_ENV: "py36-mysql-connector-w32" PYTHON_ARCH: "32" + PYTHON_VERSION: "3.6" + PYTHON_HOME: "C:\\Python36" db: mysql - TOX_ENV: "py36-mysql-connector-w32" - - PYTHON_HOME: "C:\\Python27-x64" - PYTHON_VERSION: "2.7" + - TOX_ENV: "py27-mysql-pyodbc-w32" PYTHON_ARCH: "64" + PYTHON_VERSION: "2.7" + PYTHON_HOME: "C:\\Python27-x64" db: mysql - TOX_ENV: "py27-mysql-pyodbc-w32" - - PYTHON_HOME: "C:\\Python34-x64" - PYTHON_VERSION: "3.4" + - TOX_ENV: "py34-mysql-pyodbc-w32" PYTHON_ARCH: "64" + PYTHON_VERSION: "3.4" + PYTHON_HOME: "C:\\Python34-x64" db: mysql - TOX_ENV: "py34-mysql-pyodbc-w32" - - PYTHON_HOME: "C:\\Python27" - PYTHON_VERSION: "2.7" + - TOX_ENV: "py27-postgres-psycopg-w32" PYTHON_ARCH: "32" - db: postgresql - TOX_ENV: "py27-postgres-psycopg-w32" - - PYTHON_HOME: "C:\\Python27-x64" PYTHON_VERSION: "2.7" + PYTHON_HOME: "C:\\Python27" + db: postgresql + - TOX_ENV: "py27-postgres-psycopg-w32" PYTHON_ARCH: "64" + PYTHON_VERSION: "2.7" + PYTHON_HOME: "C:\\Python27-x64" db: postgresql - TOX_ENV: "py27-postgres-psycopg-w32" - - PYTHON_HOME: "C:\\Python34" - PYTHON_VERSION: "3.4" + - TOX_ENV: "py34-postgres-psycopg-w32" PYTHON_ARCH: "32" - db: postgresql ... 897 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-08-01 23:09:06
|
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 ade481a3f94438a26ba35dc8248a6d84eb38de65 (commit) via 48ddb3a762f62b03843db11a9d3fc878ef2038fd (commit) via 044e33067682d9fb96345fde28f2761a85005b14 (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 (ade481a3f94438a26ba35dc8248a6d84eb38de65) \ N -- N -- N (48ddb3a762f62b03843db11a9d3fc878ef2038fd) 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/48ddb3a762f62b03843db11a9d3fc878ef2038fd commit 48ddb3a762f62b03843db11a9d3fc878ef2038fd Author: Oleg Broytman <ph...@ph...> Date: Wed Aug 2 01:32:11 2017 +0300 Tests: Fix a bug with sqlite-memory Rollback transaction and close connection. diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 9fd03d3..f11cfef 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -22,7 +22,7 @@ I'm pleased to announce version 3.4.1, the first bugfix release of branch What's new in SQLObject ======================= -Contributor for this release is +Contributor for this release is Dr. Neil Muller. 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 540b47d..16bc6e0 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -44,6 +44,9 @@ Drivers (work in progress) 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. diff --git a/sqlobject/tests/test_transactions.py b/sqlobject/tests/test_transactions.py index 0fbac42..b52ad52 100644 --- a/sqlobject/tests/test_transactions.py +++ b/sqlobject/tests/test_transactions.py @@ -50,7 +50,8 @@ def test_transaction(): def test_transaction_commit_sync(): setupClass(SOTestSOTrans) - trans = SOTestSOTrans._connection.transaction() + connection = SOTestSOTrans._connection + trans = connection.transaction() try: SOTestSOTrans(name='bob') bOut = SOTestSOTrans.byName('bob') @@ -60,14 +61,16 @@ def test_transaction_commit_sync(): trans.commit() assert bOut.name == 'robert' finally: - SOTestSOTrans._connection.autoCommit = True + trans.rollback() + connection.autoCommit = True + connection.close() def test_transaction_delete(close=False): setupClass(SOTestSOTrans) connection = SOTestSOTrans._connection if (connection.dbName == 'sqlite') and connection._memory: - pytest.skip("The following test requires a different connection") + pytest.skip("The test doesn't work with sqlite memory connection") trans = connection.transaction() try: SOTestSOTrans(name='bob') http://sourceforge.net/p/sqlobject/sqlobject/ci/044e33067682d9fb96345fde28f2761a85005b14 commit 044e33067682d9fb96345fde28f2761a85005b14 Author: Oleg Broytman <ph...@ph...> Date: Sun Jul 30 19:43:09 2017 +0300 Fix(pg): Encode binary values for PyGreSQL 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. diff --git a/.travis.yml b/.travis.yml index 79032aa..ddb1252 100644 --- a/.travis.yml +++ b/.travis.yml @@ -70,10 +70,6 @@ env: matrix: allow_failures: - - env: TOXENV=py27-postgres-pygresql - - env: TOXENV=py34-postgres-pygresql - - env: TOXENV=py35-postgres-pygresql - - env: TOXENV=py36-postgres-pygresql - env: TOXENV=py27-firebird-fdb - env: TOXENV=py34-firebird-fdb - env: TOXENV=py35-firebird-fdb diff --git a/docs/News.rst b/docs/News.rst index e2a430c..540b47d 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -28,7 +28,16 @@ Drivers (work in progress) * Encode binary values for py-postgresql driver. This fixes the last remaining problems with the driver. -* Encode/decode binary values for PyGreSQL 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. diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index e1f9b43..9a3121f 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -1831,9 +1831,9 @@ PostgresConnection supports transactions and all other features. The user can choose a DB API driver for PostgreSQL by using a ``driver`` parameter in DB URI or PostgresConnection that can be a comma-separated list of driver names. Possible drivers are: ``psycopg2``, psycopg1, -``psycopg`` (tries psycopg2 and psycopg1), ``pygresql``, ``pygresql``, -``pypostgresql``, ``pyodbc``, ``pypyodbc`` or ``odbc`` (try ``pyodbc`` and -``pypyodbc``). Default is ``psycopg``. +``psycopg`` (tries psycopg2 and psycopg1), ``pygresql``, ``pypostgresql``, +``pyodbc``, ``pypyodbc`` or ``odbc`` (try ``pyodbc`` and ``pypyodbc``). +Default is ``psycopg``. Connection-specific parameters are: ``sslmode``, ``unicodeCols``, ``schema``, ``charset``. diff --git a/sqlobject/col.py b/sqlobject/col.py index 6ee5e98..0f35862 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -1770,9 +1770,6 @@ class BinaryValidator(SOValidator): if isinstance(value, str): if not PY2 and dbName == "mysql": value = value.encode('ascii', errors='surrogateescape') - if dbName == "postgres" and connection.driver == 'pygresql': - from pg import unescape_bytea - value = unescape_bytea(value) if dbName == "sqlite": if not PY2: value = bytes(value, 'ascii') diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 4e33185..494ff09 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -85,14 +85,9 @@ class PostgresConnection(DBAPI): # Register a converter for psycopg Binary type. registerConverter(type(self.module.Binary('')), PsycoBinaryConverter) - elif driver == 'pygresql': - from pg import escape_bytea as pg_escape_bytea - self.createBinary = \ - lambda value, pg_escape_bytea=pg_escape_bytea: \ - pg_escape_bytea(value) - elif driver in ('py-postgresql', 'pypostgresql'): + elif driver in ('pygresql', 'py-postgresql', 'pypostgresql'): registerConverter(type(self.module.Binary(b'')), - PypostgresBinaryConverter) + PostgresBinaryConverter) elif driver in ('odbc', 'pyodbc', 'pypyodbc'): registerConverter(bytearray, OdbcBinaryConverter) @@ -541,15 +536,23 @@ def PsycoBinaryConverter(value, db): return str(value) -def escape_bytea(value): - return ''.join( - ['\\' + (x[2:].rjust(3, '0')) for x in (oct(ord(c)) for c in value)] - ) +if PY2: + def escape_bytea(value): + return ''.join( + ['\\' + (x[1:].rjust(3, '0')) + for x in (oct(ord(c)) for c in value)] + ) +else: + def escape_bytea(value): + return ''.join( + ['\\' + (x[2:].rjust(3, '0')) + for x in (oct(ord(c)) for c in value.decode('latin1'))] + ) -def PypostgresBinaryConverter(value, db): +def PostgresBinaryConverter(value, db): assert db == 'postgres' - return sqlrepr(escape_bytea(value.decode('latin1')), db) + return sqlrepr(escape_bytea(value), db) def OdbcBinaryConverter(value, db): ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 2 +- docs/News.rst | 9 ++++++--- sqlobject/tests/test_transactions.py | 9 ++++++--- 3 files changed, 13 insertions(+), 7 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-07-30 17:13: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, master has been updated via ade481a3f94438a26ba35dc8248a6d84eb38de65 (commit) via d1876c15115cc13b60a317fb55c564f39270d89a (commit) via 57316afcfd523c8308f0e348f3e17b09973f551e (commit) via acb369a2f85b1329aa72ff902341cda96dbdb0e4 (commit) from 78f1bc56ba2f32c28af86611ceb5a0e991544f26 (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/ade481a3f94438a26ba35dc8248a6d84eb38de65 commit ade481a3f94438a26ba35dc8248a6d84eb38de65 Author: Oleg Broytman <ph...@ph...> Date: Sun Jul 30 19:43:09 2017 +0300 Fix(pg): Encode binary values for PyGreSQL 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. diff --git a/.travis.yml b/.travis.yml index 79032aa..ddb1252 100644 --- a/.travis.yml +++ b/.travis.yml @@ -70,10 +70,6 @@ env: matrix: allow_failures: - - env: TOXENV=py27-postgres-pygresql - - env: TOXENV=py34-postgres-pygresql - - env: TOXENV=py35-postgres-pygresql - - env: TOXENV=py36-postgres-pygresql - env: TOXENV=py27-firebird-fdb - env: TOXENV=py34-firebird-fdb - env: TOXENV=py35-firebird-fdb diff --git a/docs/News.rst b/docs/News.rst index e2a430c..b5ba3ff 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -28,7 +28,16 @@ Drivers (work in progress) * Encode binary values for py-postgresql driver. This fixes the last remaining problems with the driver. -* Encode/decode binary values for PyGreSQL 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. diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index e1f9b43..9a3121f 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -1831,9 +1831,9 @@ PostgresConnection supports transactions and all other features. The user can choose a DB API driver for PostgreSQL by using a ``driver`` parameter in DB URI or PostgresConnection that can be a comma-separated list of driver names. Possible drivers are: ``psycopg2``, psycopg1, -``psycopg`` (tries psycopg2 and psycopg1), ``pygresql``, ``pygresql``, -``pypostgresql``, ``pyodbc``, ``pypyodbc`` or ``odbc`` (try ``pyodbc`` and -``pypyodbc``). Default is ``psycopg``. +``psycopg`` (tries psycopg2 and psycopg1), ``pygresql``, ``pypostgresql``, +``pyodbc``, ``pypyodbc`` or ``odbc`` (try ``pyodbc`` and ``pypyodbc``). +Default is ``psycopg``. Connection-specific parameters are: ``sslmode``, ``unicodeCols``, ``schema``, ``charset``. diff --git a/sqlobject/col.py b/sqlobject/col.py index 6ee5e98..0f35862 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -1770,9 +1770,6 @@ class BinaryValidator(SOValidator): if isinstance(value, str): if not PY2 and dbName == "mysql": value = value.encode('ascii', errors='surrogateescape') - if dbName == "postgres" and connection.driver == 'pygresql': - from pg import unescape_bytea - value = unescape_bytea(value) if dbName == "sqlite": if not PY2: value = bytes(value, 'ascii') diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 4e33185..494ff09 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -85,14 +85,9 @@ class PostgresConnection(DBAPI): # Register a converter for psycopg Binary type. registerConverter(type(self.module.Binary('')), PsycoBinaryConverter) - elif driver == 'pygresql': - from pg import escape_bytea as pg_escape_bytea - self.createBinary = \ - lambda value, pg_escape_bytea=pg_escape_bytea: \ - pg_escape_bytea(value) - elif driver in ('py-postgresql', 'pypostgresql'): + elif driver in ('pygresql', 'py-postgresql', 'pypostgresql'): registerConverter(type(self.module.Binary(b'')), - PypostgresBinaryConverter) + PostgresBinaryConverter) elif driver in ('odbc', 'pyodbc', 'pypyodbc'): registerConverter(bytearray, OdbcBinaryConverter) @@ -541,15 +536,23 @@ def PsycoBinaryConverter(value, db): return str(value) -def escape_bytea(value): - return ''.join( - ['\\' + (x[2:].rjust(3, '0')) for x in (oct(ord(c)) for c in value)] - ) +if PY2: + def escape_bytea(value): + return ''.join( + ['\\' + (x[1:].rjust(3, '0')) + for x in (oct(ord(c)) for c in value)] + ) +else: + def escape_bytea(value): + return ''.join( + ['\\' + (x[2:].rjust(3, '0')) + for x in (oct(ord(c)) for c in value.decode('latin1'))] + ) -def PypostgresBinaryConverter(value, db): +def PostgresBinaryConverter(value, db): assert db == 'postgres' - return sqlrepr(escape_bytea(value.decode('latin1')), db) + return sqlrepr(escape_bytea(value), db) def OdbcBinaryConverter(value, db): http://sourceforge.net/p/sqlobject/sqlobject/ci/d1876c15115cc13b60a317fb55c564f39270d89a commit d1876c15115cc13b60a317fb55c564f39270d89a Author: Oleg Broytman <ph...@ph...> Date: Sun Jul 23 19:45:43 2017 +0300 Fix(CI): Fix Firebird setup diff --git a/.travis.yml b/.travis.yml index 95b8883..79032aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -91,14 +91,15 @@ before_install: # We also create a test user for the firebird test and # create a script that can be fed into isql-fb # to create the test database. + # Copied password initializtion from + # https://github.com/xdenser/node-firebird-libfbclient/blob/master/.travis.yml - if [[ $TOXENV = *firebird* ]]; then sudo sed -i /etc/default/firebird2.5 -e 's/=no/=yes/' && sudo /etc/init.d/firebird2.5-super start && sleep 5 && - sudo touch /var/lib/firebird/create_test_db && - sudo chmod 666 /var/lib/firebird/create_test_db && - echo "CREATE DATABASE 'localhost:/tmp/test.fdb';" > /var/lib/firebird/create_test_db && - sudo chmod 644 /var/lib/firebird/create_test_db && - sudo gsec -user sysdba -pass masterkey -add test -pw test; + sudo /bin/bash -c '(export FB_VER="2.5"; export FB_FLAVOUR="super";source /usr/share/firebird2.5-common/functions.sh; writeNewPassword masterkey)' && + sudo gsec -user sysdba -pass masterkey -add test -pw test && + sudo /bin/bash -c "echo \"CREATE DATABASE 'localhost:/tmp/test.fdb';\" > /var/lib/firebird/create_test_db" && + sudo chmod 644 /var/lib/firebird/create_test_db; fi install: travis_retry pip install tox coveralls codecov ppu http://sourceforge.net/p/sqlobject/sqlobject/ci/57316afcfd523c8308f0e348f3e17b09973f551e commit 57316afcfd523c8308f0e348f3e17b09973f551e Author: Oleg Broytman <ph...@ph...> Date: Sun Jul 23 01:10:48 2017 +0300 Fix(CI): Disable microseconds for MySQL at Travis diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index 225a02f..eb56223 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -459,7 +459,7 @@ class MySQLConnection(DBAPI): def can_use_microseconds(self): if self._can_use_microseconds is not None: return self._can_use_microseconds - if os.environ.get('APPVEYOR'): + if os.environ.get('APPVEYOR') or os.environ.get('TRAVIS'): self._can_use_microseconds = False return False server_version = self.server_version() diff --git a/sqlobject/tests/dbtest.py b/sqlobject/tests/dbtest.py index ed1cb48..545c385 100644 --- a/sqlobject/tests/dbtest.py +++ b/sqlobject/tests/dbtest.py @@ -123,7 +123,10 @@ else: if (connection.dbName == 'firebird') \ or ( (connection.dbName == 'mysql') and - (os.environ.get('APPVEYOR')) + ( + (os.environ.get('APPVEYOR')) or + (os.environ.get('TRAVIS')) + ) ): use_microseconds(False) http://sourceforge.net/p/sqlobject/sqlobject/ci/acb369a2f85b1329aa72ff902341cda96dbdb0e4 commit acb369a2f85b1329aa72ff902341cda96dbdb0e4 Author: Oleg Broytman <ph...@ph...> Date: Sun Jul 23 00:34:10 2017 +0300 Fix(CI): Force user root for mysql at Travis diff --git a/tox.ini b/tox.ini index 6cf2dea..c2e9c60 100644 --- a/tox.ini +++ b/tox.ini @@ -45,10 +45,10 @@ whitelist_externals = [mysqldb] commands = {[testenv]commands} - -mysql -e 'drop database sqlobject_test;' - mysql -e 'create database sqlobject_test;' + -mysql -uroot -e 'drop database sqlobject_test;' + mysql -uroot -e 'create database sqlobject_test;' pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=mysqldb&debug=1 - mysql -e 'drop database sqlobject_test;' + mysql -uroot -e 'drop database sqlobject_test;' [testenv:py27-mysqldb] commands = {[mysqldb]commands} @@ -56,10 +56,10 @@ commands = {[mysqldb]commands} [mysqlclient] commands = {[testenv]commands} - -mysql -e 'drop database sqlobject_test;' - mysql -e 'create database sqlobject_test;' + -mysql -uroot -e 'drop database sqlobject_test;' + mysql -uroot -e 'create database sqlobject_test;' pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=mysqldb&charset=utf8&debug=1 - mysql -e 'drop database sqlobject_test;' + mysql -uroot -e 'drop database sqlobject_test;' [testenv:py34-mysqlclient] commands = {[mysqlclient]commands} @@ -73,10 +73,10 @@ commands = {[mysqlclient]commands} [mysql-connector] commands = {[testenv]commands} - -mysql -e 'drop database sqlobject_test;' - mysql -e 'create database sqlobject_test;' + -mysql -uroot -e 'drop database sqlobject_test;' + mysql -uroot -e 'create database sqlobject_test;' pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=connector&charset=utf8&debug=1 - mysql -e 'drop database sqlobject_test;' + mysql -uroot -e 'drop database sqlobject_test;' [testenv:py27-mysql-connector] commands = {[mysql-connector]commands} @@ -93,10 +93,10 @@ commands = {[mysql-connector]commands} [oursql] commands = {[testenv]commands} - -mysql -e 'drop database sqlobject_test;' - mysql -e 'create database sqlobject_test;' + -mysql -uroot -e 'drop database sqlobject_test;' + mysql -uroot -e 'create database sqlobject_test;' pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=oursql&charset=utf8&debug=1 - mysql -e 'drop database sqlobject_test;' + mysql -uroot -e 'drop database sqlobject_test;' [testenv:py27-mysql-oursql] commands = {[oursql]commands} @@ -104,10 +104,10 @@ commands = {[oursql]commands} [pymysql] commands = {[testenv]commands} - -mysql -e 'drop database sqlobject_test;' - mysql -e 'create database sqlobject_test;' + -mysql -uroot -e 'drop database sqlobject_test;' + mysql -uroot -e 'create database sqlobject_test;' pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=pymysql&charset=utf8&debug=1 - mysql -e 'drop database sqlobject_test;' + mysql -uroot -e 'drop database sqlobject_test;' [testenv:py27-pymysql] commands = {[pymysql]commands} @@ -125,10 +125,10 @@ commands = {[pymysql]commands} commands = {[testenv]commands} {envpython} -c "import pyodbc; print(pyodbc.drivers())" - -mysql -e 'drop database sqlobject_test;' - mysql -e 'create database sqlobject_test;' + -mysql -uroot -e 'drop database sqlobject_test;' + mysql -uroot -e 'create database sqlobject_test;' pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=pyodbc&odbcdrv=MySQL&charset=utf8&debug=1 - mysql -e 'drop database sqlobject_test;' + mysql -uroot -e 'drop database sqlobject_test;' [testenv:py27-mysql-pyodbc] commands = {[mysql-pyodbc]commands} @@ -145,10 +145,10 @@ commands = {[mysql-pyodbc]commands} [mysql-pypyodbc] commands = {[testenv]commands} - -mysql -e 'drop database sqlobject_test;' - mysql -e 'create database sqlobject_test;' + -mysql -uroot -e 'drop database sqlobject_test;' + mysql -uroot -e 'create database sqlobject_test;' pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=pypyodbc&odbcdrv=MySQL&charset=utf8&debug=1 - mysql -e 'drop database sqlobject_test;' + mysql -uroot -e 'drop database sqlobject_test;' [testenv:py27-mysql-pypyodbc] commands = {[mysql-pypyodbc]commands} ----------------------------------------------------------------------- Summary of changes: .travis.yml | 15 ++++++-------- docs/News.rst | 11 +++++++++- docs/SQLObject.rst | 6 +++--- sqlobject/col.py | 3 --- sqlobject/mysql/mysqlconnection.py | 2 +- sqlobject/postgres/pgconnection.py | 29 ++++++++++++++------------ sqlobject/tests/dbtest.py | 5 ++++- tox.ini | 42 +++++++++++++++++++------------------- 8 files changed, 61 insertions(+), 52 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-07-05 09:01:22
|
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 78f1bc56ba2f32c28af86611ceb5a0e991544f26 (commit) from a5531c8d0b499b82ed714aa4971b14b41ae7610c (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/78f1bc56ba2f32c28af86611ceb5a0e991544f26 commit 78f1bc56ba2f32c28af86611ceb5a0e991544f26 Author: Oleg Broytman <ph...@rn...> Date: Wed Jul 5 12:00:52 2017 +0300 Add requirements_dev.txt [skip ci] diff --git a/devscripts/requirements/requirements_dev.txt b/devscripts/requirements/requirements_dev.txt new file mode 100644 index 0000000..c7dc312 --- /dev/null +++ b/devscripts/requirements/requirements_dev.txt @@ -0,0 +1,4 @@ +-r requirements.txt + +wheel +twine ----------------------------------------------------------------------- Summary of changes: .../requirements/{requirements_docs.txt => requirements_dev.txt} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) copy devscripts/requirements/{requirements_docs.txt => requirements_dev.txt} (63%) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-06-28 22:36: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 a5531c8d0b499b82ed714aa4971b14b41ae7610c (commit) from 2a85338c232bda8c4c0ecb50266491c5a04d414c (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/a5531c8d0b499b82ed714aa4971b14b41ae7610c commit a5531c8d0b499b82ed714aa4971b14b41ae7610c Author: Oleg Broytman <ph...@ph...> Date: Thu Jun 29 01:09:54 2017 +0300 Add test_csvimport.py diff --git a/docs/News.rst b/docs/News.rst index 3810aa8..e2a430c 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -38,6 +38,9 @@ Tests * 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 =============== diff --git a/sqlobject/tests/test_csvimport.py b/sqlobject/tests/test_csvimport.py new file mode 100644 index 0000000..990f450 --- /dev/null +++ b/sqlobject/tests/test_csvimport.py @@ -0,0 +1,21 @@ +import csv +from datetime import datetime +from sqlobject.util.csvimport import load_csv + +csv_data = """\ +name:str,age:datetime,value:int +Test,2000-01-01 21:44:33,42""" + + +def test_load_csv(): + loaded = load_csv(csv.reader(csv_data.split('\n')), + default_class='SQLObject') + assert loaded == { + 'SQLObject': [ + { + 'age': datetime(2000, 1, 1, 21, 44, 33), + 'name': 'Test', + 'value': 42 + } + ] + } ----------------------------------------------------------------------- Summary of changes: docs/News.rst | 3 +++ sqlobject/tests/test_csvimport.py | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 sqlobject/tests/test_csvimport.py hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-06-17 19:41: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 2a85338c232bda8c4c0ecb50266491c5a04d414c (commit) from 53a22ac8a7222a86f4638cc00f24d19169838233 (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/2a85338c232bda8c4c0ecb50266491c5a04d414c commit 2a85338c232bda8c4c0ecb50266491c5a04d414c Author: Oleg Broytman <ph...@ph...> Date: Sat Jun 17 20:27:52 2017 +0300 Use ppu to cleanup pip cache Use remove-old-files.py from ppu to cleanup pip cache at Travis and AppVeyor. diff --git a/.travis.yml b/.travis.yml index aa7286a..95b8883 100644 --- a/.travis.yml +++ b/.travis.yml @@ -101,7 +101,7 @@ before_install: sudo gsec -user sysdba -pass masterkey -add test -pw test; fi -install: travis_retry pip install tox coveralls codecov +install: travis_retry pip install tox coveralls codecov ppu script: tox -e ${TOXENV} @@ -109,3 +109,6 @@ after_success: - cd sqlobject - coveralls - codecov + +before_cache: + - remove-old-files.py -o 180 ~/.cache/pip diff --git a/appveyor.yml b/appveyor.yml index eff4614..ea3779b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -245,7 +245,7 @@ install: - "python --version" - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" - "pip --version" - - "pip install tox" + - "pip install tox ppu" # List ODBC drivers - ps: Get-OdbcDriver -Platform 32-bit | Select-Object -ExpandProperty Name - ps: Get-OdbcDriver -Platform 64-bit | Select-Object -ExpandProperty Name @@ -270,3 +270,6 @@ build: false test_script: - "%CMD_IN_ENV% tox -e %TOX_ENV%" + +after_test: + - "remove-old-files.py -o 180 %LOCALAPPDATA%\\pip\\Cache" diff --git a/docs/News.rst b/docs/News.rst index c14515a..3810aa8 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -10,9 +10,21 @@ News SQLObject 3.4.0 (master) ======================== +Features +-------- + * Python 2.6 is no longer supported. The minimal supported version is Python 2.7. +Minor features +-------------- + +* Use base64.b64encode/b64decode instead of deprecated + encodestring/decodestring. + +Drivers (work in progress) +-------------------------- + * Encode binary values for py-postgresql driver. This fixes the last remaining problems with the driver. @@ -20,8 +32,11 @@ SQLObject 3.4.0 (master) * List all drivers in extras_require in setup.py. -* Use base64.b64encode/b64decode instead of deprecated - encodestring/decodestring. +Tests +----- + +* Use remove-old-files.py from ppu to cleanup pip cache + at Travis and AppVeyor. SQLObject 3.3.0 =============== ----------------------------------------------------------------------- Summary of changes: .travis.yml | 5 ++++- appveyor.yml | 5 ++++- docs/News.rst | 19 +++++++++++++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-06-06 22:12:18
|
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 cec65e54e9994cb70bda35c2ebe483ca2b65ed21 (commit) via 53a22ac8a7222a86f4638cc00f24d19169838233 (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 (cec65e54e9994cb70bda35c2ebe483ca2b65ed21) \ N -- N -- N (53a22ac8a7222a86f4638cc00f24d19169838233) 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/53a22ac8a7222a86f4638cc00f24d19169838233 commit 53a22ac8a7222a86f4638cc00f24d19169838233 Author: Oleg Broytman <ph...@ph...> Date: Wed Jun 7 01:00:17 2017 +0300 Docs: I started to answer questions on StackOverflow [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 3d68fe4..9fd03d3 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -59,6 +59,9 @@ https://pypi.python.org/pypi/SQLObject/3.4.0a0.dev20170507 News and changes: http://sqlobject.org/News.html +StackOverflow: +https://stackoverflow.com/questions/tagged/sqlobject + Example ======= diff --git a/docs/community.rst b/docs/community.rst index 91c0ae0..c312385 100644 --- a/docs/community.rst +++ b/docs/community.rst @@ -22,6 +22,9 @@ contributing you should read the `Developer Guide <DeveloperGuide.html>`_. The `Author List <Authors.html>`_ tries to list all the major contributors. +Questions can also be asked and answered on `StackOverflow +<https://stackoverflow.com/questions/tagged/sqlobject>`_. + One can also contribute to `community-editable recipe/documentation site <https://sites.google.com/site/sqlobject/>`_. ----------------------------------------------------------------------- Summary of changes: docs/community.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-06-06 22:08:06
|
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 cec65e54e9994cb70bda35c2ebe483ca2b65ed21 (commit) from e5be8841dad1fbad22e3169ecaaf4a6a8b5dcd89 (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/cec65e54e9994cb70bda35c2ebe483ca2b65ed21 commit cec65e54e9994cb70bda35c2ebe483ca2b65ed21 Author: Oleg Broytman <ph...@ph...> Date: Wed Jun 7 01:00:17 2017 +0300 Docs: I started to answer questions on StackOverflow [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 3d68fe4..9fd03d3 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -59,6 +59,9 @@ https://pypi.python.org/pypi/SQLObject/3.4.0a0.dev20170507 News and changes: http://sqlobject.org/News.html +StackOverflow: +https://stackoverflow.com/questions/tagged/sqlobject + Example ======= diff --git a/docs/community.rst b/docs/community.rst index 91c0ae0..1975e88 100644 --- a/docs/community.rst +++ b/docs/community.rst @@ -22,6 +22,9 @@ contributing you should read the `Developer Guide <DeveloperGuide.html>`_. The `Author List <Authors.html>`_ tries to list all the major contributors. +Questions can also be asked and answered on `StackOverflow +<https://stackoverflow.com/questions/tagged/sqlobject>`. + One can also contribute to `community-editable recipe/documentation site <https://sites.google.com/site/sqlobject/>`_. ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 3 +++ docs/community.rst | 3 +++ 2 files changed, 6 insertions(+) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-29 21:57:25
|
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 e5be8841dad1fbad22e3169ecaaf4a6a8b5dcd89 (commit) via be2c6ade34e0227f664685a3462b3ee905dff167 (commit) via ecccd99cbf60031312e48ebd6736bf8235dca042 (commit) via 15a61fb807aed1a78775da70fec3b57ed0260339 (commit) via 96ddc26c7744a6998bfdffe14d214a5d7d0a2159 (commit) from e70c2760b962d00fc468afcd7c8224057d9c6b00 (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/e5be8841dad1fbad22e3169ecaaf4a6a8b5dcd89 commit e5be8841dad1fbad22e3169ecaaf4a6a8b5dcd89 Author: Oleg Broytman <ph...@ph...> Date: Tue May 30 00:28:02 2017 +0300 Tests for sqlite-memory at Travis somehow work now diff --git a/.travis.yml b/.travis.yml index bf94aa4..aa7286a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -74,10 +74,6 @@ matrix: - env: TOXENV=py34-postgres-pygresql - env: TOXENV=py35-postgres-pygresql - env: TOXENV=py36-postgres-pygresql - - env: TOXENV=py27-sqlite-memory - - env: TOXENV=py34-sqlite-memory - - env: TOXENV=py35-sqlite-memory - - env: TOXENV=py36-sqlite-memory - env: TOXENV=py27-firebird-fdb - env: TOXENV=py34-firebird-fdb - env: TOXENV=py35-firebird-fdb http://sourceforge.net/p/sqlobject/sqlobject/ci/be2c6ade34e0227f664685a3462b3ee905dff167 commit be2c6ade34e0227f664685a3462b3ee905dff167 Author: Oleg Broytman <ph...@ph...> Date: Mon May 29 22:46:33 2017 +0300 Change binary encoding for ODBC drivers diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 76a809b..4e33185 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -93,6 +93,8 @@ class PostgresConnection(DBAPI): elif driver in ('py-postgresql', 'pypostgresql'): registerConverter(type(self.module.Binary(b'')), PypostgresBinaryConverter) + elif driver in ('odbc', 'pyodbc', 'pypyodbc'): + registerConverter(bytearray, OdbcBinaryConverter) self.db = db self.user = user @@ -548,3 +550,11 @@ def escape_bytea(value): def PypostgresBinaryConverter(value, db): assert db == 'postgres' return sqlrepr(escape_bytea(value.decode('latin1')), db) + + +def OdbcBinaryConverter(value, db): + assert db == 'postgres' + value = bytes(value) + if not PY2: + value = value.decode('latin1') + return value http://sourceforge.net/p/sqlobject/sqlobject/ci/ecccd99cbf60031312e48ebd6736bf8235dca042 commit ecccd99cbf60031312e48ebd6736bf8235dca042 Author: Oleg Broytman <ph...@ph...> Date: Mon May 29 22:20:06 2017 +0300 Encode binary values for py-postgresql driver diff --git a/.travis.yml b/.travis.yml index 87812e2..bf94aa4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -74,9 +74,6 @@ matrix: - env: TOXENV=py34-postgres-pygresql - env: TOXENV=py35-postgres-pygresql - env: TOXENV=py36-postgres-pygresql - - env: TOXENV=py34-pypostgresql - - env: TOXENV=py35-pypostgresql - - env: TOXENV=py36-pypostgresql - env: TOXENV=py27-sqlite-memory - env: TOXENV=py34-sqlite-memory - env: TOXENV=py35-sqlite-memory diff --git a/docs/News.rst b/docs/News.rst index 451c9ba..c14515a 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -13,6 +13,9 @@ SQLObject 3.4.0 (master) * Python 2.6 is no longer supported. The minimal supported version is Python 2.7. +* Encode binary values for py-postgresql driver. This fixes the + last remaining problems with the driver. + * Encode/decode binary values for PyGreSQL driver. * List all drivers in extras_require in setup.py. diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 855a5cf..76a809b 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -2,7 +2,7 @@ import re from sqlobject import col from sqlobject import dberrors from sqlobject import sqlbuilder -from sqlobject.compat import PY2, unicode_type +from sqlobject.compat import PY2 from sqlobject.converters import registerConverter, sqlrepr from sqlobject.dbconnection import DBAPI @@ -86,15 +86,13 @@ class PostgresConnection(DBAPI): registerConverter(type(self.module.Binary('')), PsycoBinaryConverter) elif driver == 'pygresql': - from pg import escape_bytea + from pg import escape_bytea as pg_escape_bytea self.createBinary = \ - lambda value, escape_bytea=escape_bytea: escape_bytea(value) - elif type(self.module.Binary) in ( - type, type(PostgresBinaryConverter)) and \ - type(self.module.Binary(b'')) not in (bytes, unicode_type): - # Register a converter for Binary type. + lambda value, pg_escape_bytea=pg_escape_bytea: \ + pg_escape_bytea(value) + elif driver in ('py-postgresql', 'pypostgresql'): registerConverter(type(self.module.Binary(b'')), - PostgresBinaryConverter) + PypostgresBinaryConverter) self.db = db self.user = user @@ -541,11 +539,12 @@ def PsycoBinaryConverter(value, db): return str(value) -if PY2: - def PostgresBinaryConverter(value, db): - assert db == 'postgres' - return sqlrepr(bytes(value), db) -else: - def PostgresBinaryConverter(value, db): - assert db == 'postgres' - return sqlrepr(value.decode('latin1'), db) +def escape_bytea(value): + return ''.join( + ['\\' + (x[2:].rjust(3, '0')) for x in (oct(ord(c)) for c in value)] + ) + + +def PypostgresBinaryConverter(value, db): + assert db == 'postgres' + return sqlrepr(escape_bytea(value.decode('latin1')), db) http://sourceforge.net/p/sqlobject/sqlobject/ci/15a61fb807aed1a78775da70fec3b57ed0260339 commit 15a61fb807aed1a78775da70fec3b57ed0260339 Author: Oleg Broytman <ph...@ph...> Date: Mon May 29 22:42:29 2017 +0300 Use b64encode/b64decode instead of deprecated encodestring/decodestring diff --git a/docs/News.rst b/docs/News.rst index c16216e..451c9ba 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -17,6 +17,8 @@ SQLObject 3.4.0 (master) * List all drivers in extras_require in setup.py. +* Use base64.b64encode/b64decode instead of deprecated + encodestring/decodestring. SQLObject 3.3.0 =============== diff --git a/sqlobject/sqlite/sqliteconnection.py b/sqlobject/sqlite/sqliteconnection.py index 70fae63..93ad429 100644 --- a/sqlobject/sqlite/sqliteconnection.py +++ b/sqlobject/sqlite/sqliteconnection.py @@ -59,8 +59,8 @@ class SQLiteConnection(DBAPI): raise ImportError( 'Cannot find an SQLite driver, tried %s' % drivers) if self.using_sqlite2: - sqlite.encode = base64.encodestring - sqlite.decode = base64.decodestring + sqlite.encode = base64.b64encode + sqlite.decode = base64.b64decode self.module = sqlite self.filename = filename # full path to sqlite-db-file self._memory = filename == ':memory:' http://sourceforge.net/p/sqlobject/sqlobject/ci/96ddc26c7744a6998bfdffe14d214a5d7d0a2159 commit 96ddc26c7744a6998bfdffe14d214a5d7d0a2159 Author: Oleg Broytman <ph...@ph...> Date: Mon May 29 23:07:18 2017 +0300 List all drivers in extras_require in setup.py diff --git a/docs/News.rst b/docs/News.rst index 0c10a22..c16216e 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -15,6 +15,9 @@ SQLObject 3.4.0 (master) * Encode/decode binary values for PyGreSQL driver. +* List all drivers in extras_require in setup.py. + + SQLObject 3.3.0 =============== diff --git a/setup.py b/setup.py index ad3814c..2e22194 100755 --- a/setup.py +++ b/setup.py @@ -27,24 +27,54 @@ if is_setuptools: [paste.filter_app_factory] main = sqlobject.wsgi_middleware:make_middleware """ - install_requires = [] if (sys.version_info[:2] == (2, 7)): - install_requires.append("FormEncode>=1.1.1,!=1.3.0") + PY2 = True elif (sys.version_info[0] == 3) and (sys.version_info[:2] >= (3, 4)): - install_requires.append("FormEncode>=1.3.1") + PY2 = False else: raise ImportError("SQLObject requires Python 2.7 or 3.4+") + + kw['install_requires'] = install_requires = [] + if PY2: + install_requires.append("FormEncode>=1.1.1,!=1.3.0") + else: + install_requires.append("FormEncode>=1.3.1") install_requires.append("PyDispatcher>=2.0.4") - kw['install_requires'] = install_requires - kw['extras_require'] = { - 'mysql': ['MySQLdb'], - 'postgresql': ['psycopg'], # or pgdb from PyGreSQL + + kw['extras_require'] = extras_require = { + # Firebird/Interbase + 'fdb': ['fdb'], + 'firebirdsql': ['firebirdsql'], + 'kinterbasdb': ['kinterbasdb'], + # MS SQL + 'adodbapi': ['adodbapi'], + 'pymssql': ['pymssql'], + # MySQL + 'mysql-connector': ['mysql-connector'], + 'pymysql': ['pymysql'], + # ODBC + 'odbc': ['pyodbc'], + 'pyodbc': ['pyodbc'], + 'pypyodbc': ['pypyodbc'], + # PostgreSQL + 'psycopg1': ['psycopg1'], + 'psycopg2': ['psycopg2'], + 'psycopg': ['psycopg2'], + 'postgres': ['psycopg2'], + 'postgresql': ['psycopg2'], + 'pygresql': ['pygresql'], + 'pypostgresql': ['py-postgresql'], + 'py-postgresql': ['py-postgresql'], + # + 'sapdb': ['sapdb'], 'sqlite': ['pysqlite'], - 'firebird': ['fdb'], # or kinterbasdb 'sybase': ['Sybase'], - 'mssql': ['adodbapi'], # or pymssql - 'sapdb': ['sapdb'], } + if PY2: + extras_require['mysql'] = ['MySQLdb'] + extras_require['oursql'] = ['oursql'] + else: + extras_require['mysql'] = ['mysqlclient'] setup(name="SQLObject", version=version, ----------------------------------------------------------------------- Summary of changes: .travis.yml | 7 ----- docs/News.rst | 8 ++++++ setup.py | 50 ++++++++++++++++++++++++++++-------- sqlobject/postgres/pgconnection.py | 41 +++++++++++++++++------------ sqlobject/sqlite/sqliteconnection.py | 4 +-- 5 files changed, 75 insertions(+), 35 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-23 20:50:22
|
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 e70c2760b962d00fc468afcd7c8224057d9c6b00 (commit) from d1177e2f2833a0a5d5f389a25ee7f9af020a9069 (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/e70c2760b962d00fc468afcd7c8224057d9c6b00 commit e70c2760b962d00fc468afcd7c8224057d9c6b00 Author: Oleg Broytman <ph...@ph...> Date: Tue May 23 23:49:11 2017 +0300 Add example to ANNOUNCE.rst [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 2bf4927..3d68fe4 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -58,3 +58,43 @@ https://pypi.python.org/pypi/SQLObject/3.4.0a0.dev20170507 News and changes: http://sqlobject.org/News.html + + +Example +======= + +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 diff --git a/docs/index.rst b/docs/index.rst index 25c07dd..f1f1ece 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -68,6 +68,14 @@ Here's how you'd use the object:: >>> 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 Indices and tables ================== ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 40 ++++++++++++++++++++++++++++++++++++++++ docs/index.rst | 8 ++++++++ 2 files changed, 48 insertions(+) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-20 17:58: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 d1177e2f2833a0a5d5f389a25ee7f9af020a9069 (commit) from 4c812a1f79509ff84d254d253aabdac7747d4c1b (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/d1177e2f2833a0a5d5f389a25ee7f9af020a9069 commit d1177e2f2833a0a5d5f389a25ee7f9af020a9069 Author: Oleg Broytman <ph...@ph...> Date: Sat May 20 16:19:29 2017 +0300 Feat(devscripts): Use sed --in-place instead of replace [skip ci] diff --git a/devscripts/branch b/devscripts/branch index 38ca214..908e5fb 100755 --- a/devscripts/branch +++ b/devscripts/branch @@ -45,8 +45,8 @@ version_info = (major, minor, micro, release_level, serial)" > sqlobject/__versi `git var GIT_EDITOR` README.rst sqlobject/__version__.py docs/News.rst appveyor.yml setup.py && git commit --message="Next branch will be $major.$next_minor" README.rst sqlobject/__version__.py docs/News.rst setup.py && - exec ./replace "$major\.$minor" "$major.$next_minor" ANNOUNCE.rst + exec sed -i /"$major\.$minor"/"$major.$next_minor"/ ANNOUNCE.rst else - exec ./replace "$prev_branch" "$major.$next_minor" ANNOUNCE.rst + exec sed -i /"$prev_branch"/"$major.$next_minor"/ ANNOUNCE.rst fi diff --git a/devscripts/replace b/devscripts/replace deleted file mode 100755 index 8ff7124..0000000 --- a/devscripts/replace +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env python - -import sys - -if len(sys.argv) < 4: - sys.stderr.write("Usage: %s [-i] from_re to_re file....\n" % sys.argv[0]) - sys.exit(1) - -import re -if sys.argv[1] == '-i': - search = re.compile(sys.argv[2], re.IGNORECASE) - replace = sys.argv[3] - start = 4 -else: - search = re.compile(sys.argv[1]) - replace = sys.argv[2] - start = 3 - -from fileinput import FileInput -files = FileInput(sys.argv[start:], inplace=1) - -for line in files: - line = search.sub(replace, line) - sys.stdout.write(line) - -files.close() ----------------------------------------------------------------------- Summary of changes: devscripts/branch | 4 ++-- devscripts/replace | 26 -------------------------- 2 files changed, 2 insertions(+), 28 deletions(-) delete mode 100755 devscripts/replace hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-16 22:25:36
|
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 4c812a1f79509ff84d254d253aabdac7747d4c1b (commit) via 7570514647628f6663e6fb35d8b1fa1b9f8cb2bd (commit) via c825a7874ed6f2506193f593fb09dc87cb55d5bd (commit) via 96bf0e6bfb88a71fe818ee6e27ea8c8f584c20d8 (commit) via bd45fb11ae33d224ef0eda473c63fcf064bce0d4 (commit) via 3d2bf5ad78eb1c58c8648f2d483377a6946d22cf (commit) from 1ba596182f377939a9b907d262d6ea9a40c1ea76 (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/4c812a1f79509ff84d254d253aabdac7747d4c1b commit 4c812a1f79509ff84d254d253aabdac7747d4c1b Author: Oleg Broytman <ph...@ph...> Date: Tue May 16 23:28:45 2017 +0300 Encode/decode binary values for PyGreSQL driver diff --git a/docs/News.rst b/docs/News.rst index 8ac2a86..0c10a22 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -13,6 +13,8 @@ SQLObject 3.4.0 (master) * Python 2.6 is no longer supported. The minimal supported version is Python 2.7. +* Encode/decode binary values for PyGreSQL driver. + SQLObject 3.3.0 =============== diff --git a/sqlobject/col.py b/sqlobject/col.py index 0f35862..6ee5e98 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -1770,6 +1770,9 @@ class BinaryValidator(SOValidator): if isinstance(value, str): if not PY2 and dbName == "mysql": value = value.encode('ascii', errors='surrogateescape') + if dbName == "postgres" and connection.driver == 'pygresql': + from pg import unescape_bytea + value = unescape_bytea(value) if dbName == "sqlite": if not PY2: value = bytes(value, 'ascii') diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index bf22a9c..855a5cf 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -85,6 +85,10 @@ class PostgresConnection(DBAPI): # Register a converter for psycopg Binary type. registerConverter(type(self.module.Binary('')), PsycoBinaryConverter) + elif driver == 'pygresql': + from pg import escape_bytea + self.createBinary = \ + lambda value, escape_bytea=escape_bytea: escape_bytea(value) elif type(self.module.Binary) in ( type, type(PostgresBinaryConverter)) and \ type(self.module.Binary(b'')) not in (bytes, unicode_type): http://sourceforge.net/p/sqlobject/sqlobject/ci/7570514647628f6663e6fb35d8b1fa1b9f8cb2bd commit 7570514647628f6663e6fb35d8b1fa1b9f8cb2bd Author: Oleg Broytman <ph...@ph...> Date: Tue May 16 23:28:11 2017 +0300 Micro refactoring in BinaryValidator.to_python diff --git a/sqlobject/col.py b/sqlobject/col.py index e5f5301..0f35862 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -1768,12 +1768,12 @@ class BinaryValidator(SOValidator): dbName = connection.dbName binaryType = connection._binaryType if isinstance(value, str): + if not PY2 and dbName == "mysql": + value = value.encode('ascii', errors='surrogateescape') if dbName == "sqlite": if not PY2: value = bytes(value, 'ascii') value = connection.module.decode(value) - if dbName == "mysql" and not PY2: - value = value.encode('ascii', errors='surrogateescape') return value if isinstance(value, bytes): return value http://sourceforge.net/p/sqlobject/sqlobject/ci/c825a7874ed6f2506193f593fb09dc87cb55d5bd commit c825a7874ed6f2506193f593fb09dc87cb55d5bd Author: Oleg Broytman <ph...@ph...> Date: Tue May 16 00:26:09 2017 +0300 Fix: Do not register PostgresBinaryConverter for bytes and unicode Avoid recursion in sqlrepr(Binary(value), 'postgres'). diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 63bd17a..bf22a9c 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -2,7 +2,7 @@ import re from sqlobject import col from sqlobject import dberrors from sqlobject import sqlbuilder -from sqlobject.compat import PY2 +from sqlobject.compat import PY2, unicode_type from sqlobject.converters import registerConverter, sqlrepr from sqlobject.dbconnection import DBAPI @@ -85,7 +85,9 @@ class PostgresConnection(DBAPI): # Register a converter for psycopg Binary type. registerConverter(type(self.module.Binary('')), PsycoBinaryConverter) - elif type(self.module.Binary) in (type, type(PostgresBinaryConverter)): + elif type(self.module.Binary) in ( + type, type(PostgresBinaryConverter)) and \ + type(self.module.Binary(b'')) not in (bytes, unicode_type): # Register a converter for Binary type. registerConverter(type(self.module.Binary(b'')), PostgresBinaryConverter) http://sourceforge.net/p/sqlobject/sqlobject/ci/96bf0e6bfb88a71fe818ee6e27ea8c8f584c20d8 commit 96bf0e6bfb88a71fe818ee6e27ea8c8f584c20d8 Author: Oleg Broytman <ph...@ph...> Date: Sun May 7 14:53:05 2017 +0300 Move hard requirements from tox.ini to requirements.txt Move test requirements to requirements_tests.txt. diff --git a/tox.ini b/tox.ini index 792dde2..6cf2dea 100644 --- a/tox.ini +++ b/tox.ini @@ -15,11 +15,7 @@ commands = {envpython} --version {envpython} -c "import struct; print(struct.calcsize('P') * 8)" deps = - pytest - pytest-cov - py27: FormEncode >= 1.1.1, != 1.3.0 - py{34,35,36}: FormEncode >= 1.3.1 - PyDispatcher>=2.0.4 + -rdevscripts/requirements/requirements_tests.txt py27: egenix-mx-base mssql-pyodbc: pytest-timeout mysqldb: mysql-python http://sourceforge.net/p/sqlobject/sqlobject/ci/bd45fb11ae33d224ef0eda473c63fcf064bce0d4 commit bd45fb11ae33d224ef0eda473c63fcf064bce0d4 Author: Oleg Broytman <ph...@ph...> Date: Sun May 7 14:42:47 2017 +0300 Move requirements.txt to devscripts/ Rename requirements_dev.txt to requirements_test.txt. Split requirements_test.txt intto requirements_tox.txt. [skip ci] diff --git a/requirements.txt b/devscripts/requirements/requirements.txt similarity index 100% rename from requirements.txt rename to devscripts/requirements/requirements.txt diff --git a/requirements_docs.txt b/devscripts/requirements/requirements_docs.txt similarity index 100% rename from requirements_docs.txt rename to devscripts/requirements/requirements_docs.txt diff --git a/requirements_dev.txt b/devscripts/requirements/requirements_tests.txt similarity index 78% rename from requirements_dev.txt rename to devscripts/requirements/requirements_tests.txt index ca2ff5d..8e890d8 100644 --- a/requirements_dev.txt +++ b/devscripts/requirements/requirements_tests.txt @@ -2,4 +2,3 @@ pytest pytest-cov -tox >= 1.8 diff --git a/devscripts/requirements/requirements_tox.txt b/devscripts/requirements/requirements_tox.txt new file mode 100644 index 0000000..9927ea4 --- /dev/null +++ b/devscripts/requirements/requirements_tox.txt @@ -0,0 +1 @@ +tox >= 1.8 http://sourceforge.net/p/sqlobject/sqlobject/ci/3d2bf5ad78eb1c58c8648f2d483377a6946d22cf commit 3d2bf5ad78eb1c58c8648f2d483377a6946d22cf Author: Oleg Broytman <ph...@ph...> Date: Sun May 7 17:43:42 2017 +0300 Stop supporting Python 2.6 diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 46dc308..2bf4927 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -38,7 +38,7 @@ 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). -Python 2.6, 2.7 or 3.4+ is required. +Python 2.7 or 3.4+ is required. Where is SQLObject diff --git a/README.rst b/README.rst index 0ba1341..43c457d 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.3.0 -=============== +SQLObject 3.4.0a0 +================= Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python @@ -7,7 +7,7 @@ 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, -Sybase and Rdbhost. Python 2.6, 2.7 or 3.4+ is required. +Sybase and Rdbhost. 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/release b/devscripts/release index 0e24a8a..6c92d3a 100755 --- a/devscripts/release +++ b/devscripts/release @@ -11,7 +11,7 @@ python setup.py build_py && python setup.py build --executable '/usr/bin/env python' && python setup.py sdist && -for py in 2.6 2.7 3.4 3.5 3.6; do +for py in 2.7 3.4 3.5 3.6; do find build -name '*.py[co]' -delete && python$py setup.py build_py && python$py setup.py build --executable '/usr/bin/env python' && diff --git a/devscripts/run-all-tests b/devscripts/run-all-tests index 80b2e1a..da6dbe4 100755 --- a/devscripts/run-all-tests +++ b/devscripts/run-all-tests @@ -3,7 +3,7 @@ cd "`dirname \"$0\"`"/SQLObject && SO_DIR="`dirname $0`" -for py_ver in 2.6 2.7 3.4 3.5 3.6; do +for py_ver in 2.7 3.4 3.5 3.6; do echo "---------- PYTHON $py_ver "$1" ----------" "$SO_DIR"/cleanup && PY_VER=$py_ver "$SO_DIR"/run-tests-"$1" \ diff --git a/devscripts/setup b/devscripts/setup index 946696e..4edd679 100755 --- a/devscripts/setup +++ b/devscripts/setup @@ -3,7 +3,6 @@ umask 022 # -rwxr-xr-x cd "`dirname \"$0\"`"/SQLObject && -python2.6 setup.py install -O2 && for py_ver in 2.7 3.4 3.5 3.6; do python$py_ver -m pip install --install-option=-O2 --upgrade . done && diff --git a/docs/News.rst b/docs/News.rst index b307bee..8ac2a86 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -10,6 +10,9 @@ News SQLObject 3.4.0 (master) ======================== +* Python 2.6 is no longer supported. The minimal supported version is + Python 2.7. + SQLObject 3.3.0 =============== diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index e1b9622..e1f9b43 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -82,7 +82,7 @@ FreeTDS_) or adodbapi_ (Win32). .. _FreeTDS: http://www.freetds.org/ .. _adodbapi: http://adodbapi.sourceforge.net/ -Python 2.6, 2.7 or 3.4+ is required. +Python 2.7 or 3.4+ is required. Compared To Other Database Wrappers =================================== diff --git a/docs/TODO.rst b/docs/TODO.rst index 3bf6a66..2ae19ac 100644 --- a/docs/TODO.rst +++ b/docs/TODO.rst @@ -1,8 +1,6 @@ TODO ---- -* Stop supporting Python 2.6. Fix dbconnection.py and joins.py. - * PyPy. * Quote table/column names that are reserved keywords (order => "order", diff --git a/requirements.txt b/requirements.txt index 220e308..b8113c5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ --install-option=-O2 -FormEncode >= 1.1.1, != 1.3.0; python_version >= '2.6' and python_version < '3.0' +FormEncode >= 1.1.1, != 1.3.0; python_version >= '2.7' and python_version < '3.0' FormEncode >= 1.3.1; python_version >= '3.4' PyDispatcher >= 2.0.4 diff --git a/setup.py b/setup.py index 640ab22..ad3814c 100755 --- a/setup.py +++ b/setup.py @@ -28,12 +28,12 @@ if is_setuptools: main = sqlobject.wsgi_middleware:make_middleware """ install_requires = [] - if (sys.version_info[0] == 2) and (sys.version_info[:2] >= (2, 6)): + if (sys.version_info[:2] == (2, 7)): install_requires.append("FormEncode>=1.1.1,!=1.3.0") elif (sys.version_info[0] == 3) and (sys.version_info[:2] >= (3, 4)): install_requires.append("FormEncode>=1.3.1") else: - raise ImportError("SQLObject requires Python 2.6, 2.7 or 3.4+") + raise ImportError("SQLObject requires Python 2.7 or 3.4+") install_requires.append("PyDispatcher>=2.0.4") kw['install_requires'] = install_requires kw['extras_require'] = { @@ -59,7 +59,7 @@ more abstract, and provides substantial database independence for applications. Supports MySQL, PostgreSQL, SQLite, Firebird, Sybase, MSSQL and MaxDB (SAPDB). -Python 2.6, 2.7 or 3.4+ is required. +Python 2.7 or 3.4+ is required. For development see the projects at `SourceForge <https://sourceforge.net/projects/sqlobject/>`_ @@ -75,7 +75,6 @@ and `GitHub <https://github.com/sqlobject>`_. "GNU Library or Lesser General Public License (LGPL)", "Programming Language :: Python", "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", @@ -161,7 +160,7 @@ easy to use and quick to get started with. It currently supports MySQL through the `MySQLdb` package, PostgreSQL through the `psycopg` package, SQLite, Firebird, MaxDB (SAP DB), MS SQL -Sybase and Rdbhost. Python 2.6, 2.7 or 3.4+ is required. +Sybase and Rdbhost. Python 2.7 or 3.4+ is required. Where is SQLObject diff --git a/sqlobject/dbconnection.py b/sqlobject/dbconnection.py index 89f4382..ff905f6 100644 --- a/sqlobject/dbconnection.py +++ b/sqlobject/dbconnection.py @@ -210,12 +210,6 @@ class DBConnection: @staticmethod def _parseURI(uri): parsed = urlparse(uri) - if sys.version_info[0:2] == (2, 6): - # In python 2.6, urlparse only parses the uri completely - # for certain schemes, so we force the scheme to - # something that will be parsed correctly - scheme = parsed.scheme - parsed = urlparse(uri.replace(scheme, 'http', 1)) host, path = parsed.hostname, parsed.path user, password, port = None, None, None if parsed.username: diff --git a/sqlobject/joins.py b/sqlobject/joins.py index 675beb7..c847e21 100644 --- a/sqlobject/joins.py +++ b/sqlobject/joins.py @@ -102,8 +102,7 @@ class SOJoin(object): class MinType(object): """Sort less than everything, for handling None's in the results""" - # functools.total_ordering would simplify this, but isn't available - # for python 2.6 + # functools.total_ordering would simplify this def __lt__(self, other): if self is other: diff --git a/sqlobject/main.py b/sqlobject/main.py index cb262ad..88b3c0c 100644 --- a/sqlobject/main.py +++ b/sqlobject/main.py @@ -43,9 +43,9 @@ from .sresults import SelectResults from .util.threadinglocal import local from sqlobject.compat import PY2, with_metaclass, string_type, unicode_type -if ((sys.version_info[0] == 2) and (sys.version_info[:2] < (2, 6))) or \ +if ((sys.version_info[0] == 2) and (sys.version_info[:2] < (2, 7))) or \ ((sys.version_info[0] == 3) and (sys.version_info[:2] < (3, 4))): - raise ImportError("SQLObject requires Python 2.6, 2.7 or 3.4+") + raise ImportError("SQLObject requires Python 2.7 or 3.4+") if not PY2: # alias for python 3 compatability @@ -693,9 +693,9 @@ def deprecated(message, level=1, stacklevel=2): if warnings_level is not None and warnings_level <= level: warnings.warn(message, DeprecationWarning, stacklevel=stacklevel) -if sys.version_info[:2] < (2, 7): - deprecated("Support for Python 2.6 has been declared obsolete " - "and will be removed in the next release of SQLObject") +# if sys.version_info[:2] < (2, 7): +# deprecated("Support for Python 2.6 has been declared obsolete " +# "and will be removed in the next release of SQLObject") def setDeprecationLevel(warning=1, exception=None): diff --git a/tox.ini b/tox.ini index 36a5422..792dde2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,13 +1,12 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{mssql-pyodbc,mysql-connector,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 +envlist = py27-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{27,34,35,36}-{mysql-connector,pymysql,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{mssql-pyodbc,mysql-connector,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 # Base test environment settings [testenv] # Ensure we cd into sqlobject before running the tests changedir = ./sqlobject/ basepython = - py26: {env:TOXPYTHON:python2.6} py27: {env:TOXPYTHON:python2.7} py34: {env:TOXPYTHON:python3.4} py35: {env:TOXPYTHON:python3.5} @@ -18,10 +17,10 @@ commands = deps = pytest pytest-cov - py{26,27}: FormEncode >= 1.1.1, != 1.3.0 + py27: FormEncode >= 1.1.1, != 1.3.0 py{34,35,36}: FormEncode >= 1.3.1 PyDispatcher>=2.0.4 - py{26,27}: egenix-mx-base + py27: egenix-mx-base mssql-pyodbc: pytest-timeout mysqldb: mysql-python mysqlclient: mysqlclient @@ -55,9 +54,6 @@ commands = pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=mysqldb&debug=1 mysql -e 'drop database sqlobject_test;' -[testenv:py26-mysqldb] -commands = {[mysqldb]commands} - [testenv:py27-mysqldb] commands = {[mysqldb]commands} @@ -86,9 +82,6 @@ commands = pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=connector&charset=utf8&debug=1 mysql -e 'drop database sqlobject_test;' -[testenv:py26-mysql-connector] -commands = {[mysql-connector]commands} - [testenv:py27-mysql-connector] commands = {[mysql-connector]commands} @@ -109,9 +102,6 @@ commands = pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=oursql&charset=utf8&debug=1 mysql -e 'drop database sqlobject_test;' -[testenv:py26-mysql-oursql] -commands = {[oursql]commands} - [testenv:py27-mysql-oursql] commands = {[oursql]commands} @@ -123,9 +113,6 @@ commands = pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=pymysql&charset=utf8&debug=1 mysql -e 'drop database sqlobject_test;' -[testenv:py26-pymysql] -commands = {[pymysql]commands} ... 132 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-07 14:18:48
|
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.3.0 has been created at 58c321faea38f04559ddcdba8eb388bbf975a8aa (tag) tagging 2085abe0a7b63ab9f4e7bbc802b4239ccdbb3d7d (commit) replaces 3.2.0 tagged by Oleg Broytman on Sun May 7 16:14:51 2017 +0300 - Log ----------------------------------------------------------------- Release 3.3.0 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABCgAGBQJZDx3LAAoJEG4IC3C2KHsDWeEQAJuDNEfvq1ZQJAUJWERau356 UKdiO78ZKCbcALQMhqLRgzpFGBeRw1wHpQPjtsjQBKPFpxG9iZs8UQ4OehKujASy SmgFFoDwaerd99V2tL7A4Jpsrilu9wpFylgmhFxLx29Nq2UJtEjSwXkZYUrGENeo Eg22JNRjqEKfJA3fqeXHevMxSveMKpMKavHSdyju+Q+okTwNLalT4hamW64TLL3+ 0YEWwHqr3lRv6JHFwvM2gBYiR0iq1OW4KptJ2IkAJ9c+GsEtzThpBwCBOyLsM/jz 2jbEtJhZoD+/xGY7vwh8Z0VcYkkemX0HPY2B3WvgiqH4COV31A5i7V3oQSg2JH1R /FYrnT3PoO0N/HhUb/sBvhacYqXYCg3sjzU3/s7uXKbaZUg6f9qk/16snlNuB04Q vcobwTWvM579zVs7B//2/Y92iIgVKZF7Vp7q5mY3jqnoRAjMfp9XkZVYw7mubylh lxDFTDpJsYXoNaoKaDJmRMjjXH6VWtKF6Rf6ibLBWZKgzTeA0ANIZxJudh86ObZh G3LMwULGurrMRm7aaw057XXHuhfH4uXMfn0ifiVfoZlVa5HZug+XYC+rV/+jHBdD eDvzbT7MRRXIHxzRJA3ZsvcH2DaS/+kMzQcFQ9ByB2+6BkVlhIK4bqD5/WLPveu0 /j95OXazpPDvaxkhQlNk =+K1u -----END PGP SIGNATURE----- Oleg Broytman (65): The next minor release will be 3.3.0 Fix pip's --install-option: --compile is default and I prefer -O2 Convert scripts repository to devscripts subdirectory Stop publishing docs at GitHub/GitLab Pages and PyPI Include devscripts into sdist Fix: ../SQLObject-docs no longer is a repo Use travis_retry to retry after a network timeout Add ANNOUNCE.rst for version 3.2.0 The next bugfix version will be 3.2.1 The next minor version will be 3.3. Refactor release script Change release process Run tests at Travis CI and AppVeyor with Python 3.6, x86 and x64 Refactor .travis.yml: move around some sections Disable microseconds at AppVeyor for MySQL Use mysql-connector version <= 2.2.2 Run MySQL tests at AppVeyor with Python 3.5 and 3.6 Fix tests under Python 3.6 + SQLite memory DB Work with Python 3.6 Display pip's version at AppVeyor Do not install requirements - they are installed by tox Add postrelease devscript Update release script Add PyODBC driver for PostgreSQL Refactor make_odbc_conn_str Add PyPyODBC driver for PostgreSQL [tox] Pass WINDIR environment variable [appveyor.yml] Change version format [appveyor.yml] Cache pip eggs/wheels [appveyor/tox] Print python version and 32/64 bit architecture [tox] Set basepython to fix 32/64 versions Add sslmode for ODBC connect string for Pg Add support for PyODBC and PyPyODBC for MySQL [devscripts] Remove log files from pyodbc Stop running tests at Travis with Python 2.6. Prevent flake8 to complain about 'unicode' under PY3 sqlite-memory tests fail at Travis for no apparent reason Use '/usr/bin/env python' for scripts Refactor MANIFEST.in; exclude devscripts from sdist [devscripts] setup: set umask to 022 -rwxr-xr-x [devscripts] Adapt set-commit-date.py to Python 3 Stop updating http://sqlobject.readthedocs.org/ Remove gmane [setup.cfg] Remove outdated ez_setup.py Fix release script (version) Document there are many problems with pypyodbc Add support for PyODBC and PyPyODBC for MS SQL Stop running tests at AppVeyor with pymssql Remove set-commit-date.py build-all-docs: avoid overriding robots.txt and generate sitemap.xml Only test master and pull requests; skip tags Fix split.sh: recognize both 'c' and 'rc' Refactor make_odbc_conn_str() to use DB-specific ODBC keywords tox.ini: set timeout for mssql-pyodbc tests Set encoding for ODBC connections for MySQL Add missing error codes for ODBC drivers appveyor.yml: add 64-bit tests for mssql-pyodbc Test for __nonzero__ under Python 2, __bool__ under Python 3 in BoolCol Convert '0'/'1' (from ODBC) to bool in BoolCol Check error codes from ODBC drivers for DuplicateError Fix JsonbCol: undump a string returned by ODBC driver TODO: PyPy Fix tox.ini: Add py26 basepython Support for Python 2.6 is declared obsolete Release 3.3.0 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-07 14:18:46
|
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 1ba596182f377939a9b907d262d6ea9a40c1ea76 (commit) via 2085abe0a7b63ab9f4e7bbc802b4239ccdbb3d7d (commit) via 83dc573193f5f18e5229a1290e3d9a14ed27654b (commit) via 38ba2a690d6114cd9df5808272117d6fe7dcb546 (commit) from f7db6df022e81621afc1182f2e5e6ef3bfbe50cc (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/1ba596182f377939a9b907d262d6ea9a40c1ea76 commit 1ba596182f377939a9b907d262d6ea9a40c1ea76 Author: Oleg Broytman <ph...@ph...> Date: Sun May 7 17:14:24 2017 +0300 Prepare for the next release [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index fb7e39e..46dc308 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,50 +1,28 @@ Hello! -I'm pleased to announce version 3.3.0, the first stable release of branch -3.3 of SQLObject. +I'm pleased to announce version 3.4.0a1, the first alpha of the upcoming +release of branch 3.4 of SQLObject. +I'm pleased to announce version 3.4.0a2, the second alpha of the upcoming +release of branch 3.4 of SQLObject. -What's new in SQLObject -======================= - -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. +I'm pleased to announce version 3.4.0b1, the first beta of the upcoming +release of branch 3.4 of SQLObject. -* Test for __nonzero__ under Python 2, __bool__ under Python 3 in BoolCol. +I'm pleased to announce version 3.4.0rc1, the first release candidate +of the upcoming release of branch 3.4 of SQLObject. -Drivers (work in progress) --------------------------- +I'm pleased to announce version 3.4.0, the first stable release of branch +3.4 of SQLObject. -* 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. +I'm pleased to announce version 3.4.1, the first bugfix release of branch +3.4 of SQLObject. -Documentation -------------- -* Stop updating http://sqlobject.readthedocs.org/ - it's enough to have - http://sqlobject.org/ - -Tests ------ - -* Run tests at Travis CI and AppVeyor with Python 3.6, x86 and x64. - -* Stop running tests at Travis with Python 2.6. +What's new in SQLObject +======================= -* Stop running tests at AppVeyor with pymssql - too many timeouts and - problems. +Contributor for this release is For a more complete list, please see the news: http://sqlobject.org/News.html @@ -76,7 +54,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.python.org/pypi/SQLObject/3.3.0 +https://pypi.python.org/pypi/SQLObject/3.4.0a0.dev20170507 News and changes: http://sqlobject.org/News.html diff --git a/docs/News.rst b/docs/News.rst index d6bafeb..b307bee 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -7,6 +7,9 @@ News .. _start: +SQLObject 3.4.0 (master) +======================== + SQLObject 3.3.0 =============== http://sourceforge.net/p/sqlobject/sqlobject/ci/2085abe0a7b63ab9f4e7bbc802b4239ccdbb3d7d commit 2085abe0a7b63ab9f4e7bbc802b4239ccdbb3d7d Author: Oleg Broytman <ph...@ph...> Date: Sun May 7 16:07:16 2017 +0300 Release 3.3.0 diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index e4759b6..fb7e39e 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,29 +1,50 @@ Hello! -I'm pleased to announce version 3.3.0a1, the first alpha of the upcoming -release of branch 3.2 of SQLObject. +I'm pleased to announce version 3.3.0, the first stable release of branch +3.3 of SQLObject. -I'm pleased to announce version 3.3.0a2, the second alpha of the upcoming -release of branch 3.2 of SQLObject. -I'm pleased to announce version 3.3.0b1, the first beta of the upcoming -release of branch 3.2 of SQLObject. +What's new in SQLObject +======================= -I'm pleased to announce version 3.3.0rc1, the first release candidate -of the upcoming release of branch 3.2 of SQLObject. +Features +-------- -I'm pleased to announce version 3.3.0, the first stable release of branch -3.2 of SQLObject. +* Support for Python 2.6 is declared obsolete and will be removed + in the next release. -I'm pleased to announce version 3.3.1, the first bugfix release of branch -3.2 of SQLObject. +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. -What's new in SQLObject -======================= +* 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 +----- + +* Run tests at Travis CI and AppVeyor with Python 3.6, x86 and x64. +* Stop running tests at Travis with Python 2.6. -Contributor for this release is +* Stop running tests at AppVeyor with pymssql - too many timeouts and + problems. For a more complete list, please see the news: http://sqlobject.org/News.html @@ -55,7 +76,7 @@ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: -https://pypi.python.org/pypi/SQLObject/3.3.0a0.dev20170110 +https://pypi.python.org/pypi/SQLObject/3.3.0 News and changes: http://sqlobject.org/News.html diff --git a/README.rst b/README.rst index 173a5de..0ba1341 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.3.0a0 -================= +SQLObject 3.3.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 e659782..47071df 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -11,7 +11,7 @@ cd "$PROG_DIR" && PROG_DIR="`pwd`" && cd "$PROG_DIR"/SQLObject && -build_docs 3.2.0 && +build_docs 3.3.0 && build_docs master devel && cd ../SQLObject-docs && diff --git a/docs/News.rst b/docs/News.rst index 1b57475..d6bafeb 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -7,8 +7,10 @@ News .. _start: -SQLObject 3.3.0 (master) -======================== +SQLObject 3.3.0 +=============== + +Released 7 May 2017. Features -------- diff --git a/setup.cfg b/setup.cfg index d0e62d0..a472979 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [egg_info] -tag_build = dev -tag_date = 1 +tag_build = +tag_date = 0 tag_svn_revision = 0 [flake8] diff --git a/setup.py b/setup.py index ed917f2..640ab22 100755 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ and `GitHub <https://github.com/sqlobject>`_. :target: https://travis-ci.org/sqlobject/sqlobject """, classifiers=[ - "Development Status :: 3 - Alpha", + "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: " "GNU Library or Lesser General Public License (LGPL)", @@ -89,7 +89,7 @@ and `GitHub <https://github.com/sqlobject>`_. author_email="ia...@co...", maintainer="Oleg Broytman", maintainer_email="ph...@ph...", - url="http://sqlobject.org/devel/", + url="http://sqlobject.org/", download_url="https://pypi.python.org/pypi/SQLObject/%s" % version, license="LGPL", packages=["sqlobject"] + diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index cc4f6fb..cc88e83 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -3,6 +3,6 @@ version = '3.3.0' major = 3 minor = 3 micro = 0 -release_level = 'alpha' +release_level = 'final' serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/83dc573193f5f18e5229a1290e3d9a14ed27654b commit 83dc573193f5f18e5229a1290e3d9a14ed27654b Author: Oleg Broytman <ph...@ph...> Date: Sun May 7 15:46:24 2017 +0300 Support for Python 2.6 is declared obsolete [skip ci] diff --git a/devscripts/BRANCH-CHECKLIST b/devscripts/BRANCH-CHECKLIST index 5036e83..2b51cb0 100644 --- a/devscripts/BRANCH-CHECKLIST +++ b/devscripts/BRANCH-CHECKLIST @@ -18,9 +18,10 @@ a branch, a commit id or a tag. 1c. The script updates versions in ANNOUNCE.rst. -2. To deprecate a version of Python edit files docs/News.rst, - docs/SQLObject.rst, docs/TODO.rst, sqlobject/main.py, README.rst and - setup.py in master. +2. To deprecate a version of Python edit files ANNOUNCE.rst, README.rst, + devscripts/release, devscripts/setup, docs/News.rst, docs/SQLObject.rst, + docs/TODO.rst, requirements.txt, setup.py, sqlobject/main.py, + tox.ini in master. 3. Do a null-merge from the new branch to the higher branch or the master. diff --git a/docs/News.rst b/docs/News.rst index cb22978..1b57475 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -10,6 +10,12 @@ News SQLObject 3.3.0 (master) ======================== +Features +-------- + +* Support for Python 2.6 is declared obsolete and will be removed + in the next release. + Minor features -------------- diff --git a/docs/TODO.rst b/docs/TODO.rst index 2ae19ac..3bf6a66 100644 --- a/docs/TODO.rst +++ b/docs/TODO.rst @@ -1,6 +1,8 @@ TODO ---- +* Stop supporting Python 2.6. Fix dbconnection.py and joins.py. + * PyPy. * Quote table/column names that are reserved keywords (order => "order", diff --git a/sqlobject/main.py b/sqlobject/main.py index 0ac510c..cb262ad 100644 --- a/sqlobject/main.py +++ b/sqlobject/main.py @@ -693,9 +693,9 @@ def deprecated(message, level=1, stacklevel=2): if warnings_level is not None and warnings_level <= level: warnings.warn(message, DeprecationWarning, stacklevel=stacklevel) -# if sys.version_info[:2] < (2, 6): -# deprecated("Support for Python 2.5 has been declared obsolete " -# "and will be removed in the next release of SQLObject") +if sys.version_info[:2] < (2, 7): + deprecated("Support for Python 2.6 has been declared obsolete " + "and will be removed in the next release of SQLObject") def setDeprecationLevel(warning=1, exception=None): http://sourceforge.net/p/sqlobject/sqlobject/ci/38ba2a690d6114cd9df5808272117d6fe7dcb546 commit 38ba2a690d6114cd9df5808272117d6fe7dcb546 Author: Oleg Broytman <ph...@ph...> Date: Sun May 7 13:00:08 2017 +0300 Fix tox.ini: Add py26 basepython [skip ci] diff --git a/tox.ini b/tox.ini index 6f27b6a..36a5422 100644 --- a/tox.ini +++ b/tox.ini @@ -7,6 +7,7 @@ envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresq # Ensure we cd into sqlobject before running the tests changedir = ./sqlobject/ basepython = + py26: {env:TOXPYTHON:python2.6} py27: {env:TOXPYTHON:python2.7} py34: {env:TOXPYTHON:python3.4} py35: {env:TOXPYTHON:python3.5} ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 27 +++++++++++++-------------- README.rst | 4 ++-- devscripts/BRANCH-CHECKLIST | 7 ++++--- devscripts/build-all-docs | 2 +- docs/News.rst | 13 ++++++++++++- docs/TODO.rst | 2 ++ setup.cfg | 4 ++-- setup.py | 4 ++-- sqlobject/__version__.py | 2 +- sqlobject/main.py | 6 +++--- tox.ini | 1 + 11 files changed, 43 insertions(+), 29 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-05 19:35: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, master has been updated via f7db6df022e81621afc1182f2e5e6ef3bfbe50cc (commit) from d8c2122546da28fc7bbdde857a845f2c1533d29a (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/f7db6df022e81621afc1182f2e5e6ef3bfbe50cc commit f7db6df022e81621afc1182f2e5e6ef3bfbe50cc Author: Oleg Broytman <ph...@ph...> Date: Fri May 5 22:31:12 2017 +0300 TODO: PyPy [skip ci] diff --git a/docs/TODO.rst b/docs/TODO.rst index b2d3f9d..2ae19ac 100644 --- a/docs/TODO.rst +++ b/docs/TODO.rst @@ -1,6 +1,8 @@ TODO ---- +* PyPy. + * Quote table/column names that are reserved keywords (order => "order", values => `values` for MySQL). ----------------------------------------------------------------------- Summary of changes: docs/TODO.rst | 2 ++ 1 file changed, 2 insertions(+) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-05 17:58:20
|
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 c689da55a95f3ce96188ccfecf50a0ecc0cd5a6a (commit) via d8c2122546da28fc7bbdde857a845f2c1533d29a (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 (c689da55a95f3ce96188ccfecf50a0ecc0cd5a6a) \ N -- N -- N (d8c2122546da28fc7bbdde857a845f2c1533d29a) 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/d8c2122546da28fc7bbdde857a845f2c1533d29a commit d8c2122546da28fc7bbdde857a845f2c1533d29a Author: Oleg Broytman <ph...@ph...> Date: Fri May 5 01:43:00 2017 +0300 Fix JsonbCol: undump a string returned by ODBC driver diff --git a/sqlobject/col.py b/sqlobject/col.py index 4c06489..e5f5301 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -1942,6 +1942,8 @@ class UuidCol(Col): class JsonbValidator(SOValidator): def to_python(self, value, state): + if isinstance(value, string_type): + return json.loads(value) return value def from_python(self, value, state): ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-04 23:33:35
|
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 c689da55a95f3ce96188ccfecf50a0ecc0cd5a6a (commit) via ba4e8909593ed546de04544cf1d38f87d5287fea (commit) via e506c2c62b3b34e820a30e0b669c197edc4bc392 (commit) via d1ff60d0580650455dc4494ba01ef1f59d8bdf17 (commit) via 732a6e21bae84733dd58f43e05a22931c04b2c67 (commit) via 3077facd828aebea8b68c5824997a41e4f4df2f3 (commit) via 70388fa6e6d14c7f9cfca8b642787ff4b1619105 (commit) via 34e2ab6bcd3291db200bee40c4e8dbad9ff814f7 (commit) via 2ca0972c0579284abea98f5c1d69fa37df718c1c (commit) from f09ab7a6c734672d50df14e8d3f364c458eb3ce5 (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/c689da55a95f3ce96188ccfecf50a0ecc0cd5a6a commit c689da55a95f3ce96188ccfecf50a0ecc0cd5a6a Author: Oleg Broytman <ph...@ph...> Date: Fri May 5 01:43:00 2017 +0300 Fix JsobCol: undump a string returned by ODBC driver diff --git a/sqlobject/col.py b/sqlobject/col.py index 4c06489..e5f5301 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -1942,6 +1942,8 @@ class UuidCol(Col): class JsonbValidator(SOValidator): def to_python(self, value, state): + if isinstance(value, string_type): + return json.loads(value) return value def from_python(self, value, state): http://sourceforge.net/p/sqlobject/sqlobject/ci/ba4e8909593ed546de04544cf1d38f87d5287fea commit ba4e8909593ed546de04544cf1d38f87d5287fea Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 23:02:45 2017 +0300 Check error codes from ODBC drivers for DuplicateError Check error codes for DuplicateError from MySQL and Postgres ODBC drivers. diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index c49e2e7..225a02f 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -129,7 +129,7 @@ class MySQLConnection(DBAPI): ) self.CR_SERVER_GONE_ERROR = 2006 self.CR_SERVER_LOST = 2013 - self.ER_DUP_ENTRY = 1062 + self.ER_DUP_ENTRY = '23000' global mysql_Bin if not PY2 and mysql_Bin is None: diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 420c157..63bd17a 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -232,7 +232,8 @@ class PostgresConnection(DBAPI): msg = ErrorMessage(e) if getattr(e, 'code', -1) == '23505' or \ getattr(e, 'pgcode', -1) == '23505' or \ - getattr(e, 'sqlstate', -1) == '23505': + getattr(e, 'sqlstate', -1) == '23505' or \ + e.args[0] == '23505': raise dberrors.DuplicateEntryError(msg) else: raise dberrors.IntegrityError(msg) http://sourceforge.net/p/sqlobject/sqlobject/ci/e506c2c62b3b34e820a30e0b669c197edc4bc392 commit e506c2c62b3b34e820a30e0b669c197edc4bc392 Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 22:41:40 2017 +0300 Convert '0'/'1' (from ODBC) to bool in BoolCol diff --git a/sqlobject/col.py b/sqlobject/col.py index 2937a23..4c06489 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -792,6 +792,15 @@ class BoolValidator(SOValidator): if PY2 and hasattr(value, '__nonzero__') \ or not PY2 and hasattr(value, '__bool__'): return bool(value) + try: + connection = state.connection or state.soObject._connection + except AttributeError: + pass + else: + if connection.dbName == 'postgres' and \ + connection.driver in ('odbc', 'pyodbc', 'pypyodbc') and \ + isinstance(value, string_type): + return bool(int(value)) raise validators.Invalid( "expected a bool or an int in the BoolCol '%s', " "got %s %r instead" % ( diff --git a/sqlobject/tests/test_validation.py b/sqlobject/tests/test_validation.py index 7a06800..ae62f3c 100644 --- a/sqlobject/tests/test_validation.py +++ b/sqlobject/tests/test_validation.py @@ -87,7 +87,9 @@ class TestValidation: raises(validators.Invalid, setattr, t, 'name2', 1) raises(validators.Invalid, setattr, t, 'name3', '1') raises(validators.Invalid, setattr, t, 'name4', '1') - raises(validators.Invalid, setattr, t, 'name6', '1') + if t._connection.dbName != 'postgres' or \ + t._connection.driver not in ('odbc', 'pyodbc', 'pypyodbc'): + raises(validators.Invalid, setattr, t, 'name6', '1') raises(validators.Invalid, setattr, t, 'name7', 1) t.name2 = 'you' assert t.name2 == 'you' http://sourceforge.net/p/sqlobject/sqlobject/ci/d1ff60d0580650455dc4494ba01ef1f59d8bdf17 commit d1ff60d0580650455dc4494ba01ef1f59d8bdf17 Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 22:31:27 2017 +0300 Test for __nonzero__ under Python 2, __bool__ under Python 3 in BoolCol diff --git a/docs/DeveloperGuide.rst b/docs/DeveloperGuide.rst index 6969978..5e889c8 100644 --- a/docs/DeveloperGuide.rst +++ b/docs/DeveloperGuide.rst @@ -92,12 +92,12 @@ have any code. ``SOBoolCol`` has a method to create ``BoolValidator`` and methods to create backend-specific column type. ``BoolValidator`` has identical methods ``from_python`` and ``to_python``; the method passes ``None``, ``SQLExpression`` and bool values unchanged; int and -objects that have method ``__nonzero__`` are converted to bool; other -objects trigger validation error. Bool values that are returned by call -to ``from_python`` will be converted to SQL strings by -``BoolConverter``; bool values from ``to_python`` (is is supposed they -are originated from the backend via DB API driver) are passed to the -application. +objects that have method ``__nonzero__`` (``__bool__`` in Python 3) are +converted to bool; other objects trigger validation error. Bool values +that are returned by call to ``from_python`` will be converted to SQL +strings by ``BoolConverter``; bool values from ``to_python`` (is is +supposed they are originated from the backend via DB API driver) are +passed to the application. Objects that are returned from ``from_python`` must be registered with converters. Another approach for ``from_python`` is to return an object diff --git a/docs/News.rst b/docs/News.rst index 54ee2f1..cb22978 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -17,6 +17,8 @@ Minor features 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) -------------------------- diff --git a/sqlobject/col.py b/sqlobject/col.py index 26c9a51..2937a23 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -789,7 +789,8 @@ class BoolValidator(SOValidator): return None if isinstance(value, (bool, sqlbuilder.SQLExpression)): return value - if isinstance(value, (int, long)) or hasattr(value, '__nonzero__'): + if PY2 and hasattr(value, '__nonzero__') \ + or not PY2 and hasattr(value, '__bool__'): return bool(value) raise validators.Invalid( "expected a bool or an int in the BoolCol '%s', " diff --git a/sqlobject/sqlbuilder.py b/sqlobject/sqlbuilder.py index 2b4cdc7..e87ba70 100644 --- a/sqlobject/sqlbuilder.py +++ b/sqlobject/sqlbuilder.py @@ -1510,6 +1510,7 @@ class ImportProxy(SQLExpression): def __nonzero__(self): return True + __bool__ = __nonzero__ def __getattr__(self, attr): if self.soClass is None: diff --git a/sqlobject/tests/test_validation.py b/sqlobject/tests/test_validation.py index 86f1a10..7a06800 100644 --- a/sqlobject/tests/test_validation.py +++ b/sqlobject/tests/test_validation.py @@ -63,6 +63,7 @@ class SOValidationTestInt(SOValidationTest): class SOValidationTestBool(SOValidationTest): def __nonzero__(self): return self.value + __bool__ = __nonzero__ class SOValidationTestFloat(SOValidationTest): http://sourceforge.net/p/sqlobject/sqlobject/ci/732a6e21bae84733dd58f43e05a22931c04b2c67 commit 732a6e21bae84733dd58f43e05a22931c04b2c67 Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 20:51:15 2017 +0300 appveyor.yml: add 64-bit tests for mssql-pyodbc diff --git a/appveyor.yml b/appveyor.yml index a4499b5..eff4614 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -38,21 +38,41 @@ environment: PYTHON_ARCH: "32" db: mssql2014 TOX_ENV: "py27-mssql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python27-x64" + PYTHON_VERSION: "2.7" + PYTHON_ARCH: "64" + db: mssql2014 + TOX_ENV: "py27-mssql-pyodbc-w32" - PYTHON_HOME: "C:\\Python34" PYTHON_VERSION: "3.4" PYTHON_ARCH: "32" db: mssql2014 TOX_ENV: "py34-mssql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python34-x64" + PYTHON_VERSION: "3.4" + PYTHON_ARCH: "64" + db: mssql2014 + TOX_ENV: "py34-mssql-pyodbc-w32" - PYTHON_HOME: "C:\\Python35" PYTHON_VERSION: "3.5" PYTHON_ARCH: "32" db: mssql2014 TOX_ENV: "py35-mssql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python35-x64" + PYTHON_VERSION: "3.5" + PYTHON_ARCH: "64" + db: mssql2014 + TOX_ENV: "py35-mssql-pyodbc-w32" - PYTHON_HOME: "C:\\Python36" PYTHON_VERSION: "3.6" PYTHON_ARCH: "32" db: mssql2014 TOX_ENV: "py36-mssql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python36-x64" + PYTHON_VERSION: "3.6" + PYTHON_ARCH: "64" + db: mssql2014 + TOX_ENV: "py36-mssql-pyodbc-w32" - PYTHON_HOME: "C:\\Python27" PYTHON_VERSION: "2.7" PYTHON_ARCH: "32" http://sourceforge.net/p/sqlobject/sqlobject/ci/3077facd828aebea8b68c5824997a41e4f4df2f3 commit 3077facd828aebea8b68c5824997a41e4f4df2f3 Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 21:04:57 2017 +0300 Add missing error codes for ODBC drivers diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index fe2eace..c49e2e7 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -127,6 +127,9 @@ class MySQLConnection(DBAPI): 'MySQL ODBC 5.3 ANSI Driver'), db, host, port, user, password ) + self.CR_SERVER_GONE_ERROR = 2006 + self.CR_SERVER_LOST = 2013 + self.ER_DUP_ENTRY = 1062 global mysql_Bin if not PY2 and mysql_Bin is None: http://sourceforge.net/p/sqlobject/sqlobject/ci/70388fa6e6d14c7f9cfca8b642787ff4b1619105 commit 70388fa6e6d14c7f9cfca8b642787ff4b1619105 Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 20:46:11 2017 +0300 Set encoding for ODBC connections for MySQL diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index bf6c48c..fe2eace 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -177,7 +177,15 @@ class MySQLConnection(DBAPI): self._setAutoCommit(conn, bool(self.autoCommit)) if dbEncoding: - if hasattr(conn, 'set_character_set'): + if self.driver in ('odbc', 'pyodbc'): + conn.setdecoding(self.module.SQL_CHAR, encoding=dbEncoding) + conn.setdecoding(self.module.SQL_WCHAR, encoding=dbEncoding) + if PY2: + conn.setencoding(str, encoding=dbEncoding) + conn.setencoding(unicode, encoding=dbEncoding) # noqa + else: + conn.setencoding(encoding=dbEncoding) + elif hasattr(conn, 'set_character_set'): conn.set_character_set(dbEncoding) elif self.driver == 'oursql': conn.charset = dbEncoding http://sourceforge.net/p/sqlobject/sqlobject/ci/34e2ab6bcd3291db200bee40c4e8dbad9ff814f7 commit 34e2ab6bcd3291db200bee40c4e8dbad9ff814f7 Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 19:29:15 2017 +0300 tox.ini: set timeout for mssql-pyodbc tests diff --git a/tox.ini b/tox.ini index e6812ea..6f27b6a 100644 --- a/tox.ini +++ b/tox.ini @@ -21,6 +21,7 @@ deps = py{34,35,36}: FormEncode >= 1.3.1 PyDispatcher>=2.0.4 py{26,27}: egenix-mx-base + mssql-pyodbc: pytest-timeout mysqldb: mysql-python mysqlclient: mysqlclient mysql-connector: mysql-connector <= 2.2.2 @@ -401,7 +402,7 @@ 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 --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pyodbc&odbcdrv=SQL%20Server&debug=1" + pytest --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pyodbc&odbcdrv=SQL%20Server&debug=1" --timeout=30 sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" [testenv:py27-mssql-pyodbc-w32] http://sourceforge.net/p/sqlobject/sqlobject/ci/2ca0972c0579284abea98f5c1d69fa37df718c1c commit 2ca0972c0579284abea98f5c1d69fa37df718c1c Author: Oleg Broytman <ph...@ph...> Date: Thu May 4 18:44:35 2017 +0300 Refactor make_odbc_conn_str() to use DB-specific ODBC keywords diff --git a/sqlobject/dbconnection.py b/sqlobject/dbconnection.py index 4f29eb0..89f4382 100644 --- a/sqlobject/dbconnection.py +++ b/sqlobject/dbconnection.py @@ -734,17 +734,13 @@ class DBAPI(DBConnection): """ raise NotImplementedError - def make_odbc_conn_str(self, db, host=None, port=None, - user=None, password=None, odb_source=None): - odbc_conn_parts = ['Driver={%s}' % odb_source, 'Database=%s' % db] - if host: - odbc_conn_parts.append('Server=%s' % host) - if port: - odbc_conn_parts.append('Port=%d' % port) - if user: - odbc_conn_parts.append('UID=%s' % user) - if password: - odbc_conn_parts.append('Password=%s' % password) + def make_odbc_conn_str(self, odb_source, db, host=None, port=None, + user=None, password=None): + odbc_conn_parts = ['Driver={%s}' % odb_source] + for odbc_keyword, value in \ + zip(self.odbc_keywords, (host, port, user, password, db)): + if value is not None: + odbc_conn_parts.append('%s=%s' % (odbc_keyword, value)) self.odbc_conn_str = ';'.join(odbc_conn_parts) diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index c154dd4..811dcd8 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -12,6 +12,8 @@ class MSSQLConnection(DBAPI): limit_re = re.compile('^\s*(select )(.*)', re.IGNORECASE) + odbc_keywords = ('Server', 'Port', 'User Id', 'Password', 'Database') + def __init__(self, db, user, password='', host='localhost', port=None, autoCommit=0, **kw): drivers = kw.pop('driver', None) or 'adodb,pymssql' @@ -50,8 +52,9 @@ class MSSQLConnection(DBAPI): 'Cannot find an MSSQL driver, tried %s' % drivers) if driver in ('odbc', 'pyodbc', 'pypyodbc'): - self.make_odbc_conn_str(db, host, port, user, password, - kw.pop('odbcdrv', 'SQL Server')) + self.make_odbc_conn_str(kw.pop('odbcdrv', 'SQL Server'), + db, host, port, user, password + ) elif driver in ('adodb', 'adodbapi'): self.module = sqlmodule diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index 3da502b..bf6c48c 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -25,6 +25,8 @@ class MySQLConnection(DBAPI): dbName = 'mysql' schemes = [dbName] + odbc_keywords = ('Server', 'Port', 'UID', 'Password', 'Database') + def __init__(self, db, user, password='', host='localhost', port=0, **kw): drivers = kw.pop('driver', None) or 'mysqldb' for driver in drivers.split(','): @@ -121,9 +123,10 @@ class MySQLConnection(DBAPI): self.driver = driver if driver in ('odbc', 'pyodbc', 'pypyodbc'): - self.make_odbc_conn_str(db, host, port, user, password, - kw.pop('odbcdrv', - 'MySQL ODBC 5.3 ANSI Driver')) + self.make_odbc_conn_str(kw.pop('odbcdrv', + 'MySQL ODBC 5.3 ANSI Driver'), + db, host, port, user, password + ) global mysql_Bin if not PY2 and mysql_Bin is None: diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index c8d9b35..420c157 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -27,6 +27,8 @@ class PostgresConnection(DBAPI): dbName = 'postgres' schemes = [dbName, 'postgresql'] + odbc_keywords = ('Server', 'Port', 'UID', 'Password', 'Database') + def __init__(self, dsn=None, host=None, port=None, db=None, user=None, password=None, **kw): drivers = kw.pop('driver', None) or 'psycopg' @@ -94,8 +96,9 @@ class PostgresConnection(DBAPI): self.host = host self.port = port if driver in ('odbc', 'pyodbc', 'pypyodbc'): - self.make_odbc_conn_str(db, host, port, user, password, - kw.pop('odbcdrv', 'PostgreSQL ANSI')) + self.make_odbc_conn_str(kw.pop('odbcdrv', 'PostgreSQL ANSI'), + db, host, port, user, password + ) sslmode = kw.pop("sslmode", None) if sslmode: self.odbc_conn_str += ';sslmode=require' ----------------------------------------------------------------------- Summary of changes: appveyor.yml | 20 ++++++++++++++++++++ docs/DeveloperGuide.rst | 12 ++++++------ docs/News.rst | 2 ++ sqlobject/col.py | 14 +++++++++++++- sqlobject/dbconnection.py | 18 +++++++----------- sqlobject/mssql/mssqlconnection.py | 7 +++++-- sqlobject/mysql/mysqlconnection.py | 22 ++++++++++++++++++---- sqlobject/postgres/pgconnection.py | 10 +++++++--- sqlobject/sqlbuilder.py | 1 + sqlobject/tests/test_validation.py | 5 ++++- tox.ini | 3 ++- 11 files changed, 85 insertions(+), 29 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-05-02 19:58:55
|
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 f09ab7a6c734672d50df14e8d3f364c458eb3ce5 (commit) from f53f3383be434b1d0f10e2e8bc05973872dd3101 (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/f09ab7a6c734672d50df14e8d3f364c458eb3ce5 commit f09ab7a6c734672d50df14e8d3f364c458eb3ce5 Author: Oleg Broytman <ph...@ph...> Date: Tue May 2 22:11:15 2017 +0300 Fix split.sh: recognize both 'c' and 'rc' [skip ci] diff --git a/devscripts/split.sh b/devscripts/split.sh index 9ae68ab..ce5c3c5 100644 --- a/devscripts/split.sh +++ b/devscripts/split.sh @@ -1,6 +1,6 @@ split_tag() { branch=$2 - set -- `echo $1 | sed -e 's/\./ /g' -e 's/a/ alpha /' -e 's/b/ beta /' -e 's/c/ rc /'` + set -- `echo $1 | sed -e 's/\./ /g' -e 's/a/ alpha /' -e 's/b/ beta /' -e 's/rc/ rc /' -e 's/\([0-9]\)c/\1 rc /'` major=$1 minor=$2 micro=$3 diff --git a/devscripts/test-split.sh b/devscripts/test-split.sh index 6919f57..a5f1749 100755 --- a/devscripts/test-split.sh +++ b/devscripts/test-split.sh @@ -1,7 +1,6 @@ #! /bin/sh . `dirname $0`/split.sh && -split_tag 21.12.42c4 test_eq() { if [ "$1" != "$2" ]; then @@ -9,6 +8,15 @@ test_eq() { fi } +split_tag 21.12.42c4 +test_eq "$branch" 21.12 +test_eq "$major" 21 +test_eq "$minor" 12 +test_eq "$micro" 42 +test_eq "$state" "release candidate" +test_eq "$serial" 4 + +split_tag 21.12.42rc4 test_eq "$branch" 21.12 test_eq "$major" 21 test_eq "$minor" 12 ----------------------------------------------------------------------- Summary of changes: devscripts/split.sh | 2 +- devscripts/test-split.sh | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-04-28 03:31:58
|
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 f53f3383be434b1d0f10e2e8bc05973872dd3101 (commit) from f1ffdf88ce7f477ec55eb73a7b0f7bcf15c81fbc (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/f53f3383be434b1d0f10e2e8bc05973872dd3101 commit f53f3383be434b1d0f10e2e8bc05973872dd3101 Author: Oleg Broytman <ph...@ph...> Date: Fri Apr 28 06:15:55 2017 +0300 Only test master and pull requests; skip tags diff --git a/.travis.yml b/.travis.yml index 921df72..87812e2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,9 @@ +# Only test master and pull requests; skip tags. +# Other branches can allow themselves. +branches: + only: + - master + # Prefer docker container with setuid/sudo sudo: required diff --git a/appveyor.yml b/appveyor.yml index 46c89c0..a4499b5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,6 +3,14 @@ # and Michael Sverdlik's appveyor-utils (https://github.com/cloudify-cosmo/appveyor-utils) version: '{branch}-{build}' +# Only test master and pull requests; skip tags. +# Other branches can allow themselves. +branches: + only: + - master +skip_branch_with_pr: false +skip_tags: true + cache: - '%LOCALAPPDATA%\pip\Cache' ----------------------------------------------------------------------- Summary of changes: .travis.yml | 6 ++++++ appveyor.yml | 8 ++++++++ 2 files changed, 14 insertions(+) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-04-27 20:27:41
|
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 f1ffdf88ce7f477ec55eb73a7b0f7bcf15c81fbc (commit) via 67d58541fc48c0e1358e1b6ecc2b26a816d5a8c0 (commit) via aea36335819e189316cffc84705dc464f4ff8120 (commit) via 5dfacb25fb61bcc6f08aaad2bd3934f2919c92ee (commit) via ee8c1492c6b80ca971fee2778e2bc781d2e9b84f (commit) from 1450275af30b8896373c091e5398fb942c3f1890 (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/f1ffdf88ce7f477ec55eb73a7b0f7bcf15c81fbc commit f1ffdf88ce7f477ec55eb73a7b0f7bcf15c81fbc Author: Oleg Broytman <ph...@ph...> Date: Thu Apr 27 23:20:14 2017 +0300 build-all-docs: avoid overriding robots.txt and generate sitemap.xml [skip ci] diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 5e8f286..e659782 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -3,8 +3,16 @@ build_docs() { git checkout "$1" && ../build-docs && - rsync -ahP --del docs/html/ ../SQLObject-docs/"$2"/ + rsync -ahP --del --exclude=/robots.txt docs/html/ ../SQLObject-docs/"$2"/ } -cd "`dirname \"$0\"`"/SQLObject && -build_docs 3.2.0 && exec build_docs master devel +PROG_DIR="`dirname \"$0\"`" && +cd "$PROG_DIR" && +PROG_DIR="`pwd`" && + +cd "$PROG_DIR"/SQLObject && +build_docs 3.2.0 && +build_docs master devel && + +cd ../SQLObject-docs && +exec sitemap_gen.py --config="$PROG_DIR"/sqlobject.org-sitemapconfig.xml diff --git a/devscripts/sqlobject.org-sitemapconfig.xml b/devscripts/sqlobject.org-sitemapconfig.xml new file mode 100644 index 0000000..dc37055 --- /dev/null +++ b/devscripts/sqlobject.org-sitemapconfig.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + sitemap_gen.py configuration script for sqlobject.org +--> + + <site + base_url="http://sqlobject.org/" + store_into="sitemap.xml" + default_encoding="utf-8" + verbose="1" + sitemap_type="web" + suppress_search_engine_notify="1" + > + + <directory + url="http://sqlobject.org/" + path="." + default_file="index.html" + /> + + <!-- Exclude URLs within UNIX-style hidden files or directories --> + <filter action="drop" type="regexp" pattern="/\.[^/]*" /> + +</site> http://sourceforge.net/p/sqlobject/sqlobject/ci/67d58541fc48c0e1358e1b6ecc2b26a816d5a8c0 commit 67d58541fc48c0e1358e1b6ecc2b26a816d5a8c0 Author: Oleg Broytman <ph...@ph...> Date: Mon Apr 24 01:26:24 2017 +0300 Remove set-commit-date.py [skip ci] diff --git a/devscripts/release b/devscripts/release index ee15d01..0e24a8a 100755 --- a/devscripts/release +++ b/devscripts/release @@ -4,8 +4,8 @@ cd "`dirname \"$0\"`"/SQLObject && umask 022 && chmod -R a+rX . && +set-commit-date.py && ../build-docs && -../set-commit-date.py && python setup.py build_py && python setup.py build --executable '/usr/bin/env python' && diff --git a/devscripts/set-commit-date.py b/devscripts/set-commit-date.py deleted file mode 100755 index dc6a5fb..0000000 --- a/devscripts/set-commit-date.py +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/env python - -# Find commit date/time for every commit, list files in the commit -# and set the file's modification time to the date/time of the latest commit. - -# Adapted from https://git.wiki.kernel.org/index.php/ExampleScripts#Setting_the_timestamps_of_the_files_to_the_commit_timestamp_of_the_commit_which_last_touched_them # noqa - -import os -import subprocess - -separator = '----- GIT LOG SEPARATOR -----' - -git_log = subprocess.Popen(['git', 'log', '-m', '--first-parent', - '--name-only', '--no-color', - '--format=%s%%n%%ct' % separator], - stdout=subprocess.PIPE, stderr=subprocess.STDOUT, - universal_newlines=True) -filenames = set() -# stages: 1 - start of commit, 2 - timestamp, 3 - empty line, 4 - files -stage = 1 -while True: - line = git_log.stdout.readline() - if not line: # EOF - break - line = line.strip() - if (stage in (1, 4)) and (line == separator): # Start of a commit - stage = 2 - elif stage == 2: - stage = 3 - time = int(line) - elif stage == 3: - if line == separator: # Null-merge (git merge -s ours), no files - stage = 2 - continue - stage = 4 - assert line == '', line - elif stage == 4: - filename = line - if filename not in filenames: - filenames.add(filename) - if os.path.exists(filename): - os.utime(filename, (time, time)) - else: - raise ValueError("stage: %d, line: %s" % (stage, line)) - -git_log.wait() -git_log.stdout.close() http://sourceforge.net/p/sqlobject/sqlobject/ci/aea36335819e189316cffc84705dc464f4ff8120 commit aea36335819e189316cffc84705dc464f4ff8120 Author: Oleg Broytman <ph...@ph...> Date: Thu Apr 20 21:36:31 2017 +0300 Stop running tests at AppVeyor with pymssql Too many timeouts and problems. diff --git a/appveyor.yml b/appveyor.yml index 2b459a2..46c89c0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -25,17 +25,6 @@ environment: CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\run_with_env.cmd" matrix: - # from https://www.appveyor.com/docs/installed-software/#python - - PYTHON_HOME: "C:\\Python27" - PYTHON_VERSION: "2.7" - PYTHON_ARCH: "32" - db: mssql2014 - TOX_ENV: "py27-pymssql-w32" - - PYTHON_HOME: "C:\\Python34" - PYTHON_VERSION: "3.4" - PYTHON_ARCH: "32" - db: mssql2014 - TOX_ENV: "py34-pymssql-w32" - PYTHON_HOME: "C:\\Python27" PYTHON_VERSION: "2.7" PYTHON_ARCH: "32" @@ -233,7 +222,6 @@ install: - ps: Get-OdbcDriver -Platform 32-bit | Select-Object -ExpandProperty Name - ps: Get-OdbcDriver -Platform 64-bit | Select-Object -ExpandProperty Name # Enable TCP for mssql - # (from appveyor documentation) - ps: | [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | Out-Null diff --git a/docs/News.rst b/docs/News.rst index d9d5307..54ee2f1 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -38,6 +38,9 @@ Tests * Stop running tests at Travis with Python 2.6. +* Stop running tests at AppVeyor with pymssql - too many timeouts and + problems. + SQLObject 3.2.0 =============== diff --git a/tox.ini b/tox.ini index 02d2d4d..e6812ea 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{pymssql,mssql-pyodbc,mysql-connector,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 +envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{mssql-pyodbc,mysql-connector,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 # Base test environment settings [testenv] @@ -33,7 +33,6 @@ deps = pypyodbc: pypyodbc firebird-fdb: fdb firebirdsql: firebirdsql - pymssql: pymssql passenv = CI TRAVIS TRAVIS_* APPVEYOR DISTUTILS_USE_SDK MSSdk INCLUDE LIB PGPASSWORD WINDIR # Don't fail or warn on uninstalled commands whitelist_externals = @@ -397,26 +396,6 @@ commands = flake8 . # Windows testing -[pymssql-w32] -commands = - {[testenv]commands} - -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 --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pymssql&timeout=30&debug=1" - sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" - -[testenv:py27-pymssql-w32] -commands = {[pymssql-w32]commands} - -[testenv:py34-pymssql-w32] -commands = {[pymssql-w32]commands} - -[testenv:py35-pymssql-w32] -commands = {[pymssql-w32]commands} - -[testenv:py36-pymssql-w32] -commands = {[pymssql-w32]commands} - [mssql-pyodbc-w32] commands = {envpython} -c "import pyodbc; print(pyodbc.drivers())" http://sourceforge.net/p/sqlobject/sqlobject/ci/5dfacb25fb61bcc6f08aaad2bd3934f2919c92ee commit 5dfacb25fb61bcc6f08aaad2bd3934f2919c92ee Author: Oleg Broytman <ph...@ph...> Date: Thu Apr 20 22:06:04 2017 +0300 Add support for PyODBC and PyPyODBC for MS SQL Run tests at AppVeyor. diff --git a/appveyor.yml b/appveyor.yml index e7d182c..2b459a2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -30,12 +30,32 @@ environment: PYTHON_VERSION: "2.7" PYTHON_ARCH: "32" db: mssql2014 - TOX_ENV: "py27-mssql-w32" + TOX_ENV: "py27-pymssql-w32" - PYTHON_HOME: "C:\\Python34" PYTHON_VERSION: "3.4" PYTHON_ARCH: "32" db: mssql2014 - TOX_ENV: "py34-mssql-w32" + TOX_ENV: "py34-pymssql-w32" + - PYTHON_HOME: "C:\\Python27" + PYTHON_VERSION: "2.7" + PYTHON_ARCH: "32" + db: mssql2014 + TOX_ENV: "py27-mssql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python34" + PYTHON_VERSION: "3.4" + PYTHON_ARCH: "32" + db: mssql2014 + TOX_ENV: "py34-mssql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python35" + PYTHON_VERSION: "3.5" + PYTHON_ARCH: "32" + db: mssql2014 + TOX_ENV: "py35-mssql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python36" + PYTHON_VERSION: "3.6" + PYTHON_ARCH: "32" + db: mssql2014 + TOX_ENV: "py36-mssql-pyodbc-w32" - PYTHON_HOME: "C:\\Python27" PYTHON_VERSION: "2.7" PYTHON_ARCH: "32" diff --git a/docs/News.rst b/docs/News.rst index dff7e8e..d9d5307 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -21,9 +21,9 @@ Drivers (work in progress) -------------------------- * Add support for PyODBC and PyPyODBC (pure-python ODBC DB API driver) for - MySQL and PostgreSQL. Driver names are ``pyodbc``, ``pypyodbc`` or - ``odbc`` (try ``pyodbc`` and ``pypyodbc``). There are some problems with - pyodbc and many problems with pypyodbc. + 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 ------------- diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index 1350514..c154dd4 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -24,10 +24,23 @@ class MSSQLConnection(DBAPI): import adodbapi as sqlmodule elif driver == 'pymssql': import pymssql as sqlmodule + elif driver == 'pyodbc': + import pyodbc + self.module = pyodbc + elif driver == 'pypyodbc': + import pypyodbc + self.module = pypyodbc + elif driver == 'odbc': + try: + import pyodbc + except ImportError: + import pypyodbc as pyodbc + self.module = pyodbc else: raise ValueError( 'Unknown MSSQL driver "%s", ' - 'expected adodb or pymssql' % driver) + 'expected adodb, pymssql, ' + 'odbc, pyodbc or pypyodbc' % driver) except ImportError: pass else: @@ -35,9 +48,13 @@ class MSSQLConnection(DBAPI): else: raise ImportError( 'Cannot find an MSSQL driver, tried %s' % drivers) - self.module = sqlmodule - if sqlmodule.__name__ == 'adodbapi': + if driver in ('odbc', 'pyodbc', 'pypyodbc'): + self.make_odbc_conn_str(db, host, port, user, password, + kw.pop('odbcdrv', 'SQL Server')) + + elif driver in ('adodb', 'adodbapi'): + self.module = sqlmodule self.dbconnection = sqlmodule.connect # ADO uses unicode only (AFAIK) self.usingUnicodeStrings = True @@ -64,7 +81,8 @@ class MSSQLConnection(DBAPI): kw.pop("ncli", None) kw.pop("sspi", None) - else: # pymssql + elif driver == 'pymssql': + self.module = sqlmodule self.dbconnection = sqlmodule.connect sqlmodule.Binary = lambda st: str(st) # don't know whether pymssql uses unicode @@ -89,6 +107,7 @@ class MSSQLConnection(DBAPI): keys_dict[attr] = value return keys_dict self.make_conn_str = _make_conn_str + self.driver = driver self.autoCommit = int(autoCommit) self.user = user @@ -118,17 +137,22 @@ class MSSQLConnection(DBAPI): return c.fetchone()[0] def makeConnection(self): - conn_descr = self.make_conn_str(self) - if isinstance(conn_descr, dict): - con = self.dbconnection(**conn_descr) + if self.driver in ('odbc', 'pyodbc', 'pypyodbc'): + self.debugWriter.write( + "ODBC connect string: " + self.odbc_conn_str) + conn = self.module.connect(self.odbc_conn_str) else: - con = self.dbconnection(conn_descr) - cur = con.cursor() + conn_descr = self.make_conn_str(self) + if isinstance(conn_descr, dict): + conn = self.dbconnection(**conn_descr) + else: + conn = self.dbconnection(conn_descr) + cur = conn.cursor() cur.execute('SET ANSI_NULLS ON') cur.execute("SELECT CAST('12345.21' AS DECIMAL(10, 2))") self.decimalSeparator = str(cur.fetchone()[0])[-3] cur.close() - return con + return conn HAS_IDENTITY = """ select 1 @@ -302,9 +326,6 @@ class MSSQLConnection(DBAPI): option = "OFF" c = conn.cursor() c.execute("SET AUTOCOMMIT " + option) - # from mx.ODBC.Windows import SQL - # connection.setconnectoption( - # SQL.AUTOCOMMIT, SQL.AUTOCOMMIT_ON if auto else SQL.AUTOCOMMIT_OFF) # precision and scale is needed for decimal columns def guessClass(self, t, size, precision, scale): diff --git a/tox.ini b/tox.ini index 0dfb792..02d2d4d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{mssql,mysql-connector,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 +envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{pymssql,mssql-pyodbc,mysql-connector,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 # Base test environment settings [testenv] @@ -33,7 +33,7 @@ deps = pypyodbc: pypyodbc firebird-fdb: fdb firebirdsql: firebirdsql - mssql: pymssql + pymssql: pymssql passenv = CI TRAVIS TRAVIS_* APPVEYOR DISTUTILS_USE_SDK MSSdk INCLUDE LIB PGPASSWORD WINDIR # Don't fail or warn on uninstalled commands whitelist_externals = @@ -397,7 +397,7 @@ commands = flake8 . # Windows testing -[mssql-w32] +[pymssql-w32] commands = {[testenv]commands} -sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" @@ -405,17 +405,37 @@ commands = pytest --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pymssql&timeout=30&debug=1" sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" -[testenv:py27-mssql-w32] -commands = {[mssql-w32]commands} +[testenv:py27-pymssql-w32] +commands = {[pymssql-w32]commands} -[testenv:py34-mssql-w32] -commands = {[mssql-w32]commands} +[testenv:py34-pymssql-w32] +commands = {[pymssql-w32]commands} -[testenv:py35-mssql-w32] -commands = {[mssql-w32]commands} +[testenv:py35-pymssql-w32] +commands = {[pymssql-w32]commands} -[testenv:py36-mssql-w32] -commands = {[mssql-w32]commands} +[testenv:py36-pymssql-w32] +commands = {[pymssql-w32]commands} + +[mssql-pyodbc-w32] +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 --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pyodbc&odbcdrv=SQL%20Server&debug=1" + sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" + +[testenv:py27-mssql-pyodbc-w32] +commands = {[mssql-pyodbc-w32]commands} + +[testenv:py34-mssql-pyodbc-w32] +commands = {[mssql-pyodbc-w32]commands} + +[testenv:py35-mssql-pyodbc-w32] +commands = {[mssql-pyodbc-w32]commands} + +[testenv:py36-mssql-pyodbc-w32] +commands = {[mssql-pyodbc-w32]commands} [mysql-connector-w32] ... 41 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-04-17 20:46:46
|
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 1450275af30b8896373c091e5398fb942c3f1890 (commit) via 3fac10b6e2434543ff543b2bdff63907f97298dd (commit) from e7608833bcadbcdef50b01321aeae42e76dfdde1 (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/1450275af30b8896373c091e5398fb942c3f1890 commit 1450275af30b8896373c091e5398fb942c3f1890 Author: Oleg Broytman <ph...@ph...> Date: Mon Apr 17 22:33:54 2017 +0300 Fix release script (version) [skip ci] diff --git a/devscripts/release b/devscripts/release index 3a6fc74..ee15d01 100755 --- a/devscripts/release +++ b/devscripts/release @@ -23,13 +23,17 @@ done find build -name '*.py[co]' -delete && python setup.py bdist_wheel --universal && +version=`python setup.py --version` +. `dirname $0`/split.sh && +split_tag $version + if [ "$state" = final ]; then cp -a dist/* "$HOME"/tmp/ && 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 fi -twine register dist/SQLObject-"`python setup.py --version`".tar.gz && +twine register dist/SQLObject-"$version".tar.gz && twine upload --sign dist/* && exec rm -rf build dist docs/html SQLObject.egg-info http://sourceforge.net/p/sqlobject/sqlobject/ci/3fac10b6e2434543ff543b2bdff63907f97298dd commit 3fac10b6e2434543ff543b2bdff63907f97298dd Author: Oleg Broytman <ph...@ph...> Date: Sat Apr 15 20:50:57 2017 +0300 [setup.cfg] Remove outdated ez_setup.py [skip ci] diff --git a/setup.cfg b/setup.cfg index 4c5fd41..d0e62d0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -4,7 +4,7 @@ tag_date = 1 tag_svn_revision = 0 [flake8] -exclude = .git,.tox,docs/europython/*.py,ez_setup.py +exclude = .git,.tox,docs/europython/*.py # E305: expected 2 blank lines after class or function definition, found 1 ignore = E305 ----------------------------------------------------------------------- Summary of changes: devscripts/release | 6 +++++- setup.cfg | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-04-10 18:34: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 e7608833bcadbcdef50b01321aeae42e76dfdde1 (commit) via c322285189d17bc0a9ad10f53ec8864dd9066cff (commit) from 69d08334b97bb12e89429d5ab0758247ef09a71b (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/e7608833bcadbcdef50b01321aeae42e76dfdde1 commit e7608833bcadbcdef50b01321aeae42e76dfdde1 Author: Oleg Broytman <ph...@ph...> Date: Mon Apr 10 21:31:12 2017 +0300 Remove gmane [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index e636be5..e4759b6 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -54,9 +54,6 @@ http://sqlobject.org/devel/ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss -Archives: -http://news.gmane.org/gmane.comp.python.sqlobject - Download: https://pypi.python.org/pypi/SQLObject/3.3.0a0.dev20170110 diff --git a/setup.py b/setup.py index d4b4324..ed917f2 100755 --- a/setup.py +++ b/setup.py @@ -173,9 +173,6 @@ http://sqlobject.org Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss -Archives: -http://news.gmane.org/gmane.comp.python.sqlobject - Download: https://pypi.python.org/pypi/SQLObject/@@ http://sourceforge.net/p/sqlobject/sqlobject/ci/c322285189d17bc0a9ad10f53ec8864dd9066cff commit c322285189d17bc0a9ad10f53ec8864dd9066cff Author: Oleg Broytman <ph...@ph...> Date: Mon Apr 10 21:28:38 2017 +0300 Stop updating http://sqlobject.readthedocs.org/ It's enough to have http://sqlobject.org/ [skip ci] diff --git a/docs/News.rst b/docs/News.rst index f2697d6..0b93b2e 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -24,6 +24,12 @@ Drivers (work in progress) MySQL and PostgreSQL. Driver names are ``pyodbc``, ``pypyodbc`` or ``odbc`` (try ``pyodbc`` and ``pypyodbc``). There are some problems. +Documentation +------------- + +* Stop updating http://sqlobject.readthedocs.org/ - it's enough to have + http://sqlobject.org/ + Tests ----- ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 3 --- docs/News.rst | 6 ++++++ setup.py | 3 --- 3 files changed, 6 insertions(+), 6 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-04-09 15:19: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 69d08334b97bb12e89429d5ab0758247ef09a71b (commit) from e1a698ed6ccef20cd9645d1c88cc2b4f289d2366 (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/69d08334b97bb12e89429d5ab0758247ef09a71b commit 69d08334b97bb12e89429d5ab0758247ef09a71b Author: Oleg Broytman <ph...@ph...> Date: Sun Apr 9 18:16:48 2017 +0300 [devscripts] Adapt set-commit-date.py to Python 3 Turn on universal_newlines. [skip ci] diff --git a/devscripts/set-commit-date.py b/devscripts/set-commit-date.py index c5d49d4..dc6a5fb 100755 --- a/devscripts/set-commit-date.py +++ b/devscripts/set-commit-date.py @@ -13,7 +13,8 @@ separator = '----- GIT LOG SEPARATOR -----' git_log = subprocess.Popen(['git', 'log', '-m', '--first-parent', '--name-only', '--no-color', '--format=%s%%n%%ct' % separator], - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, + universal_newlines=True) filenames = set() # stages: 1 - start of commit, 2 - timestamp, 3 - empty line, 4 - files stage = 1 ----------------------------------------------------------------------- Summary of changes: devscripts/set-commit-date.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-04-08 23:37:50
|
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 e1a698ed6ccef20cd9645d1c88cc2b4f289d2366 (commit) from ab3889be6919f4be63e8c841ff294748935f4499 (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/e1a698ed6ccef20cd9645d1c88cc2b4f289d2366 commit e1a698ed6ccef20cd9645d1c88cc2b4f289d2366 Author: Oleg Broytman <ph...@ph...> Date: Sun Apr 9 02:33:30 2017 +0300 [devscripts] setup: set umask to 022 -rwxr-xr-x [skip ci] diff --git a/devscripts/setup b/devscripts/setup index 315e84a..946696e 100755 --- a/devscripts/setup +++ b/devscripts/setup @@ -1,6 +1,6 @@ #! /bin/sh -umask 002 # -rwxrwxr-x +umask 022 # -rwxr-xr-x cd "`dirname \"$0\"`"/SQLObject && python2.6 setup.py install -O2 && ----------------------------------------------------------------------- Summary of changes: devscripts/setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-04-08 20:02:39
|
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 ab3889be6919f4be63e8c841ff294748935f4499 (commit) from 4d196203af98b7c418ad8a0ebeba081e1cf76c48 (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/ab3889be6919f4be63e8c841ff294748935f4499 commit ab3889be6919f4be63e8c841ff294748935f4499 Author: Oleg Broytman <ph...@ph...> Date: Sat Apr 8 23:00:09 2017 +0300 Refactor MANIFEST.in; exclude devscripts from sdist devscripts are not required for installation or development. [skip ci] diff --git a/MANIFEST.in b/MANIFEST.in index 212861b..32ac686 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,8 +1,7 @@ global-include *.py *.rst *.txt +recursive-include docs *.css *.html *.js *.gif *.png include LICENSE MANIFEST.in .travis.yml circle.yml tox.ini include debian/* sqlobject/.coveragerc include docs/Makefile docs/genapidocs docs/rebuild -recursive-include devscripts * -recursive-include docs *.css *.html *.js *.gif *.png -global-exclude *.py[co] -prune docs/_build +recursive-exclude devscripts * +recursive-exclude docs/_build * ----------------------------------------------------------------------- Summary of changes: MANIFEST.in | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) hooks/post-receive -- SQLObject development repository |