
    !j                    v   U d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	 ddl
mZmZ ddlmZ ddlmZmZmZmZ dd	lmZmZmZ dd
lmZ  eej6                  ej8                  f      Zded<    G d d      Z G d de      Z  G d de      Z! G d de      Z" G d de      Z# G d de      Z$ddZ% G d d      Z&y)zBNarrow catchable-termination deferral; SIGKILL is not recoverable.    )annotationsN)StrEnum)current_thread	get_identmain_thread)	FrameTypeTracebackType)Callable)FinalSelf	TypedDictcast)WeeklyOperationsCorruptionWeeklyOperationsErrorWeeklyOperationsInputError) WeeklyOperationsAuthorityBindingr   _CATCHABLE_TERMINATIONc                  8    e Zd ZU dZdZded<   d	dZd
dZddZy)DeferredTerminationSectionzEDefer catchable termination only until a created inode is registered._previous_maskr   	__slots__c                    d | _         y Nr   selfs    /home/cube/projects/richard/traning coach/task-12-independent-verification-r9/build/hermes-full/dualcoach/profile/checkin_cli/weekly_operations_signals.py__init__z#DeferredTerminationSection.__init__   s
    @D    c                    t               t               u r-t        j                  t        j                  t
              | _        | S r   )r   r   signalpthread_sigmask	SIG_BLOCKr   r   r   s    r   	__enter__z$DeferredTerminationSection.__enter__   s0    {},"("8"89I9IKa"bDr   c                    | j                   y 	 t        j                  t        j                  | j                         }y # t        t
        t        f$ r}||j                  |      | d }~ww xY wr   )r   r!   r"   SIG_SETMASKr   KeyboardInterrupt
SystemExitwith_traceback)r   _kinderror	traceback_cancellations         r   __exit__z#DeferredTerminationSection.__exit__   sh    &	&&v'9'94;N;NOA*,=zJ 	 **95<G	s   .> A,A''A,NreturnNone)r1   r   )r*   ztype[BaseException] | Noner+   BaseException | Noner,   zTracebackType | Noner1   r2   )	__name__
__module____qualname____doc__r   __annotations__r   r$   r/    r   r   r   r      s    O*Iu*E
r   r   c                  @    e Zd ZU ded<   ded<   ded<   ded<   ded<   y	)
InitializationCommittedEvidencestrschema_versionexit_contextz
str | Nonecancellation_kindoriginal_context_typezdict[str, str | int]bindingN)r4   r5   r6   r8   r9   r   r   r;   r;   *   s     !!%%!!r   r;   c                      e Zd ZdZdZy)InitializationCancellationKindsigtermsigintN)r4   r5   r6   SIGTERMSIGINTr9   r   r   rC   rC   2   s    GFr   rC   c                      e Zd ZdZdZdZy)InitializationCommitContextmissing_acknowledgementbody_exceptionr.   N)r4   r5   r6   MISSING_ACKNOWLEDGEMENTBODY_EXCEPTIONCANCELLATIONr9   r   r   rI   rI   7   s    7%N!Lr   rI   c                  T     e Zd ZU dZdZded<   	 	 d	 	 	 	 	 	 	 	 	 d fdZd	dZ xZS )
'WeeklyOperationsInitializationCommittedzAA committed binding was not acknowledged before transaction exit.)rA   r>   r?   original_contexttuple[str, ...]r   c                v    t         |   d|j                          || _        || _        || _        || _        y )Nz initialization committed during )superr   valuerA   r>   r?   rQ   )r   rA   r>   r?   rQ   	__class__s        r   r   z0WeeklyOperationsInitializationCommitted.__init__B   s@     	;L<N<N;OPQ9@9EHY6Fr   c                T   | j                   j                  D ci c]  }|t        | j                   |       }}d| j                  j                  | j
                  d n| j
                  j                  | j                  d |dS t        | j                        j                  |dS c c}w )Nz8nutricoach-weekly-operations-initialization-committed-v2)r=   r>   r?   r@   rA   )	rA   __dataclass_fields__getattrr>   rU   r?   rQ   typer4   )r   fieldrA   s      r   to_evidencez3WeeklyOperationsInitializationCommitted.to_evidenceO   s    DHLLDeDefDe55'$,,66DefX --33)-)?)?)GTMcMcMiMi-1-B-B-JT
 	
 QUUYUjUjPkPtPt
 	
 gs   B%)NN)
