Sindbad~EG File Manager
3
�PfS � @ s� d Z ddlmZ ddlZddlZddlZddlZddlmZ ddlm Z ddlm
Z
ddlmZ
ydd lmZ W n ek
r� dZdZdZY nX ddlZddlZd
d� Zdd
� Zdd� Zedkr�e� dS )z'Module containing bug report helper(s).� )�print_functionN)�idna)�urllib3)�chardet� )�__version__)� pyopensslc C s� t j� } | dkrt j� }nj| dkr\dtjjtjjtjjf }tjjdkr�dj |tjjg�}n(| dkrnt j� }n| dkr�t j� }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.6/help.py�_implementation s
r c C s� yt j� t j� d�} W n tk
r4 ddd�} Y nX t� }dtji}dtji}ddd�}trrtjdtj j
d�}dttdd�i}dtt
dd�i}ttd d�}d|dk r�d| ndi}| ||tdk |||||dtid
�
S )z&Generate information for a bug report.)�system�releaser r
Nr
)r
Zopenssl_versionz%xr �OPENSSL_VERSION_NUMBER)
r r �
system_sslZusing_pyopensslZ pyOpenSSLr r �cryptographyr Zrequests)r r r �IOErrorr r r r �OpenSSLZSSLr �getattrr r �sslr �requests_version) Z
platform_infoZimplementation_infoZurllib3_infoZchardet_infoZpyopenssl_infoZcryptography_infoZ idna_infor Zsystem_ssl_infor r r �info; s8
r# c C s t tjt� ddd�� dS )z)Pretty-print the bug information as JSON.T� )Z sort_keys�indentN)�print�json�dumpsr# r r r r �mainr s r) �__main__)�__doc__Z
__future__r r'