£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    .e                     @   sJ   d dl mZmZmZ d dlZddlmZmZ edZ	dd Z
dd	 ZdS )
    )absolute_importdivisionprint_functionN   )InvalidVersionVersionz[-_.]+c                 C   s   t d|  S )N-)_canonicalize_regexsublower)name r   ?/usr/lib/python3.8/site-packages/pip/_vendor/packaging/utils.pycanonicalize_name   s    r   c              
   C   s   zt | } W n tk
r$   |  Y S X g }| jdkrF|d| j |tddddd | jD  | j	dk	r|dd	d | j	D  | j
dk	r|d
| j
 | jdk	r|d| j | jdk	r|d| j d|S )z
    This is very similar to Version.__str__, but has one subtle differences
    with the way it handles the release segment.
    r   z{0}!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 r   r   r   r   r   r   r   +   s     z.post{0}z.dev{0}z+{0})r   r   Zepochappendformatrer
   joinreleaseZpreZpostZdevZlocal)versionpartsr   r   r   canonicalize_version   s"    

&



r    )Z
__future__r   r   r   r   r   r   r   compiler	   r   r    r   r   r   r   <module>   s
   
