
    t i;                        S SK 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
  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  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  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  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   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*  S S K+J,r,  S S!K-J.r.  S S"K-J/r/  S S#K-J0r0  S S$K1J2r2  S%\\3\	4   S&S4S' jr4 " S( S)\5      r5 " S* S+\%5      r6 " S, S-\65      r7 " S. S/\65      r8 " S0 S1\65      r9 " S2 S3\5\.S4S59r: " S6 S7\5      r;S8S9\* 30r< " S: S;\5\.S<S59r= " S= S>\\\3\54      5      r> " S? S@\.SS59r?g)A    N)cached_property)
expandvars)Path)Any)ClassVar)Dict)	Generator)Iterator)KeysView)List)Literal)MutableMapping)Optional)Tuple)Type)Union)cast)urljoin)urlparse)	BaseModel)Field)	RootModel)field_validator)model_serializer)model_validator)	FieldInfo)BaseSettings)PydanticBaseSettingsSource)Self)__version__)UnknownSiteName)AnacondaBaseSettings) AnacondaConfigTomlSettingsSource)anaconda_config_path)console
set_fieldsreturnc                     SR                  [        S U R                  5        5       5      5      nSSU S3-   S-   S-   S-   n[        R                  " S	U S
35        [
        R                  " U[        5        g )N, c              3   .   #    U  H  nS U S 3v   M     g7f)"N ).0ss     4lib/python3.13/site-packages/anaconda_auth/config.py	<genexpr>6_raise_deprecated_field_set_warning.<locals>.<genexpr>+   s     !F4EqAaS(4Es   zThe following fields have been set using legacy environment variables prefixed with 'ANACONDA_CLOUD_` or in the `plugins.cloud` section zof `~/.anaconda/config.toml`: z

z@Please either rename environment variables to the corresponding zA`ANACONDA_AUTH_` version, or replace the `plugins.cloud` section z'of the config file with `plugins.auth`.z[red]z[/red])joinsortedkeysr%   printwarningswarnDeprecationWarning)r&   
fields_strwarning_texts      r/   #_raise_deprecated_field_set_warningr;   *   s    6!FJOO4E!FFGJ	O*:,d
;	< M	M N		N
 4	4  MME,v./MM    c                      \ rS rSr% \" SSS9r\\   \S'   Sr	\
S   \S'   S	r\\S
'   Sr\\   \S'   Sr\\   \S'   Sr\\\\\\4   4      \S'   \" S5      R#                  5       r\\S'   Sr\\\4   \S'   Sr\\\\\4   \4      \S'   Sr\\S'   Sr\\S'   Sr\\S'   SS\ 30r\\\4   \S'   Sr\\S'   Sr\\S'   Sr\\S '   Sr\\S!'   Sr \\!\\4      \S"'   Sr"\\   \S#'   Sr#\\   \S$'   Sr$\\S%'   S&r%\\S''   S(r&\\S)'   Sr'\\   \S*'   Sr(\\S+'   \)" SS,S-9\*S.\S/\4S0 j5       5       r+\," S1S-9S2\-S/\.4S3 j5       r/\)" S*S,S-9\*S.\S-  S/\S-  4S4 j5       5       r0\)" S
SS,S-9\*S.\S-  S/\S-  4S5 j5       5       r1\2" S6S-9S/\34S7 j5       r4\)" SS,S-9\*S.\-S/\-4S8 j5       5       r5\6S/\4S9 j5       r7\6S/\4S: j5       r8\6S/\4S; j5       r9\6S/\4S< j5       r:\6S@S= j5       r;\<S/\\S4   4S> j5       r=S?r>g)AAnacondaAuthSite;   NT)defaultexcludesiteanaconda-keyring)systemrC   preferred_token_storageanaconda.comdomainauth_domain_overrideapi_keykeyringz~/.anaconda/keyringkeyring_path
ssl_verifyextra_headersz$b4ad7f1d-c784-46b5-a9fe-106e50441f5a	client_idzhttp://127.0.0.1:8000/auth/oidcredirect_uriz!/.well-known/openid-configurationopenid_config_path
User-Agentzanaconda-auth/oidc_request_headersz/app/local-login-successlogin_success_pathz/app/local-login-errorlogin_error_pathFuse_unified_repo_api_keyhash_hostnameproxy_serversclient_certclient_cert_keyuse_device_flowzanaconda-cloudenv_manager_channelzanaconda-env-managerenv_manager_packageenv_manager_version_mergedbefore)modevaluer'   c                 F    [        [        U5      5      R                  5       $ N)r   r   
expanduserclsra   s     r/   expand_keyring_path$AnacondaAuthSite.expand_keyring_pathV   s     Ju%&1133r<   wraphandlerc                     U" U 5      nSU;   a6  US   n[        U[        5      (       a  [        UR                  5       5      US'   U$ )NrK   )
isinstancer   strabsolute)selfrj   datakps       r/   _serialize_model!AnacondaAuthSite._serialize_model[   sF     t}T!n%B"d##'*2;;='9^$r<   c                 J    Uc  U$ [         R                  " SU5      c  SU 3$ U$ )Nz^[>=<!]=)rematchre   s     r/   env_manager_version_comparison/AnacondaAuthSite.env_manager_version_comparisonf   s0     =L88J&.ug;Lr<   c                     Uc  U$ [         R                  " SU5      (       d  SU 3nOUn[        U5      nUR                  (       d  [	        U S35      eUR                  $ )Nzhttp(s?)\:\/\/https://z! does not look like a domain name)rv   rw   r   netloc
ValueError)rf   ra   urlparseds       r/   domain_validator!AnacondaAuthSite.domain_validatorq   s^     =Lxx)511UG$CC#}}w&GHII}}r<   afterc                 B    U R                   c  U R                  U l         U $ rc   )rB   rG   ro   s    r/   set_site_name_if_none&AnacondaAuthSite.set_site_name_if_none   s    99DIr<   c                 n    [        U[        [        45      (       d  [        S5      eUS:X  a  gUS:X  a  gU$ )NzMust be bool or str0F1T)rl   boolrm   r}   re   s     r/   validate_ssl_verify$AnacondaAuthSite.validate_ssl_verify   s:     %$--233C<c\Lr<   c                 T    U R                   (       a  U R                   $ U R                  $ )z[The authentication domain base URL.

