1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
U
O±dÜ8ã    @sdZddlZddlZddlZdddddgZGdd    „d    ƒZeƒZGd
d „d ƒZeƒZe d d dddddg¡Zdd„Z    Gdd„de
ƒZ Gdd„dƒZ Gdd„de ƒZ e dej¡ZddddddœZdd„Zdd „Zd!ZGd"d„de ƒZd#d$„Ze d%¡Zd&d'„Zd(d)„ZdS)*zÅUtility to compare pep440 compatible version strings.
 
The LooseVersion and StrictVersion classes that distutils provides don't
work; they don't recognize anything like alpha/beta/rc/dev versions.
éNÚparseÚVersionÚ LegacyVersionÚInvalidVersionÚVERSION_PATTERNc@sTeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dS)ÚInfinitycCsdS)Nr©©ÚselfrrúKd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/compat/_pep440.pyÚ__repr__.szInfinity.__repr__cCs tt|ƒƒS©N©ÚhashÚreprr    rrr Ú__hash__1szInfinity.__hash__cCsdS©NFr©r
Úotherrrr Ú__lt__4szInfinity.__lt__cCsdSrrrrrr Ú__le__7szInfinity.__le__cCs t||jƒSr ©Ú
isinstanceÚ    __class__rrrr Ú__eq__:szInfinity.__eq__cCst||jƒ Sr rrrrr Ú__ne__=szInfinity.__ne__cCsdS©NTrrrrr Ú__gt__@szInfinity.__gt__cCsdSrrrrrr Ú__ge__CszInfinity.__ge__cCstSr )ÚNegativeInfinityr    rrr Ú__neg__FszInfinity.__neg__N© Ú__name__Ú
__module__Ú __qualname__r rrrrrrrr rrrr r-src@sTeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dS)rcCsdS)Nz    -Infinityrr    rrr r NszNegativeInfinity.__repr__cCs tt|ƒƒSr rr    rrr rQszNegativeInfinity.__hash__cCsdSrrrrrr rTszNegativeInfinity.__lt__cCsdSrrrrrr rWszNegativeInfinity.__le__cCs t||jƒSr rrrrr rZszNegativeInfinity.__eq__cCst||jƒ Sr rrrrr r]szNegativeInfinity.__ne__cCsdSrrrrrr r`szNegativeInfinity.__gt__cCsdSrrrrrr rcszNegativeInfinity.__ge__cCstSr )rr    rrr r fszNegativeInfinity.__neg__Nr!rrrr rMsrÚ_VersionÚepochÚreleaseÚdevÚpreÚpostÚlocalcCs,z
t|ƒWStk
r&t|ƒYSXdS)zÑ
    Parse the given version string and return either a :class:`Version` object
    or a :class:`LegacyVersion` object depending on if the given version is
    a valid PEP 440 version or a legacy version.
    N)rrr)Úversionrrr rus
c@seZdZdZdS)rzF
    An invalid version was found, users should refer to PEP 440.
    N)r"r#r$Ú__doc__rrrr rsc@sLeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dS)Ú _BaseVersioncCs
t|jƒSr )rÚ_keyr    rrr r‰sz_BaseVersion.__hash__cCs| |dd„¡S)NcSs||kSr r©ÚsÚorrr Ú<lambda>óz%_BaseVersion.__lt__.<locals>.<lambda>©Ú_comparerrrr rŒsz_BaseVersion.__lt__cCs| |dd„¡S)NcSs||kSr rr0rrr r3r4z%_BaseVersion.__le__.<locals>.<lambda>r5rrrr rsz_BaseVersion.__le__cCs| |dd„¡S)NcSs||kSr rr0rrr r3“r4z%_BaseVersion.__eq__.<locals>.<lambda>r5rrrr r’sz_BaseVersion.__eq__cCs| |dd„¡S)NcSs||kSr rr0rrr r3–r4z%_BaseVersion.__ge__.<locals>.<lambda>r5rrrr r•sz_BaseVersion.__ge__cCs| |dd„¡S)NcSs||kSr rr0rrr r3™r4z%_BaseVersion.__gt__.<locals>.<lambda>r5rrrr r˜sz_BaseVersion.__gt__cCs| |dd„¡S)NcSs||kSr rr0rrr r3œr4z%_BaseVersion.__ne__.<locals>.<lambda>r5rrrr r›sz_BaseVersion.__ne__cCst|tƒstS||j|jƒSr )rr.ÚNotImplementedr/)r
rÚmethodrrr r6žs
z_BaseVersion._compareN) r"r#r$rrrrrrrr6rrrr r.‡sr.c@s`eZdZdd„Zdd„Zdd„Zedd„ƒZed    d
„ƒZed d „ƒZ    ed d„ƒZ
edd„ƒZ dS)rcCst|ƒ|_t|jƒ|_dSr )ÚstrÚ_versionÚ_legacy_cmpkeyr/)r
r,rrr Ú__init__§s
zLegacyVersion.__init__cCs|jSr ©r:r    rrr Ú__str__«szLegacyVersion.__str__cCsd tt|ƒƒ¡S)Nz<LegacyVersion({0})>©Úformatrr9r    rrr r ®szLegacyVersion.__repr__cCs|jSr r=r    rrr Úpublic±szLegacyVersion.publiccCs|jSr r=r    rrr Ú base_versionµszLegacyVersion.base_versioncCsdSr rr    rrr r+¹szLegacyVersion.localcCsdSrrr    rrr Ú is_prerelease½szLegacyVersion.is_prereleasecCsdSrrr    rrr Úis_postreleaseÁszLegacyVersion.is_postreleaseN) r"r#r$r<r>r ÚpropertyrArBr+rCrDrrrr r¥s
 
 
 
