
    <Bh                       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  SS
KJr  SSKJr  \(       a  SSKJr  SSK
Jr  \	R*                  " SS5        \	R,                  " SSSS5        \	" SS5       " S S\5      5       rg)zDefine binstar spec.    )annotationsN)cached_property)TYPE_CHECKING   )
deprecated)	from_yaml)EnvironmentFileNotDownloaded)normalized_version)EnvironmentSpecBase)
ModuleType)Environmentz24.7z25.9ENVIRONMENT_TYPEenvc                      \ rS rSrSrSrSS jrSS jrSS jrSS jr	\
SS j5       r\
SS	 j5       r\
SS
 j5       r\
S 5       r\
SS j5       r\
SS j5       rSrg)BinstarSpec   z
spec = BinstarSpec('darth/deathstar')
spec.can_handle() # => True / False
spec.environment # => YAML string
spec.msg # => Error messages
:raises: EnvironmentFileNotDownloaded
Nc                    Xl         g N)name)selfr   s     7lib/python3.13/site-packages/conda/env/specs/binstar.py__init__BinstarSpec.__init__'   s    	    c                    U R                  5       (       a>  U R                  (       d  SU l        gU R                  SL=(       a    U R	                  5       $ g)zM
Validates loader can process environment definition.
:return: True or False
zAnaconda Client is required to interact with anaconda.org or an Anaconda API. Please run `conda install anaconda-client -n base`.FN)
valid_namebinstarmsgpackagevalid_packager   s    r   
can_handleBinstarSpec.can_handle*   sJ     ??<<X  <<t+D0B0B0DDr   c                    [         R                  " S[        U R                  5      5       b  gU R                  c  SU l        gSU R                  < S3U l        g)z'
Validates name
:return: True or False
z1^[a-z0-9_\.][a-z0-9_\-\.]+/[_A-Za-z0-9][\s.\w-]*$TzCan't process without a namezInvalid name z, try the format: user/packageF)rematchstrr   r   r!   s    r   r   BinstarSpec.valid_name;   s\     HHDc$))n 
 YY5DH  'tyym3QRDHr   c                2    [        U R                  5      S:  $ )zH
Returns True if package has an environment file
:return: True or False
r   )len	file_datar!   s    r   r    BinstarSpec.valid_packageM   s    
 4>>"Q&&r   c                >     SSK Jn  U" 5       $ ! [         a     g f = f)Nr   )get_server_api)binstar_client.utilsr.   ImportError)r   r.   s     r   r   BinstarSpec.binstarT   s%    	;!## 		s    
c                ^    U R                   S   Vs/ s H  oS   S:X  d  M  UPM     sn$ s  snf )Nfilestyper   )r   )r   datas     r   r+   BinstarSpec.file_data]   s.    !%g!6P!6v,%:O!6PPPs   **c                   U R                   Vs/ s H  n[        US   5      US   S.PM     nn[        US S9S   nU R                  S   Vs/ s H  oDS   U:X  d  M  UPM     nnU R                  R                  U R                  U R                  X5S   S   5      nUc   [        U R                  U R                  5      e[        UR                  5      $ s  snf s  snf )	Nversion)
normalizedoriginalc                    U S   $ )Nr9    )xs    r   <lambda>)BinstarSpec.environment.<locals>.<lambda>g   s    Q|_r   )keyr:   r3   r   basename)r+   r
   maxr   r   downloadusernamepackagenamer	   r   text)r   dversionslatest_versionr5   r+   reqs          r   environmentBinstarSpec.environmenta   s     ^^
# .a	l;9V# 	 
 X+DEjQ!\\'2
2T9o6WD2 	 
 ll##MM4++^q\*=U
 ;.t}}d>N>NOO""


s   CCCc                     U R                   R                  U R                  U R                  5      $ ! [        [
        4 a    U R                   S3U l         g f = f)Nz] was not found on anaconda.org.
You may need to be logged in. Try running:
    anaconda login)r   r   rD   rE   
IndexErrorAttributeErrorr   r   r!   s    r   r   BinstarSpec.packager   sV    	<<''t7G7GHHN+ 	99+ % % H	s   /2 $AAc                @    U R                   R                  SS5      S   $ )N/   r   r   splitr!   s    r   rD   BinstarSpec.username}       yysA&q))r   c                @    U R                   R                  SS5      S   $ )NrR   rS   rT   r!   s    r   rE   BinstarSpec.packagename   rW   r   )r   r   r   )returnbool)rZ   zModuleType | None)rZ   zlist[dict[str, str]])rZ   r   )rZ   r'   )__name__
__module____qualname____firstlineno____doc__r   r   r"   r   r    r   r   r+   rK   r   rD   rE   __static_attributes__r<   r   r   r   r      s     C"$'   Q Q # #    * * * *r   r   )r`   
__future__r   r%   	functoolsr   typingr   deprecationsr   env.envr   
exceptionsr	   models.versionr
   plugins.typesr   typesr   r   moduleconstantr   r<   r   r   <module>rm      sy     " 	 %   &   6 0 0 & 
  && ! 
  FF$6 > FFg*% g* g*r   