
    i4                        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!\\,\4   S"S4S# jr- " S$ S%\5      r. " S& S'\5      r/ " S( S)\/5      r0 " S* S+\/5      r1 " S, S-\/5      r2 " S. S/\.\'S0S19r3 " S2 S3\5      r4S4S5\# 30r5 " S6 S7\.\'S8S19r6 " S9 S:\\\,\.4      5      r7 " S; S<\'SS19r8g)=    N)cached_property)Any)ClassVar)Dict)	Generator)Iterator)KeysView)List)Literal)MutableMapping)Optional)Tuple)Type)Union)cast)urljoin)	BaseModel)Field)	RootModel)field_validator)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_warningr7   %   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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%S&9S'\$4S( j5       r%\&" SS)S&9\'S*\(S'\(4S+ j5       5       r)\*S'\4S, j5       r+\*S'\4S- j5       r,\*S'\4S. j5       r-\*S'\4S/ j5       r.\*S3S0 j5       r/\0S'\\S4   4S1 j5       r1S2r2g)4AnacondaAuthSite6   NT)defaultexcludesiteanaconda-keyring)systemr?   preferred_token_storageanaconda.comdomainauth_domain_overrideapi_keykeyring
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_flow_mergedafter)moder#   c                 B    U R                   c  U R                  U l         U $ N)r>   rC   selfs    r+   set_site_name_if_none&AnacondaAuthSite.set_site_name_if_noneM   s    99DIr8   beforevaluec                 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)
isinstanceboolstr
ValueError)clsr`   s     r+   validate_ssl_verify$AnacondaAuthSite.validate_ssl_verifyT   s:     %$--233C<c\Lr8   c                 T    U R                   (       a  U R                   $ U R                  $ )z[The authentication domain base URL.

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

)rD   rC   r[   s    r+   auth_domainAnacondaAuthSite.auth_domaina   s#     $$,,,{{r8   c                 H    [        SU R                   3U R                  5      $ )z4The URL from which to load the OpenID configuration.https://)r   rl   rK   r[   s    r+   well_known_urlAnacondaAuthSite.well_known_urll   s%     $"2"2!34d6M6MNNr8   c                 H    [        SU R                   3U R                  5      $ )z8The location to redirect after auth flow, if successful.ro   )r   rC   rN   r[   s    r+   login_success_url"AnacondaAuthSite.login_success_urlq   s"     $++/1H1HIIr8   c                 H    [        SU R                   3U R                  5      $ )z?The location to redirect after auth flow, if there is an error.ro   )r   rC   rO   r[   s    r+   login_error_url AnacondaAuthSite.login_error_urlv   s"     $++/1F1FGGr8   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r>   F)auth_oidcr(   )	anaconda_auth.clientry   getrp   raise_for_statusOpenIDConfigurationjson__dict__
setdefault)r\   ry   clientresoidc_configs        r+   oidcAnacondaAuthSite.oidc{   sh     	4&jj  
 	)7CHHJ7}}''==r8   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)r\   r   s     r+   	aau_tokenAnacondaAuthSite.aau_token   s@    	?	>!	  		
  	 	s      

--rz   )r#   r   )3__name__
__module____qualname____firstlineno__r   r>   r   rf   __annotations__rA   r   rC   rD   rE   rF   r   rG   r   re   rH   rI   rJ   rK   versionrM   rN   rO   rP   rQ   rR   r   rS   rT   rU   rV   r   r   r]   r   classmethodr   ri   propertyrl   rp   rs   rv   r   r   r   __static_attributes__r(   r8   r+   r:   r:   6   sQ   d;D(3-;EWW%ABW FC *.(3-.!GXc]!37GXd3S#X./07#'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!GT'"t  # \1	 	 	  2	 S   O O O J3 J J H H H > > 5d+  r8   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(   )r\   r   r   s      r+   get_field_value&AnacondaSettingsSource.get_field_value   s     r8   r(   N)r   r   r   r   r   rf   tupler   re   r   r   r(   r8   r+   r   r      s*    ,/	sC~	r8   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)r\   r   	__class__s     r+   r   #CondaContextSettingsSource.__init__   s/    &'44889PRWXXr8   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   )ContextrR   rS   rT   rG   )	r   conda.base.contextr   rR   dictclient_ssl_certclient_ssl_cert_keyrG   r   )r\   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   rf   r   r   r   __classcell__r   s   @r+   r   r      s/    YT,%7 Y$sCx.  r8   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_dumpr7   )r\   cloud_configr"   s      r+   r   $AnacondaCloudSettingsSource.__call__   s0    *UK!,,4,@
/
;r8   r(   N	r   r   r   r   r   rf   r   r   r   r(   r8   r+   r   r      s    $sCx. r8   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)Nr>   rC   Tr   )current_stateAnacondaAuthSitesConfigsitesr~   	_find_key_find_domainr   _find_atdefault_siterootr   r>   )r\   statesite_config	all_sitesr>   configr   s          r+   r   #AnacondaSiteSettingsSource.__call__   s    ""-/%%	99V &&uV}5DYYx  
 --eHo> %%k&>&>?D%"""6v # 	s   %C CCr(   Nr   r(   r8   r+   r   r      s    $sCx. r8   r   c                   P    \ rS rSr\S\\   S\S\S\S\S\\S4   4S	 j5       r	S
r
g)AnacondaAuthConfig   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$ rZ   )r   r   r   r    r   )rh   r   r   r   r   r   s         r+   settings_customise_sources-AnacondaAuthConfig.settings_customise_sources   s@      &s+',,\;O;QR&s+	
 		
r8   r(   N)r   r   r   r   r   r   r   r   r   r   r   r(   r8   r+   r   r      s^    
<(
 2
 1	

 4
 9
 
)3.	/
 
r8   r   r{   )plugin_namec                   >    \ rS rSr% \\S'   \\S'   Sr\\   \S'   Srg)r      authorization_endpointtoken_endpointNdevice_authorization_endpointr(   )	r   r   r   r   rf   r   r   r   r   r(   r8   r+   r   r      s    37!8C=7r8   r   rL   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   i  rM   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   r2   r3   r4   r   r   )r\   r   r   r   s      r+   r   AnacondaCloudConfig.__init__  s7    >>227PMM[" 	"6"r8   r(   )T)r   r   r   r   _OLD_OIDC_REQUEST_HEADERSrM   r   rf   r   re   r   r   r   r   r   s   @r+   r   r     s.    +D$sCx.D#$ # # #r8   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)Sitesi  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    r\   r   s     r+   r   Sites._find_key  s4    ))JSE!=>R>T=UV
 	
r8   rC   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rZ   r(   )r)   skey_s      r+   r,   %Sites._find_domain.<locals>.<genexpr>  s     9gdTs   zThe domain z( matches more than one configured site ()rB   zThe site or domain r   )	r   itemsrC   lenr.   rg   r:   r   r    )r\   rC   r   r>   matchesmstrs         r+   r   Sites._find_domain  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rZ   )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$ )Nrz   )r   r   )r\   r   lookups      r+   __getitem__Sites.__getitem__4  s    s#!v..r8   c              #   T   #    U R                   R                  5        S h  vN   g  N7frZ   )r   __iter__r[   s    r+   r	  Sites.__iter__8  s     99%%'''s   (&(c                 ,    [        U R                  5      $ rZ   )r   r   r[   s    r+   __len__Sites.__len__;  s    499~r8   c                 6    U R                   R                  5       $ rZ   )r   r0   r[   s    r+   r0   
Sites.keys>  s    yy~~r8   Nc              #   J   #    U R                  5        H  nXU   4v   M     g 7frZ   r0   r\   ks     r+   r   Sites.itemsA  s!     A1g, s   !#c              #   F   #    U R                  5        H	  nX   v   M     g 7frZ   r  r  s     r+   r   Sites.valuesE  s     A'M s   !r(   )r   r   r   r   r   rf   r   r   r   r   r  r   r	  intr  r	   r0   r   r   r:   r   r   r   r(   r8   r+   r   r     s    
Xc] 
s 
8C= S &*HSM *c */s /'9 /((3- (  hsm  ys,<'<!=tT!IJ 	"2D$">? r8   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   iJ  N	_instancer   r   r   r#   c                 ^   > U R                   c  [        TU ]	  U 5      U l         U R                   $ rZ   )r  r   __new__)rh   r   r   s     r+   r  AnacondaAuthSitesConfig.__new__P  s'    == !GOC0CM}}r8   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 )NrB   r(   )
r   r   r   r   r   nextiterr:   r   r>   )r\   r   r   r`   r   s       r+   r    AnacondaAuthSitesConfig.__init__U  s    "6"$zz$(djjoo)>$?!$2!2B2D