z(\d+ | [a-z]+ | \.| -)Úczfinal-ú@)r)Úpreviewú-Úrcr(ccs\t |¡D]F}t ||¡}|r
|dkr(q
|dd…dkrF| d¡Vq
d|Vq
dVdS)NÚ.éÚ
0123456789éÚ*ú*final)Ú_legacy_version_component_reÚsplitÚ_legacy_version_replacement_mapÚgetÚzfill)r1Úpartrrr Ú_parse_version_partsÏs   rWcCszd}g}t| ¡ƒD]T}| d¡r^|dkrD|rD|ddkrD| ¡q*|r^|ddkr^| ¡qD| |¡qt|ƒ}||fS)NéÿÿÿÿrOrPz*final-Ú00000000)rWÚlowerÚ
startswithÚpopÚappendÚtuple)r,r&ÚpartsrVrrr r;às
 
 
 r;a—
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
            [-_\.]?
            (?P<pre_n>[0-9]+)?
        )?
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [-_\.]?
                (?P<post_l>post|rev|r)
                [-_\.]?
                (?P<post_n2>[0-9]+)?
            )
        )?
        (?P<dev>                                          # dev release
            [-_\.]?
            (?P<dev_l>dev)
            [-_\.]?
            (?P<dev_n>[0-9]+)?
        )?
    )
    (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
c@s|eZdZe dedejejB¡Zdd„Z    dd„Z
dd„Z e d    d
„ƒZ e d d „ƒZe d d„ƒZe dd„ƒZe dd„ƒZdS)rz^\s*z\s*$c
Csà|j |¡}|std |¡ƒ‚t| d¡r8t| d¡ƒndtdd„| d¡ d¡Dƒƒt    | d¡| d    ¡ƒt    | d
¡| d ¡p†| d ¡ƒt    | d ¡| d¡ƒt
| d¡ƒd|_ t |j j |j j|j j|j j|j j|j jƒ|_dS)NzInvalid version: '{0}'r&rcss|]}t|ƒVqdSr )Úint©Ú.0Úirrr Ú    <genexpr>-sz#Version.__init__.<locals>.<genexpr>r'rKÚpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr+©r&r'r)r*r(r+)Ú_regexÚsearchrr@r%Úgroupr`r^rRÚ_parse_letter_versionÚ_parse_local_versionr:Ú_cmpkeyr&r'r)r*r(r+r/)r
r,Úmatchrrr r<$s8 þþþ ñúzVersion.__init__cCsd tt|ƒƒ¡S)Nz<Version({0})>r?r    rrr r GszVersion.__repr__cCsîg}|jjdkr$| d |jj¡¡| d dd„|jjDƒ¡¡|jjdk    rl| d dd„|jjDƒ¡¡|jjdk    r| d |jjd    ¡¡|jjdk    r´| d
 |jjd    ¡¡|jj    dk    rä| d  d d d„|jj    Dƒ¡¡¡d |¡S) Nrú{0}!rKcss|]}t|ƒVqdSr ©r9©rbÚxrrr rdRsz"Version.__str__.<locals>.<genexpr>Úcss|]}t|ƒVqdSr rurvrrr rdVsz.post{0}rLz.dev{0}z+{0}css|]}t|ƒVqdSr rurvrrr rdcs)
