o
�J�hE � @ s� d Z ddlZddlZddlmZmZmZ ddlmZ ddl m
Z
dejdefd d
�Z
dejddfdd�Zdejdefd
d�Zdejdefdd�Zdejfdd�Zdejdefdd�Zddeee defdd�ZdS )ac
CLI parsing for :command:`pysemver` command.
Each command in :command:`pysemver` is mapped to a ``cmd_`` function.
The :func:`main <semver.cli.main>` function calls
:func:`createparser <semver.cli.createparser>` and
:func:`process <semver.cli.process>` to parse and process
all the commandline options.
The result of each command is printed on stdout.
� N)�cast�List�Optional� )�Version)�__version__�args�returnc C sV dddddd�}| j du r| j�dd g� t�| j�}t||tt| j � �}t|� �S )
z�
Subcommand: Bumps a version.
Synopsis: bump <PART> <VERSION>
<PART> can be major, minor, patch, prerelease, or build
:param args: The parsed arguments
:return: the new, bumped version
�
bump_major�
bump_minor�
bump_patch�bump_prerelease�
bump_build)�major�minor�patch�
prerelease�buildN�bumpz-h) r �parser�
parse_argsr �parse�version�getattrr �str)r Zmaptable�ver�func� r �HC:\pinokio\api\whisper-webui.git\app\env\lib\site-packages\semver\cli.py�cmd_bump s �
r c C s t �| j�rdS td| j ��)z�
Subcommand: Checks if a string is a valid semver version.
Synopsis: check <VERSION>
:param args: The parsed arguments
NzInvalid version %r)r �is_validr �
ValueError�r r r r � cmd_check1 s r# c C � t �| j�}t|�| j��S )z
Subcommand: Compare two versions.
Synopsis: compare <VERSION1> <VERSION2>
:param args: The parsed arguments
)r r �version1r �compare�version2)r �ver1r r r �cmd_compare>