/**////1JCJ 2r8   c                 J    [        U " 5       R                  R                  5      $ rZ   )listr   r   )rh   s    r+   r   !AnacondaAuthSitesConfig.all_sites`  s    CEKK$$%%r8   r>   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)rB   )r   r   )rh   r>   r   sstrs       r+   	load_site!AnacondaAuthSitesConfig.load_sited  s/     AF//A>||D!!r8   namec                 |    U(       a  UnO[        [        UR                  5      nXR                  R                  U'   g rZ   )r   rf   r>   r   r   )r\   r>   r(  r   s       r+   addAnacondaAuthSitesConfig.addk  s*    CsDII&C#

r8   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 )NrB   )r   r   r   r:   r   r  r  )r\   r(  r   s      r+   removeAnacondaAuthSitesConfig.removes  ss    jj!!$'JJOOC zz.>.@DJJOON+# $T$**//%: ;D $r8   )r   rZ   )r   r   r   r   r  r   r   r   r   rf   r   r   r   r  r   r   r
   r   r:   r&  r*  r-  r   r   r   s   @r+   r   r   J  s    ?CIx!:;<C"&L(3-&9E5s '@ 
	 	 	 &$s) & & "Xc] "6F " "$( $ $ $	<3 	<4 	< 	<r8   r   )9r2   	functoolsr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   urllib.parser   pydanticr   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!   rf   r7   r:   r   r   r   r   r   r   r   r   r   r   r(   r8   r+   <module>r:     s4    %         !           $ $ % * 8 " 0 4 9 E 9 -DcN t "`y `F7 !7 <"8 !7 8
)+?V 
,8) 8 *-A'+KL 	#*,@g 	#8Id3 0012 8v2<2 2<r8   