r:r&r]r@Újoinr'r)r*r(r+©r
r_rrr r>Js     ÿzVersion.__str__cCst|ƒ dd¡dS)Nú+rLr©r9rRr    rrr rAhszVersion.publiccCsLg}|jjdkr$| d |jj¡¡| d dd„|jjDƒ¡¡d |¡S)NrrtrKcss|]}t|ƒVqdSr rurvrrr rdusz'Version.base_version.<locals>.<genexpr>rx)r:r&r]r@ryr'rzrrr rBls
 zVersion.base_versioncCs$t|ƒ}d|kr | dd¡dSdS)Nr{rLr|)r
Úversion_stringrrr r+ysz Version.localcCst|jjp|jjƒSr )Úboolr:r(r)r    rrr rCszVersion.is_prereleasecCs t|jjƒSr )r~r:r*r    rrr rDƒszVersion.is_postreleaseN)r"r#r$ÚreÚcompilerÚVERBOSEÚ
IGNORECASErmr<r r>rErArBr+rCrDrrrr rs"
 
þ#
 
 
 
cCsv|rZ|dkrd}| ¡}|dkr&d}n(|dkr4d}n|dkrBd}n |dkrNd    }|t|ƒfS|sr|rrd    }|t|ƒfSdS)
NrÚalphaÚaÚbetaÚb)rFr)rHrJ)ÚrevÚrr*)rZr`)ÚletterÚnumberrrr rpˆs  rpz[\._-]cCs$|dk    r tdd„t |¡DƒƒSdS)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Ncss&|]}| ¡s| ¡nt|ƒVqdSr )ÚisdigitrZr`)rbrVrrr rd¯sÿz'_parse_local_version.<locals>.<genexpr>)r^Ú_local_version_seperatorsrR)r+rrr rqªsþrqcCs˜tttt dd„t|ƒ¡ƒƒƒ}|dkr@|dkr@|dk    r@t }n |dkrLt}|dkrZt }|dkrft}|dkrvt }ntdd„|Dƒƒ}||||||fS)NcSs|dkS)Nrr)rwrrr r3¾r4z_cmpkey.<locals>.<lambda>css*|]"}t|tƒr|dfnt |fVqdS)rxN)rr`rrarrr rdâsÿz_cmpkey.<locals>.<genexpr>)r^ÚreversedÚlistÚ    itertoolsÚ    dropwhilerrlrrr rrµs,þÿÿ     þrr)r-Ú collectionsrrÚ__all__rrÚ
namedtupler%rÚ
ValueErrorrr.rr€rrQrSrWr;rrrprŒrqrrrrrr Ú<module>sNÿ þ !ÿÿ k