This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SQLObject development repository".
The branch, master has been updated
discards c4b428015b5286fba37f49ffecff592dc1217e03 (commit)
via 44c441439545d48f9eccf172ff0b0b76bb18ac8d (commit)
via 6509ac8c44f0ef98e6d64007a7cc9efd2abf083b (commit)
via 302bfb6818745c31b5c863eacfdc315b5784d396 (commit)
via 25ab36002ae4affa9d9337b5b11fdee94aecfa1c (commit)
via e2e7df6412ea84348729eb9450e7107bd5170c74 (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (c4b428015b5286fba37f49ffecff592dc1217e03)
\
N -- N -- N (44c441439545d48f9eccf172ff0b0b76bb18ac8d)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceforge.net/p/sqlobject/sqlobject/ci/44c441439545d48f9eccf172ff0b0b76bb18ac8d
commit 44c441439545d48f9eccf172ff0b0b76bb18ac8d
Author: Oleg Broytman <ph...@ph...>
Date: Fri Nov 18 18:29:44 2022 +0300
Docs(README): Update
Copied from https://github.com/sqlobject/.github/tree/master/profile
[skip ci]
diff --git a/README.rst b/README.rst
index c910205..8c31039 100644
--- a/README.rst
+++ b/README.rst
@@ -1,15 +1,86 @@
SQLObject 3.10.1a0
==================
-Thanks for looking at SQLObject. SQLObject is an object-relational
-mapper, i.e., a library that will wrap your database tables in Python
-classes, and your rows in Python instances.
+SQLObject is a free and open-source (LGPL) Python object-relational
+mapper. Your database tables are described as classes, and rows are
+instances of those classes. SQLObject is meant to be easy to use and
+quick to get started with.
-It currently supports MySQL, PostgreSQL and SQLite; connections to other
-backends - Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are
-lesser debugged).
+SQLObject supports a number of backends: MySQL/MariaDB (with a number of
+DB API drivers: ``MySQLdb``, ``mysqlclient``, ``mysql-connector``,
+``PyMySQL``, ``mariadb``), PostgreSQL (``psycopg2``, ``PyGreSQL``,
+partially ``pg8000`` and ``py-postgresql``), SQLite (builtin ``sqlite``,
+``pysqlite``, partially ``supersqlite``); connections to other backends
+- Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are less
+debugged).
Python 2.7 or 3.4+ is required.
-For more information please see the documentation in
-`<docs/SQLObject.rst>`_, or online at http://sqlobject.org/
+
+Where is SQLObject
+==================
+
+Site:
+http://sqlobject.org
+
+Download:
+https://pypi.org/project/SQLObject/
+
+News and changes:
+http://sqlobject.org/News.html
+
+StackOverflow:
+https://stackoverflow.com/questions/tagged/sqlobject
+
+Mailing lists:
+https://sourceforge.net/p/sqlobject/mailman/
+
+Development:
+http://sqlobject.org/devel/
+
+Developer Guide:
+http://sqlobject.org/DeveloperGuide.html
+
+
+Example
+=======
+
+Install::
+
+ $ pip install sqlobject
+
+Create a simple class that wraps a table::
+
+ >>> from sqlobject import *
+ >>>
+ >>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:')
+ >>>
+ >>> class Person(SQLObject):
+ ... fname = StringCol()
+ ... mi = StringCol(length=1, default=None)
+ ... lname = StringCol()
+ ...
+ >>> Person.createTable()
+
+Use the object::
+
+ >>> p = Person(fname="John", lname="Doe")
+ >>> p
+ <Person 1 fname='John' mi=None lname='Doe'>
+ >>> p.fname
+ 'John'
+ >>> p.mi = 'Q'
+ >>> p2 = Person.get(1)
+ >>> p2
+ <Person 1 fname='John' mi='Q' lname='Doe'>
+ >>> p is p2
+ True
+
+Queries::
+
+ >>> p3 = Person.selectBy(lname="Doe")[0]
+ >>> p3
+ <Person 1 fname='John' mi='Q' lname='Doe'>
+ >>> pc = Person.select(Person.q.lname=="Doe").count()
+ >>> pc
+ 1
http://sourceforge.net/p/sqlobject/sqlobject/ci/6509ac8c44f0ef98e6d64007a7cc9efd2abf083b
commit 6509ac8c44f0ef98e6d64007a7cc9efd2abf083b
Author: Oleg Broytman <ph...@ph...>
Date: Thu Nov 17 21:54:35 2022 +0300
Fix(compat): Use `.exec_module(.create_module())` instead of `.load_module()`
Use `module_loader.exec_module(module_loader.create_module())`
instead of `module_loader.load_module()` when available.
diff --git a/docs/News.rst b/docs/News.rst
index e2d0b97..0eaaa97 100644
--- a/docs/News.rst
+++ b/docs/News.rst
@@ -8,6 +8,12 @@ News
SQLObject (master)
==================
+Minor features
+--------------
+
+* Use ``module_loader.exec_module(module_loader.create_module())``
+ instead of ``module_loader.load_module()`` when available.
+
Tests, CI
---------
diff --git a/sqlobject/compat.py b/sqlobject/compat.py
index 72d696f..fc8edf2 100644
--- a/sqlobject/compat.py
+++ b/sqlobject/compat.py
@@ -47,4 +47,13 @@ else:
def load_module_from_file(base_name, module_name, filename):
specs = importlib.util.spec_from_file_location(module_name, filename)
- return specs.loader.load_module()
+ loader = specs.loader
+ if hasattr(loader, 'create_module'):
+ module = loader.create_module(specs)
+ else:
+ module = None
+ if module is None:
+ return specs.loader.load_module()
+ else:
+ loader.exec_module(module)
+ return module
http://sourceforge.net/p/sqlobject/sqlobject/ci/302bfb6818745c31b5c863eacfdc315b5784d396
commit 302bfb6818745c31b5c863eacfdc315b5784d396
Author: Oleg Broytman <ph...@ph...>
Date: Thu Oct 27 19:05:04 2022 +0300
Tests(tox): Fix the list of `flake8` environments
diff --git a/tox.ini b/tox.ini
index 1f8bbbf..81df7f6 100644
--- a/tox.ini
+++ b/tox.ini
@@ -358,7 +358,7 @@ commands = {[firebirdsql]commands}
# Special test environments
-[testenv:py{27,34,35,36,37,38,39}-flake8]
+[testenv:py{27,34,35,36,37,38,39,310,311}-flake8]
changedir = ./
deps =
flake8
http://sourceforge.net/p/sqlobject/sqlobject/ci/25ab36002ae4affa9d9337b5b11fdee94aecfa1c
commit 25ab36002ae4affa9d9337b5b11fdee94aecfa1c
Author: Oleg Broytman <ph...@ph...>
Date: Tue Oct 25 01:26:30 2022 +0300
Tests, CI: Add Python 3.11
diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml
index 2c0330d..80335a8 100644
--- a/.github/workflows/run-tests.yaml
+++ b/.github/workflows/run-tests.yaml
@@ -8,7 +8,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
- python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10"]
+ python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
include:
- os: ubuntu-latest
os-name: Linux
diff --git a/devscripts/test-sqlobject.cmd b/devscripts/test-sqlobject.cmd
index 8c7e38d..f227bf0 100644
--- a/devscripts/test-sqlobject.cmd
+++ b/devscripts/test-sqlobject.cmd
@@ -3,7 +3,7 @@
SetLocal EnableDelayedExpansion
set SavePATH=%PATH%
-for %%V in (27 34 35 36 37 38 39 310) do (
+for %%V in (27 34 35 36 37 38 39 310 311) do (
for %%s in (32 64) do (
set PATH=C:\Python%%V-%%s;C:\Python%%V-%%s\Scripts;!SavePATH!
set TOXPYTHON=C:\Python%%V-%%s\python.exe
diff --git a/docs/News.rst b/docs/News.rst
index 42f5616..e2d0b97 100644
--- a/docs/News.rst
+++ b/docs/News.rst
@@ -8,6 +8,11 @@ News
SQLObject (master)
==================
+Tests, CI
+---------
+
+* Run tests with Python 3.11.
+
SQLObject 3.10.0
================
diff --git a/setup.py b/setup.py
index 57ea539..b67aa31 100755
--- a/setup.py
+++ b/setup.py
@@ -62,6 +62,7 @@ and `GitHub <https://github.com/sqlobject>`_.
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
"Topic :: Database",
"Topic :: Database :: Front-Ends",
"Topic :: Software Development :: Libraries :: Python Modules",
diff --git a/tox.ini b/tox.ini
index cc53f36..1f8bbbf 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
[tox]
minversion = 3.15
-envlist = py27,py3{4,5,6,7,8,9,10}-sqlite{,-memory},py{27,310}-flake8
+envlist = py27,py3{4,5,6,7,8,9,10,11}-sqlite{,-memory},py{27,36,311}-flake8
# Base test environment settings
[testenv]
@@ -62,7 +62,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mysqldb]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysqldb]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysqldb]
commands = {envpython} -c "print('MySQL-python requires Python 2.7')"
deps =
@@ -78,7 +78,7 @@ commands =
commands = {envpython} -c "print('mysqlclient requires Python 3.4+')"
deps =
-[testenv:py3{4,5,6,7,8,9,10}-mysqlclient]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysqlclient]
commands = {[mysqlclient]commands}
[mysql-connector]
@@ -94,7 +94,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mysql-connector]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-connector]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-connector]
commands = {[mysql-connector]commands}
[oursql]
@@ -110,7 +110,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[oursql]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-oursql3-noauto]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-oursql3-noauto]
commands = {[oursql]commands}
[pymysql]
@@ -126,7 +126,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[pymysql]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-pymysql]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pymysql]
commands = {[pymysql]commands}
[mariadb]
@@ -141,7 +141,7 @@ commands =
commands = {envpython} -c "print('mariadb requires Python 3.6+')"
deps =
-[testenv:py3{6,7,8,9,10}-mariadb]
+[testenv:py3{6,7,8,9,10,11}-mariadb]
commands = {[mariadb]commands}
[mysql-pyodbc]
@@ -158,7 +158,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mysql-pyodbc]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-pyodbc-noauto]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pyodbc-noauto]
commands = {[mysql-pyodbc]commands}
[mysql-pypyodbc]
@@ -174,7 +174,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mysql-pypyodbc]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-pypyodbc-noauto]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pypyodbc-noauto]
commands = {[mysql-pypyodbc]commands}
# PostgreSQL test environments
@@ -191,7 +191,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[psycopg]commands}
-[testenv:py3{4,5,6,7,8,9,10}-postgres-psycopg]
+[testenv:py3{4,5,6,7,8,9,10,11}-postgres-psycopg]
commands = {[psycopg]commands}
[pygresql]
@@ -207,7 +207,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[pygresql]commands}
-[testenv:py3{4,5,6,7,8,9,10}-postgres-pygresql]
+[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pygresql]
commands = {[pygresql]commands}
[pypostgresql]
@@ -222,7 +222,7 @@ commands =
commands = {envpython} -c "print('pypostgresql requires Python 3.4+')"
deps =
-[testenv:py3{4,5,6,7,8,9,10}-postgres-pypostgresql-noauto]
+[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pypostgresql-noauto]
commands = {[pypostgresql]commands}
[pg8000]
@@ -241,7 +241,7 @@ commands =
[testenv:py3{4,5,6}-postgres-pg8000]
commands = {[pg8000]commands}
-[testenv:py3{7,8,9,10}-postgres-pg8000-noauto]
+[testenv:py3{7,8,9,10,11}-postgres-pg8000-noauto]
commands = {[pg8000]commands}
[postgres-pyodbc]
@@ -258,7 +258,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[postgres-pyodbc]commands}
-[testenv:py3{4,5,6,7,8,9,10}-postgres-pyodbc-noauto]
+[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pyodbc-noauto]
commands = {[postgres-pyodbc]commands}
[postgres-pypyodbc]
@@ -274,7 +274,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[postgres-pypyodbc]commands}
-[testenv:py3{4,5,6,7,8,9,10}-postgres-pypyodbc-noauto]
+[testenv:py3{4,5,6,7,8,9,10,11}-postgres-pypyodbc-noauto]
commands = {[postgres-pypyodbc]commands}
@@ -291,7 +291,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[sqlite]commands}
-[testenv:py3{4,5,6,7,8,9,10}-sqlite]
+[testenv:py3{4,5,6,7,8,9,10,11}-sqlite]
commands = {[sqlite]commands}
[sqlite-memory]
@@ -304,7 +304,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[sqlite-memory]commands}
-[testenv:py3{4,5,6,7,8,9,10}-sqlite-memory]
+[testenv:py3{4,5,6,7,8,9,10,11}-sqlite-memory]
commands = {[sqlite-memory]commands}
[sqlite-supersqlite]
@@ -319,7 +319,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[sqlite-supersqlite]commands}
-[testenv:py3{4,5,6,7,8,9,10}-sqlite-supersqlite]
+[testenv:py3{4,5,6,7,8,9,10,11}-sqlite-supersqlite]
commands = {[sqlite-supersqlite]commands}
@@ -337,7 +337,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[fdb]commands}
-[testenv:py3{4,5,6,7,8,9,10}-firebird-fdb]
+[testenv:py3{4,5,6,7,8,9,10,11}-firebird-fdb]
commands = {[fdb]commands}
[firebirdsql]
@@ -353,7 +353,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[firebirdsql]commands}
-[testenv:py3{4,5,6,7,8,9,10}-firebirdsql]
+[testenv:py3{4,5,6,7,8,9,10,11}-firebirdsql]
commands = {[firebirdsql]commands}
@@ -384,7 +384,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mssql-pyodbc-w32]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mssql-pyodbc-noauto-w32]
+[testenv:py3{4,5,6,7,8,9,10,11}-mssql-pyodbc-noauto-w32]
platform = win32
commands = {[mssql-pyodbc-w32]commands}
@@ -403,7 +403,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mysql-connector-w32]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-connector-w32]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-connector-w32]
platform = win32
commands = {[mysql-connector-w32]commands}
@@ -422,7 +422,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[pymysql-w32]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-pymysql-w32]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pymysql-w32]
platform = win32
commands = {[pymysql-w32]commands}
@@ -440,7 +440,7 @@ platform = win32
commands = {envpython} -c "print('mariadb requires Python 3.6+')"
deps =
-[testenv:py3{6,7,8,9,10}-mariadb-w32]
+[testenv:py3{6,7,8,9,10,11}-mariadb-w32]
platform = win32
commands = {[mariadb-w32]commands}
@@ -460,7 +460,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mysql-pyodbc-w32]commands}
-[testenv:py3{4,5,6,7,8,9,10}-mysql-pyodbc-noauto-w32]
+[testenv:py3{4,5,6,7,8,9,10,11}-mysql-pyodbc-noauto-w32]
platform = win32
commands = {[mysql-pyodbc-w32]commands}
@@ -480,7 +480,7 @@ commands =
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-base
{[mysql-pypyodbc-w32]commands}
... 119 lines suppressed ...
hooks/post-receive
--
SQLObject development repository
|