§
    �Ÿj'  ã                   ór   — 	 d dl Zn# e$ r d dlZY nw xY wd dlmZ d dlZddlmZ  G d„ de¦  «        Z	d„ Z
dS )é    N)Ú
namedtupleé   ©ÚReleasec                   óò  — e Zd ZdZd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ ZdS )ÚPackagez]
    A PyPI package.

    :param pypi_dict: A dictionary retrieved from the PyPI server.
    c                 ó:   — |d         | _         |d         | _        d S )NÚinfoÚreleases)Ú_packageÚ	_releases)ÚselfÚ	pypi_dicts     úY/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/yarg/package.pyÚ__init__zPackage.__init__+   s   € Ø! &Ô)ˆŒØ" :Ô.ˆŒˆˆó    c                 ó6   — d                      | j        ¦  «        S )Nz<Package {0}>)ÚformatÚname©r   s    r   Ú__repr__zPackage.__repr__/   s   € Ø×%Ò% d¤iÑ0Ô0Ð0r   c                 ó   — | j         d         S )ze
            >>> package = yarg.get('yarg')
            >>> package.name
            u'yarg'
        r   ©r   r   s    r   r   zPackage.name2   s   € ð Œ}˜VÔ$Ð$r   c                 ó   — | j         d         S )z�
            >>> package = yarg.get('yarg')
            >>> package.url
            u'https://pypi.python.org/pypi/yarg'
        Úpackage_urlr   r   s    r   Úpypi_urlzPackage.pypi_url;   ó   € ð Œ}˜]Ô+Ð+r   c                 ó   — | j         d         S )z}
            >>> package = yarg.get('yarg')
            >>> package.summary
            u'Some random summary stuff'
        Úsummaryr   r   s    r   r   zPackage.summaryD   ó   € ð Œ}˜YÔ'Ð'r   c                 ó   — | j         d         S )z¢
            >>> package = yarg.get('yarg')
            >>> package.description
            u'A super long description, usually uploaded from the README'
        Údescriptionr   r   s    r   r"   zPackage.descriptionM   r   r   c                 óT   — d| j         vs| j         d         dk    rdS | j         d         S )zz
            >>> package = yarg.get('yarg')
            >>> package.homepage
            u'https://kura.io/yarg/'
        Ú	home_pageÚ Nr   r   s    r   ÚhomepagezPackage.homepageV   s5   € ð ˜tœ}Ð,Ð,ØŒ=˜Ô%¨Ò+Ð+Ø�4ØŒ}˜[Ô)Ð)r   c                 óT   — d| j         vs| j         d         dk    rdS | j         d         S )zŠ
            >>> package = yarg.get('yarg')
            >>> package.bugtracker
            u'https://github.com/kura/yarg/issues'
        Úbugtrack_urlr%   Nr   r   s    r   Ú
bugtrackerzPackage.bugtrackerb   s5   € ð  $¤-Ð/Ð/ØŒ=˜Ô(¨BÒ.Ð.Ø�4ØŒ}˜^Ô,Ð,r   c                 óT   — d| j         vs| j         d         dk    rdS | j         d         S )z‡
            >>> package = yarg.get('yarg')
            >>> package.docs
            u'https://yarg.readthedocs.org/en/latest'
        Údocs_urlr%   Nr   r   s    r   ÚdocszPackage.docsn   s5   € ð ˜dœmÐ+Ð+ØŒ=˜Ô$¨Ò*Ð*Ø�4ØŒ}˜ZÔ(Ð(r   c                 óh   — t          dd¦  «        } || j        d         | j        d         ¬¦  «        S )z‹
            >>> package = yarg.get('yarg')
            >>> package.author
            Author(name=u'Kura', email=u'kura@kura.io')
        ÚAuthorú
