ó
    Ô›‘hy?  ã                   óT  • S r SSKJrJr  SSKrSSKrSSKrSSKJrJ	r	J
r
JrJrJrJr  SSKJr  \(       a  SSKrSSKJr  SSKJr  S r " S	 S
\5      r\" 5       r " S S\5      r " S S\5      rS rS rS r S r!S r"S r#\" SS9 " S S5      5       r$S r%S r&SSK'J(r(  S r)/ SQr*g)z0
Versions for Python packages.

See L{Version}.
é    )ÚdivisionÚabsolute_importN)ÚTYPE_CHECKINGÚAnyÚTypeVarÚUnionÚOptionalÚDictÚBinaryIO)Ú	dataclass)ÚLiteral)ÚDistributionc                 ó   • X:  a  gX:X  a  gg)zy
Compare two objects.

Returns a negative number if C{a < b}, zero if they are equal, and a
positive number if C{a > b}.
éÿÿÿÿr   é   © )ÚaÚbs     ÚXC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\incremental/__init__.pyÚ_cmpr      s   € ð 	ƒuØØ	
‹Øàó    c                   ó6   • \ rS rSrSrS rS rS rS rS r	Sr
g	)
Ú_Infé2   z2
An object that is bigger than all other objects.
c                 ó   • U[         L a  gg)zi
@param other: Another object.
@type other: any

@return: 0 if other is inf, 1 otherwise.
@rtype: C{int}
r   r   )Ú_inf©ÚselfÚothers     r   Ú__cmp__Ú_Inf.__cmp__7   s   € ð ”DŠ=ØØr   c                 ó*   • U R                  U5      S:  $ ©Nr   ©r    r   s     r   Ú__lt__Ú_Inf.__lt__C   ó   € Ø�|‰|˜EÓ" QÑ&Ð&r   c                 ó*   • U R                  U5      S:*  $ r#   r$   r   s     r   Ú__le__Ú_Inf.__le__F   ó   € Ø�|‰|˜EÓ" aÑ'Ð'r   c                 ó*   • U R                  U5      S:„  $ r#   r$   r   s     r   Ú__gt__Ú_Inf.__gt__I   r'   r   c                 ó*   • U R                  U5      S:¬  $ r#   r$   r   s     r   Ú__ge__Ú_Inf.__ge__L   r+   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    r%   r)   r-   r0   Ú__static_attributes__r   r   r   r   r   2   s    † ñò
ò'ò(ò'õ(r   r   c                   ó   • \ rS rSrSrSrg)ÚIncomparableVersionséS   z%
Two versions could not be compared.
r   N)r2   r3   r4   r5   r6   r7   r   r   r   r9   r9   S   s   † ôr   r9   c                   ó‚   • \ rS rSrSr    SS jr\S 5       rS r\r	\r
\rS rS rS	 rS
 rS rS rS rS rS rSrg)ÚVersionéY   z½
An encapsulation of a version for a project, with support for outputting
PEP-440 compatible version strings.