rA   r   r>   rI   r?   z%InitializationCancellationKind | NonerQ   r3   r1   r2   )r1   r;   )	r4   r5   r6   r7   r   r8   r   r\   __classcell__rV   s   @r   rP   rP   =   s[    K!eIe DH15G1G 2G A	G
 /G 
G
r   rP   c                  0     e Zd ZU dZded<   d fdZ xZS )InitializationCancellation)r?   rR   r   c                L    t         |   d|j                          || _        y )Nz&authority initialization cancelled by )rT   r   rU   r?   )r   r?   rV   s     r   r   z#InitializationCancellation.__init__]   s(    ABSBYBYAZ[\ARr   )r?   rC   r1   r2   )r4   r5   r6   r   r8   r   r]   r^   s   @r   r`   r`   Z   s    !7I7S Sr   r`   c                ~    | t         j                  k(  rt        j                  nt        j                  }t	        |      r   )r!   rF   rC   rG   r`   )signal_number_framekinds      r   _cancel_initializationrf   b   s-    5Bfnn5T)11ZxZZD
$T
**r   c                  B    e Zd ZU dZdZded<   d
dZd
dZd
dZddd	Z	y)InitializationSignalGuardz=Retain and exactly restore one creator thread's signal state.)_creator_activer   _previous_sigterm_previous_sigint_handlers_installedr   r   c                h    t               | _        d| _        d | _        d | _        d | _        d| _        y )NF)r   ri   rj   r   rk   rl   rm   r   s    r   r   z"InitializationSignalGuard.__init__l   s2    &["@Dimhl). r   c                H    t               | j                  k7  rt        d      y )Nz*initialization transaction thread mismatch)r   ri   r   r   s    r   _require_creatorz*InitializationSignalGuard._require_creatort   s!    ;$--',-YZZ (r   c                   | j                          | j                  rt        d      t        j                  t        j
                  t              | _        d| _        t               t               u rt        t        j                  t        z  t        t        t        d z  gd f   z  t        j                  t        j                               | _        t        t        j                  t        z  t        t        t        d z  gd f   z  t        j                  t        j$                              | _        t        j                  t        j                   t(              }t        j                  t        j$                  t(              }d| _        y y )Nz*initialization signal guard already activeT)rp   rj   r   r!   r"   r#   r   r   r   r   r   Handlersintr
   r   	getsignalrF   rk   rG   rl   rf   rm   )r   r-   s     r   blockzInitializationSignalGuard.blockx   s<   <<,-YZZ$44V5E5EG]^{},%)&//C*?(CQZ]aQaKbdhKhBi*ikqk{k{  }C  }K  }K  lL  &MD"$(3)>3PY\`P`JacgJgAh)hjpjzjz  |B  |I  |I  kJ  %KD!fnn.DEAfmm-CDA'+D$ -r   Nc                   | j                          | j                  r| j                  t        d      d }	 	 t	        j
                  t        j                  | j                        }| j                  r\t	        j                  t        j                  | j                        }t	        j                  t        j                  | j                        }d| _        ||||||S # t        $ r}|}Y d }~d }~ww xY w# | j                  r\t	        j                  t        j                  | j                        }t	        j                  t        j                  | j                        }d| _        w xY w)Nz'initialization signal guard is inactiveF)rp   rj   r   r   r!   r"   r&   r`   rm   rG   rl   rF   rk   )r   primaryr.   r-   r+   s        r   restorez!InitializationSignalGuard.restore   s   ||t22:,-VWW:>		!%**6+=+=t?R?RS ''MM&--1F1FGMM&..$2H2HI DL'</M . %$% ''MM&--1F1FGMM&..$2H2HI DLs*   .C   	C5)C0+C8 0C55C8 8A1E)r0   r   )rw   r3   r1   z!InitializationCancellation | None)
r4   r5   r6   r7   r   r8   r   rp   ru   rx   r9   r   r   rh   rh   g   s*    G AIu  A/[,r   rh   )rc   rs   rd   zFrameType | Noner1   r2   )'r7   
__future__r   r!   enumr   	threadingr   r   r   typesr   r	   collections.abcr
   typingr   r   r   r   checkin_cli.weekly_operationsr   r   r   $checkin_cli.weekly_operations_parentr   	frozensetrF   rG   r   r8   r   r;   rC   rI   rP   r`   rf   rh   r9   r   r   <module>r      s    H "   < < * $ / / w w Q )6>>6==*I J  J 0"i "W 
"' "
.C 
:S!; S+
1 1r   