Defaults to the `auth` subdomain of the main domain.

)rH   rG   r   s    r/   auth_domainAnacondaAuthSite.auth_domain   s#     $$,,,{{r<   c                 H    [        SU R                   3U R                  5      $ )z4The URL from which to load the OpenID configuration.r{   )r   r   rP   r   s    r/   well_known_urlAnacondaAuthSite.well_known_url   s%     $"2"2!34d6M6MNNr<   c                 H    [        SU R                   3U R                  5      $ )z8The location to redirect after auth flow, if successful.r{   )r   rG   rS   r   s    r/   login_success_url"AnacondaAuthSite.login_success_url   s"     $++/1H1HIIr<   c                 H    [        SU R                   3U R                  5      $ )z?The location to redirect after auth flow, if there is an error.r{   )r   rG   rT   r   s    r/   login_error_url AnacondaAuthSite.login_error_url   s"     $++/1F1FGGr<   c                     SSK Jn  U" U S9nUR                  U R                  SS9nUR	                  5         [        S0 UR                  5       D6nU R                  R                  SU5      $ )z?The OIDC configuration, cached as a regular instance attribute.r   )
BaseClientrB   F)auth_oidcr,   )	anaconda_auth.clientr   getr   raise_for_statusOpenIDConfigurationjson__dict__
setdefault)ro   r   clientresoidc_configs        r/   oidcAnacondaAuthSite.oidc   sh     	4&jj  
 	)7CHHJ7}}''==r<   c                 `     SSK Jn   U" 5       $ ! [         a     g f = f! [         a     g f = f)Nr   )token_string)anaconda_anon_usage.tokensr   ImportError	Exception)ro   r   s     r/   	aau_tokenAnacondaAuthSite.aau_token   s@    	?	>!	  		
  	 	s      

--r   )r'   r   )?__name__
__module____qualname____firstlineno__r   rB   r   rm   __annotations__rE   r   rG   rH   rI   rJ   r   r   rd   rK   rL   r   r   rM   rN   rO   rP   versionrR   rS   rT   rU   rV   rW   r   rX   rY   rZ   r[   r\   r]   r^   r   classmethodrg   r   r   dictrr   rx   r   r   r   r   r   propertyr   r   r   r   r   r   r   __static_attributes__r,   r<   r/   r>   r>   ;   s^   d;D(3-;EWW%ABW FC *.(3-.!GXc]!37GXd3S#X./0734??AL$A#'JdCi ':>M8E$sCx.#"567>;Is;9L#9AA,8N7):T+U$sCx.U884c4%*d*M48<M8N3845<!%K#%%)OXc])!OT!//55)-#-GT^(34 4 4  44 6"   # *:3: #*   ; X5HES4Z C$J   F '"t  # \1	 	 	  2	 S   O O O J3 J J H H H > > 5d+  r<   r>   c            	       6    \ rS rSrS\S\S\\\\4   4S jr	Sr
g)AnacondaSettingsSource   field
field_namer'   c                     g)N)N Fr,   )ro   r   r   s      r/   get_field_value&AnacondaSettingsSource.get_field_value   s     r<   r,   N)r   r   r   r   r   rm   tupler   r   r   r   r,   r<   r/   r   r      s*    ,/	sC~	r<   r   c                   N   ^  \ rS rSrS\\   4U 4S jjrS\\\	4   4S jr
SrU =r$ )CondaContextSettingsSource   settings_clsc                 p   > [         TU ]  U5        UR                  R                  SS5      (       + U l        g )Ndisable_conda_contextF)super__init__model_configr   enabled)ro   r   	__class__s     r/   r   #CondaContextSettingsSource.__init__   s/    &'44889PRWXXr<   r'   c                 ^   0 nU R                   (       d  U$  SSKJn  U" 5       nUR                  (       a  [	        UR                  5      US'   UR
                  (       a  UR
                  US'   UR                  (       a  UR                  US'   UR                  US'   U$ ! [         a     U$ f = f)Nr   )ContextrW   rX   rY   rL   )	r   conda.base.contextr   rW   r   client_ssl_certclient_ssl_cert_keyrL   r   )ro   valuesr   contexts       r/   __call__#CondaContextSettingsSource.__call__   s    !#||M	2iG$$*.w/D/D*E'&&(/(?(?}%**,3,G,G()#*#5#5F< 
   		s   BB 
B,+B,)r   )r   r   r   r   typer   r   r   rm   r   r   r   __classcell__r   s   @r/   r   r      s/    YT,%7 Y$sCx.  r<   r   c                   ,    \ rS rSrS\\\4   4S jrSrg)AnacondaCloudSettingsSource   r'   c                 Z    [        SS9nUR                  SS9nU(       a  [        U5        U$ )NF)raise_deprecation_warningTexclude_unset)AnacondaCloudConfig
model_dumpr;   )ro   cloud_configr&   s      r/   r   $AnacondaCloudSettingsSource.__call__   s0    *UK!,,4,@
/
;r<   r,   N	r   r   r   r   r   rm   r   r   r   r,   r<   r/   r   r      s    $sCx. r<   r   c                   ,    \ rS rSrS\\\4   4S jrSrg)AnacondaSiteSettingsSource   r'   c                    U R                   n[        5       nUR                  nUR                  S5      (       a  UR	                  US   5      nOGUR                  S5      (       a   UR                  US   5      nOUR                  UR                  5      nUR                  U   nUR                  SS9nUR                  US'   U$ ! [         a    0 s $ f = f)NrB   rG   Tr   )current_stateAnacondaAuthSitesConfigsitesr   	_find_key_find_domainr!   _find_atdefault_siterootr   rB   )ro   statesite_config	all_sitesrB   configr   s          r/   r   #AnacondaSiteSettingsSource.__call__   s    ""-/%%	99V &&uV}5DYYx  
 --eHo> %%k&>&>?D%"""6v # 	s   %C CCr,   Nr   r,   r<   r/   r   r      s    $sCx. r<   r   c                   P    \ rS rSr\S\\   S\S\S\S\S\\S4   4S	 j5       r	S
r
g)AnacondaAuthConfigi  r   init_settingsenv_settingsdotenv_settingsfile_secret_settingsr'   .c                 p    UUUU[        U 5      [        U 5      [        U[        5       5      [	        U 5      4$ rc   )r   r   r#   r$   r   )rf   r   r   r   r   r   s         r/   settings_customise_sources-AnacondaAuthConfig.settings_customise_sources  s@      &s+',,\;O;QR&s+	
 		
r<   r,   N)r   r   r   r   r   r   r   r   r   r  r   r,   r<   r/   r   r     s^    
<(
 2
 1	

 4
 9
 
)3.	/
 
r<   r   r   )plugin_namec                   >    \ rS rSr% \\S'   \\S'   Sr\\   \S'   Srg)r   i.  authorization_endpointtoken_endpointNdevice_authorization_endpointr,   )	r   r   r   r   rm   r   r  r   r   r,   r<   r/   r   r   .  s    37!8C=7r<   r   rQ   zanaconda-cloud-auth/c                   R   ^  \ rS rSr% \r\\\4   \S'   SS\	S\
4U 4S jjjrSrU =r$ )r   i7  rR   r   kwargsc                    > U R                   S:X  a"  U(       a  [        R                  " S[        5        [        TU ]  " S0 UD6  g )Nr   zIAnacondaCloudConfig is deprecated, please use AnacondaAuthConfig instead.r,   )r   r6   r7   r8   r   r   )ro   r   r	  r   s      r/   r   AnacondaCloudConfig.__init__:  s7    >>227PMM[" 	"6"r<   r,   )T)r   r   r   r   _OLD_OIDC_REQUEST_HEADERSrR   r   rm   r   r   r   r   r   r   r   s   @r/   r   r   7  s.    +D$sCx.D#$ # # #r<   r   cloudc                       \ rS rSrS\\   S\4S jrS\\   S\4S jrS\\   S\4S jrS\S\	4S jr
S\\   4S	 jrS\4S
 jrS\\   4S jrS\\\\4   SS4   4S jrS\\SS4   4S jrSrg)SitesiC  keyr'   c                 V    XR                   ;   a  U$ [        SU S[        5        35      e)NzThe site name  has not been configured in )r   r!   r$   ro   r  s     r/   r   Sites._find_keyD  s4    ))JSE!=>R>T=UV
 	
r<   rG   c                    U R                   R                  5        VVs/ s H  u  p#UR                  U:X  d  M  X#4PM     nnn[        U5      S:X  a  US   S   $ U(       a*  SR	                  S U 5       5      n[        SU SU S35      eUS:X  a  [        5       U R                   U'   U$ [        S	U S
[        5        35      es  snnf )N   r   r)   c              3   *   #    U  H	  u  pUv   M     g 7frc   r,   )r-   skey_s      r/   r0   %Sites._find_domain.<locals>.<genexpr>R  s     9gdTs   zThe domain z( matches more than one configured site ()rF   zThe site or domain r  )	r   itemsrG   lenr2   r}   r>   r!   r$   )ro   rG   r  rB   matchesmstrs         r/   r   Sites._find_domainK  s    )-):
):ICdkkV>SKSK): 	 
 w<11:a= 99999DfX%MdVSTU  ~% 0 2DIIfM!%fX-IJ^J`Iab 
