
    \j	,                        d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlmZ ddlmZ dd	lmZmZ 	 d4ddded
dee   dee   dee   dee   de	e   defdZ edde      dededefd       Z ed      d        Z edd      d        Z ed      d        Z edd       d!        Z ed"d       d#        Z ed$d      d5d%       Z  ed      d&        Z! ed      d'        Z" ed      d(        Z# ed      d6d)       Z$ ed      d7d*       Z% ed      d+        Z& ed      d,        Z' eejP                  d-d      Z( eejR                  d.d      Z) eejT                  d/d      Z* eejV                  d0d      Z+ eejX                  d1d      Z, eejZ                  d2d      Z- eej\                  d3d      Z.y)8zA
Contains all deprecated functions.

.. autofunction: deprecated
    N)partialwraps)	FrameType)TypeCallableOptionalcast   )cli)Version)	DecoratorFreplaceversionremovecategoryfuncr   r   r   r   returnc                      t        t              S t               dt        dt        f   f fd       }|S )aN  
    Decorates a function to output a deprecation warning.

    :param func: the function to decorate
    :param replace: the function to replace (use the full qualified
        name like ``semver.version.Version.bump_major``.
    :param version: the first version when this function was deprecated.
    :param category: allow you to specify the deprecation warning class
        of your choice. By default, it's  :class:`DeprecationWarning`, but
        you can choose :class:`PendingDeprecationWarning` or a custom class.
    :return: decorated function which is marked as deprecated
    r   r   .c                  b   dg}r|j                  d       	s|j                  d       n|j                  t        	             
r|j                  d       n|j                  d       t        t              j                  }
xs |}t        t
        t        t
        t        j                               j                        }dj                  |      }t        j                  |j                  ||      t        j                  |j                        |j                         ~ | i |S )	Nz$Function 'semver.{f}' is deprecated.zDeprecated since version {v}. z*This function will be removed in semver 3.zUse {r!r} instead.z0Use the respective 'semver.Version.{r}' instead. )frv)r   filenamelineno)appendstrr	   r   __qualname__r   inspectcurrentframef_backjoinwarningswarn_explicitformatgetfilef_codef_lineno)argskwargsmsg_listr   r   framemsgr   r   r   r   r   s          </root/env/lib/python3.12/site-packages/semver/_deprecated.pywrapperzdeprecated.<locals>.wrapper0   s    :;OO<=OOHIOOCK(OO01OONODM&&LqYY0D0D0F G N NOhhx JJa7J+__U\\2>>		
 T$V$$    )r   