This class supports the standard major.minor.micro[rcN] scheme of
versioning.
Nc	                 óF  • U(       a  U(       a  [        S5      eU(       a#  U(       d  Un[        R                  " S[        SS9  US:X  a.  U(       d  U(       d  U(       d  U(       d  U(       a  [        S5      eXl        X l        X0l        X@l        XPl        Xpl	        X€l
        g)aJ  
@param package: Name of the package that this is a version of.
@type package: C{str}
@param major: The major version number.
@type major: C{int} or C{str} (for the "NEXT" symbol)
@param minor: The minor version number.
@type minor: C{int}
@param micro: The micro version number.
@type micro: C{int}
@param release_candidate: The release candidate number.
@type release_candidate: C{int}
@param prerelease: The prerelease number. (Deprecated)
@type prerelease: C{int}
@param post: The postrelease number.
@type post: C{int}
@param dev: The development release number.
@type dev: C{int}
z Please only return one of these.zvPassing prerelease to incremental.Version was deprecated in Incremental 16.9.0. Please pass release_candidate instead.é   ©Ú
stacklevelÚNEXTz;When using NEXT, all other values except Package must be 0.N)Ú
ValueErrorÚwarningsÚwarnÚDeprecationWarningÚpackageÚmajorÚminorÚmicroÚrelease_candidateÚpostÚdev)	r   rG   rH   rI   rJ   rK   Ú
prereleaserL   rM   s	            r   Ú__init__ÚVersion.__init__b   s…   € ö: ¦ÜÐ?Ó@Ð@ÞÖ 1Ø *ÐÜ�MŠMð-ô #Øòð �F‹?ÞžÖ!2¶d¾cÜ ØQóð ð ŒØŒ
ØŒ
ØŒ
Ø!2ÔØŒ	Ø�r   c                 óN   • [         R                  " S[        SS9  U R                  $ )NzuAccessing incremental.Version.prerelease was deprecated in Incremental 16.9.0. Use Version.release_candidate instead.r?   r@   )rD   rE   rF   rK   ©r   s    r   rN   ÚVersion.prerelease™   s)   € ä�Šð1ô Øò	
ð ×%Ñ%Ð%r   c                 óJ  • U R                   S:X  a  U R                   $ U R                  c  SnOSU R                  < 3nU R                  c  SnOSU R                  < 3nU R                  c  SnOSU R                  < 3nSU R                   U R                  U R
                  XU4-  $ )zŽ
Return a PEP440-compatible "public" representation of this L{Version}.

Examples:

  - 14.4.0
  - 1.2.3rc1
  - 14.2.1rc1dev9
  - 16.04.0dev0
rB   Ú Úrcz.postz.devz%r.%d.%d%s%s%s)rH   rK   rL   rM   rI   rJ   )r   rV   rL   rM   s       r   ÚpublicÚVersion.public¤   s§   € ð �:‰:˜ÓØ—:‘:Ðà×!Ñ!Ñ)Ø‰Bð *ð  ×1Ó1Ð3ˆBà�9‰9ÑØ‰Dð ð !%§	£	Ð+ˆDà�8‰8ÑØ‰Cð ð #Ÿh›hÐ(ˆCà 4§:¡:¨t¯z©z¸4¿:¹:ÀrÐQTÐ"UÑUÐUr   c           	      óT  • U R                   c  SnOSU R                   < 3nU R                  c  SnOSU R                  < 3nU R                  c  SnOSU R                  < 3nSU R                  R                  U R
                  U R                  U R                  U R                  UUU4-  $ )NrU   z, release_candidate=z, post=z, dev=z%s(%r, %r, %d, %d%s%s%s))	rK   rL   rM   Ú	__class__r2   rG   rH   rI   rJ   )r   rK   rL   rM   s       r   Ú__repr__ÚVersion.__repr__Ç   s³   € Ø×!Ñ!Ñ)Ø "Ñð *ð =A×<RÓ<RÐ TÐà�9‰9ÑØ‰Dð ð #'§)£)Ð-ˆDà�8‰8ÑØ‰Cð ð !%§£Ð*ˆCà)Ø�N‰N×#Ñ#Ø�L‰LØ�J‰JØ�J‰JØ�J‰JØØØð	-