s
   CCc                 h     U R                  U5      $ ! [         a    U R                  U5      s $ f = frc   )r   r!   r   r  s     r/   r   Sites._find_at^  s6    
	*>>#&& 	*$$S))	*s    11c                 6    U R                  U5      n[        US9$ )Nr   )r   r   )ro   r  lookups      r/   __getitem__Sites.__getitem__h  s    s#!v..r<   c              #   T   #    U R                   R                  5        S h  vN   g  N7frc   )r   __iter__r   s    r/   r(  Sites.__iter__l  s     99%%'''s   (&(c                 ,    [        U R                  5      $ rc   )r  r   r   s    r/   __len__Sites.__len__o  s    499~r<   c                 6    U R                   R                  5       $ rc   )r   r4   r   s    r/   r4   
Sites.keysr  s    yy~~r<   Nc              #   J   #    U R                  5        H  nXU   4v   M     g 7frc   r4   ro   ks     r/   r  Sites.itemsu  s!     A1g, s   !#c              #   F   #    U R                  5        H	  nX   v   M     g 7frc   r0  r1  s     r/   r   Sites.valuesy  s     A'M s   !r,   )r   r   r   r   r   rm   r   r   r   r   r%  r
   r(  intr+  r   r4   r	   r   r>   r  r   r   r,   r<   r/   r  r  C  s    
Xc] 
s 
8C= S &*HSM *c */s /'9 /((3- (  hsm  ys,<'<!=tT!IJ 	"2D$">? r<   r  c                     ^  \ rS rSr% Sr\\S       \S'   Sr\\	   \S'   \
" 0 5      r\
\S'   S\SS 4U 4S jjrS\SS4U 4S	 jjr\S\\	   4S
 j5       r\SS\\	   S\4S jj5       rSS\S\\	   SS4S jjrS\	SS4S jrSrU =r$ )r   i~  N	_instancer   r   r	  r'   c                 ^   > U R                   c  [        TU ]	  U 5      U l         U R                   $ rc   )r8  r   __new__)rf   r	  r   s     r/   r:  AnacondaAuthSitesConfig.__new__  s'    == !GOC0CM}}r<   c                   > [         TU ]  " S0 UD6  U R                  cq  U R                  R                  (       a.  [        [        U R                  R                  5      5      U l        O(SU l        [        5       U R                  R                  S'   U R                  R                  R                  5        H  u  p#X#l	        M     g )NrF   r,   )