name emailÚauthorÚauthor_email©r   Úemail©r   r   )r   r0   s     r   r0   zPackage.authorz   s?   € õ ˜H lÑ3Ô3ˆØˆv˜4œ=¨Ô2Ø œM¨.Ô9ð;ñ ;ô ;ð 	;r   c                 óh   — t          dd¦  «        } || j        d         | j        d         ¬¦  «        S )z“
            >>> package = yarg.get('yarg')
            >>> package.maintainer
            Maintainer(name=u'Kura', email=u'kura@kura.io')
        Ú
Maintainerr/   Ú
maintainerÚmaintainer_emailr2   r4   )r   r7   s     r   r7   zPackage.maintainer…   sD   € õ   ¨lÑ;Ô;ˆ
Øˆz˜tœ}¨\Ô:Ø $¤Ð.@Ô AðCñ Cô Cð 	Cr   c                 ó   — | j         d         S )zg
            >>> package = yarg.get('yarg')
            >>> package.license
            u'MIT'
        Úlicenser   r   s    r   r:   zPackage.license�   r    r   c                 ó²   — t          | j        ¦  «        dk    r<| j        D ]6}|                     d¦  «        r|                     d¦  «        d         c S Œ5dS dS )z€
            >>> package = yarg.get('yarg')
            >>> package.license_from_classifiers
            u'MIT License'
        r   ÚLicenseú :: éÿÿÿÿN)ÚlenÚclassifiersÚ
startswithÚsplit)r   Úcs     r   Úlicense_from_classifiersz Package.license_from_classifiers™   sr   € õ ˆtÔÑ Ô  1Ò$Ð$ØÔ%ð /ð /�Ø—<’< 	Ñ*Ô*ð /ØŸ7š7 6™?œ?¨2Ô.Ð.Ð.Ð.ð/ð %Ð$ð/ð /r   c                 ó|   — | j         d         }t          dd¦  «        } ||d         |d         |d         ¬¦  «        S )z�
            >>> package = yarg.get('yarg')
            >>> package.downloads
            Downloads(day=50100, week=367941, month=1601938)  # I wish
        Ú	downloadsÚ	Downloadszday week monthÚlast_dayÚ	last_weekÚ
last_month)ÚdayÚweekÚmonth)r   r   )r   Ú
_downloadsrF   s      r   rF   zPackage.downloads¥   sP   € ð ”] ;Ô/ˆ
Ý˜{Ð,<Ñ=Ô=ˆ	Øˆy˜Z¨
Ô3Ø(¨Ô5Ø)¨,Ô7ð9ñ 9ô 9ð 	9r   c                 ó   — | j         d         S )zþ
            >>> package = yarg.get('yarg')
            >>> package.classifiers
            [u'License :: OSI Approved :: MIT License',
             u'Programming Language :: Python :: 2.7',
             u'Programming Language :: Python :: 3.4']
        r@   r   r   s    r   r@   zPackage.classifiers²   s   € ð Œ}˜]Ô+Ð+r   c                 óR   ‡— t          j        d¦  «        Šˆfd„| j        D ¦   «         S )a  
        Returns a list of Python version strings that
        the package has listed in :attr:`yarg.Release.classifiers`.

            >>> package = yarg.get('yarg')
            >>> package.python_versions
            [u'2.6', u'2.7', u'3.3', u'3.4']
        z,Programming Language \:\: Python \:\: \d\.\dc                 óp   •— g | ]2}‰                      |¦  «        ¯|                     d ¦  «        d         ‘Œ3S )r=   r>   )ÚmatchrB   )Ú.0rC   Ú
