
    7Th^	                     N    S SK Jr   " S S5      r " S S5      r " S S\5      rg)	    )dequec                   :    \ rS rSrSrS rS rS rS rS
S jr	Sr
g	)Transaction   zFilesystem transaction write context

Gathers files for deferred commit or discard, so that several write
operations can be finalized semi-atomically. This works by having this
instance as the ``.transaction`` attribute of the given filesystem
c                 .    Xl         [        5       U l        g)/
Parameters
----------
fs: FileSystem instance
N)fsr   files)selfr	   kwargss      J/var/www/auris/envauris/lib/python3.13/site-packages/fsspec/transaction.py__init__Transaction.__init__   s     W
    c                 &    U R                  5         U $ N)startr   s    r   	__enter__Transaction.__enter__   s    

r   c                     U R                  USL S9  U R                  (       a*  SU R                  l        SU R                  l        SU l        gg)z;End transaction and commit, if exit is not due to exceptionN)commitF)completer	   _intrans_transaction)r   exc_typeexc_valexc_tbs       r   __exit__Transaction.__exit__   sB     	X-.77$DGG#'DGG DG r   c                 D    [        5       U l        SU R                  l        g)z&Start a transaction on this FileSystemTN)r   r
   r	   r   r   s    r   r   Transaction.start"   s    W
r   c                 "   U R                   (       aU  U R                   R                  5       nU(       a  UR                  5         OUR                  5         U R                   (       a  MU  SU R                  l        SU R                  l        SU l        gz8Finish transaction: commit or discard all deferred filesFN)r
   popleftr   discardr	   r   r   )r   r   fs      r   r   Transaction.complete'   s\    jj

""$A
		 jjj !#r   r
   r	   NT)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   __static_attributes__ r   r   r   r      s      

r   r   c                   ,    \ rS rSrS rS rS rS rSrg)	FileActor4   c                     / U l         g r   r
   r   s    r   r   FileActor.__init__5   s	    
r   c                 ~    U R                    H  nUR                  5         M     U R                   R                  5         g r   )r
   r   clearr   r'   s     r   r   FileActor.commit8   s)    AHHJ 

r   c                 ~    U R                    H  nUR                  5         M     U R                   R                  5         g r   )r
   r&   r9   r:   s     r   r&   FileActor.discard=   s)    AIIK 

r   c                 :    U R                   R                  U5        g r   )r
   appendr:   s     r   r?   FileActor.appendB   s    

!r   r6   N)	r+   r,   r-   r.   r   r   r&   r?   r0   r1   r   r   r3   r3   4   s    

r   r3   c                   2   ^  \ rS rSrU 4S jrSS jrSrU =r$ )DaskTransactionF   c                    > SSK n[        TU ]	  U5        UR                  5       nUR	                  [
        SS9R                  5       U l        g)r   r   NT)actor)distributedsuperr   default_clientsubmitr3   resultr
   )r   r	   rF   client	__class__s       r   r   DaskTransaction.__init__G   s@     	++-]]9D]9@@B
r   c                     U(       a)  U R                   R                  5       R                  5         O(U R                   R                  5       R                  5         SU R                  l        SU l        gr$   )r
   r   rJ   r&   r	   r   )r   r   s     r   r   DaskTransaction.completeS   sJ    JJ&&(JJ '') r   r)   r*   )r+   r,   r-   r.   r   r   r0   __classcell__)rL   s   @r   rB   rB   F   s    
C r   rB   N)collectionsr   r   r3   rB   r1   r   r   <module>rR      s)    - -` $k r   