r   r   r   r   r   nextiterr>   r  rB   )ro   r	  r  ra   r   s       r/   r    AnacondaAuthSitesConfig.__init__  s    "6"$zz$(djjoo)>$?!$2!2B2D

/**////1JCJ 2r<   c                 J    [        U " 5       R                  R                  5      $ rc   )listr   r   )rf   s    r/   r   !AnacondaAuthSitesConfig.all_sites  s    CEKK$$%%r<   rB   c                 j    U " 5       nU=(       d    UR                   =(       d    SnUR                  U   $ )zALoad the site configuration object (site=None loads default_site)rF   )r   r   )rf   rB   r   sstrs       r/   	load_site!AnacondaAuthSitesConfig.load_site  s/     AF//A>||D!!r<   namec                 |    U(       a  UnO[        [        UR                  5      nXR                  R                  U'   g rc   )r   rm   rB   r   r   )ro   rB   rG  r  s       r/   addAnacondaAuthSitesConfig.add  s*    CsDII&C#

r<   c                 \   U R                   R                  U5      nU R                   R                  U	 U R                   R                  (       d!  [        5       U R                   R                  S'   U R                  U:X  a.  [        [        U R                   R                  5      5      U l        g g )NrF   )r   r   r   r>   r   r=  r>  )ro   rG  r  s      r/   removeAnacondaAuthSitesConfig.remove  ss    jj!!$'JJOOC zz.>.@DJJOON+# $T$**//%: ;D $r<   )r   rc   )r   r   r   r   r8  r   r   r   r   rm   r  r   r   r:  r   r   r   r   r>   rE  rI  rL  r   r   r   s   @r/   r   r   ~  s    ?CIx!:;<C"&L(3-&9E5s '@ 
	 	 	 &$s) & & "Xc] "6F " "$( $ $ $	<3 	<4 	< 	<r<   r   )@rv   r6   	functoolsr   os.pathr   pathlibr   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   urllib.parser   r   pydanticr   r   r   r   r   r   pydantic.fieldsr   pydantic_settingsr   r   typing_extensionsr   anaconda_authr    r   anaconda_auth.exceptionsr!   anaconda_cli_base.configr"   r#   r$   anaconda_cli_base.consoler%   rm   r;   r>   r   r   r   r   r   r   r  r   r  r   r,   r<   r/   <module>r[     sC   	  %           !        !    $ % $ % * 8 " 0 4 9 E 9 -DcN t "Oy Od7 !7 <"8 !7 8
)+?V 
,8) 8 *-A'+KL 	#*,@g 	#8Id3 0012 8v2<2 2<r<   