§
    øyIf�  ã                  ó–   — d dl mZ d dlZd dlmZ ddlmZmZmZ erd dl	m
Z
mZ d dlmZ d dlmZ  G d	„ d
e¦  «        Zh d£Zh d£ZdZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGé   )ÚParsedRequirementÚReqFileLinesÚRequirementsFile)ÚArgumentParserÚ	Namespace)ÚPath)ÚFinalc                  óö   ‡ — e Zd ZU dgZded<   d+ˆ fd
„Zd,d„Zd-ˆ fd„Zd.ˆ fd„Ze	d/d„¦   «         Z
d0ˆ fd„Zd1d„Zd2ˆ fd„Zd3d„Zed4d„¦   «         Zed5d!„¦   «         Zd6ˆ fd$„Zd7d&„Zd8d(„Zed9d*„¦   «         Zˆ xZS ):Ú
PythonDepsÚhashzFinal[list[str]]Ú_illegal_optionsÚrawÚstrÚrootr   ÚreturnÚNonec                ó¤   •— t          ¦   «                              |dz  d¬¦  «         |                      |¦  «        | _        d | _        d | _        d S )Nztox.iniF)Ú
constraint)ÚsuperÚ__init__Ú_normalize_rawÚ_rawÚ_unrollÚ_req_parser_)Úselfr   r   Ú	__class__s      €úS/var/www/piapp/venv/lib/python3.11/site-packages/tox/tox_env/python/pip/req_file.pyr   zPythonDeps.__init__   sO   ø€ Ý‰Œ×Ò˜ 	Ñ)°eÐÑ<Ô<Ð<Ø×'Ò'¨Ñ,Ô,ˆŒ	Ø;?ˆŒØ59ˆÔÐÐó    Úparserr	   c                ó8   — |                      dddd¬¦  «         d S )Nú	--no-depsÚ
store_trueÚno_depsF)ÚactionÚdestÚdefault)Úadd_argument)r   r"   s     r    Ú_extend_parserzPythonDeps._extend_parser   s&   € Ø×Ò˜K°À9ÐV[ÐÑ\Ô\Ð\Ð\Ð\r!   Úbase_optr
   ÚoptÚfilenamec                ó‚   •— t          ¦   «                              |||¦  «         t          |dd¦  «        r	d|_        d S d S )Nr&   FT)r   Ú_merge_option_lineÚgetattrr&   )r   r,   r-   r.   r   s       €r    r0   zPythonDeps._merge_option_line   sK   ø€ Ý‰Œ×"Ò" 8¨S°(Ñ;Ô;Ð;Ý�3˜	 5Ñ)Ô)ð 	$Ø#ˆHÔÐÐð	$ð 	$r!   ú	list[str]c                ó–   •— t          ¦   «                              |¦  «        }t          |dd¦  «        r|                     d¦  «         |S )Nr&   Fr$   )r   Ú_option_to_argsr1   Úappend)r   r-   Úresultr   s      €r    r4   zPythonDeps._option_to_args!   sE   ø€ Ý‘”×(Ò(¨Ñ-Ô-ˆÝ�3˜	 5Ñ)Ô)ð 	'Ø�MŠM˜+Ñ&Ô&Ð&Øˆr!   r   c                óT   — | j         €t          | j        d¬¦  «        | _         | j         S )NF)Úpathr   )r   r   Ú_path©r   s    r    Ú_req_parserzPythonDeps._req_parser'   s+   € àÔÐ$Ý 0°d´jÈUÐ SÑ SÔ SˆDÔØÔ Ð r!   Úurlc                ó~   •— |                       |¦  «        r| j        S t          ¦   «                              |¦  «        S ©N)Ú_is_url_selfr   r   Ú_get_file_content)r   r<   r   s     €r    r@   zPythonDeps._get_file_content-   s9   ø€ Ø×Ò˜SÑ!Ô!ð 	Ø”9ÐÝ‰wŒw×(Ò(¨Ñ-Ô-Ð-r!   Úboolc                ó2   — |t          | j        ¦  «        k    S r>   )r   r9   )r   r<   s     r    r?   zPythonDeps._is_url_self2   s   € Ø•c˜$œ*‘o”oÒ%Ð%r!   Úcontentr   c              #  ó"  •K  — t          ¦   «                              |¦  «        D ]i\  }}|                     d¦  «        s/|                     d¦  «        r2|d                              ¦   «         r|dd…         › d|dd …         › �}n|}||fV — Œjd S )Nú-rú-cé   r   ú )r   Ú_pre_processÚ
