관리-도구
편집 파일: requirements.cpython-39.pyc
a ?&Nb� � @ s� d dl mZmZmZ d dlZd dlZd dlZd dlmZm Z mZmZm Z mZmZmZmZmZ ddlmZ ddlmZmZ ddlmZmZmZ ejd dkr�d d lmZ nd dlZer�d d l m!Z!mZ"m#Z# G dd� de$�Z%eej&ej' �Z(e d ��)� Z*e d��)� Z+e d��)� Z,e d��)� Z-e d��)� Z.e d��)� Z/e d��)� Z0ed�Z1e(ee1�e( B Z2ee(ee2� �Z3e3d�Z4e3Z5e d�d�Z6e0e6 Z7e5ee.e5 � Z8e*ee8� e+ d�Z9e ej:ej;ej<B �Z=e ej:ej;ej<B �Z>e=e>A Z?ee?ee.e? � ddd�d�Z@ee,e@ e- e@B �ZAeA�Bdd� � eeA�d�ZCeC�Bdd� � ee� �d �Ze�Bd!d� � e/ZDeDe ZEeCeeE� ZFe7eeE� ZGe4ee9� eGeFB ZHeeH e ZIeI�Jd"� G d#d$� d$eK�ZLdS )%� )�absolute_import�division�print_functionN) �Combine�Literal�Optional�ParseException�Regex�Word� ZeroOrMore�originalTextFor� stringEnd�stringStart� )� TYPE_CHECKING)�MARKER_EXPR�Marker)�LegacySpecifier� Specifier�SpecifierSet� )�parse)�Listr �Setc @ s e Zd ZdZdS )�InvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)�__name__� __module__�__qualname__�__doc__� r r �:/usr/lib/python3.9/site-packages/packaging/requirements.pyr % s r �[�]�(�)�,�;�@z-_.�namez[^ ]+�url�extrasF)Z joinStringZadjacent� _raw_specc C s |j pdS )N� )r+ ��s�l�tr r r �<lambda>J � r1 � specifierc C s |d S )Nr r r- r r r r1 M r2 �markerc C s t | |j|j� �S )N)r Z_original_startZ _original_endr- r r r r1 Q r2 zx[]c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �Requirementz�Parse a requirement. Parse a given requirement string into its parts, such as name, specifier, URL, and extras. Raises InvalidRequirement on a badly-formed requirement string. c C s zt �|�}W nF tyT } z.td�||j|jd � |j���W Y d }~n d }~0 0 |j| _|jr�t � |j�}|j dkr�t �|�|jkr�td��n(|j r�|jr�|j s�|js�td�|j���|j| _nd | _t |jr�|j�� ng �| _t|j�| _|jr�|jnd | _d S )NzParse error at "{0!r}": {1}� �filezInvalid URL givenzInvalid URL: {0})�REQUIREMENT�parseStringr r �format�loc�msgr( r) �urlparse�scheme� urlunparse�netloc�setr* ZasListr r3 r4 )�selfZrequirement_stringZreq�eZ parsed_urlr r r �__init__n s2 �� �� zRequirement.__init__c C s� | j g}| jr*|�d�d�t| j���� | jr@|�t| j�� | jrh|�d�| j�� | j rh|�d� | j r�|�d�| j �� d�|�S )Nz[{0}]r% z@ {0}� z; {0}r, ) r( r* �appendr: �join�sortedr3 �strr) r4 )rB �partsr r r �__str__� s zRequirement.__str__c C s d� t| ��S )Nz<Requirement({0!r})>)r: rI )rB r r r �__repr__� s zRequirement.__repr__N)r r r r rD rK rL r r r r r5 a s r5 )MZ __future__r r r �re�string�sysZ pyparsingr r �Lr r r r r r r r Z_typingr Zmarkersr r Z specifiersr r r �version_infoZurllibr r= �typingr Z TOptionalr � ValueErrorr � ascii_letters�digitsZALPHANUM�suppressZLBRACKETZRBRACKETZLPARENZRPAREN�COMMAZ SEMICOLON�ATZPUNCTUATIONZIDENTIFIER_ENDZ IDENTIFIER�NAMEZEXTRAZURIZURLZEXTRAS_LISTZEXTRASZ _regex_str�VERBOSE� IGNORECASEZVERSION_PEP440ZVERSION_LEGACYZVERSION_ONEZVERSION_MANYZ _VERSION_SPECZsetParseActionZVERSION_SPECZMARKER_SEPARATORZMARKERZVERSION_AND_MARKERZURL_AND_MARKERZNAMED_REQUIREMENTr8 r9 �objectr5 r r r r �<module> sl 0 ���