
    <yh
                       % S r SSKJr  SSKrSSKJr  SSKJr  SSKJ	r	  SSK
Jr  SS	KJrJrJr  SS
KJrJr  SSKJrJr  SSKJr  \(       a  SSKJrJr  SSKJr  SSKJr  SrS\S'   Sr S\S'   S"S jr!\!" 5       r"S\S'   \RF                  " S5      =(       a    \RF                  " S5      r$S\S'   S#S jr%        S$S jr&      S%S jr'        S&S jr(        S&S jr)        S'S jr*S(S  jr+S)S! jr,g)*zKHigh-level API functions for interacting with a channel's Terms of Service.    )annotationsN)TYPE_CHECKING)boolify)Channel   )CondaToSMissingError)get_local_metadataget_local_metadataswrite_metadata)	LocalPair
RemotePair)get_all_channel_pathsget_cache_paths)get_remote_metadata)IterableIterator)Path)Final)APPVEYOR
BITRISE_IOBUDDY	BUILDKITECICIRCLECI	CIRRUS_CICONCOURSE_CIDRONEGITHUB_ACTIONS	GITLAB_CISAIL_CI	SEMAPHORETF_BUILDTRAVISWERCKERWOODPECKER_CIr   CI_BOOLEAN_VARS)BAMBOO_BUILDKEYCODEBUILD_BUILD_IDHEROKU_TEST_RUN_IDJENKINS_URLTEAMCITY_VERSIONCI_PRESENCE_VARSc                    [        [        R                  [        5       H  n U (       d  M  [	        U 5      (       a  M    g   [        [        R                  [        5       H  n [	        U 5      (       d  M    g   [        S [         5       5      $ )z)Determine if running in a CI environment.FTc              3  N   #    U  H  n[         R                  " U5      v   M     g 7f)N)osgetenv).0vars     6lib/python3.13/site-packages/conda_anaconda_tos/api.py	<genexpr>_is_ci.<locals>.<genexpr>F   s     :)9#ryy~~)9s   #%)mapr/   r0   r&   r   anyr,   )	var_values    r3   _is_cir9   8   sd     O4	9WY// 5
 O4	9 5
 :)9:::    r   JPY_SESSION_NAMEJPY_PARENT_PIDJUPYTERc               '     #    [        5       n[        [        U 5       HY  n[        [        UR                  5       5       H4  n[        UR                  5      nX1;  d  M  Uv   UR                  U5        M6     M[     g7f)z2Yield all unique channels from the given channels.N)setr6   r   urlsbase_urladd)channelsseenmultichannelchannels       r3   get_channelsrG   P   s`      DGX.7L$5$5$78Gg../G"!	 9 /s   AA;A;c               &   S=p4 [        XS9n [        X/S9nU(       a  UR                  U:  a  U$ [	        UR                  UR
                  US9$ ! [         a  nUn SnANTSnAff = f! [         a  nU(       a  XEe[        US9s SnA$ SnAff = f)z8Get the Terms of Service metadata for the given channel.Ncache_timeoutextend_search_pathmetadatapathremote)rN   )r   r   r	   rN   r   rO   r   )rF   tos_rootrJ   remote_metadata
remote_excexc
local_pairs          r3   get_one_tosrV   ]   s     $('O-gS
'JO
 *"5"5"H(("
 	
#   
   4%?334s4   	A 
A* 
A'A""A'*
B4BBBc              #     #    [        U /S9 HI  u  p# [        X!S9nUR                  U:  a  X#4v   M&  U[	        UR                  UR
                  US94v   MK     g! [         a     M[  f = f7f)z.Yield metadata of all stored Terms of Service.rK   rI   rM   N)r
   r   r   rN   r   rO   )rQ   rJ   rF   rU   rR   s        r3   get_stored_tosrX      s       3xjQ	1'WO /1%% '00#*   R $ 		s'   A,	A?A,
A)%A,(A))A,c               l    [        U UUS9nUR                  =(       d    UR                  n[        XUSS9$ )z2Accept the Terms of Service for the given channel.rQ   rJ   Ttos_acceptedrV   rP   rN   r   rF   rQ   rJ   pairrN   s        r3   
accept_tosr`      s:     #D
 {{+dmmH(XDIIr:   c               l    [        U UUS9nUR                  =(       d    UR                  n[        XUSS9$ )z2Reject the Terms of Service for the given channel.rZ   Fr[   r]   r^   s        r3   
reject_tosrb      s:     #D
 {{+dmmH(XEJJr:   c              '  
  #    [        5       n[        U6  H#  n U[        X@US94v   UR	                  U5        M%     [        U US9 H"  u  pEXC;  d  M  XE4v   UR	                  U5        M$     g! [         a	    US4v    NXf = f7f)zHList all channels and whether their Terms of Service have been accepted.rZ   N)r?   rG   rV   r   rB   rX   )rQ   rJ   rC   rD   rF   metadata_pairs         r3   get_all_tosre      s      D*	 GmT  	 + #1## ((HHW# $ 	 4-	 s-   BA-'BB-B =B?B  Bc               #     #    [        5        H  n  U R                  5         U v   M     g! [        [        [        4 a     M5  f = f7f)zClean all metadata cache files.N)r   unlinkPermissionErrorFileNotFoundErrorIsADirectoryError)rO   s    r3   clean_cacherk      sE     !	KKM J "  !24EF 	 		$   A*	AAAAAc              #     #    [        U /S9 H  n UR                  5         Uv   M     g! [        [        [        4 a     M5  f = f7f)zClean all metadata directories.rK   N)r   rg   rh   ri   rj   )rQ   rO   s     r3   	clean_tosrn      sJ     %(D	KKM J E  !24EF 	 		rl   )returnbool)rC   str | Channelro   zIterable[Channel])rF   rq   rQ   str | os.PathLike[str] | PathrJ   int | float | Nonero   zLocalPair | RemotePair)rQ   rr   rJ   rs   ro   z#Iterator[tuple[Channel, LocalPair]])rF   rq   rQ   rr   rJ   rs   ro   r   )rC   rq   rQ   zstr | os.PathLike | PathrJ   rs   ro   z7Iterator[tuple[Channel, LocalPair | RemotePair | None]])ro   Iterator[Path])rQ   rr   ro   rt   )-__doc__
__future__r   r/   typingr   conda.auxlib.type_coercionr   conda.models.channelr   
exceptionsr   localr	   r
   r   modelsr   r   rO   r   r   rP   r   collections.abcr   r   pathlibr   r   r&   __annotations__r,   r9   r   r0   r=   rG   rV   rX   r`   rb   re   rk   rn    r:   r3   <module>r      sr   R " 	   . ( , J J ) 8 '2 * % ;$ HE  -.N299=M3N N
" 
 
 , 
 &	 

  
F+ & )	6JJ ,J &	J
 J KK ,K &	K
 K & & =	8r:   