deprecatedr   r   r   )r   r   r   r   r   r1   s   ````` r0   r3   r3      s[    * |
 	
 4[ %HS!V$4  %  %  %D Nr2   z3.0.0z$Still under investigation, see #258.)r   r   r   ver1ver2c                 J    t        j                  |       j                  |      S )a`  
    Compare two versions strings.

    .. deprecated:: 3.0.0
       The situation of this function is unclear and it might
       disappear in the future.
       If possible, use :meth:`semver.version.Version.compare`.
       See :gh:`258` for details.

    :param ver1: first version string
    :param ver2: second version string
    :return: The return value is negative if ver1 < ver2,
             zero if ver1 == ver2 and strictly positive if ver1 > ver2

    >>> semver.compare("1.0.0", "2.0.0")
    -1
    >>> semver.compare("2.0.0", "1.0.0")
    1
    >>> semver.compare("2.0.0", "2.0.0")
    0
    )r   parsecomparer4   r5   s     r0   r8   r8   V   s    6 ==&&t,,r2   z2.10.0r   c                 H    t        j                  |       j                         S )aP  
    Parse version to major, minor, patch, pre-release, build parts.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.parse` instead.

    :param version: version string
    :return: dictionary with the keys 'build', 'major', 'minor', 'patch',
             and 'prerelease'. The prerelease or build keys can be None
             if not provided
    :rtype: dict

    >>> ver = semver.parse('3.4.5-pre.2+build.4')
    >>> ver['major']
    3
    >>> ver['minor']
    4
    >>> ver['patch']
    5
    >>> ver['prerelease']
    'pre.2'
    >>> ver['build']
    'build.4'
    )r   r7   to_dictr:   s    r0   r7   r7   t   s    4 ==!))++r2   zsemver.version.Version.parse)r   r   c                 ,    t        j                  |       S )a#  
    Parse version string to a Version instance.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.parse` instead.
    .. versionadded:: 2.7.2
       Added :func:`semver.parse_version_info`

    :param version: version string
    :return: a :class:`VersionInfo` instance

    >>> version_info = semver.Version.parse("3.4.5-pre.2+build.4")
    >>> version_info.major
    3
    >>> version_info.minor
    4
    >>> version_info.patch
    5
    >>> version_info.prerelease
    'pre.2'
    >>> version_info.build
    'build.4'
    )r   r7   r:   s    r0   parse_version_infor>      s    2 ==!!r2   c                 N    t        j                  |       }|j                  |      S )aj  
    Compare two versions strings through a comparison.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.match` instead.

    :param str version: a version string
    :param str match_expr: operator and version; valid operators are
          <   smaller than
          >   greater than
          >=  greator or equal than
          <=  smaller or equal than
          ==  equal
          !=  not equal
    :return: True if the expression matches the version, otherwise False
    :rtype: bool

    >>> semver.match("2.0.0", ">=1.0.0")
    True
    >>> semver.match("1.0.0", ">1.0.0")
    False
    )r   r7   match)r   
match_exprvers      r0   r@   r@      s!    0 --
 C99Z  r2   maxz2.10.2c                 L    t        t        | |t        j                              S )a>  
    Returns the greater version of two versions strings.

    .. deprecated:: 2.10.2
       Use :func:`max` instead.

    :param ver1: version string 1
    :param ver2: version string 2
    :return: the greater version of the two
    :rtype: :class:`Version`

    >>> semver.max_ver("1.0.0", "2.0.0")
    '2.0.0'
    key)r   rC   r   r7   r9   s     r0   max_verrG            s47==122r2   minc                 L    t        t        | |t        j                              S )aB  
    Returns the smaller version of two versions strings.

    .. deprecated:: 2.10.2
       Use Use :func:`min` instead.

    :param ver1: version string 1
    :param ver2: version string 2
    :return: the smaller version of the two
    :rtype: :class:`Version`

    >>> semver.min_ver("1.0.0", "2.0.0")
    '1.0.0'
    rE   )r   rI   r   r7   r9   s     r0   min_verrK      rH   r2   zstr(versionobject)c           	      2    t        t        | ||||            S )aX  
    Format a version string according to the Semantic Versioning specification.

    .. deprecated:: 2.10.0
       Use ``str(Version(VERSION)`` instead.

    :param int major: the required major part of a version
    :param int minor: the required minor part of a version
    :param int patch: the required patch part of a version
    :param str prerelease: the optional prerelease part of a version
    :param str build: the optional build part of a version
    :return: the formatted string
    :rtype: str

    >>> semver.format_version(3, 4, 5, 'pre.2', 'build.4')
    '3.4.5-pre.2+build.4'
    )r   r   )majorminorpatch
prereleasebuilds        r0   format_versionrR      s    & wueUJ>??r2   c                 Z    t        t        j                  |       j                               S )a  
    Raise the major part of the version string.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.bump_major` instead.

    :param: version string
    :return: the raised version string
    :rtype: str

    >>> semver.bump_major("3.4.5")
    '4.0.0'
    )r   r   r7   
