
    si	                    6   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
JrJrJr  SSKJr  \(       a  S	S
KJr  S	SKJr  \\   \\   -  r\\-  r\" SSSS9SS j5       r\R0                  " SSS5      \R0                  " SSSSS9 S   SS jj5       5       rg)    )annotationsN)TYPE_CHECKING   )context)
deprecated) EnvironmentFileExtensionNotValidEnvironmentFileNotFound EnvironmentSpecPluginNotDetectedSpecNotFound)CONDA_SESSION_SCHEMES   RequirementsSpecYamlFileSpecz25.9z26.3zCUse conda.base.context.plugin_manager.detect_environment_specifier.)addendumc                   SSK Jn  SSKJn  U R	                  S5      (       a  U [        S5      S n 1 UR                  kUR                  kn[        R                  R                  U 5      u  pE[        R                  R                  U 5      =(       d    U R                  SS5      S   [        ;   nU(       a8  US:X  d  XS;  a  [        U 5      eXRR                  ;   a  U$ XQR                  ;   a  U$ [        U S	9e)
z
Determine spec class to use from the provided ``filename``

:raises EnvironmentFileExtensionNotValid | EnvironmentFileNotFound:
r   r   r   zfile://Nz://r    )filename)requirementsr   	yaml_filer   
startswithlen
extensionsospathsplitextisfilesplitr   r   r	   )r   r   r   all_valid_exts_extfile_existss          8lib/python3.13/site-packages/conda/env/specs/__init__.pyget_spec_class_from_filer%      s     /'9%%C	N,- N|..M1A1L1LMNWWh'FA 	x XHNN5!$<Q$?CX$X  "9128<<+++///##
!8
44    name	directoryz!Specify the full path in filenamec                     [         R                  R                  U S9nUR                  U 5      $ ! [         a  n[	        UR
                  5      eSnAff = f)z
Return the appropriate spec type to use.

:raises SpecNotFound: Raised if no suitable spec class could be found given the input
)sourceN)r   plugin_managerdetect_environment_specifierr
   r   messageenvironment_spec)r   	spec_hookes      r$   detectr1   =   sZ    &**GG H 
	 %%h// , &199%%&s   0 
AAA)r   strreturnFileSpecTypes)N)r   z
str | Noner3   	SpecTypes)
__future__r   r   typingr   base.contextr   deprecationsr   
exceptionsr   r	   r
   r   gateways.connection.sessionr   r   r   r   r   typer4   r5   r%   argumentr1    r&   r$   <module>r?      s    # 	   # &  A.'&.>)??M//I 

R
5
5< VVV,
FK*M  000 -0r&   