Re @sdZddlmZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddl m Z ydd lmZWn$ek rdZdZdZYnXddlZddlZd d Zd d ZddZedkredS)z'Module containing bug report helper(s).)print_functionN)idna)urllib3)chardet) __version__) pyopensslcCstj}|dkr'tj}n|dkrdtjjtjjtjjf}tjjdkrdj |tjjg}n<|dkrtj}n!|dkrtj}nd}d |d |iS) aReturn 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. CPythonPyPyz%s.%s.%sfinalJython IronPythonUnknownnameversion) platformpython_implementationpython_versionsyspypy_version_infomajorminormicro releaseleveljoin)implementationimplementation_versionr/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/requests/help.py_implementations       r c CsNy"dtjdtji}Wn$tk rHddddi}YnXt}dtji}dtji}ddddi}trdtjddtj j i}dt t d di}dt t d di}tj }d|dk rd|ndi}d |d |d |d tdk d|d|d|d|d|ddtii S)z&Generate information for a bug report.systemreleaserrNopenssl_versionr z%xrrr system_sslZusing_pyopensslZ pyOpenSSLrr cryptographyrrequests)rr!r"IOErrorr rrrOpenSSLSSLOPENSSL_VERSION_NUMBERgetattrr%rsslrrequests_version) Z platform_infoZimplementation_infoZ urllib3_infoZ chardet_infoZpyopenssl_infoZcryptography_infoZ idna_infor$Zsystem_ssl_inforrrinfo;s:      " r.cCs&ttjtdddddS)z)Pretty-print the bug information as JSON. sort_keysTindentN)printjsondumpsr.rrrrmainqsr5__main__)__doc__ __future__rr3rrr, pip._vendorrrrr rr-pip._vendor.urllib3.contribr ImportErrorr(r%r r.r5__name__rrrrs,         ! 6