bump_majorr:   s    r0   rT   rT     !     w}}W%00233r2   c                 Z    t        t        j                  |       j                               S )a  
    Raise the minor part of the version string.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.bump_minor` instead.

    :param: version string
    :return: the raised version string
    :rtype: str

    >>> semver.bump_minor("3.4.5")
    '3.5.0'
    )r   r   r7   
bump_minorr:   s    r0   rW   rW     rU   r2   c                 Z    t        t        j                  |       j                               S )a  
    Raise the patch part of the version string.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.bump_patch` instead.

    :param: version string
    :return: the raised version string
    :rtype: str

    >>> semver.bump_patch("3.4.5")
    '3.4.6'
    )r   r   r7   
bump_patchr:   s    r0   rY   rY   )  rU   r2   c                 \    t        t        j                  |       j                  |            S )aZ  
    Raise the prerelease part of the version string.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.bump_prerelease` instead.

    :param version: version string
    :param token: defaults to 'rc'
    :return: the raised version string
    :rtype: str

    >>> semver.bump_prerelease('3.4.5', 'dev')
    '3.4.5-dev.1'
    )r   r   r7   bump_prereleaser   tokens     r0   r[   r[   ;  s#      w}}W%55e<==r2   c                 \    t        t        j                  |       j                  |            S )a\  
    Raise the build part of the version string.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.bump_build` instead.

    :param version: version string
    :param token: defaults to 'build'
    :return: the raised version string
    :rtype: str

    >>> semver.bump_build('3.4.5-rc.1+build.9')
    '3.4.5-rc.1+build.10'
    )r   r   r7   
bump_buildr\   s     r0   r_   r_   N  s#      w}}W%00788r2   c                 ^    t        j                  |       }t        |j                               S )a  
    Remove any prerelease and build metadata from the version string.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.finalize_version` instead.

    .. versionadded:: 2.7.9
       Added :func:`finalize_version`

    :param version: version string
    :return: the finalized version string
    :rtype: str

    >>> semver.finalize_version('1.2.3-rc.5')
    '1.2.3'
    )r   r7   r   finalize_version)r   verinfos     r0   ra   ra   a  s&    $ mmG$Gw'')**r2   c                 ^    t         t        j                  |       j                  di |      S )aH  
    Replace one or more parts of a version and return the new string.

    .. deprecated:: 2.10.0
       Use :meth:`~semver.version.Version.replace` instead.
    .. versionadded:: 2.9.0
       Added :func:`replace`

    :param version: the version string to replace
    :param parts: the parts to be updated. Valid keys are:
      ``major``, ``minor``, ``patch``, ``prerelease``, or ``build``
    :return: the replaced version string
    :raises TypeError: if ``parts`` contains invalid keys

    >>> import semver
    >>> semver.replace("1.2.3", major=2, patch=10)
    '2.2.10'
     )r   r   r7   r   )r   partss     r0   r   r   w  s)    ( -w}}W%--6677r2   zsemver.cli.cmd_bumpzsemver.cli.cmd_checkzsemver.cli.cmd_comparezsemver.cli.cmd_nextverzsemver.cli.createparserzsemver.cli.processzsemver.cli.main)N)NN)rc)rQ   )/__doc__r!   r%   	functoolsr   r   typesr   typingr   r   r   r	    r   r   r   _typesr   r   DeprecationWarningr   Warningr3   PendingDeprecationWarningintr8   r7   r>   r@   rG   rK   rR   rT   rW   rY   r[   r_   ra   r   cmd_bump	cmd_checkcmd_comparecmd_nextvercreateparserprocessmainrd   r2   r0   <module>rx      s     $  1 1     A "! 0A
1+A c]A c]	A
 SMA 7mA AH 1&
-# -S -S -
-2 H, ,8 2HE" F"6 H! !6 E8,3 -3$ E8,3 -3$ ((;@ <@* H4 4" H4 4" H4 4" H> >$ H9 9$ H+ +* H8 8. cll,A7Ss}}.DgV	OO5w OO5w 7 S[[*>
P#(($5wGr2   