
    wBf,                     0    d Z ddlZddlmZ  G d d      Zy)zDefine requirements.txt spec.    N   )Environmentc                   D    e Zd ZdZdZdhZd	dZd Zd Zd Z	e
d        Zy)
RequirementsSpeczh
    Reads dependencies from a requirements.txt file
    and returns an Environment object from it.
    Nz.txtc                 .    || _         || _        d | _        y N)filenamenamemsg)selfr	   r
   kwargss       <lib/python3.12/site-packages/conda/env/specs/requirements.py__init__zRequirementsSpec.__init__   s     	    c                 f    t         j                  j                  | j                        ryd| _        y)NTzThere is no requirements.txtF)ospathexistsr	   r   r   s    r   _valid_filezRequirementsSpec._valid_file   s#    77>>$--(5DHr   c                 ,    | j                   d| _        yy)Nz3Environment with requirements.txt file needs a nameFT)r
   r   r   s    r   _valid_namezRequirementsSpec._valid_name   s    99LDHr   c                 F    | j                         xr | j                         S r   )r   r   r   s    r   
can_handlezRequirementsSpec.can_handle&   s    !8d&6&6&88r   c                    g }t        | j                        5 }|D ]7  }|j                         }|r|j                  d      r'|j	                  |       9 	 d d d        t        | j                  |      S # 1 sw Y    xY w)N#)r
   dependencies)openr	   strip
startswithappendr   r
   )r   r   reqfilelines       r   environmentzRequirementsSpec.environment)   sv    $--  	*G *zz|ts3##D)	*	* 		EE	* 	*s   =A55A>)NN)__name__
__module____qualname____doc__r   
extensionsr   r   r   r   propertyr$    r   r   r   r   
   s?    
 CJ
9 F Fr   r   )r(   r   envr   r   r+   r   r   <module>r-      s    $ 	 (F (Fr   