startswithÚisalpha)r   rC   ÚatÚlineÚ
found_liner   s        €r    rI   zPythonDeps._pre_process5   s¯   øè è € Ý™œ×,Ò,¨WÑ5Ô5ð 	!ð 	!‰HˆB�Ø�Š˜tÑ$Ô$ð "¨¯ª¸Ñ)>Ô)>ð "À4ÈÄ7Ç?Â?ÑCTÔCTð "Ø $ Q q S¤	Ð6Ð6¨D°°°¬HÐ6Ð6�
�
à!�
Ø�j�.Ð Ð Ð Ð ð	!ð 	!r!   c                ó4   — | j                              ¦   «         S r>   )r   Ú
splitlinesr:   s    r    ÚlineszPythonDeps.lines=   s   € ØŒy×#Ò#Ñ%Ô%Ð%r!   c                ó  — d                      |                      dd¦  «                             d¦  «        ¦  «        } d„ |                      ¦   «         D ¦   «         }d                      |¦  «        }|                      d¦  «        r|› d�n|S )NÚ úz\
c                óB   — g | ]}t                                |¦  «        ‘ŒS © )r   Ú_normalize_line)Ú.0rM   s     r    ú
<listcomp>z-PythonDeps._normalize_raw.<locals>.<listcomp>F   s&   € ÐZÐZÐZÀ�J×6Ò6°tÑ<Ô<ÐZÐZÐZr!   ú
)ÚjoinÚreplaceÚsplitrP   Úendswith)r   rQ   Úadjusteds      r    r   zPythonDeps._normalize_raw@   s€   € ð �gŠg�c—k’k $¨Ñ+Ô+×1Ò1°&Ñ9Ô9Ñ:Ô:ˆàZÐZÈÏÊÑIYÔIYÐZÑZÔZˆØ—9’9˜UÑ#Ô#ˆØ"%§,¢,¨vÑ"6Ô"6ÐD�(ˆˆˆˆ¸HÐDr!   rM   c                ód  ‡ — t          ˆ fd„t          D ¦   «         d ¦  «        }|�‰ t          |¦  «        d …         }|› d|› �Š t          ˆ fd„t          D ¦   «         d ¦  «        }|�Jt	          j        dd‰ t          |¦  «        dz   d …         ¦  «        }‰ d t          |¦  «        …         › d|› �Š ‰ S )Nc              3  ó  •K  — | ]{}‰                      |¦  «        rdt          ‰¦  «        t          |¦  «        k    rD‰t          |¦  «                                      ¦   «         s‰t          |¦  «                 d k    °w|V — Œ|dS )ú=N©rJ   ÚlenÚisspace)rX   ÚargrM   s     €r    ú	<genexpr>z-PythonDeps._normalize_line.<locals>.<genexpr>M   s’   øè è € ð ð àØ—?’? 3Ñ'Ô'ðõ ˜‘I”I¥ C¡¤Ò(Ð(Ø�c #™hœhœ×/Ò/Ñ1Ô1ð )Ø59½#¸c¹(¼(´^ÀsÒ5JÐ5Jð	 ð 6KÐ5JÐ5JÐ5Jðð r!   rH   c              3  ó”   •K  — | ]B}‰                      |¦  «        ¯‰t          |¦  «                                      ¦   «         ¯>|V — ŒCd S r>   rc   )rX   ÚerM   s     €r    rg   z-PythonDeps._normalize_line.<locals>.<genexpr>Z   sU   øè è € ÐhÐh 1¸$¿/º/È!Ñ:LÔ:LÐhÐQUÕVYÐZ[ÑV\ÔV\ÔQ]×QeÒQeÑQgÔQgÐh˜QÐhÐhÐhÐhÐhÐhr!   z(?<!\\)(\s)z\\\1r   )ÚnextÚONE_ARGrd   ÚONE_ARG_ESCAPEÚreÚsub)rM   Ú	arg_matchÚvaluesÚescape_matchÚescapeds   `    r    rW   zPythonDeps._normalize_lineJ   sï   ø€ åðð ð ð å"ðñ ô ð ñ	
ô 	
ˆ	ð Ð Ø�#˜i™.œ.Ð*Ð*Ô+ˆFØÐ*Ð* &Ð*Ð*ˆDåÐhÐhÐhÐh­ÐhÑhÔhÐjnÑoÔoˆØÐ#å”f˜^¨W°d½3¸|Ñ;LÔ;LÈqÑ;PÐ;RÐ;RÔ6SÑTÔTˆGØÐ.�S Ñ.Ô.Ð.Ô/Ð;Ð;°'Ð;Ð;ˆDØˆr!   Úrecurseúlist[ParsedRequirement]c                ó
  •— t          ¦   «                              ||¦  «        }|D ]\}|j        t          | j        ¦  «        k    rŒ | j        D ]4}|j                             |¦  «        rd|› d|› d�}t          |¦  «        ‚Œ5Œ]|S )NzCannot use --z1 in deps list, it must be in requirements file. (ú))	r   Ú_parse_requirementsÚ	from_filer   r8   r   ÚoptionsÚgetÚ
