U ��.e� �@s�dZddlmZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddl m Z zdd lmZWn ek r�dZdZdZYnXddlZddlZd d �Zd d �Zdd�Zedkr�e�dS)z'Module containing bug report helper(s).�)�print_functionN)�idna)�urllib3)�chardet�)� __version__)� pyopensslcCs�t��}|dkrt��}nj|dkr\dtjjtjjtjjf}tjjdkr�d� |tjjg�}n(|dkrnt��}n|dkr�t��}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.%s�final�ZJythonZ IronPython�Unknown)�name�version) �platformZpython_implementationZpython_version�sysZpypy_version_info�major�minor�micro� releaselevel�join)�implementationZimplementation_version�r�=/usr/lib/python3.8/site-packages/pip/_vendor/requests/help.py�_implementations&  � �  rc Cs�zt��t��d�}Wntk r4ddd�}YnXt�}dtji}dtji}ddd�}trrtjdtj j d�}dt t dd�i}dt t dd�i}tj }d|dk r�d|ndi}|||tdk |||||dtid � S) z&Generate information for a bug report.)�system�releaser r Nr )r Zopenssl_versionz%xr) rr� system_sslZusing_pyopensslZ pyOpenSSLrr� cryptographyrZrequests)rrr�IOErrorrrrr�OpenSSLZSSLZOPENSSL_VERSION_NUMBER�getattrrr�sslr�requests_version) Z platform_infoZimplementation_infoZ urllib3_infoZ chardet_infoZpyopenssl_infoZcryptography_infoZ idna_inforZsystem_ssl_inforrr�info;sR� �   � � � ����r"cCsttjt�ddd��dS)z)Pretty-print the bug information as JSON.T�)Z sort_keys�indentN)�print�json�dumpsr"rrrr�mainqsr(�__main__)�__doc__Z __future__rr&rrr Z pip._vendorrrrr rr!Zpip._vendor.urllib3.contribr� ImportErrorrrrr"r(�__name__rrrr�s,      !6