3
[U                 @   s   d Z ddlmZ ddlZddlZddlZddlZddlmZ ddlm	Z	 ddlm
Z
 ddlmZ ydd	lmZ W n  ek
r   dZdZdZY nX ddlZddlZd
d Zdd Zdd Zedkre  dS )z'Module containing bug report helper(s).    )print_functionN)idna)urllib3)chardet   )__version__)	pyopensslc              C   s   t j } | dkrt j }nj| dkr\dtjjtjjtjjf }tjjdkrdj	|tjjg}n(| dkrnt j }n| dkrt j }nd}| |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.
    CPythonPyPyz%s.%s.%sfinal Jython
IronPythonUnknown)nameversion)
platformpython_implementationpython_versionsyspypy_version_infomajorminormicroreleaseleveljoin)implementationimplementation_version r   :/tmp/pip-install-65viz3iy/pip/pip/_vendor/requests/help.py_implementation   s     


r    c        	      C   s   yt j t j d} W n tk
r4   ddd} Y nX t }dtji}dtji}ddd}trrtjdtj	j
 d}dttddi}dttddi}ttd	d}d|dk	rd| ndi}| ||tdk	|||||dtid

S )z&Generate information for a bug report.)systemreleaser   r   Nr   )r   openssl_versionz%xr   OPENSSL_VERSION_NUMBER)
r   r   
system_sslZusing_pyopensslZ	pyOpenSSLr   r   cryptographyr   requests)r   r!   r"   IOErrorr    r   r   r   OpenSSLZSSLr$   getattrr&   r   sslr   requests_version)	Zplatform_infoZimplementation_infoZurllib3_infoZchardet_infoZpyopenssl_infoZcryptography_infoZ	idna_infor%   Zsystem_ssl_infor   r   r   info;   s8    

r-   c               C   s   t tjt ddd dS )z)Pretty-print the bug information as JSON.T   )	sort_keysindentN)printjsondumpsr-   r   r   r   r   mainr   s    r4   __main__)__doc__
__future__r   r2   r   r   r+   pip._vendorr   r   r   r   r   r,   pip._vendor.urllib3.contribr   ImportErrorr)   r&   r    r-   r4   __name__r   r   r   r   <module>   s,   
!7