o
    yAf3                     @  sr   d dl mZ d dlmZmZmZmZ d dlmZ er d dl	m
Z
 G dd deZdddZdddZdddZdS )    )annotations)TYPE_CHECKINGAnyTuplecast)VersionSchemeInterfaceVersionc                   @  s   e Zd ZdZdZdd	d
ZdS )StandardSchemez/
    See https://peps.python.org/pep-0440/
    standarddesired_versionstroriginal_versionversion_datadictreturnc              	   C  s  ddl m} ||}|d}|D ]}|dkrt||jd q|dkr1t|t||jd gd q|dkrEt|t||j|jd gd q|d	v r[t|t||j|j|jd gd q|d
v rt	|d\}}	|j
rxt	|j
 \}
}||
krx|d }	t|||	fd q|dv r|jd u rdn|jd }	t|t	||	d q|dkr|jd u rdn|jd }	t|||	fd qt|dkrd}t|||}| jddr||krd| d| d}t|t|  S t|S )Nr   r   ,release)r   major   minor>   Zfixmicropatch>   bprepreviewcbetaaalpharc)r   >   rpostrev)r"   dev)r$   zBCannot specify multiple update operations with an explicit versionzvalidate-bumpTz	Version `z+` is not higher than the original version ``)packaging.versionr	   splitreset_version_partsr   update_releaser   r   r   parse_letter_versionr   r"   r$   len
ValueErrorconfiggetr   )selfr   r   r   r	   originalversionsversionZphasenumberZcurrent_phaseZcurrent_numbermessageZnext_version r5   F/usr/lib/python3.10/site-packages/hatchling/version/scheme/standard.pyupdate   sH   
 zStandardScheme.updateN)r   r   r   r   r   r   r   r   )__name__
__module____qualname____doc__ZPLUGIN_NAMEr7   r5   r5   r5   r6   r
      s    r
   r2   r	   kwargsr   r   Nonec                 K  sp   | j }i }d}d}|D ] }|r||||< q||v r$|| ||< d}qt||||< qt|di || _ d S )N)epochr   r   r"   r$   localFTr5   )_versionr.   getattrtype)r2   r<   Zinternal_versionpartsZordered_part_namesresetZ	part_namer5   r5   r6   r(   E   s   r(   r   new_release_parts	list[int]tuple[int, ...]c                 C  s.   | dd tt| jt| D  t|S )Nc                 s  s    | ]}d V  qdS )r   Nr5   ).0_r5   r5   r6   	<genexpr>Z   s    z!update_release.<locals>.<genexpr>)extendranger+   r   tuple)r   rE   r5   r5   r6   r)   X   s   &r)   argstuple[str, int]c                  O  s(   ddl m} ttttf || i |S )Nr   )_parse_letter_version)r&   rP   r   r   r   int)rN   r<   rP   r5   r5   r6   r*   _   s   r*   N)r2   r	   r<   r   r   r=   )r   r	   rE   rF   r   rG   )rN   r   r<   r   r   rO   )
__future__r   typingr   r   r   r   Z)hatchling.version.scheme.plugin.interfacer   r&   r	   r
   r(   r)   r*   r5   r5   r5   r6   <module>   s    
:
