3
gh                 @   s   d dl Z d dlmZmZmZmZmZ ddlmZm	Z	 ddl
mZmZ eef  eeef f ZedeZG dd deZG d	d
 d
eZe jdZe jdZeedddZeeef edddZeeeeeee f dddZeeeef dddZdS )    N)	FrozenSetNewTypeTupleUnioncast   )Tag	parse_tag)InvalidVersionVersionNormalizedNamec               @   s   e Zd ZdZdS )InvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    N)__name__
__module____qualname____doc__ r   r   Y/var/www/tester-filtro-web/env/lib/python3.6/site-packages/pip/_vendor/packaging/utils.pyr      s   r   c               @   s   e Zd ZdZdS )InvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    N)r   r   r   r   r   r   r   r   r      s   r   z[-_.]+z	(\d+)(.*))namereturnc             C   s   t jd| j }tt|S )N-)_canonicalize_regexsublowerr   r   )r   valuer   r   r   canonicalize_name    s    r   )versionr   c             C   s   t | tr.yt| }W q2 tk
r*   | S X n| }g }|jdkrR|j|j d |jtjdddjdd |j	D  |j
dk	r|jdjd	d |j
D  |jdk	r|jd
|j  |jdk	r|jd|j  |jdk	r|jd|j  dj|S )z
    This is very similar to Version.__str__, but has one subtle difference
    with the way it handles the release segment.
    r   !z(\.0)+$ .c             s   s   | ]}t |V  qd S )N)str).0xr   r   r   	<genexpr><   s    z'canonicalize_version.<locals>.<genexpr>Nc             s   s   | ]}t |V  qd S )N)r!   )r"   r#   r   r   r   r$   @   s    z.postz.dev+)
isinstancer!   r   r
   Zepochappendrer   joinreleasepreZpostZdevlocal)r   Zparsedpartsr   r   r   canonicalize_version&   s&    

&



r.   )filenamer   c       
      C   s  | j dstd|  | d d } | jd}|dkrDtd|  | jd|d }|d }d	|ksxtjd
|tjd krtd|  t|}t|d }|dkr|d }t	j|}|d krtd| d|  dt
tt|jd|jdf}nf }t|d }	||||	fS )Nz.whlz3Invalid wheel filename (extension must be '.whl'):    r      z0Invalid wheel filename (wrong number of parts):    r   __z^[\w\d._]*$zInvalid project name: r   zInvalid build number: z in '')r0   r1   )endswithr   countsplitr(   matchUNICODEr   r   _build_tag_regexr   BuildTagintgroupr	   )
r/   Zdashesr-   	name_partr   r   Z
build_partZbuild_matchZbuildtagsr   r   r   parse_wheel_filenameQ   s0    


 rB   c             C   s   | j dr| d td  }n,| j dr<| d td  }ntd|  |jd\}}}|sltd|  t|}t|}||fS )Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): r   zInvalid sdist filename: )r7   lenr   
rpartitionr   r   )r/   Z	file_stemr@   sepZversion_partr   r   r   r   r   parse_sdist_filenameu   s    

rF   )r(   typingr   r   r   r   r   rA   r   r	   r   r
   r   r>   r!   r=   r   
ValueErrorr   r   compiler   r<   r   r.   rB   rF   r   r   r   r   <module>   s   


,"