abc@s dZddlmZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddl m Z ydd lmZWn#ek rdZdZdZnXddlZddlZd Zd Zd Zed kr endS(s'Module containing bug report helper(s).i(tprint_functionN(tidna(turllib3(tchardeti(t __version__(t pyopensslcCstj}|dkr'tj}n|dkrdtjjtjjtjjf}tjjdkrdj |tjjg}qn<|dkrtj}n!|dkrtj}nd}i|d 6|d 6S( sReturn 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. tCPythontPyPys%s.%s.%stfinalttJythont IronPythontUnknowntnametversion( tplatformtpython_implementationtpython_versiontsystpypy_version_infotmajortminortmicrot releaseleveltjoin(timplementationtimplementation_version((s=/usr/lib/python2.7/site-packages/pip/_vendor/requests/help.pyt_implementations       c Csqy$itjd6tjd6}Wn%tk rKidd6dd6}nXt}itjd6}itjd6}idd6dd6}t rit jd6dt j j d6}nit t ddd6}it tddd6}t td d}i|dk rd|ndd6}i |d 6|d 6|d 6tdk d 6|d6|d6|d6|d6|d6itd6d6S(s&Generate information for a bug report.tsystemtreleaseR RR topenssl_versions%xRtOPENSSL_VERSION_NUMBERRRt system_ssltusing_pyopensslt pyOpenSSLRRt cryptographyRtrequestsN(RRRtIOErrorRRRRtNonetOpenSSLtSSLRtgetattrR#RtsslRtrequests_version( t platform_infotimplementation_infot urllib3_infot chardet_infotpyopenssl_infotcryptography_infot idna_infoR tsystem_ssl_info((s=/usr/lib/python2.7/site-packages/pip/_vendor/requests/help.pytinfo;sJ       cCs&ttjtdtdddS(s)Pretty-print the bug information as JSON.t sort_keystindentiN(tprinttjsontdumpsR4tTrue(((s=/usr/lib/python2.7/site-packages/pip/_vendor/requests/help.pytmainrst__main__(t__doc__t __future__RR8RRR*t pip._vendorRRRR RR+tpackages.urllib3.contribRt ImportErrorR&R'R#RR4R;t__name__(((s=/usr/lib/python2.7/site-packages/pip/_vendor/requests/help.pyts,         ! 7