HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/__pycache__/distro_info.cpython-311.pyc
�

�>e9���dZddlZddlZddlZddlZdedejfd�Zdefd�ZGd�de	��Z
Gd	�d
��Zdeeefdedej
ejfd
�ZGd�d��ZGd�de��ZGd�de��ZdS)z>provides information about Ubuntu's and Debian's distributions�N�string�returnc��d�|�d��D��}t|��dkr|\}}}tj|||��St|��dkrO|\}}|dkrtj||d��Stj||dzd��tjd��z
Std���)	z9Convert a date string in ISO 8601 into a datetime object.c�,�g|]}t|����S�)�int��.0�xs  �-/usr/lib/python3/dist-packages/distro_info.py�
<listcomp>z convert_date.<locals>.<listcomp>s��/�/�/��S��V�V�/�/�/��-�����zDate not in ISO 8601 format.)�split�len�datetime�date�	timedelta�
ValueError)r�parts�year�month�days     r�convert_daters���/�/�V�\�\�#�.�.�/�/�/�E�
�5�z�z�Q���"���u�c��}�T�5�#�.�.�.�
�5�z�z�Q����
��u��B�;�;��=��u�b�1�1�1��}�T�5�1�9�a�0�0�8�3E�a�3H�3H�H�H�
�3�
4�
4�4rc��dS)z4Get the data directory based on the module location.z/usr/share/distro-inforrrr�
_get_data_dirr!%s��#�#rc�$��eZdZdZd�fd�Z�xZS)�DistroDataOutdatedzDistribution data outdated.rNc�J��t���d��dS)Nz�Distribution data outdated. Please check for an update for distro-info-data. See /usr/share/doc/distro-info-data/README.Debian for details.��super�__init__��self�	__class__s �rr'zDistroDataOutdated.__init__-s/���
�����
M�	
�	
�	
�	
�	
r�rN)�__name__�
__module__�__qualname__�__doc__r'�
__classcell__�r*s@rr#r#*sC�������%�%�
�
�
�
�
�
�
�
�
�
rr#c�8�eZdZdZ						ddedededejdejejdejejd	ejejd
ejejdejejdejejd
dfd�Z	dejd
e
fd�ZdS)�
DistroReleasez"Represents a distributions releaseN�version�codename�series�created�release�eol�eol_esm�eol_lts�eol_elts�
eol_serverrc��||_||_||_||_||_||_||_|	|_||_|
|_	dS�N)
r4r5r6r7r8r9r;r<r:r=)r)r4r5r6r7r8r9r:r;r<r=s           rr'zDistroRelease.__init__:sN����� ��
���������������� ��
����$����rrc�h�||jko'|jdup||jkp|jduo
||jkS)z:Check whether this release is supported on the given date.N)r7r9r=�r)rs  r�is_supportedzDistroRelease.is_supportedSsL���t�|�#�
��H���
I��t�x��
I���t�+�G����0G�	
r)NNNNNN)r,r-r.r/�strrr�typing�Optionalr'�boolrBrrrr3r34s������,�,�37�.2�26�26�37�59�%�%��%��%��	%�
��%�����/�
%��_�X�]�
+�%�����/�%�����/�%��/�(�-�0�%��O�H�M�2�%�
�%�%�%�%�2
���
�4�
�
�
�
�
�
rr3�row�columnc�R�|�|��}|sdSt|��Sr?)�getr)rGrH�date_strings   r�	_get_daterL\s,���'�'�&�/�/�K����t���$�$�$rc��eZdZdZdeddfd�Zedeefd���Zddedee	j
eeffd	�Zd
e
jdeefd�Z		dded
e	je
jd
e	jede	j
eedffd�Zdded
e	jede	jefd�Z	dd
e	je
jdede	j
eeffd�Zdedede	j
eeffd�Z	dd
e	je
jdede	j
eeffd�Z	dd
e	je
jdedee	j
eeffd�Zdedefd�Z	dd
e	je
jdedee	j
eeffd�ZdS)�
DistroInfozzBase class for distribution information.
    Use DebianDistroInfo or UbuntuDistroInfo instead of using this directly.
    �distrorNc���||_tj�t	��|���dz��}t
