
    eXfh              	          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dS )    N)	FrozenSetNewTypeTupleUnioncast   )Tag	parse_tag)InvalidVersionVersion NormalizedNamec                       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       [/var/www/html/Qu*py/bism/lib/python3.11/site-packages/setuptools/_vendor/packaging/utils.pyr   r                 r   r   c                       e Zd ZdZdS )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                     t                               d|                                           }t          t          |          S )N-)_canonicalize_regexsublowerr   r   )r   values     r   canonicalize_namer#       s3    ##C..4466E&&&r   versionc           
         t          | t                    r#	 t          |           }n# t          $ r | cY S w xY w| }g }|j        dk    r|                    |j         d           |                    t          j        ddd                    d |j	        D                                            |j
        7|                    d                    d |j
        D                                  |j        |                    d	|j                    |j        |                    d
|j                    |j        |                    d|j                    d                    |          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              3   4   K   | ]}t          |          V  d S Nstr.0xs     r   	<genexpr>z'canonicalize_version.<locals>.<genexpr><   s(      0P0PAQ0P0P0P0P0P0Pr   Nc              3   4   K   | ]}t          |          V  d S r*   r+   r-   s     r   r0   z'canonicalize_version.<locals>.<genexpr>@   s(      88SVV888888r   z.postz.dev+)
isinstancer,   r   r   epochappendrer    joinreleaseprepostdevlocal)r$   parsedpartss      r   canonicalize_versionr?   &   s   
 '3 	W%%FF 	 	 	NNN	 E |q'''((( 
LL
B0P0P0P0P0P(P(PQQRRR zRWW88VZ88888999 {*V[**+++ z(FJ(())) |'''(((775>>s   ' 66filenamec                     |                      d          st          d|            | d d         } |                     d          }|dvrt          d|            |                     d|dz
            }|d         }d	|v s t	          j        d
|t          j                  t          d|            t          |          }t          |d                   }|dk    r|d         }t                              |          }|t          d| d|  d          t          t          t          |                    d                    |                    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   rD   zInvalid build number: z in ''r   )endswithr   countsplitr6   matchUNICODEr#   r   _build_tag_regexr   BuildTagintgroupr
   )
r@   dashesr>   	name_partr   r$   
build_partbuild_matchbuildtagss
             r   parse_wheel_filenamerX   Q   s    V$$ 
"L(LL
 
 	
 }H^^C  FV"IxII
 
 	
 NN3
++EaIyBH^Y
KKS"#FH#F#FGGGY''DeAhG{{1X
&,,Z88&EEE(EEE   XK$5$5a$8$8 9 9;;L;LQ;O;OPQQU2YD'5$''r   c                 |   |                      d          r| d t          d                    }n@|                      d          r| d t          d                    }nt          d|            |                    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: )rI   lenr   
rpartitionr#   r   )r@   	file_stemrS   sepversion_partr   r$   s          r   parse_sdist_filenamer_   u   s    ## 
.I./					6	"	" 
^F|^,		" 
 
 	
 $-#7#7#<#< IsL J"#Hh#H#HIIIY''Dl##G'?r   )r6   typingr   r   r   r   r   rW   r	   r
   r$   r   r   rP   r,   rO   r   
ValueErrorr   r   compiler   rN   r#   r?   rX   r_   r   r   r   <module>rc      s  
 
			 9 9 9 9 9 9 9 9 9 9 9 9 9 9                 , , , , , , , ,rE#s(O+,)3//    :       :    !bj++ 2:l++ 'C 'N ' ' ' '(%"5 (# ( ( ( (V!(!(
>7Hin<=!( !( !( !(H3 51H+I      r   