ñ 	
ð 		
r   c                 óH   • SU R                   < SU R                  5       < S3$ )NÚ[z
, version Ú]©rG   ÚshortrR   s    r   Ú__str__ÚVersion.__str__â   s   � Ø%)§\¤\°4·:±:¶<Ð@Ð@r   c           	      ór  • [        XR                  5      (       d  [        $ U R                  R	                  5       UR                  R	                  5       :w  a&  [        U R                  < SUR                  < 35      eU R                  S:X  a  [        nOU R                  nU R                  c  [        nOU R                  nU R                  c  SnOU R                  nU R                  c  [        nOU R                  nUR                  S:X  a  [        nOUR                  nUR                  c  [        nOUR                  nUR                  c  SnOUR                  nUR                  c  [        n	OUR                  n	[        X R                  U R                  X4U4XaR                  UR                  XxU	45      n
U
$ )a÷  
Compare two versions, considering major versions, minor versions, micro
versions, then release candidates, then postreleases, then dev
releases. Package names are case insensitive.

A version with a release candidate is always less than a version
without a release candidate. If both versions have release candidates,
they will be included in the comparison.

Likewise, a version with a dev release is always less than a version
without a dev release. If both versions have dev releases, they will
be included in the comparison.

@param other: Another version.
@type other: L{Version}

@return: NotImplemented when the other object is not a Version, or one
    of -1, 0, or 1.

@raise IncomparableVersions: when the package names of the versions
    differ.
z != rB   r   )Ú
isinstancerZ   ÚNotImplementedrG   Úlowerr9   rH   r   rK   rL   rM   r   rI   rJ   )r   r   rH   rK   rL   rM   Ú
othermajorÚotherrcÚ	otherpostÚotherdevÚxs              r   r    ÚVersion.__cmp__å   s[  € ô. ˜%§¡×0Ñ0Ü!Ð!Ø�<‰<×ÑÓ 5§=¡=×#6Ñ#6Ó#8Ó8Ü&°T·\´\À5Ç=Ã=Ð'QÓRÐRà�:‰:˜ÓÜ‰Eà—J‘JˆEà×!Ñ!Ñ)Ü $Ñà $× 6Ñ 6Ðà�9‰9ÑØ‰Dà—9‘9ˆDà�8‰8ÑÜ‰Cà—(‘(ˆCà�;‰;˜&Ó Ü‰JàŸ™ˆJà×"Ñ"Ñ*Ü‰Gà×-Ñ-ˆGà�:‰:ÑØ‰IàŸ
™
ˆIà�9‰9ÑÜ‰Hà—y‘yˆHäØ—J‘J §
¡
Ð,=ÀSÐIØŸ™ e§k¡k°7ÀxÐPó
ˆð ˆr   c                 óD   • U R                  U5      nU[        L a  U$ US:H  $ r#   ©r    rf   ©r   r   Úcs      r   Ú__eq__ÚVersion.__eq__/  ó&   € Ø�L‰L˜ÓˆØ”ÒØˆHØ�A‰vˆr   c                 óD   • U R                  U5      nU[        L a  U$ US:g  $ r#   ro   rp   s      r   Ú__ne__ÚVersion.__ne__5  rt   r   c                 óD   • U R                  U5      nU[        L a  U$ US:  $ r#   ro   rp   s      r   r%   ÚVersion.__lt__;  ó&   € Ø�L‰L˜ÓˆØ”ÒØˆHØ�1‰uˆr   c                 óD   • U R                  U5      nU[        L a  U$ US:*  $ r#   ro   rp   s      r   r)   ÚVersion.__le__A  rt   r   c                 óD   • U R                  U5      nU[        L a  U$ US:„  $ r#   ro   rp   s      r   r-   ÚVersion.__gt__G  rz   r   c                 óD   • U R                  U5      nU[        L a  U$ US:¬  $ r#   ro   rp   s      r   r0   ÚVersion.__ge__M  rt   r   )rM   rH   rJ   rI   rG   rL   rK   )NNNN)r2   r3   r4   r5   r6   rO   ÚpropertyrN   rW   Úbasera   Úlocalr[   rb   r    rr   rv   r%   r)   r-   r0   r7   r   r   r   r<   r<   Y   sv   † ñð ØØØô5ðn ñ&ó ð&òVð> €DØ€EØ€Eò
ò6AòHòTòòòòõr   r<   c                 óH   • U R                   < SU R                  5       < 3nU$ )zž
Get a friendly string for the given version object.

@param version: A L{Version} object.
@return: A string containing the package and short version number.
Ú r`   )ÚversionÚresults     r   ÚgetVersionStringrˆ   T  s   € ð  Ÿœ¨¯©­Ð9€FØ€Mr   c                 óˆ  • [         R                  R                  U SUR                  5       5      n[         R                  R                  XR                  5       5      n[         R                  R	                  U5      (       a  U$ [         R                  R	                  U5      (       a  U$ [        SR                  XU5      5      e)z‚
Determine the package root directory.

The result is one of:

    - src/{package}
    - {package}

Where {package} is downcased.
Úsrcz=Can't find the directory of project {}: I looked in {} and {})ÚosÚpathÚjoinrg   ÚisdirrC   Úformat)rŒ   rG   Úsrc_dirÚcurrent_dirs       r   Ú	_findPathr’   _  s‰   € ô �g‰g�l‰l˜4 ¨¯©«Ó8€GÜ—'‘'—,‘,˜t§]¡]£_Ó5€Kä	‡w�w‡}�}�W×ÑØˆÜ	�‰�‰�{×	#Ñ	#ØÐäØK×RÑRØ +óó
ð 	
r   c                 ó˜   • 0 n[        U S5       n[        UR                  5       U5        SSS5        US   $ ! , (       d  f       US   $ = f)z7
Load the current version from a ``_version.py`` file.
ÚrNÚ__version__)ÚopenÚexecÚread)Úversion_pathÚversion_infoÚfs      r   Ú_existing_versionrœ   y  sM   € ð €Lä	ˆl˜CÔ	  AÜˆQ�V‰V‹X�|Ô$÷ 
!ð ˜Ñ&Ð&÷ 
!Ô	 ð ˜Ñ&Ð&ús	   �7·
A	c                 óê   •  [        S5      nUR                  (       d  g [        UR                  5      nUR                  5       U R                  l        g! [         a     gf = f! [
         a     gf = f)af  
Setuptools integration: load the version from the working directory

This function is registered as a setuptools.finalize_distribution_options
entry point [1]. Consequently, it is called in all sorts of weird
contexts. In setuptools, silent failure is the law.

[1]: https://setuptools.pypa.io/en/latest/userguide/extension.html#customizing-distribution-options

@param dist:
    A (possibly) empty C{setuptools.Distribution} instance to mutate.
    There may be some metadata here if a `setup.py` called `setup()`,
    but this hook is always called before setuptools loads anything
    from ``pyproject.toml``.
z./pyproject.tomlN)	Ú_load_pyproject_tomlÚ	ExceptionÚopt_inrœ   r™   ÚFileNotFoundErrorrW   Úmetadatar†   )ÚdistÚconfigr†   s      r   Ú_get_setuptools_versionr¥   …  sq   € ð ô &Ð&8Ó9ˆð �=�=ØðÜ# F×$7Ñ$7Ó8ˆð $ŸN™NÓ,€D‡M�MÕøô ó Ùðûô ó Ùðús"   ‚A  A% Á
A"Á!A"Á%
A2Á1A2c                 óŠ  • U(       d  gSSK Jn  UR                  U 5      nUR                  5         UR                  5        Hv  nUS   S:X  d  M  [        R
                  R                  [        R
                  R                  US   5      S5      n[        U5      R                  5       U R                  l          g   [        S5      e)	zþ
Distutils integration: get the version from the package listed in the Distribution.

This function is invoked when a C{setup.py} calls C{setup(use_incremental=True)}.

@see: https://setuptools.pypa.io/en/latest/userguide/extension.html#adding-arguments
Nr   )Úbuild_pyr   Ú_versionr?   ú_version.pyzNo _version.py found.)Úsetuptools.commandr§   Úfinalize_optionsÚfind_all_modulesr‹   rŒ   r�   Údirnamerœ   rW   r¢   r†   rŸ   )r£   ÚkeywordÚvaluer§   Ú
sp_commandÚitemr™   s          r   Ú_get_distutils_versionr²   ¨  s˜   € ö Øå+à×"Ñ" 4Ó(€JØ×ÑÔ!à×+Ñ+Ö-ˆØ�‰7�jÕ ÜŸ7™7Ÿ<™<¬¯©¯©¸¸Q¹Ó(@À-ÓPˆLÜ$5°lÓ$C×$JÑ$JÓ$LˆD�M‰MÔ!Ùñ	 .ô Ð+Ó
,Ð,r   c                 ó^   • [         R                  S:”  a  SSKnOSSKnUR	                  U 5      $ )z"
Read the content of a TOML file.
)é   é   r   N)Úsysrš   ÚtomllibÚtomliÚload)r›   r·   s     r   Ú
_load_tomlrº   Á  s&   € ô ×Ñ˜'Ó!Üãà�<‰<˜‹?Ðr   T)Úfrozenc                   óN   • \ rS rSr% Sr\\S'    \\S'    \\S'    \S 5       r	Sr
g)	Ú_IncrementalConfigiÏ  z6
Configuration loaded from a ``pyproject.toml`` file.
r    rG   rŒ   c                 óV   • [         R                  R                  U R                  S5      $ )z0Path of the ``_version.py`` file. May not exist.r©   )r‹   rŒ   r�   rR   s    r   r™   Ú_IncrementalConfig.version_pathâ  s   € ô �w‰w�|‰|˜DŸI™I }Ó5Ð5r   r   N)r2   r3   r4   r5   r6   ÚboolÚ__annotations__Ústrr�   r™   r7   r   r   r   r½   r½   Ï  s7   ‡ ñð ƒLðð ƒLØCà
ƒIØ"àñ6ó ó6r   r½   c           	      óÆ  • [        U S5       n[        U5      nSSS5        [        W5      nSnUb  SU;   a  US   nUc	   US   S   nUc  [	        S5      e[        U[        5      (       d#  [        SR                  [        U5      5      5      e[        USLU[        [        R                  R                  U 5      U5      S9$ ! , (       d  f       N¯= f! [         a     N—f = f)ac  
Load Incremental configuration from a ``pyproject.toml``

If the [tool.incremental] section is empty we take the project name
from the [project] section. Otherwise we require only a C{name} key
specifying the project name. Other keys are forbidden to allow future
extension and catch typos.

@param toml_path:
    Path to the ``pyproject.toml`` to load.
ÚrbNÚnameÚprojectz¤Incremental failed to extract the project name from pyproject.toml. Specify it like:

    [project]
    name = "Foo"

Or:

    [tool.incremental]
    name = "Foo"

z/The project name must be a string, but found {})r    rG   rŒ   )r–   rº   Ú_extract_tool_incrementalÚKeyErrorrC   re   rÂ   Ú	TypeErrorr�   Útyper½   r’   r‹   rŒ   r­   )Ú	toml_pathr›   ÚdataÚtool_incrementalrG   s        r   rž   rž   è  s÷   € ô 
ˆi˜Ô	 !Ü˜!‹}ˆ÷ 
ô 1°Ó6Ðð €GØÑ#¨Ð2BÓ(BØ" 6Ñ*ˆØ�ð	Ø˜9‘o fÑ-ˆGð �äð ó ð 	ô �gœs×#Ñ#ÜØ=×DÑDÄTÈ'Ã]ÓSó
ð 	
ô Ø tÐ+ØÜ”r—w‘w—‘ yÓ1°7Ó;ñð ÷E 
Õ	ûô ó 	Ùð	ús   �CÁ C Ã
CÃ
C ÃC c                 ó  • SU ;  a  g [        U S   [        5      (       d  [        S5      eSU S   ;  a  g U S   S   n[        U[        5      (       d  [        S5      eS1R                  UR	                  5       5      (       d  [        S5      eU$ )NÚtoolz[tool] must be a tableÚincrementalz"[tool.incremental] must be a tablerÅ   z'Unexpected key(s) in [tool.incremental])re   ÚdictrC   Ú
issupersetÚkeys)rÌ   rÍ   s     r   rÇ   rÇ     s‘   € Ø�TÓØÜ�d˜6‘l¤D×)Ñ)ÜÐ1Ó2Ð2Ø˜D ™LÓ(Øà˜F‘| MÑ2ÐÜÐ&¬×-Ñ-ÜÐ=Ó>Ð>àˆ8×ÑÐ/×4Ñ4Ó6×7Ñ7ÜÐBÓCÐCØÐr   r   )r•   c                  ó,   • [         R                  " 5       $ )N)r•   rW   r   r   r   Ú_setuptools_versionrÕ   1  s   € Ü×ÒÓÐr   )r•   r<   rˆ   )+r6   Ú
__future__r   r   r‹   r¶   rD   Útypingr   r   r   r   r	   r
   r   Údataclassesr   ÚioÚtyping_extensionsr   Údistutils.distr   Ú_Distributionr   Úobjectr   r   rÉ   r9   r<   rˆ   r’   rœ   r¥   r²   rº   r½   rž   rÇ   r¨   r•   rÕ   Ú__all__r   r   r   Ú<module>rß      sÀ   ðñ÷ 1ã 	Û 
Û ß O× OÑ OÝ !ö ÛÝ)Ý<òô((ˆ6ô (ñ< ƒv€ô˜9ô ôxˆfô xòvò
ò4	'ò -òF-ò2ñ �$Ñ÷6ð 6ó ð6ò02òjõ" "ò ò 9�r   