
    DIe$                     8    d Z ddlZddlmZ  G d d          ZdS )zDefine requirements.txt spec.    N   )envc                   L    e Zd ZdZdZdhZd	dZd Zd Zd Z	e
d             ZdS )
RequirementsSpeczh
    Reads dependencies from a requirements.txt file
    and returns an Environment object from it.
    Nz.txtc                 0    || _         || _        d | _        d S N)filenamenamemsg)selfr	   r
   kwargss       <lib/python3.11/site-packages/conda_env/specs/requirements.py__init__zRequirementsSpec.__init__   s     	    c                 `    t           j                            | j                  rdS d| _        dS )NTzThere is no requirements.txtF)ospathexistsr	   r   r   s    r   _valid_filezRequirementsSpec._valid_file   s+    7>>$-(( 	45DH5r   c                 &    | j         	d| _        dS dS )Nz3Environment with requirements.txt file needs a nameFT)r
   r   r   s    r   _valid_namezRequirementsSpec._valid_name   s    9LDH54r   c                 R    |                                  o|                                 S r   )r   r   r   s    r   
can_handlezRequirementsSpec.can_handle%   s%    !!8d&6&6&8&88r   c                 "   g }t          | j                  5 }|D ]C}|                                }|r|                    d          r.|                    |           D	 d d d            n# 1 swxY w Y   t          j        | j        |          S )N#)r
   dependencies)openr	   strip
startswithappendr   Environmentr
   )r   r   reqfilelines       r   environmentzRequirementsSpec.environment(   s    $-   	*G * *zz|| ts33 ##D))))	*	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* DILIIIIs   AA++A/2A/)NN)__name__
__module____qualname____doc__r   
extensionsr   r   r   r   propertyr%    r   r   r   r   	   s         
 CJ   
    9 9 9 J J XJ J Jr   r   )r)   r    r   r   r,   r   r   <module>r.      sd    $ # 				      (J (J (J (J (J (J (J (J (J (Jr   