version_res     €r   ú
<listcomp>z+Package.python_versions.<locals>.<listcomp>É   sJ   ø€ ð (ð (ð (¨Ø×#Ò# AÑ&Ô&ð(�—’˜‘” Ô#ð (ð (ð (r   )ÚreÚcompiler@   )r   rT   s    @r   Úpython_versionszPackage.python_versions½   sH   ø€ õ ”Zð !9ñ :ô :ˆ
ð(ð (ð (ð (¨TÔ-=ð (ñ (ô (ð 	(r   c                 ó$   — d„ | j         D ¦   «         S )a  
        Returns a list of Python implementation strings that
        the package has listed in :attr:`yarg.Release.classifiers`.

            >>> package = yarg.get('yarg')
            >>> package.python_implementations
            [u'CPython', u'PyPy']
        c                 ón   — g | ]2}|                      d ¦  «        ¯|                     d¦  «        d         ‘Œ3S )z0Programming Language :: Python :: Implementationr=   r>   )rA   rB   )rS   rC   s     r   rU   z2Package.python_implementations.<locals>.<listcomp>Ö   sW   € ð Að Að A¨Ø—<’<ð !?ñ @ô @ðA�—’˜‘” Ô#ð Að Að Ar   )r@   r   s    r   Úpython_implementationszPackage.python_implementationsÌ   s+   € ðAð A¨TÔ-=ð Añ Aô Að 	Ar   c                 ó   — | j         d         S )zs
            >>> package = yarg.get('yarg')
            >>> package.latest_release_id
            u'0.1.0'
        Úversionr   r   s    r   Úlatest_release_idzPackage.latest_release_idÚ   r    r   c                 ó:   — | j         }|                      |¦  «        S )zð
        A list of :class:`yarg.release.Release` objects for each file in the
        latest release.

            >>> package = yarg.get('yarg')
            >>> package.latest_release
            [<Release 0.1.0>, <Release 0.1.0>]
        )r^   Úrelease©r   Ú
release_ids     r   Úlatest_releasezPackage.latest_releaseã   s   € ð Ô+ˆ
Ø�|Š|˜JÑ'Ô'Ð'r   c                 ó2   — | j         D ]}|j        dv r dS ŒdS )a  
        Returns `True` if one of the :class:`yarg.release.Release` objects
        in the latest set of release files is `wheel` format. Returns
        `False` if not.

            >>> package = yarg.get('yarg')
            >>> package.has_wheel
            True
        )ÚwheelÚbdist_wheelTF©rc   Úpackage_type©r   r`   s     r   Ú	has_wheelzPackage.has_wheelð   s7   € ð Ô*ð 	ð 	ˆGØÔ#Ð'?Ð?Ð?Ø�t�tð @àˆur   c                 ó2   — | j         D ]}|j        dv r dS ŒdS )a  
        Returns `True` if one of the :class:`yarg.release.Release` objects
        in the latest set of release files is `egg` format. Returns
        `False` if not.

            >>> package = yarg.get('yarg')
            >>> package.has_egg
            False
        )ÚeggÚ	bdist_eggTFrg   ri   s     r   Úhas_eggzPackage.has_egg   s6   € ð Ô*ð 	ð 	ˆGØÔ#Ð';Ð;Ð;Ø�t�tð <àˆur   c                 ó2   — | j         D ]}|j        dv r dS ŒdS )a  
        Returns `True` if one of the :class:`yarg.release.Release` objects
        in the latest set of release files is `source` format. Returns
        `False` if not.

            >>> package = yarg.get('yarg')
            >>> package.has_source
            True
        )ÚsourceÚsdistTFrg   ri   s     r   Ú
has_sourcezPackage.has_source  s6   € ð Ô*ð 	ð 	ˆGØÔ#Ð':Ð:Ð:Ø�t�tð ;àˆur   c                 ó†   ‡ — ˆ fd„‰ j                              ¦   «         D ¦   «         }d„ t          |d„ ¬¦  «        D ¦   «         S )zƒ
            >>> package = yarg.get('yarg')
            >>> package.release_ids
            [u'0.0.1', u'0.0.5', u'0.1.0']
        c                 ó‚   •— g | ];}t          ‰j        |         ¦  «        d k    ¯ |‰j        |         d          d         f‘Œ<S )r   Úupload_time)r?   r   )rS   Úkr   s     €r   rU   z'Package.release_ids.<locals>.<listcomp>'  sS   ø€ ð ,ð ,ð ,ØÝ�D”N 1Ô%Ñ&Ô&¨Ò*Ð*ð �” Ô" 1Ô% mÔ4Ð5à*Ð*Ð*r   c                 ó   — g | ]
}|d          ‘ŒS )r   © )rS   rv   s     r   rU   z'Package.release_ids.<locals>.<listcomp>*  s   € Ð<Ð<Ð<˜��!”Ð<Ð<Ð<r   c                 ó   — | d         S )Nr   rx   )rv   s    r   ú<lambda>z%Package.release_ids.<locals>.<lambda>*  s
   € °a¸´d€ r   )Úkey)r   ÚkeysÚsorted)r   Úrs   ` r   Úrelease_idszPackage.release_ids   s^   ø€ ð,ð ,ð ,ð ,Ø”n×)Ò)Ñ+Ô+ð,ñ ,ô ,ˆð =Ð<�f Q¨N¨NÐ;Ñ;Ô;Ð<Ñ<Ô<Ð<r   c                 óL   ‡— ‰| j         vrdS ˆfd„| j        ‰         D ¦   «         S )aN  
        A list of :class:`yarg.release.Release` objects for each file in a
        release.

        :param release_id: A pypi release id.

            >>> package = yarg.get('yarg')
            >>> last_release = yarg.releases[-1]
            >>> package.release(last_release)
            [<Release 0.1.0>, <Release 0.1.0>]
        Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rx   r   )rS   r~   rb   s     €r   rU   z#Package.release.<locals>.<listcomp>:  s#   ø€ ÐKÐKÐK¨1•˜
 AÑ&Ô&ÐKÐKÐKr   )r   r   ra   s    `r   r`   zPackage.release,  s9   ø€ ð ˜TÔ-Ð-Ð-Ø�4ØKÐKÐKÐK°´¸zÔ0JÐKÑKÔKÐKr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úpropertyr   r   r   r"   r&   r)   r,   r0   r7   r:   rD   rF   r@   rX   r[   r^   rc   rj   rn   rr   r   r`   rx   r   r   r   r   $   s�  € € € € € ðð ð/ð /ð /ð1ð 1ð 1ð ð%ð %ñ „Xð%ð ð,ð ,ñ „Xð,ð ð(ð (ñ „Xð(ð ð,ð ,ñ „Xð,ð ð	*ð 	*ñ „Xð	*ð ð	-ð 	-ñ „Xð	-ð ð	)ð 	)ñ „Xð	)ð ð;ð ;ñ „Xð;ð ðCð Cñ „XðCð ð(ð (ñ „Xð(ð ð	/ð 	/ñ „Xð	/ð ð
9ð 
9ñ „Xð
9ð ð,ð ,ñ „Xð,ð ð(ð (ñ „Xð(ð ðAð Añ „XðAð ð(ð (ñ „Xð(ð ð
(ð 
(ñ „Xð
(ð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ð	=ð 	=ñ „Xð	=ðLð Lð Lð Lð Lr   r   c                 óD   — t          t          j        | ¦  «        ¦  «        S )z©
    Returns a :class:`yarg.release.Release` object from JSON content from the
    PyPI server.

    :param json_content: JSON encoded content from the PyPI server.
    )r   ÚjsonÚloads)Újson_contents    r   Újson2packager‹   =  s   € õ •4”:˜lÑ+Ô+Ñ,Ô,Ð,r   )Ú
simplejsonrˆ   ÚImportErrorÚcollectionsr   rV   r`   r   Úobjectr   r‹   rx   r   r   ú<module>r�      sÂ   ðð4ØÐÐÐÐøØð ð ð Ø€K€K€K€K€Kðøøøà "Ð "Ð "Ð "Ð "Ð "Ø 	€	€	€	à Ð Ð Ð Ð Ð ðVLð VLð VLð VLð VLˆfñ VLô VLð VLðr-ð -ð -ð -ð -s   ‚ ‡	’