ó
£%êIc           @   sJ   d  d l  m Z d  d l m Z d d l m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   HTTPRedirection(   t   dbi   (   t   utilt   TransactionMiddlewarec           B   s    e  Z d  Z d „  Z d „  Z RS(   s)   Use bazbase's transactions for a request.c         C   s   | |  _  d  S(   N(   t   app(   t   selfR   (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazki/transactions.pyt   __init__	   s    c         C   s^   t  j ƒ  y |  j | | ƒ } Wn t  j ƒ  ‚  n$ Xt j ƒ  rP t  j ƒ  n
 t  j ƒ  | S(   N(   R   t   begin_transactionR   t   abort_transactionR   t
   is_previewt   commit_transaction(   R   t   environt   start_responset   res(    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazki/transactions.pyt   __call__   s    


(   t   __name__t
   __module__t   __doc__R   R   (    (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazki/transactions.pyR      s   	N(   t	   webob.excR    t   bazbaseR   t    R   t   objectR   (    (    (    sI   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazki/transactions.pyt   <module>   s   