ef2dZddlZddlZddlZejdZGddZGddeZGdd eZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc#Ktjd5}tjdtd|VddddS#1swxYwYdS)NT)recorddefaultz)distutils Version classes are deprecated.)actioncategorymessage)warningscatch_warningsfilterwarningsDeprecationWarning)ctxs }/builddir/build/BUILD/imunify360-venv-2.3.5/opt/imunify360/venv/lib/python3.11/site-packages/setuptools/_distutils/version.pysuppress_known_deprecationr"s   - - -'?     s!AA  A c>eZdZdZd dZdZdZdZdZdZ d Z dS) VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. Ncl|r||tjdtddS)NzHdistutils Version classes are deprecated. Use packaging.version instead.) stacklevel)parser warnr selfvstrings r__init__zVersion.__init__4sJ  JJw     -        c\d|jjt|S)Nz {} ('{}'))format __class____name__strrs r__repr__zVersion.__repr__>s#!!$."93t99EEErcN||}|tur|S|dkSNr_cmpNotImplementedrothercs r__eq__zVersion.__eq__A, IIe     HAv rcN||}|tur|S|dkSr$r%r(s r__lt__zVersion.__lt__G, IIe     H1u rcN||}|tur|S|dkSr$r%r(s r__le__zVersion.__le__Mr,rcN||}|tur|S|dkSr$r%r(s r__gt__zVersion.__gt__Sr/rcN||}|tur|S|dkSr$r%r(s r__ge__zVersion.__ge__Yr,rN) r __module__ __qualname____doc__rr"r+r.r1r3r5rrrr-s     FFF    rrc`eZdZdZejdejejzZdZ dZ dZ dS) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$c|j|}|std|z|ddddd\}}}}}|r+t t t |||g|_n,t t t ||gdz|_|r|dt |f|_dSd|_dS) Nzinvalid version number '%s'r)rr) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrrCmajorminorpatchrJprerelease_nums rrzStrictVersion.parses%%g.. F:WDEE E)rIjoinrGr rJrs r__str__zStrictVersion.__str__s <?a  hhs3 QqS(9::;;GGhhs3 5566G ? M 22S9K5L5LLGrct|tr6t5t|}dddn #1swxYwYnt|tstS|j|jkr|j|jkrdSdS|js |jsdS|jr |jsdS|js |jrdS|jr-|jr&|j|jkrdS|j|jkrdSdSJd)Nr>rFznever get here) isinstancer rr<r'rIrJrr)s rr&zStrictVersion._cmpsc eS ! ! "+-- - -%e,, - - - - - - - - - - - - - - -E=11 "! ! <5= ( (|em++rq +u'7 +1 _ +U%5 +2 +U%5 +1 _ +!1 +%"222q5#333rq ** * *5sAAAN) rr7r8r9recompileVERBOSEASCIIrBrrRr&r:rrr<r<qso!!F4bj286KJ###"   #+#+#+#+#+rr<cVeZdZdZejdejZdZdZ dZ dZ dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)c||_d|j|D}t|D](\}} t |||<#t $rY%wxYw||_dS)Nc"g|] }||dk | S)rPr:).0xs r z&LooseVersion.parse..Hs#TTTAQT1PS88a888r)r component_resplit enumeraterHrDrI)rr componentsiobjs rrzLooseVersion.parseCs TT!2!8!8!A!ATTT  ++  FAs  #C 1     " sA A! A!c|jSr6)rr!s rrRzLooseVersion.__str__Qs |rc&dt|zS)NzLooseVersion ('%s'))r r!s rr"zLooseVersion.__repr__Ts$s4yy00rct|trt|}nt|tstS|j|jkrdS|j|jkrdS|j|jkrdSdS)NrrTr>)rUr r\r'rIrVs rr&zLooseVersion._cmpWs eS ! ! " ''EEE<00 "! ! <5= ( (1 <%- ' '2 <%- ' '1 ( 'rN) rr7r8r9rWrXrYrbrrRr"r&r:rrr\r\ sr>2:4bjAAL " " "111     rr\) r9rWr contextlibcontextmanagerrrr<r\r:rrrms&  00000000Hh+h+h+h+h+Gh+h+h+^BBBBB7BBBBBr