|d���5}tj|��}g|_	|D]�}t|d|d|dt|d��t|d��t|d	��t|d
��t|d��t|d��t|d
���
�
}|j	�
|����	ddd��n#1swxYwYtj���|_dS)Nz.csvzutf-8)�encodingr4r5r6r7r8r9zeol-esmzeol-ltszeol-eltsz
eol-server)�_distro�os�path�joinr!�lower�open�csv�
DictReader�	_releasesr3rrL�appendrr�today�_date)r)rO�filename�csvfile�
csv_readerrGr8s       rr'zDistroInfo.__init__hsu������7�<�<�
��������&�1H�I�I��
�(�W�
-�
-�
-�	/�����0�0�J��D�N�!�

/�

/��'��	�N��
�O���M� ��Y��0�0��c�9�-�-��c�5�)�)��c�9�-�-��c�9�-�-��c�:�.�.��c�<�0�0������%�%�g�.�.�.�.�

/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�"�]�(�(�*�*��
�
�
s�CD3�3D7�:D7c�$�d�|jD��S)z*List codenames of all known distributions.c��g|]	}|j��
Sr�r6r	s  rr
z"DistroInfo.all.<locals>.<listcomp>�s��1�1�1�Q���1�1�1r�rZ)r)s r�allzDistroInfo.all~s��2�1�$�.�1�1�1�1rr5�resultc�.�����fd��jD��S)zList all known distributions.c�<��g|]}���|����Sr)�_format)r
rrfr)s  ��rr
z&DistroInfo.get_all.<locals>.<listcomp>�s'���@�@�@�A����V�Q�'�'�@�@�@rrd)r)rfs``r�get_allzDistroInfo.get_all�s#����@�@�@�@�@���@�@�@�@rrc�*���fd�|jD��S)z?Return all distributions that were available on the given date.c�*��g|]}�|jk�
|��Sr)r7�r
rrs  �rr
z%DistroInfo._avail.<locals>.<listcomp>�s%���?�?�?�a�T�Q�Y�->�->��->�->�->rrdrAs `r�_availzDistroInfo._avail�s���?�?�?�?�4�>�?�?�?�?rr8�defaultc��|S)z3Map codename aliases to the codename they describe.r�r)r8rros    rr5zDistroInfo.codename�s	���r�namec�L�|jD]}||j|jfvr	|jcS�|S)z!Map codename or series to version)rZr5r6r4)r)rrror8s    rr4zDistroInfo.version�s@���~�	'�	'�G���(�'�.�9�9�9���&�&�&�:��rc�����|j��fd�|����D��}|st���|�||d��S)�<Get latest development distribution based on the given date.Nc�\��g|](}|j��|jk�|j��|jk�&|��)Sr?�r8r9rms  �rr
z$DistroInfo.devel.<locals>.<listcomp>��G���
�
�
���y� �T�A�I�%5�%5�1�5�=�D�TU�TY�M�M�
�LY�M�Mr����r]rnr#ri�r)rrf�distross `  r�develzDistroInfo.devel��s����<��:�D�
�
�
�
��[�[��&�&�
�
�
��
�	'�$�&�&�&��|�|�F�G�B�K�0�0�0r�
format_stringc��|dkr|S|dkr|jS|dkr |jdz|jzdz|jzdzS|dkr|jSt	d|zd	z���)
z"Format a given distribution entry.�objectr5�fullname� z "�"r8zQOnly codename, fullname, object, and release are allowed result values, but not 'z'.)r6rRr4r5r)r)rr8s   rrizDistroInfo._format�s����H�$�$��N��J�&�&��>�!��J�&�&��<�#�%���7�$�>��AQ�Q�TW�W�W��I�%�%��?�"��
'�)6�
7�9=�
>�
�
�	
rc�����|j��fd�|����D��}|st���|�||d��S)z7Get latest stable distribution based on the given date.Nc�\��g|](}|j�	�|jk�|j��|jk�&|��)Sr?rwrms  �rr
z%DistroInfo.stable.<locals>.<listcomp>�sL���
�
�
���y�$����):�):���
�QU�YZ�Y^�Q^�Q^�
�Q^�Q^�Q^rryrzr{s `  r�stablezDistroInfo.stable�r~rc��t���)z@Get list of all supported distributions based on the given date.)�NotImplementedError)r)rrfs   r�	supportedzDistroInfo.supported�s��"�#�#�#rc��||jvS)�%Check if the given codename is known.)re�r)r5s  r�validzDistroInfo.valid�s���4�8�#�#rc�����|��j}��|������fd���|��D��}|S)zBGet list of all unsupported distributions based on the given date.Nc�N��g|]!}|j�v����|����"Sr)r6ri)r
rrfr)r�s  ���rr
z*DistroInfo.unsupported.<locals>.<listcomp>�s4���c�c�c�q���Yb�Ib�Ib�4�<�<���*�*�Ib�Ib�Ibr)r]r�rn)r)rrfr|r�s` ` @r�unsupportedzDistroInfo.unsupported�sT������<��:�D��N�N�4�(�(�	�c�c�c�c�c�c�D�K�K��4E�4E�c�c�c���r)r5�NNr?�Nr5)r,r-r.r/rCr'�property�listrerD�Unionr3rjrrrnrEr5r4r}rir�r�rFr�r�rrrrNrNcs��������+�s�+�t�+�+�+�+�,�2�T�#�Y�2�2�2��X�2�A�A�c�A�4���]�TW�EW�8X�3Y�A�A�A�A�@�8�=�@�T�-�-@�@�@�@�@�04�(,�	�����o�h�m�,�����%�	�

��m�S�$�.�	/�������C��&�/�#�*>��&�/�Z]�J^�����JT�
1�
1��O�H�M�2�
1�CF�
1�	��m�S�(�	)�
1�
1�
1�
1�
� �
�+8�
�	��m�S�(�	)�
�
�
�
�&JT�
1�
1��O�H�M�2�
1�CF�
1�	��m�S�(�	)�
1�
1�
1�
1� JT�$�$��O�H�M�2�$�CF�$�	
�f�l�=�#�-�.�	/�$�$�$�$�$�c�$�d�$�$�$�$�
JT����O�H�M�2��CF��	
�f�l�=�#�-�.�	/������rrNc���eZdZdZd�fd�Z		ddedejej	dejedej
eedffd�Z	ddejej	d
edej
eeffd�Z
	ddejej	d
edej
eeffd�Z	ddejej	d
edeej
eeffd
�Z	ddejej	d
edeej
eeffd�Z	ddejej	d
edeej
eeffd�Z	ddejej	d
edej
eeffd�Zd	edefd�Z�xZS)�DebianDistroInfoz1provides information about Debian's distributionsrNc�J��t���d��dS)N�Debianr%r(s �rr'zDebianDistroInfo.__init__��!���
������"�"�"�"�"rr8rroc���|dkr|�|��S|dkr|�|��S|dkr|�|��S|dkr|�|��S|S)z3Map 'unstable', 'testing', etc. to their codenames.�unstable�testingr��	oldstable)r}r�r��oldrqs    rr5zDebianDistroInfo.codename�s{���j� � ��:�:�d�#�#�#��i����<�<��%�%�%��h����;�;�t�$�$�$��k�!�!��8�8�D�>�>�!��rr5rfc������|j��fd�|����D��}t|��dkrt���|�||d��S)ruNc�\��g|](}|j��|jk�|j��|jk�&|��)Sr?rwrms  �rr
z*DebianDistroInfo.devel.<locals>.<listcomp>�rxrr����r]rnrr#rir{s `  rr}zDebianDistroInfo.devel�s|����<��:�D�
�
�
�
��[�[��&�&�
�
�
��
�w�<�<�!���$�&�&�&��|�|�F�G�B�K�0�0�0rc������|j��fd�|����D��}t|��dkrt���|�||d��S)z=Get old (stable) Debian distribution based on the given date.Nc�8��g|]}|j�	�|jk�|��Sr?)r8rms  �rr
z(DebianDistroInfo.old.<locals>.<listcomp>
s.���_�_�_��1�9�3H�T�UV�U^�M^�M^�1�M^�M^�M^rrr�r�r{s `  rr�zDebianDistroInfo.oldsk����<��:�D�_�_�_�_�d�k�k�$�/�/�_�_�_���w�<�<�!���$�&�&�&��|�|�F�G�B�K�0�0�0rc�d�������j����fd������D��}|S)zOGet list of all supported Debian distributions based on the given
        date.Nc�`��g|]*}|j��|jk����|����+Sr?)r9ri�r
