
    *,hh              	       T   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d   eeef   f   Z ede      Z G d d	e      Z G d
 de      Z e j(                  d      Z e j(                  d      ZdedefdZdeeef   defdZdedeeeeee   f   fdZdedeeef   fdZy)    N)	FrozenSetNewTypeTupleUnioncast   )Tag	parse_tag)InvalidVersionVersion NormalizedNamec                       e Zd ZdZy)InvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    N__name__
__module____qualname____doc__r       ]/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pip/_vendor/packaging/utils.pyr   r          r   r   c                       e Zd ZdZy)InvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    Nr   r   r   r   r   r      r   r   r   z[-_.]+z	(\d+)(.*)namereturnc                 j    t         j                  d|       j                         }t        t        |      S )N-)_canonicalize_regexsublowerr   r   )r   values     r   canonicalize_namer#       s*    ##C.446E&&r   versionc           
         t        | t              r	 t        |       }n| }g }|j                  dk7  r|j                  |j                   d       |j                  t        j                  dddj                  d |j                  D                           |j                  1|j                  dj                  d |j                  D                     |j                  |j                  d|j                          |j                  |j                  d	|j                          |j                  |j                  d
|j                          dj                  |      S # t        $ r | cY S w xY w)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              3   2   K   | ]  }t        |        y wNstr.0xs     r   	<genexpr>z'canonicalize_version.<locals>.<genexpr><   s     0PAQ0P   c              3   2   K   | ]  }t        |        y wr*   r+   r-   s     r   r0   z'canonicalize_version.<locals>.<genexpr>@   s     8SV8r1   z.postz.dev+)
isinstancer,   r   r   epochappendrer    joinreleaseprepostdevlocal)r$   parsedpartss      r   canonicalize_versionr@   &   s5   
 '3	W%F
 E ||q~Q'( 
LL
B0P0P(PQR zzRWW8VZZ889 {{uV[[M*+ zztFJJ<() ||q'(775>A  	N	s   E! !E/.E/filenamec                 j   | j                  d      st        d|        | d d } | j                  d      }|dvrt        d|        | j                  d|dz
        }|d   }d	|v s%t	        j
                  d
|t        j                        t        d|        t        |      }t        |d         }|dk(  rh|d   }t        j                  |      }|t        d| d|  d      t        t        t        |j                  d            |j                  d      f      }nd}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   rE   zInvalid build number: z in ''r   )endswithr   countsplitr7   matchUNICODEr#   r   _build_tag_regexr   BuildTagintgroupr
   )
rA   dashesr?   	name_partr   r$   
build_partbuild_matchbuildtagss
             r   parse_wheel_filenamerY   Q   s`    V$"A(L
 	
 }H^^C FV">xjI
 	
 NN3
+EaIyBHH^Y

KS"%;H:#FGGY'DeAhG{1X
&,,Z8&(E(1E  XK$5$5a$8 9;;L;LQ;OPQU2YD'5$''r   c                     | j                  d      r| d t        d        }n/| j                  d      r| d t        d        }nt        d|        |j                  d      \  }}}|st        d|        t	        |      }t        |      }||fS )Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): r   zInvalid sdist filename: )rJ   lenr   
rpartitionr#   r   )rA   	file_stemrT   sepversion_partr   r$   s          r   parse_sdist_filenamer`   u   s    #.I/				6	"^F|,	"z
 	
 $-#7#7#< IsL"%=hZ#HIIY'Dl#G'?r   )r7   typingr   r   r   r   r   rX   r	   r
   r$   r   r   rQ   r,   rP   r   
ValueErrorr   r   compiler   rO   r#   r@   rY   r`   r   r   r   <module>rd      s   
 
 9 9   ,rE#s(O+,)3/: :  !bjj+ 2::l+ 'C 'N '(%"5 (# (V!(!(
>7Hin<=!(H3 51H+I r   