On Feb 6, 2013, at 11:54 , Duncan Booth <duncan.bo...@suttoncourtenay.org.uk> 
wrote:

> Chris Withers <ch...@simplistix.co.uk> wrote:
> 
>> Hi All,
>> 
>> I used to do this:
>> 
>>>>> import transaction
>>>>> with transaction:
>> ...   print 'hello'
>> ...
>> Traceback (most recent call last):
>>   File "<console>", line 1, in <module>
>> AttributeError: __exit__
>> 
>> When did that stop working and what should I now do instead?
>> 
>> cheers,
>> 
>> Chris
>> 
> 
> You can use pure hackery to work around this:
> ----- t.py -----
> def __enter__(*args):
>    print 'enter', args
> 
> def __exit__(*args):
>    print 'exit', args
> 
> def fixup():
>    import sys, types
>    self = sys.modules[__name__]
>    mymod = type(__name__, (types.ModuleType,), globals())
>    sys.modules[__name__] = mymod(__name__)
> fixup()

You can also use the transaction manager directly instead of the bound methods 
transaction lifts out of it:

import transaction
with transaction.manager:
    pass

Wichert.
_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )

Reply via email to