� L�gl?���dZddlZddlZddlmZmZmZmZmZm Z m Z ddl m Z m Z mZmZgd�Ze e eefdfZe e ee eeffZe ee e e eefe ee eefffdffZe ee edfeeeefZeeegefZGd�d e��Zd ed d fd �ZGd�de��ZGd�d��ZdZeZ Gd�d e��Z deede ee!edfd ee eeffd�Z"ej#d��Z$deed eefd�Z%dede edfdee eefdee eefdee eefdeed efd�Z&dS) zB .. testsetup:: from packaging.version import parse, Version �N)�Any�Callable� NamedTuple�Optional� SupportsInt�Tuple�Union�)�Infinity� InfinityType�NegativeInfinity�NegativeInfinityType)�VERSION_PATTERN�parse�Version�InvalidVersion.c��eZdZUeed<eedfed<eeeefed<eeeefed<eeeefed<eeed<dS) �_Version�epoch.�release�dev�pre�post�localN) �__name__� __module__� __qualname__�int�__annotations__rr�str� LocalType���a/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/packaging/version.pyrr$s�������� �J�J�J� �3��8�_���� �%��S��/� "�"�"�"� �%��S��/� "�"�"�"� �5��c��?� #�#�#�#� �I� �����r#r�version�returnrc� �t|��S)z�Parse the given version string. >>> parse('1.0.dev1') <Version('1.0.dev1')> :param version: The version string to parse. :raises InvalidVersion: When the version string is not a valid version. )r)r%s r$rr-s�� �7� � �r#c��eZdZdZdS)rz�Raised when a version string is not a valid version. >>> Version("invalid") Traceback (most recent call last): ... packaging.version.InvalidVersion: Invalid version: 'invalid' N)rrr�__doc__r"r#r$rr9s���������r#rc��eZdZUeedfed<defd�Zdddefd�Z dddefd�Z de defd�Z dddefd �Z dddefd �Zde defd �Zd S) � _BaseVersion.�_keyr&c�*�t|j��S�N)�hashr,��selfs r$�__hash__z_BaseVersion.__hash__Fs���D�I���r#�otherc�Z�t|t��stS|j|jkSr.�� isinstancer+�NotImplementedr,�r1r3s r$�__lt__z_BaseVersion.__lt__L�)���%��.�.� "�!� !��y�5�:�%�%r#c�Z�t|t��stS|j|jkSr.r5r8s r$�__le__z_BaseVersion.__le__R�)���%��.�.� "�!� !��y�E�J�&�&r#c�Z�t|t��stS|j|jkSr.r5r8s r$�__eq__z_BaseVersion.__eq__Xr=r#c�Z�t|t��stS|j|jkSr.r5r8s r$�__ge__z_BaseVersion.__ge__^r=r#c�Z�t|t��stS|j|jkSr.r5r8s r$�__gt__z_BaseVersion.__gt__dr:r#c�Z�t|t��stS|j|jkSr.r5r8s r$�__ne__z_BaseVersion.__ne__jr=r#N)rrrrrrrr2�boolr9r<�objectr?rArCrEr"r#r$r+r+Cs������� ��S��/�����#����� &�N�&�t�&�&�&�&� '�N�'�t�'�'�'�'� '�F�'�t�'�'�'�'� '�N�'�t�'�'�'�'� &�N�&�t�&�&�&�&� '�F�'�t�'�'�'�'�'�'r#r+a� v? (?: (?:(?P<epoch>[0-9]+)!)? # epoch (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment (?P<pre> # pre-release [-_\.]? (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc) [-_\.]? (?P<pre_n>[0-9]+)? )? (?P<post> # post release (?:-(?P<post_n1>[0-9]+)) | (?: [-_\.]? (?P<post_l>post|rev|r) [-_\.]? (?P<post_n2>[0-9]+)? ) )? (?P<dev> # dev release [-_\.]? (?P<dev_l>dev) [-_\.]? (?P<dev_n>[0-9]+)? )? ) (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version c�f�eZdZUdZejdezdzejejz��Z e e d<de ddfd�Z de fd �Zde fd �Zedefd ���Zedeed ffd ���Zedeee effd���Zedeefd���Zedeefd���Zedee fd���Zede fd���Zede fd���Zedefd���Zedefd���Zedefd���Zedefd���Z edefd���Z!edefd���Z"dS)ra�This class abstracts handling of a project's versions. A :class:`Version` instance is comparison aware and can be compared and sorted using the standard Python interfaces. >>> v1 = Version("1.0a5") >>> v2 = Version("1.0") >>> v1 <Version('1.0a5')> >>> v2 <Version('1.0')> >>> v1 < v2 True >>> v1 == v2 False >>> v1 > v2 False >>> v1 >= v2 False >>> v1 <= v2 True z^\s*z\s*$r,r%r&Nc ���|j�|��}|std|�d����t|�d��r"t |�d����ndt d�|�d���d��D����t|�d��|�d ����t|�d ��|�d ��p|�d ����t|�d ��|�d����t|�d�������|_ t|j j |j j |j j|j j|j j|j j��|_dS)aCInitialize a Version object. :param version: The string representation of a version which will be parsed and normalized before use. :raises InvalidVersion: If the ``version`` does not conform to PEP 440 in any way then this exception will be raised. zInvalid version: '�'rrc3�4K�|]}t|��V��dSr.)r��.0�is r$� <genexpr>z#Version.__init__.<locals>.<genexpr>�s(����L�L�Q�#�a�&�&�L�L�L�L�L�Lr#r�.�pre_l�pre_n�post_l�post_n1�post_n2�dev_l�dev_nr)rrrrrrN)�_regex�searchrr�groupr�tuple�split�_parse_letter_version�_parse_local_version�_version�_cmpkeyrrrrrrr,)r1r%�matchs r$�__init__zVersion.__init__�s���� �"�"�7�+�+��� B� �!@�g�!@�!@�!@�A�A� A�!�/4�{�{�7�/C�/C�J�#�e�k�k�'�*�*�+�+�+���L�L�%�+�+�i�*@�*@�*F�*F�s�*K�*K�L�L�L�L�L�%�e�k�k�'�&:�&:�E�K�K��<P�<P�Q�Q�&�� � �H�%�%�u�{�{�9�'=�'=�'W����Y�AW�AW���&�e�k�k�'�&:�&:�E�K�K��<P�<P�Q�Q�&�u�{�{�7�';�';�<�<�  �  �  �� �� �M� � �M� !� �M� � �M� � �M� � �M� �  � �� � � r#c��d|�d�S)z�A representation of the Version that shows all internal state. >>> Version('1.0.0') <Version('1.0.0')> z <Version('z')>r"r0s r$�__repr__zVersion.__repr__�s�� &�D�%�%�%�%r#c�B�g}|jdkr|�|j�d���|�d�d�|jD������|j�7|�d�d�|jD������|j�|�d|j����|j�|�d |j����|j�|�d |j����d�|��S) zA string representation of the version that can be rounded-tripped. >>> str(Version("1.0a5")) '1.0a5' r�!rPc3�4K�|]}t|��V��dSr.�r �rM�xs r$rOz"Version.__str__.<locals>.<genexpr>��(����;�;��c�!�f�f�;�;�;�;�;�;r#N�c3�4K�|]}t|��V��dSr.rhris r$rOz"Version.__str__.<locals>.<genexpr>�s(���� :� :�A��Q��� :� :� :� :� :� :r#z.postz.dev�+)r�append�joinrrrrr�r1�partss r$�__str__zVersion.__str__�s"�� �� �:��?�?� �L�L�D�J�)�)�)� *� *� *� � � �S�X�X�;�;�d�l�;�;�;�;�;�<�<�<� �8� � �L�L���� :� :��� :� :� :�:�:� ;� ;� ;� �9� � �L�L�,���,�,� -� -� -� �8� � �L�L�*���*�*� +� +� +� �:� !� �L�L�)�T�Z�)�)� *� *� *��w�w�u�~�~�r#c��|jjS)zThe epoch of the version. >>> Version("2.0.0").epoch 0 >>> Version("1!2.0.0").epoch 1 )r_rr0s r$rz Version.epoch s���}�"�"r#.c��|jjS)adThe components of the "release" segment of the version. >>> Version("1.2.3").release (1, 2, 3) >>> Version("2.0.0").release (2, 0, 0) >>> Version("1!2.0.0.post0").release (2, 0, 0) Includes trailing zeroes but not the epoch or any pre-release / development / post-release suffixes. )r_rr0s r$rzVersion.releases���}�$�$r#c��|jjS)aThe pre-release segment of the version. >>> print(Version("1.2.3").pre) None >>> Version("1.2.3a1").pre ('a', 1) >>> Version("1.2.3b1").pre ('b', 1) >>> Version("1.2.3rc1").pre ('rc', 1) )r_rr0s r$rz Version.pre$s���}� � r#c�B�|jjr|jjdndS)z�The post-release number of the version. >>> print(Version("1.2.3").post) None >>> Version("1.2.3.post1").post 1 r N)r_rr0s r$rz Version.post3s#��)-� �(:�D�t�}�!�!�$�$��Dr#c�B�|jjr|jjdndS)z�The development number of the version. >>> print(Version("1.2.3").dev) None >>> Version("1.2.3.dev1").dev 1 r N)r_rr0s r$rz Version.dev>s#��(,�}�'8�B�t�}� ��#�#�d�Br#c�p�|jjr)d�d�|jjD����SdS)z�The local version segment of the version. >>> print(Version("1.2.3").local) None >>> Version("1.2.3+abc").local 'abc' rPc3�4K�|]}t|��V��dSr.rhris r$rOz Version.local.<locals>.<genexpr>Ss(����@�@�q�C��F�F�@�@�@�@�@�@r#N)r_rrpr0s r$rz Version.localIs<�� �=� � ��8�8�@�@�D�M�,?�@�@�@�@�@� @��4r#c�T�t|���dd��dS)z�The public portion of the version. >>> Version("1.2.3").public '1.2.3' >>> Version("1.2.3+abc").public '1.2.3' >>> Version("1.2.3+abc.dev1").public '1.2.3' rnr r)r r\r0s r$�publiczVersion.publicWs#���4�y�y���s�A�&�&�q�)�)r#c���g}|jdkr|�|j�d���|�d�d�|jD������d�|��S)a]The "base version" of the version. >>> Version("1.2.3").base_version '1.2.3' >>> Version("1.2.3+abc").base_version '1.2.3' >>> Version("1!1.2.3+abc.dev1").base_version '1!1.2.3' The "base version" is the public version of the project without any pre or post release markers. rrfrPc3�4K�|]}t|��V��dSr.rhris r$rOz'Version.base_version.<locals>.<genexpr>yrkr#rl)rrorprrqs r$� base_versionzVersion.base_versiondst���� �:��?�?� �L�L�D�J�)�)�)� *� *� *� � � �S�X�X�;�;�d�l�;�;�;�;�;�<�<�<��w�w�u�~�~�r#c�&�|jdup|jduS)aTWhether this version is a pre-release. >>> Version("1.2.3").is_prerelease False >>> Version("1.2.3a1").is_prerelease True >>> Version("1.2.3b1").is_prerelease True >>> Version("1.2.3rc1").is_prerelease True >>> Version("1.2.3dev1").is_prerelease True N)rrr0s r$� is_prereleasezVersion.is_prerelease}s���x�t�#�;�t�x�t�';�;r#c��|jduS)z�Whether this version is a post-release. >>> Version("1.2.3").is_postrelease False >>> Version("1.2.3.post1").is_postrelease True N)rr0s r$�is_postreleasezVersion.is_postrelease�s���y��$�$r#c��|jduS)z�Whether this version is a development release. >>> Version("1.2.3").is_devrelease False >>> Version("1.2.3.dev1").is_devrelease True N)rr0s r$� is_devreleasezVersion.is_devrelease�s���x�t�#�#r#c�P�t|j��dkr |jdndS)zqThe first item of :attr:`release` or ``0`` if unavailable. >>> Version("1.2.3").major 1 r r��lenrr0s r$�majorz Version.major�s(��#&�d�l�"3�"3�q�"8�"8�t�|�A���a�?r#c�P�t|j��dkr |jdndS)z�The second item of :attr:`release` or ``0`` if unavailable. >>> Version("1.2.3").minor 2 >>> Version("1").minor 0 �r rr�r0s r$�minorz Version.minor��(��#&�d�l�"3�"3�q�"8�"8�t�|�A���a�?r#c�P�t|j��dkr |jdndS)z�The third item of :attr:`release` or ``0`` if unavailable. >>> Version("1.2.3").micro 3 >>> Version("1").micro 0 �r�rr�r0s r$�microz Version.micro�r�r#)#rrrr)�re�compiler�VERBOSE� IGNORECASErX�CmpKeyrr rbrdrs�propertyrrrrrrrrrr|rrFr�r�r�r�r�r�r"r#r$rr�s ���������.�R�Z��/�1�G�;�R�Z�"�-�=W� X� X�F� �L�L�L�$ ��$ ��$ �$ �$ �$ �L&�#�&�&�&�&�������B�#�s�#�#�#��X�#�� %��s�C�x�� %� %� %��X� %�� !�X�e�C��H�o�.� !� !� !��X� !��E�h�s�m�E�E�E��X�E��C�X�c�]�C�C�C��X�C�� �x��}� � � ��X� �� *�� *� *� *��X� *���c�����X��0�<�t�<�<�<��X�<� �%��%�%�%��X�%��$�t�$�$�$��X�$��@�s�@�@�@��X�@��@�s�@�@�@��X�@��@�s�@�@�@��X�@�@�@r#�letter�numberc���|rH|�d}|���}|dkrd}n|dkrd}n |dvrd}n|dvrd }|t|��fS|s|rd }|t|��fSdS) Nr�alpha�a�beta�b)�cr�preview�rc)�rev�rr)�lowerr)r�r�s r$r]r]�s����#� �>��F������� �W� � ��F�F� �v� � ��F�F� �.� .� .��F�F� �|� #� #��F��s�6�{�{�"�"� �#�f�#����s�6�{�{�"�"� �4r#z[\._-]rc�l�|�1td�t�|��D����SdS)zR Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve"). Nc3�K�|];}|���s|���nt|��V��<dSr.)�isdigitr�r)rM�parts r$rOz'_parse_local_version.<locals>.<genexpr>�sU���� � ��!%� � ��� =�D�J�J�L�L�L�C��I�I� � � � � � r#)r[�_local_version_separatorsr\)rs r$r^r^�sM�� ��� � �1�7�7��>�>� � � � � � � �4r#rrrrrc �P�ttttjd�t|����������}|� |� |�t }n |�t }n|}|�t }n|}|�t } n|} |�t } ntd�|D����} ||||| | fS)Nc��|dkS)Nrr")rjs r$�<lambda>z_cmpkey.<locals>.<lambda>s ��A��F�r#c3�ZK�|]&}t|t��r|dfnt|fV��'dS)rlN)r6rr rLs r$rOz_cmpkey.<locals>.<genexpr>/sP���� � �IJ�z�!�S�)�)� D�Q��G�G�0@�!�/D� � � � � � r#)r[�reversed�list� itertools� dropwhiler r ) rrrrrr�_release�_pre�_post�_dev�_locals r$r`r`�s������i�)�*:�*:�H�W�<M�<M�N�N�O�O�P�P���H� �{�t�|���"2��� ������� �|�#3����� �{�"*����� �}�/���� � �NS� � � � � �� �(�D�%��v� 5�5r#)'r)r�r��typingrrrrrrr � _structuresr r r r�__all__rr r!�CmpPrePostDevType� CmpLocalTyper�rF�VersionComparisonMethodrr� ValueErrorrr+�_VERSION_PATTERNrr�bytesr]r�r�r^r`r"r#r$�<module>r�sR���� ���� � � � �Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�W�W�W�W�W�W�W�W�W�W�W�W� C� C� C�� �%��S��/�3�&� '� ��,�(<�e�C��H�o�M�N���� �%��c�3�h���';�U�3��8�_�'L�!M�M� N�PS� S�T�V�� � �� �#�s�(�O����� � ��#�F�F�#3�T�#9�:�������z���� �3� �9� � � � ������Z����+'�+'�+'�+'�+'�+'�+'�+'�`��>#�� �b@�b@�b@�b@�b@�l�b@�b@�b@�J !� �S�M�!�#(��e�[�$�)F�#G�!� �e�C��H�o��!�!�!�!�H'�B�J�y�1�1�� ��� � �(�9�2E� � � � �<6� �<6� �3��8�_�<6� �%��S��/� "�<6� �5��c��?� #� <6� �%��S��/� "� <6� �I� � <6� �<6�<6�<6�<6�<6�<6r#
Memory