Ë
    ãš¾j@  ã                   óz   — d dl Z d dlmZ  e j                  d«      Z G d„ d«      Z G d„ d«      Z G d„ d	e«      Zy)
é    N)ÚdequeÚfsspecc                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zdd„Zy)	ÚTransactiona  Filesystem 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                 ó0   — || _         t        «       | _        y)úO
        Parameters
        ----------
        fs: FileSystem instance
        N)Úfsr   Úfiles)Úselfr	   Úkwargss      ú\/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/fsspec/transaction.pyÚ__init__zTransaction.__init__   s   € ð ˆŒÜ“Wˆ�
ó    c                 ó&   — | j                  «        | S ©N)Ústart©r   s    r   Ú	__enter__zTransaction.__enter__   s   € Ø�
‰
ŒØˆr   c                 ó˜   — | j                  |du ¬«       | j                  r*d| j                  _        d| j                  _        d| _        yy)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__zTransaction.__exit__   sB   € ð 	�‰˜X¨Ð-ˆÔ.Ø�7Š7Ø$ˆD�G‰GÔØ#'ˆD�G‰GÔ ØˆD�Gð r   c                 óD   — t        «       | _        d| j                  _        y)z&Start a transaction on this FileSystemTN)r   r
   r	   r   r   s    r   r   zTransaction.start%   s   € ä“WˆŒ
Øˆ�‰Õr   c                 ó~  — d}	 | j                   rL| j                   j                  «       }|r|j                  «        n|j                  «        d}| j                   rŒL|�| j                   j	                  |«       | j                   r6	 | j                   j                  «       j                  «        | j                   rŒ6d| j                  _	        d| j                  _
        d| _        y# t
        $ r t        j                  dd¬«       Y ŒYw xY w# |�| j                   j	                  |«       | j                   r]	 | j                   j                  «       j                  «        n&# t
        $ r t        j                  dd¬«       Y nw xY w| j                   rŒ]d| j                  _	        d| j                  _
        d| _        w xY w)ú8Finish transaction: commit or discard all deferred filesNzDiscarding deferred file failedT)Úexc_infoF)r
   Úpopleftr   ÚdiscardÚ
appendleftÚ	ExceptionÚloggerÚdebugr	   r   r   )r   r   Úfs      r   r   zTransaction.complete*   se  € àˆð	Ø—*’*Ø—J‘J×&Ñ&Ó(�ÙØ—H‘H•Jà—I‘I”KØ�ð —*“*ð ˆ}Ø—
‘
×%Ñ% aÔ(ð
 —*’*ðSØ—J‘J×&Ñ&Ó(×0Ñ0Ô2ð —*“*ð
  %ˆD�G‰GÔØ#'ˆD�G‰GÔ ØˆD�Gøô	 !ò SÜ—L‘LÐ!BÈT�LÖRðSûð ˆ}Ø—
‘
×%Ñ% aÔ(ð
 —*’*ðSØ—J‘J×&Ñ&Ó(×0Ñ0Õ2øÜ ò SÜ—L‘LÐ!BÈT�LÖRðSúð —*“*ð
  %ˆD�G‰GÔØ#'ˆD�G‰GÔ ØˆD�GúsH   „AD Â(C% Ã% DÄDÄ*F<Ä6(EÅF<Å FÅ?F<ÆFÆF<Æ*F<N©T)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   © r   r   r   r      s    „ ñòòòò ô
r   r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú	FileActorc                 ó   — g | _         y r   )r
   r   s    r   r   zFileActor.__init__I   s	   € Øˆ�
r   c                 óz   — | j                   D ]  }|j                  «        Œ | j                   j                  «        y r   )r
   r   Úclear©r   r(   s     r   r   zFileActor.commitL   s.   € Ø—‘ò 	ˆAØ�H‰H�Jð	à�
‰
×ÑÕr   c                 óz   — | j                   D ]  }|j                  «        Œ | j                   j                  «        y r   )r
   r#   r3   r4   s     r   r#   zFileActor.discardQ   s.   € Ø—‘ò 	ˆAØ�I‰I�Kð	à�
‰
×ÑÕr   c                 ó:   — | j                   j                  |«       y r   )r
   Úappendr4   s     r   r7   zFileActor.appendV   s   € Ø�
‰
×Ñ˜!Õr   N)r*   r+   r,   r   r   r#   r7   r.   r   r   r0   r0   H   s   „ òòò
ó
r   r0   c                   ó&   ‡ — e Zd Zˆ fd„Zdd„Zˆ xZS )ÚDaskTransactionc                 ó    •— ddl }t        ‰| �	  |«       |j                  «       }|j	                  t
        d¬«      j                  «       | _        y)r   r   NT)Úactor)ÚdistributedÚsuperr   Údefault_clientÚsubmitr0   Úresultr
   )r   r	   r<   ÚclientÚ	__class__s       €r   r   zDaskTransaction.__init__[   s@   ø€ ó 	ä‰Ñ˜ÔØ×+Ñ+Ó-ˆØ—]‘]¤9°D�]Ó9×@Ñ@ÓBˆ�
r   c                 óZ  — 	 |r)| j                   j                  «       j                  «        n(| j                   j                  «       j                  «        d| j                  _        d| j                  _        d| _        y# d| j                  _        d| j                  _        d| _        w xY w)r    FN)r
   r   r@   r#   r	   r   r   )r   r   s     r   r   zDaskTransaction.completeg   s~   € ð	ÙØ—
‘
×!Ñ!Ó#×*Ñ*Õ,à—
‘
×"Ñ"Ó$×+Ñ+Ô-à$ˆD�G‰GÔØ#'ˆD�G‰GÔ ØˆD�Gøð  %ˆD�G‰GÔØ#'ˆD�G‰GÔ ØˆD�Gús   ‚AA? Á?+B*r)   )r*   r+   r,   r   r   Ú__classcell__)rB   s   @r   r9   r9   Z   s   ø„ ô
C÷
r   r9   )ÚloggingÚcollectionsr   Ú	getLoggerr&   r   r0   r9   r.   r   r   ú<module>rH      s>   ðÛ Ý à	ˆ×	Ñ	˜8Ó	$€÷>ñ >÷Bñ ô$�kõ r   