Chris Angelico wrote:
with psycopg2.connect(...) as conn: with conn.trans() as trn: for row in trn.execute("select ..."): print(row)The outer context manager is optional, but not the inner one
While I fully support making the use of transactions mandatory, I wouldn't like to be forced to use them in a with statement. In the application that I originally built my Firebird interface for, I had a mechanism where a user could open up a piece of data for editing, and then choose to save or cancel the edits. I implemented it by keeping a transaction around for the duration and then committing it or rolling it back. If a with statement were required around all transactions, I wouldn't have been able to do that. -- Greg -- https://mail.python.org/mailman/listinfo/python-list
