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
|