§
    WŠtj„  ã                  óä   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd	lmZ d
dlmZ d
dlmZ  ed¦  «        Zeedf         Zdd„Zd d„Zd!d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )"aS  Helper code used to generate ``requires.txt`` files in the egg-info directory.

The ``requires.txt`` file has an specific format:
    - Environment markers need to be part of the section headers and
      should not be part of the requirement spec itself.

See https://setuptools.pypa.io/en/latest/deprecated/python_eggs.html#requires-txt
é    )ÚannotationsN)Údefaultdict)ÚMapping)Úfilterfalse)ÚTypeVar)Úyield_lines)ÚRequirementé   )Ú_reqs)Ú
_StrOrIterÚ_TÚinstall_requiresr   Úextras_requireúMapping[str, _StrOrIter]Úreturnú&tuple[list[str], dict[str, list[str]]]c                ó@   — t          |¦  «        }t          | |¦  «        S )z�Given values for ``install_requires`` and ``extras_require``
    create modified versions in a way that can be written in ``requires.txt``
    )Ú_convert_extras_requirementsÚ"_move_install_requirements_markers)r   r   Úextrass      ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/command/_requirestxt.pyÚ_preparer      s"   € õ *¨.Ñ9Ô9€FÝ-Ð.>ÀÑGÔGÐGó    ú'defaultdict[str, _Ordered[Requirement]]c                ó0  — t          t          t          t                   f         t          ¦  «        }|                      ¦   «         D ]O\  }}||          t          j        |¦  «        D ]-}||t          |¦  «        z             	                    |¦  «         Œ.ŒP|S )z‘
    Convert requirements in `extras_require` of the form
    `"extra": ["barbazquux; {marker}"]` to
    `"extra:{marker}": ["barbazquux"]`.
    )
r   ÚstrÚ_Orderedr	   ÚdictÚitemsr   ÚparseÚ_suffix_forÚ
setdefault)r   ÚoutputÚsectionÚvÚrs        r   r   r   '   s’   € õ ��h¥{Ô3Ð3Ô4µTÑ:Ô:€FØ$×*Ò*Ñ,Ô,ð ;ð ;‰
ˆ�àˆwŒˆÝ”˜Q‘”ð 	;ð 	;ˆAØ�7�[¨™^œ^Ñ+Ô,×7Ò7¸Ñ:Ô:Ð:Ð:ð	;ð €Mr   ú#Mapping[str, _Ordered[Requirement]]c                ó¤  — t          t          j        | ¦  «        ¦  «        }t          t          |¦  «        }t          t          |¦  «        }t          t          t          |¦  «        ¦  «        }|D ]2}|dt          |j        ¦  «        z             	                    |¦  «         Œ3t          d„ |                     ¦   «         D ¦   «         ¦  «        }||fS )a+  
    The ``requires.txt`` file has an specific format:
        - Environment markers need to be part of the section headers and
          should not be part of the requirement spec itself.

    Move requirements in ``install_requires`` that are using environment
    markers ``extras_require``.
    ú:c              3  ó¨   K  — | ]M\  }}|t          t                               d „ t          t          |¦  «        D ¦   «         ¦  «        ¦  «        fV — ŒNdS )c              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©N)r   )Ú.0r&   s     r   ú	<genexpr>z?_move_install_requirements_markers.<locals>.<genexpr>.<genexpr>R   s(   è è € ÐBÐB¨!�s 1™vœvÐBÐBÐBÐBÐBÐBr   N)Úlistr   ÚfromkeysÚmapÚ