ValueError)r   r-   rs   ÚrequirementsÚreqÚillegal_optionÚmsgr   s          €r    rw   zPythonDeps._parse_requirementsa   s¤   ø€ õ ‘w”w×2Ò2°3¸Ñ@Ô@ˆØð 	*ð 	*ˆCØŒ}¥ D¤I¡¤Ò.Ð.ØØ"&Ô"7ð *ð *�Ø”;—?’? >Ñ2Ô2ð *Øq¨.ÐqÐqÐknÐqÐqÐq�CÝ$ S™/œ/Ð)ð*ð*ð Ðr!   útuple[list[str], list[str]]c                óê   — | j         €ft          | j        ¦  «        }| j        s|rd}t	          |¦  «        ‚d„ |                     ¦   «         D ¦   «         }d„ | j        D ¦   «         }||f| _         | j         S )Nzno dependenciesc                ó"   — g | ]\  }}|› d |› �‘ŒS )rb   rV   )rX   ÚkeyÚvalues      r    rY   z%PythonDeps.unroll.<locals>.<listcomp>t   s*   € Ð%[Ð%[Ð%[¹:¸3À¨Ð&6Ð&6¨uÐ&6Ð&6Ð%[Ð%[Ð%[r!   c                ó,   — g | ]}t          |¦  «        ‘ŒS rV   )r   )rX   r}   s     r    rY   z%PythonDeps.unroll.<locals>.<listcomp>u   s   € Ð@Ð@Ð@ s�#˜c™(œ(Ð@Ð@Ð@r!   )r   Úvarsry   r|   r{   Úitems)r   Ú	opts_dictr   Úresult_optsÚ
result_reqs        r    ÚunrollzPythonDeps.unrolln   sƒ   € ØŒ<ÐÝ˜Tœ\Ñ*Ô*ˆIØÔ$ð &¨ð &Ø'�Ý  ‘o”oÐ%Ø%[Ð%[ÈÏÊÑIZÔIZÐ%[Ñ%[Ô%[ˆKØ@Ð@¨dÔ.?Ð@Ñ@Ô@ˆJØ&¨
Ð2ˆDŒLØŒ|Ðr!   Úotherc                ó6   — | xj         d|j         z   z  c_         | S )NrZ   )r   )r   rŒ   s     r    Ú__iadd__zPythonDeps.__iadd__y   s   € Øˆ	Œ	�T˜EœJÑ&Ñ&ˆ	Œ	Øˆr!   Úobjectc                ób   — t          |t          ¦  «        st          |¦  «        ‚ | ||¦  «        S r>   )Ú
isinstancer   Ú	TypeError)Úclsr   r   s      r    ÚfactoryzPythonDeps.factory}   s0   € å˜#�sÑ#Ô#ð 	!Ý˜C‘.”.Ð Øˆs�3˜‰~Œ~Ðr!   )r   r   r   r   r   r   )r"   r	   r   r   )r,   r
   r-   r
   r.   r   r   r   )r-   r
   r   r2   )r   r   )r<   r   r   r   )r<   r   r   rA   )rC   r   r   r   )r   r2   )r   r   r   r   )rM   r   r   r   )r-   r
   rs   rA   r   rt   )r   r€   )rŒ   r   r   r   )r   r   r   r�   r   r   )Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   r+   r0   r4   Úpropertyr;   r@   r?   rI   rQ   Ústaticmethodr   rW   rw   r‹   rŽ   Úclassmethodr”   Ú__classcell__)r   s   @r    r   r      s×  ø€ € € € € € ð +1¨ÐÐ1Ð1Ð1Ñ1ð:ð :ð :ð :ð :ð :ð]ð ]ð ]ð ]ð$ð $ð $ð $ð $ð $ð
ð ð ð ð ð ð ð!ð !ð !ñ „Xð!ð
.ð .ð .ð .ð .ð .ð
&ð &ð &ð &ð!ð !ð !ð !ð !ð !ð&ð &ð &ð &ð ðEð Eð Eñ „\ðEð ðð ð ñ „\ðð,ð ð ð ð ð ð	ð 	ð 	ð 	ðð ð ð ð ðð ð ñ „[ðð ð ð ð r!   r   >   ú-iú--index-urlú--no-binaryú--only-binaryú--use-featureú--trusted-hostú--extra-index-urlrF   ú-eú-frE   ú
--editableú--constraintú--find-linksú--requirement>   rF   r¤   r¥   rE   r¦   r§   r¨   r©   )rk   r   )Ú
__future__r   rm   Útypingr   Úreq.filer   r   r   Úargparser	   r
   Úpathlibr   r   r   rk   rl   Ú__all__rV   r!   r    ú<module>r°      sõ   ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø  Ð  Ð  Ð  Ð  Ð  à GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gàð Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ØÐÐÐÐÐØÐÐÐÐÐðsð sð sð sð sÐ!ñ sô sð sðlð ð €ð"	ð 	ð 	€ð€€€r!   