§
    (¶Õie  ã                   óJ   — d gZ ddlmZ ddlmZ ddlmZ  G d„ d ¦  «        ZdS )Ú	TaskGroupé   )Úevents)Ú
exceptions)Útasksc                   óP   — e Zd Zd„ Zd„ Zd„ Zd„ Zdddœd„Zded	e	fd
„Z
d„ Zd„ ZdS )r   c                 óª   — d| _         d| _        d| _        d | _        d | _        d| _        t          ¦   «         | _        g | _        d | _	        d | _
        d S )NF)Ú_enteredÚ_exitingÚ	_abortingÚ_loopÚ_parent_taskÚ_parent_cancel_requestedÚsetÚ_tasksÚ_errorsÚ_base_errorÚ_on_completed_fut©Úselfs    ú)/usr/lib/python3.11/asyncio/taskgroups.pyÚ__init__zTaskGroup.__init__   sV   € ØˆŒØˆŒØˆŒØˆŒ
Ø ˆÔØ(-ˆÔ%Ý‘e”eˆŒØˆŒØˆÔØ!%ˆÔÐÐó    c                 ót  — dg}| j         r*|                     dt          | j         ¦  «        › �¦  «         | j        r*|                     dt          | j        ¦  «        › �¦  «         | j        r|                     d¦  «         n| j        r|                     d¦  «         d                     |¦  «        }d|› d�S )	NÚ ztasks=zerrors=Ú
cancellingÚenteredú z
<TaskGroupú>)r   ÚappendÚlenr   r   r	   Újoin)r   ÚinfoÚinfo_strs      r   Ú__repr__zTaskGroup.__repr__   sÂ   € ØˆtˆØŒ;ð 	5Ø�KŠKÐ3¥ T¤[Ñ!1Ô!1Ð3Ð3Ñ4Ô4Ð4ØŒ<ð 	7Ø�KŠKÐ5¥# d¤lÑ"3Ô"3Ð5Ð5Ñ6Ô6Ð6ØŒ>ð 	#Ø�KŠK˜Ñ%Ô%Ð%Ð%ØŒ]ð 	#Ø�KŠK˜	Ñ"Ô"Ð"à—8’8˜D‘>”>ˆØ'˜HÐ'Ð'Ð'Ð'r   c              ƒ   óú   K  — | j         rt          d| ›d�¦  «        ‚d| _         | j        €t          j        ¦   «         | _        t          j        | j        ¦  «        | _        | j        €t          d| ›d�¦  «        ‚| S )Nú
TaskGroup z has been already enteredTz! cannot determine the parent task)r	   ÚRuntimeErrorr   r   Úget_running_loopr   Úcurrent_taskr   r   s    r   Ú
__aenter__zTaskGroup.__aenter__(   s›   è è € ØŒ=ð 	@ÝØ>˜TÐ>Ð>Ð>ñ@ô @ð @àˆŒàŒ:ÐÝÔ0Ñ2Ô2ˆDŒJå!Ô.¨t¬zÑ:Ô:ˆÔØÔÐ$ÝØF˜TÐFÐFÐFñHô Hð Hð ˆr   c              ƒ   ó   K  — d| _         |�#|                      |¦  «        r| j        €|| _        |t          j        u r|nd }| j        r| j                             ¦   «         dk    rd }|�| j        s|  	                    ¦   «          | j
        r{| j        €| j                             ¦   «         | _        	 | j        ƒ d {V —† n9# t          j        $ r'}| j        s|}|  	                    ¦   «          Y d }~nd }~ww xY wd | _        | j
        °{| j
        rJ ‚| j        �| j        ‚|r	| j        s|‚|�(|t          j        ur| j                             |¦  «         | j        r%	 t!          d| j        ¦  «        }|d ‚# d | _        w xY wd S )NTé    zunhandled errors in a TaskGroup)r
   Ú_is_base_errorr   r   ÚCancelledErrorr   r   Úuncancelr   Ú_abortr   r   r   Úcreate_futurer   r   ÚBaseExceptionGroup)r   ÚetÚexcÚtbÚpropagate_cancellation_errorÚexÚmes          r   Ú	__aexit__zTaskGroup.__aexit__8   só  è è € ØˆŒàˆOØ×#Ò# CÑ(Ô(ð àÔ Ð(Ø"ˆDÔð �Ô2Ð2Ð2ˆCˆC¸ð 	%àÔ(ð 	4àÔ ×)Ò)Ñ+Ô+¨qÒ0Ð0ð 04Ð,àˆ>Ø”>ð ð —’‘”�ð Œkð 	*ØÔ%Ð-Ø)-¬×)AÒ)AÑ)CÔ)C�Ô&ð"ØÔ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,øÝÔ,ð "ð "ð "Ø”~ð 
"ð 46Ð0Ø—K’K‘M”M�Møøøøøøøøøð"øøøð &*ˆDÔ"ð' Œkð 	*ð* ”;ÐÐÐàÔÐ'ØÔ"Ð"ð (ð 	/°´ð 	/Ø.Ð.àˆ>˜b­
Ô(AÐAÐAØŒL×Ò Ñ$Ô$Ð$àŒ<ð 	$ð$Ý'Ð(IÈ4Ì<ÑXÔX�Ø˜dÐ"øà#�”Ð#Ð#Ð#Ð#ð	$ð 	$s$   Â1B? Â?C5ÃC0Ã0C5ÅE2 Å2	E;N)ÚnameÚcontextc                ó´  — | j         st          d| ›d�¦  «        ‚| j        r| j        st          d| ›d�¦  «        ‚| j        rt          d| ›d�¦  «        ‚|€| j                             |¦  «        }n| j                             ||¬¦  «        }t          j        ||¦  «         | 	                    | j
        ¦  «         | j                             |¦  «         |S )Nr&   z has not been enteredz is finishedz is shutting down)r;   )r	   r'   r
   r   r   r   Úcreate_taskr   Ú_set_task_nameÚadd_done_callbackÚ_on_task_doneÚadd)r   Úcoror:   r;   Útasks        r   r=   zTaskGroup.create_task‰   sô   € ØŒ}ð 	KÝÐI¨DÐIÐIÐIÑJÔJÐJØŒ=ð 	B ¤ð 	BÝÐ@¨DÐ@Ð@Ð@ÑAÔAÐAØŒ>ð 	GÝÐE¨DÐEÐEÐEÑFÔFÐFØˆ?Ø”:×)Ò)¨$Ñ/Ô/ˆDˆDà”:×)Ò)¨$¸Ð)Ñ@Ô@ˆDÝÔ˜T 4Ñ(Ô(Ð(Ø×Ò˜tÔ1Ñ2Ô2Ð2ØŒ�Š˜ÑÔÐØˆr   r4   Úreturnc                 óh   — t          |t          ¦  «        sJ ‚t          |t          t          f¦  «        S )N)Ú
isinstanceÚBaseExceptionÚ
SystemExitÚKeyboardInterrupt)r   r4   s     r   r-   zTaskGroup._is_base_error�   s.   € Ý˜#�}Ñ-Ô-Ð-Ð-Ð-Ý˜#¥
Õ,=Ð>Ñ?Ô?Ð?r   c                 óx   — d| _         | j        D ]*}|                     ¦   «         s|                     ¦   «          Œ+d S )NT)r   r   ÚdoneÚcancel)r   Úts     r   r0   zTaskGroup._abort¡   sB   € ØˆŒà”ð 	ð 	ˆAØ—6’6‘8”8ð Ø—’‘
”
�
øð	ð 	r   c                 ó¨  — | j                              |¦  «         | j        �:| j         s3| j                             ¦   «         s| j                             d¦  «         |                     ¦   «         rd S |                     ¦   «         }|€d S | j                             |¦  «         |  	                    |¦  «        r| j
        €|| _
        | j                             ¦   «         r,| j                             d|›d| j        › d�||dœ¦  «         d S | j        s=| j        s8|                      ¦   «          d| _        | j                             ¦   «          d S d S d S )NTzTask z% has errored out but its parent task z is already completed)ÚmessageÚ	exceptionrC   )r   Údiscardr   rK   Ú