_clean_req)r-   Úkr%   s      r   r.   z5_move_install_requirements_markers.<locals>.<genexpr>P   sn   è è € ð ð ñ ˆAˆqð 
�D•—’ÐBÐB­sµ:¸qÑ/AÔ/AÐBÑBÔBÑBÔBÑCÔCÐDðð ð ð ð ð r   )r/   r   r    ÚfilterÚ
_no_markerr   r1   r   Úmarkerr"   r   r   )r   r   Ú	inst_reqsÚsimple_reqsÚcomplex_reqsÚsimple_install_requiresr&   Úexpanded_extrass           r   r   r   9   sÐ   € õ •U”[Ð!1Ñ2Ô2Ñ3Ô3€IÝ� YÑ/Ô/€KÝ�z¨9Ñ5Ô5€LÝ"¥3¥s¨KÑ#8Ô#8Ñ9Ô9Ðàð :ð :ˆØ�s�S ¤™]œ]Ñ*Ô+×6Ò6°qÑ9Ô9Ð9Ð9åð ð ð #×(Ò(Ñ*Ô*ðñ ô ñ ô €Oð # OÐ3Ð3r   c                óB   — | j         rdt          | j         ¦  «        z   ndS )z;Return the 'extras_require' suffix for a given requirement.r)   Ú )r6   r   ©Úreqs    r   r!   r!   Y   s!   € à$'¤JÐ6ˆ3•�S”Z‘”Ñ Ð °BÐ6r   c                óL   — t          t          | ¦  «        ¦  «        }d|_        |S )z=Given a Requirement, remove environment markers and return itN)r	   r   r6   )r?   r&   s     r   r2   r2   ^   s!   € å•C˜‘H”HÑÔ€AØ€A„HØ€Hr   c                ó   — | j          S r,   )r6   r>   s    r   r5   r5   e   s   € ØŒzˆ>Ðr   c                óx   — t          |pd¦  «        }d„ }t          ||¦  «        }|                      |¦  «         d S )N© c                ó   — | dz   S )Nú
rC   )Úlines    r   Ú	append_crz&_write_requirements.<locals>.append_crl   s   € Ø�d‰{Ðr   )r   r1   Ú
writelines)ÚstreamÚreqsÚlinesrG   s       r   Ú_write_requirementsrL   i   sM   € Ý˜˜
 Ñ#Ô#€Eðð ð õ �	˜5Ñ!Ô!€EØ
×Ò�eÑÔÐÐÐr   c           	     ó–  — | j         }t          j        ¦   «         }t          |j        pd|j        pi ¦  «        \  }}t          ||¦  «         t          |¦  «        D ]D}|                      dj	        di t          ¦   «         ¤Ž¦  «         t          |||         ¦  «         ŒE|                      d||                     ¦   «         ¦  «         d S )NrC   z
[{extra}]
Úrequirements)ÚdistributionÚioÚStringIOr   r   r   rL   ÚsortedÚwriteÚformatÚvarsÚwrite_or_delete_fileÚgetvalue)ÚcmdÚbasenameÚfilenameÚdistÚdatar   r   Úextras           r   Úwrite_requirementsr^   s   sÑ   € ØÔ€DÝŒ;‰=Œ=€DÝ'/ØÔÐ#  TÔ%8Ð%>¸Bñ(ô (Ñ$Ð�nõ ˜Ð.Ñ/Ô/Ð/Ý˜Ñ'Ô'ð 9ð 9ˆØ�
Š
Ð)�?Ô)Ð3Ð3­D©F¬FÐ3Ð3Ñ4Ô4Ð4Ý˜D .°Ô"7Ñ8Ô8Ð8Ð8Ø×Ò˜^¨X°t·}²}±´ÑGÔGÐGÐGÐGr   c                ó²   — t          j        ¦   «         }t          || j        j        ¦  «         |                      d||                     ¦   «         ¦  «         d S )Nzsetup-requirements)rP   rQ   rL   rO   Úsetup_requiresrV   rW   )rX   rY   rZ   r\   s       r   Úwrite_setup_requirementsra   €   sJ   € ÝŒ;‰=Œ=€DÝ˜˜cÔ.Ô=Ñ>Ô>Ð>Ø×ÒÐ1°8¸T¿]º]¹_¼_ÑMÔMÐMÐMÐMr   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r'   r   r   )Ú__doc__Ú
__future__r   rP   Úcollectionsr   Úcollections.abcr   Ú	itertoolsr   Útypingr   Újaraco.textr   Úpackaging.requirementsr	   r=   r   r   r   r   r   r   r   r   r!   r2   r5   rL   r^   ra   rC   r   r   ú<module>rj      s…  ððð ð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð €WˆT�]„]€Ø��D�Œ>€ðHð Hð Hð Hðð ð ð ð$4ð 4ð 4ð 4ð@7ð 7ð 7ð
ð ð ðð ð ðð ð ð
Hð 
Hð 
HðNð Nð Nð Nð Nr   