From phd at phdru.name Wed Jun 6 12:29:13 2018 From: phd at phdru.name (Oleg Broytman) Date: Wed, 6 Jun 2018 18:29:13 +0200 Subject: [DB-SIG] SQLObject 3.7.0 Message-ID: <20180606162913.innameglaxieptmi@phdru.name> Hello! I'm pleased to announce version 3.7.0, the first stable release of branch 3.7 of SQLObject. What's new in SQLObject ======================= Contributors for this release are Scott Stahl and Christophe Popov. Features -------- * Add signals on commit and rollback; pull request by Scott Stahl. Bug fixes --------- * Fix SSL-related parameters for MySQL-connector (connector uses a different param style). Bug reported by Christophe Popov. Drivers ------- * Remove psycopg1. Driver ``psycopg`` is now just an alias for ``psycopg2``. Tests ----- * Install psycopg2 from `psycopg2-binary`_ package. .. _`psycopg2-binary`: https://pypi.org/project/psycopg2-binary/ For a more complete list, please see the news: http://sqlobject.org/News.html What is SQLObject ================= SQLObject is an object-relational mapper. Your database tables are described as classes, and rows are instances of those classes. SQLObject is meant to be easy to use and quick to get started with. SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB). Python 2.7 or 3.4+ is required. Where is SQLObject ================== Site: http://sqlobject.org Development: http://sqlobject.org/devel/ Mailing list: https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss Download: https://pypi.org/project/SQLObject/3.7.0/ News and changes: http://sqlobject.org/News.html StackOverflow: https://stackoverflow.com/questions/tagged/sqlobject 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 >>> p.fname 'John' >>> p.mi = 'Q' >>> p2 = Person.get(1) >>> p2 >>> p is p2 True Queries:: >>> p3 = Person.selectBy(lname="Doe")[0] >>> p3 >>> pc = Person.select(Person.q.lname=="Doe").count() >>> pc 1 Oleg. -- Oleg Broytman https://phdru.name/ phd at phdru.name Programmers don't die, they just GOSUB without RETURN. From gerald.venzl at oracle.com Wed Jun 20 23:47:41 2018 From: gerald.venzl at oracle.com (Gerald Venzl) Date: Thu, 21 Jun 2018 03:47:41 -0000 Subject: [DB-SIG] Context manager support for cursors Message-ID: Hi all, I was wondering whether there has been any particular reason that the specification of the Cursor object doesn?t implement a context manager to enable for example the ?with? statement? Being able to use the ?with? statement for database cursors, just like other external resources like files, etc., I think makes a lot of sense: with conn.cursor() as c: c.execute("SELECT 'test' from dual") result = c.fetchall() print(result) Currently this results in an AttributeError: File ?/Users/gvenzl/test/test.py?, line 23, in test with conn.cursor() as c: AttributeError: __exit__ Thx, --------------- Gerald Venzl | Senior Principal Product Manager Email: gerald.venzl at oracle.com | Phone: +1.650.633.0085 Oracle ST & Database Development 400 Oracle Parkway | Redwood Shores | 94065 | USA -------------- next part -------------- An HTML attachment was scrubbed... URL: