a
lj @ s d Z ddlmZ ddlZddlZddlZddlZddlmZ ddlm Z ddl
mZ dZ
zddlmZ W n ey~ dZY n0 zdd lmZ W n ey dZdZdZY n0 ddlZddlZd
d Zdd
Zdd Zedkre dS )z'Module containing bug report helper(s). )print_functionN)idna)urllib3 )__version__)chardet) pyopensslc C s t } | dkrt }nj| dkr\dtjjtjjtjjf }tjjdkrd |tjjg}n(| dkrnt }n| dkrt }nd}| |d S )
a Return a dict with the Python implementation and version.
Provide both the name and the version of the Python implementation
currently running. For example, on CPython 2.7.5 it will return
{'name': 'CPython', 'version': '2.7.5'}.
This function works best on CPython and PyPy: in particular, it probably
doesn't work for Jython or IronPython. Future investigation should be done
to work out the correct shape of the code for those platforms.
ZCPythonZPyPyz%s.%s.%sfinal ZJythonZ
IronPythonUnknown)nameversion)
platformZpython_implementationZpython_versionsysZpypy_version_infomajorminormicroreleaseleveljoin)implementationZimplementation_version r =/usr/lib/python3.9/site-packages/pip/_vendor/requests/help.py_implementation s$
r c
C s zt t d} W n ty2 ddd} Y n0 t }dtji}ddi}ddi}trbdtji}trpdtji}ddd}t rt jdt j
j d}dtt
ddi}dttddi}tj}d|durd| ndi} | || tdutdu ||||||dtid S )
z&Generate information for a bug report.)systemreleaser r
Nr
)r
Zopenssl_versionz%xr )r r
system_sslZusing_pyopensslZusing_charset_normalizerZ pyOpenSSLr r charset_normalizercryptographyr Zrequests)r r r IOErrorr r r r r OpenSSLZSSLZOPENSSL_VERSION_NUMBERgetattrr r sslr requests_version)
Z
platform_infoZimplementation_infoZurllib3_infoZcharset_normalizer_infoZchardet_infoZpyopenssl_infoZcryptography_infoZ idna_infor Zsystem_ssl_infor r r infoA sX
r# c C s t tjt ddd dS )z)Pretty-print the bug information as JSON.T )Z sort_keysindentN)printjsondumpsr# r r r r main~ s r) __main__)__doc__Z
__future__r r' r r r! Zpip._vendorr r r
r r" r r ImportErrorZpip._vendor.urllib3.contribr r r r r# r) __name__r r r r