Very good point. I retract my concern. It's appropriate for formlib. FWIW:
gary@posterboard:~ $ ./bin/zopectl debug >>> root['hello'] = 'there' >>> import transaction >>> sp = transaction.savepoint() >>> root['foo'] = 'bar' >>> transaction.abort() >>> root.get('foo') >>> root.get('hello') >>> sp.rollback() Traceback (most recent call last): File "<stdin>", line 1, in ? File "/home/gary/classifieds/var/src/zope3/src/transaction/_transaction.py", line 744, in rollback raise interfaces.InvalidSavepointRollbackError transaction.interfaces.InvalidSavepointRollbackError
Very good point. I retract my concern. It's appropriate for formlib. FWIW:
gary@posterboard:~ $ ./bin/zopectl debug savepoint( ) gary/classified s/var/src/ zope3/src/ transaction/ _transaction. py", line 744, in rollback InvalidSavepoin tRollbackError interfaces. InvalidSavepoin tRollbackError
>>> root['hello'] = 'there'
>>> import transaction
>>> sp = transaction.
>>> root['foo'] = 'bar'
>>> transaction.abort()
>>> root.get('foo')
>>> root.get('hello')
>>> sp.rollback()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/home/
raise interfaces.
transaction.