U
    nËjÂ	  ã                   @  sH   d Z ddlmZ dZdZddœdd„Zddœd	d
„Zdddœdd„ZdS )z@The `version` module holds the version information for Pydantic.é    )Úannotations)ÚVERSIONÚversion_infoz2.10.6Ústr)Úreturnc                   C  s   d  t d¡dd… ¡S )zmReturn the `major.minor` part of Pydantic version.

    It returns '2.1' if Pydantic version is '2.1.1'.
    Ú.Né   )Újoinr   Úsplit© r   r   ú4/tmp/pip-unpacked-wheel-zvl9l234/pydantic/version.pyÚversion_short   s    r   c               	   C  s$  ddl m}  ddl}ddl}ddl}ddlm} ddlm} ddl	m
} dddd	d
ddh}g }|  ¡ D ],}	|	jd }
|
|krf| |
› d|	j› �¡ qf|j |j |j t¡¡¡}| |¡rÌ| ¡ rÌ| |¡nd}t|jt|ddƒpæ|j|tƒ ¡ j|j| ¡ d |¡|dœ}d dd„ | ¡ D ƒ¡S )zFReturn complete version information for Pydantic and its dependencies.r   N)ÚPathé   )Ú_gitzemail-validatorZfastapiZmypyzpydantic-extra-typeszpydantic-settingsZpyrightZtyping_extensionsÚNameú-ÚunknownZ
build_infoú )zpydantic versionzpydantic-core versionzpydantic-core buildzinstall pathzpython versionÚplatformzrelated packagesÚcommitÚ
c                 s  s.   | ]&\}}d   |d t|ƒ dd¡¡V  qdS )z	{:>30} {}ú:r   r   N)Úformatr   Úreplace)Ú.0ÚkÚvr   r   r   Ú	<genexpr>?   s     zversion_info.<locals>.<genexpr>)Úimportlib.metadataÚmetadataÚosr   ÚsysÚpathlibr   Zpydantic_core._pydantic_coreZ_pydantic_coreÚ	_internalr   ÚdistributionsÚappendÚversionÚpathÚabspathÚdirnameÚ__file__Zis_git_repoZhave_gitZgit_revisionr   Ú__version__ÚgetattrZbuild_profileÚresolveÚparentr	   Úitems)Zimportlib_metadatar!   r   r"   r   ZpdcÚgitZpackage_namesZrelated_packagesÚdistÚnameZpydantic_dirZmost_recent_commitÚinfor   r   r   r      sB    ù	
ÿø
r   ztuple[int, int, int])r'   r   c                 C  s   t tt|  d¡d  d¡ƒƒS )a>  Parse `mypy` string version to a 3-tuple of ints.

    It parses normal version like `1.11.0` and extra info followed by a `+` sign
    like `1.11.0+dev.d6d9d8cd4f27c52edac1f537e236ec48a01e54cb.dirty`.

    Args:
        version: The mypy version string.

    Returns:
        A triple of ints, e.g. `(1, 11, 0)`.
    ú+r   r   )ÚtupleÚmapÚintÚ	partitionr
   )r'   r   r   r   Úparse_mypy_versionB   s    r:   N)	Ú__doc__Ú
__future__r   Z_annotationsÚ__all__r   r   r   r:   r   r   r   r   Ú<module>   s   /