set_resultÚ	cancelledrP   r   r   r-   r   r   r   Úcall_exception_handlerr   r   r0   rL   )r   rC   r4   s      r   r@   zTaskGroup._on_task_done¨   s’  € ØŒ×Ò˜DÑ!Ô!Ð!àÔ!Ð-°d´kÐ-ØÔ)×.Ò.Ñ0Ô0ð 8ØÔ&×1Ò1°$Ñ7Ô7Ð7à�>Š>ÑÔð 	ØˆFà�nŠnÑÔˆØˆ;ØˆFàŒ×Ò˜CÑ Ô Ð Ø×Ò˜sÑ#Ô#ð 	#¨Ô(8Ð(@Ø"ˆDÔàÔ×!Ò!Ñ#Ô#ð 		ð ŒJ×-Ò-ðL 4ð Lð LØ#'Ô#4ðLð Lð Là Øð	/ð /ñ ô ð ð ˆFàŒ~ð 	' dÔ&Cð 	'ð& �KŠK‰MŒMˆMØ,0ˆDÔ)ØÔ×$Ò$Ñ&Ô&Ð&Ð&Ð&ð+	'ð 	'ð 	'ð 	'r   )Ú__name__Ú
__module__Ú__qualname__r   r$   r*   r9   r=   rG   Úboolr-   r0   r@   © r   r   r   r      sº   € € € € € ð
&ð 
&ð 
&ð(ð (ð (ðð ð ð O$ð O$ð O$ðb )-°dð ð ð ð ð ð(@ -ð @°Dð @ð @ð @ð @ðð ð ð2'ð 2'ð 2'ð 2'ð 2'r   N)Ú__all__r   r   r   r   r   rY   r   r   ú<module>r[      s€   ðð
 ˆ-€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðN'ð N'ð N'ð N'ð N'ñ N'ô N'ð N'ð N'ð N'r   