rrrfr)s  ���rr
z.DebianDistroInfo.supported.<locals>.<listcomp>sC���
�
�
�()�!�%�-�SW�[\�[`�S`�S`�D�L�L���#�#�S`�S`�S`r�r]rnr{s``` rr�zDebianDistroInfo.supportedsX�����
�<��:�D�
�
�
�
�
�
�-1�[�[��->�->�
�
�
���rc�d�������j����fd������D��}|S)zSGet list of all LTS supported Debian distributions based on the given
        date.Nc���g|]<}|j�3�|jkr(|j��|jk�&���|����=Sr?)r9r;rir�s  ���rr
z2DebianDistroInfo.lts_supported.<locals>.<listcomp>%sY���
�
�
����!�d�Q�U�l�l���&�4�1�9�+<�+<�
�L�L���#�#�,=�+<�+<rr�r{s``` r�
lts_supportedzDebianDistroInfo.lts_supported�X�����
�<��:�D�
�
�
�
�
�
��[�[��&�&�
�
�
���rc�d�������j����fd������D��}|S)z\Get list of all Extended LTS supported Debian distributions based on
        the given date.Nc���g|]<}|j�3�|jkr(|j��|jk�&���|����=Sr?)r;r<rir�s  ���rr
z3DebianDistroInfo.elts_supported.<locals>.<listcomp>4s[���
�
�
���	�%�$���*:�*:���'�D�A�J�,>�,>�
�L�L���#�#�-?�,>�,>rr�r{s``` r�elts_supportedzDebianDistroInfo.elts_supported-r�rc�����|j��fd�|����D��}|st���|�||d��S)z?Get latest testing Debian distribution based on the given date.Nc�x��g|]6}|j�|js$|j��|jk�"|j��|jk�4|��7Sr?)r8r4r9rms  �rr
z,DebianDistroInfo.testing.<locals>.<listcomp>Bs_���
�
�
���	�!�a�i�!��	�%�$���*:�*:���
�QU�YZ�Y^�Q^�Q^�
�R_�Q^�Q^rryrzr{s `  rr�zDebianDistroInfo.testing<ss����<��:�D�
�
�
�
��[�[��&�&�
�
�
���	'�$�&�&�&��|�|�F�G�B�K�0�0�0rc�@�t�||��p|dvS)r�)r�r�r�r�)rNr�r�s  rr�zDebianDistroInfo.validLs,������h�/�/�
�8�@
�4
�	
rr+r�r�)r,r-r.r/r'rCrDrErrr�r3r5r}r�r�r�r�r�r�rFr�r0r1s@rr�r��s��������;�;�#�#�#�#�#�#�04�(,�	�����o�h�m�,�����%�	�

��m�S�$�.�	/�����$JT�
1�
1��O�H�M�2�
1�CF�
1�	��m�S�(�	)�
1�
1�
1�
1� JT�	1�	1��O�H�M�2�	1�CF�	1�	��m�S�(�	)�	1�	1�	1�	1�JT�
�
��O�H�M�2�
�CF�
�	
�f�l�=�#�-�.�	/�
�
�
�
�JT�
�
��O�H�M�2�
�CF�
�	
�f�l�=�#�-�.�	/�
�
�
�
� JT�
�
��O�H�M�2�
�CF�
�	
�f�l�=�#�-�.�	/�
�
�
�
� JT�1�1��O�H�M�2�1�CF�1�	��m�S�(�	)�1�1�1�1� 
�c�
�d�
�
�
�
�
�
�
�
rr�c
�B��eZdZdZd�fd�Z	d
dejejde	dej
ee	ffd�Zde	de
fd	�Z	d
dejejde	deej
ee	ffd
�Z	d
dejejde	deej
ee	ffd�Z�xZS)�UbuntuDistroInfoz1provides information about Ubuntu's distributionsrNc�J��t���d��dS)N�Ubuntur%r(s �rr'zUbuntuDistroInfo.__init__Yr�rr5rrfc�����|j��fd�|jD��}|st���|�||d��S)zWGet latest long term support (LTS) Ubuntu distribution based on the
        given date.Nc���g|]J}|j�d��dk� |j�'|j�.|j�cxkr|jk�Enn|��KS)�LTSr)r4�findr8r9rms  �rr
z(UbuntuDistroInfo.lts.<locals>.<listcomp>csr���
�
�
���y�~�~�e�$�$��)�)�a�i�)�A�E�)�a�i�SW�F`�F`�F`�F`�[\�[`�F`�F`�F`�F`�F`�
�F`�F`�F`rry)r]rZr#rir{s `  r�ltszUbuntuDistroInfo.lts\si���
�<��:�D�
�
�
�
��^�
�
�
��
�	'�$�&�&�&��|�|�F�G�B�K�0�0�0rc�P���fd�|jD��}|sdSd|djvS)zIs codename an LTS release?c�*��g|]}|j�k�
|��Srrc)r
rr5s  �rr
z+UbuntuDistroInfo.is_lts.<locals>.<listcomp>ns%���E�E�E����H�0D�0D�1�0D�0D�0DrFr�r)rZr4)r)r5r|s ` r�is_ltszUbuntuDistroInfo.is_ltsls=���E�E�E�E�d�n�E�E�E���	��5����
�*�*�*rc�d�������j����fd������D��}|S)zOGet list of all supported Ubuntu distributions based on the given
        date.Nc���g|]<}|jr�|jks|j��|jk�&���|����=Sr?)r9r=rir�s  ���rr
z.UbuntuDistroInfo.supported.<locals>.<listcomp>zs]���
�
�
����
��!�%�-�-�Q�\�-E�$�RS�R^�J^�J^�
�L�L���#�#�J^�J^�J^rr�r{s``` rr�zUbuntuDistroInfo.supporteds�X�����
�<��:�D�
�
�
�
�
�
��[�[��&�&�
�
�
��
�rc�d�������j����fd������D��}|S)zSGet list of all ESM supported Ubuntu distributions based on the
        given date.Nc�`��g|]*}|j�	�|jk����|����+Sr?)r:rir�s  ���rr
z2UbuntuDistroInfo.supported_esm.<locals>.<listcomp>�sE���
�
�
���y�$����):�):�
�L�L���#�#�):�):�):rr�r{s``` r�
supported_esmzUbuntuDistroInfo.supported_esm�r�rr+r�)r,r-r.r/r'rDrErrrCr�r3r�rFr�r�r�r�r0r1s@rr�r�VsV�������;�;�#�#�#�#�#�#�JT�1�1��O�H�M�2�1�CF�1�	��m�S�(�	)�1�1�1�1� +�s�+�t�+�+�+�+�JT����O�H�M�2��CF��	
�f�l�=�#�-�.�	/�����JT����O�H�M�2��CF��	
�f�l�=�#�-�.�	/��������rr�)r/rXrrSrDrCrrr!�	Exceptionr#r3�dictrErLrNr�r�rrr�<module>r�s���E�D�
�
�
�
�����	�	�	�	�
�
�
�
�5��5���5�5�5�5�$�s�$�$�$�$�

�
�
�
�
��
�
�
�%
�%
�%
�%
�%
�%
�%
�%
�P%�4��S��>�%�3�%�6�?�8�=�3Q�%�%�%�%�{�{�{�{�{�{�{�{�|r
�r
�r
�r
�r
�z�r
�r
�r
�j7�7�7�7�7�z�7�7�7�7�7r