o
    wi	,                     @   sF  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 	dDddded
dee dee dee dee de	e defddZeddeddededefddZedddd Zedddd d! Zeddd"d# Zed$d%dd&d' Zed(d%dd)d* Zed+dddEd,d-Z eddd.d/ Z!eddd0d1 Z"eddd2d3 Z#edddFd5d6Z$edddGd8d9Z%eddd:d; Z&eddd<d Z'eej(d=ddZ(eej)d>ddZ)eej*d?ddZ*eej+d@ddZ+eej,dAddZ,eej-dBddZ-eej.dCddZ.dS )HzA
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                   sH   du rt t dS tdtdtf f fd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
    Nr   r   .c                     s   dg}r
| d s| d n| t r!| d n| d ttj}p/|}ttttt j}d	|}t
j|j||d t|j|jd ~| 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msgr   r   r   r   r    O/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/semver/_deprecated.pywrapper0   s*   



	zdeprecated.<locals>.wrapper)r   
deprecatedr   r   r   )r   r   r   r   r   r0   r.   r-   r/   r1      s   $"r1   z3.0.0z$Still under investigation, see #258.)r   r   r   ver1ver2c                 C   s   t | |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r2   r3   r.   r.   r/   r5   V   s   r5   z2.10.0r   c                 C   s   t |  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   r4   to_dictr7   r.   r.   r/   r4   t   s   r4   zsemver.version.Version.parse)r   r   c                 C   s
   t | 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   r4   r7   r.   r.   r/   parse_version_info   s   
r9   c                 C   s   t | }||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   r4   match)r   
match_exprverr.   r.   r/   r:      s   

r:   maxz2.10.2c                 C      t t| |tjd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   r=   r   r4   r6   r.   r.   r/   max_ver      rA   minc                 C   r>   )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'
    r?   )r   rC   r   r4   r6   r.   r.   r/   min_ver   rB   rD   zstr(versionobject)c                 C   s   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buildr.   r.   r/   format_version   s   rJ   c                 C      t t|  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   r4   
bump_majorr7   r.   r.   r/   rL        rL   c                 C   rK   )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   r4   
bump_minorr7   r.   r.   r/   rN     rM   rN   c                 C   rK   )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   r4   
bump_patchr7   r.   r.   r/   rO   )  rM   rO   rcc                 C      t t| |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   r4   bump_prereleaser   tokenr.   r.   r/   rR   ;  rB   rR   rI   c                 C   rQ   )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   r4   
bump_buildrS   r.   r.   r/   rU   N  rB   rU   c                 C   s   t | }t| 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   r4   r   finalize_version)r   verinfor.   r.   r/   rV   a  s   
rV   c                 K   s   t t| 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'
    Nr.   )r   r   r4   r   )r   partsr.   r.   r/   r   w  s   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)rP   )rI   )/__doc__r   r"   	functoolsr   r   typesr   typingr   r   r   r    r
   r   r   _typesr   r   DeprecationWarningr   Warningr1   PendingDeprecationWarningintr5   r4   r9   r:   rA   rD   rJ   rL   rN   rO   rR   rU   rV   r   cmd_bump	cmd_checkcmd_comparecmd_nextvercreateparserprocessmainr.   r.   r.   r/   <module>   s    
D













