a /h @ s d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl Z ddl mZ zddl mZ W n ey dZdZdZY n0 ddlZddlZdd Zd d Zdd Zed kre dS )z'Module containing bug report helper(s). )print_functionN )__version__) 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 1/usr/lib/python3.9/site-packages/requests/help.py_implementation s$ r c C s zt t d} W n ty2 ddd} Y n0 t }dtji}dtji}ddd}trptjdtj j d}dttddi}dtt ddi}tj }d|durd| ndi}| ||tdu|||||dtid S ) z&Generate information for a bug report.)systemreleaser r Nr )r Zopenssl_versionz%xr ) r r system_sslZusing_pyopensslZ pyOpenSSLurllib3chardetcryptographyidnaZrequests)r r r IOErrorr r r r OpenSSLZSSLZOPENSSL_VERSION_NUMBERgetattrr r sslr requests_version) Z platform_infoZimplementation_infoZurllib3_infoZchardet_infoZpyopenssl_infoZcryptography_infoZ idna_infor Zsystem_ssl_infor r r info; sJ 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 mainq s r( __main__)__doc__Z __future__r r&