"" "Module containing bug report helper(s)." ""
import json
import platform
import ssl
import sys
from pip._vendor import idna
from pip._vendor import urllib3
from . import __version__ as requests_version
charset_normalizer = None
try :
from pip._vendor import chardet
except ImportError:
chardet = None
try :
from pip._vendor.urllib3.contrib import pyopenssl
except ImportError:
pyopenssl = None
OpenSSL = None
cryptography = None
else :
import cryptography
import OpenSSL
def _implementation():
"" "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 3.10.3 it will return
{'name' : 'CPython' , 'version' : '3.10.3' }.
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.
"" "
implementation = platform.python_implementation()
if implementation == "CPython" :
implementation_version = platform.python_version()
elif implementation == "PyPy" :
implementation_version = "{}.{}.{}" .format(
sys.pypy_version_info.major,
sys.pypy_version_info.minor,
sys.pypy_version_info.micro,
)
if sys.pypy_version_info.releaselevel != "final" :
implementation_version = "" .join(
[implementation_version, sys.pypy_version_info.releaselevel]
)
elif implementation == "Jython" :
implementation_version = platform.python_version() # Complete Guess
elif implementation == "IronPython" :
implementation_version = platform.python_version() # Complete Guess
else :
implementation_version = "Unknown"
return {"name" : implementation, "version" : implementation_version}
def info():
"" "Generate information for a bug report." ""
try :
platform_info = {
"system" : platform.system(),
"release" : platform.release(),
}
except OSError:
platform_info = {
"system" : "Unknown" ,
"release" : "Unknown" ,
}
implementation_info = _implementation()
urllib3_info = {"version" : urllib3.__version__}
charset_normalizer_info = {"version" : None }
chardet_info = {"version" : None }
if charset_normalizer:
charset_normalizer_info = {"version" : charset_normalizer.__version__}
if chardet:
chardet_info = {"version" : chardet.__version__}
pyopenssl_info = {
"version" : None ,
"openssl_version" : "" ,
}
if OpenSSL:
pyopenssl_info = {
"version" : OpenSSL.__version__,
"openssl_version" : f"{OpenSSL.SSL.OPENSSL_VERSION_NUMBER:x}" ,
}
cryptography_info = {
"version" : getattr(cryptography, "__version__" , "" ),
}
idna_info = {
"version" : getattr(idna, "__version__" , "" ),
}
system_ssl = ssl.OPENSSL_VERSION_NUMBER
system_ssl_info = {"version" : f"{system_ssl:x}" if system_ssl is not None else "" }
return {
"platform" : platform_info,
"implementation" : implementation_info,
"system_ssl" : system_ssl_info,
"using_pyopenssl" : pyopenssl is not None ,
"using_charset_normalizer" : chardet is None ,
"pyOpenSSL" : pyopenssl_info,
"urllib3" : urllib3_info,
"chardet" : chardet_info,
"charset_normalizer" : charset_normalizer_info,
"cryptography" : cryptography_info,
"idna" : idna_info,
"requests" : {
"version" : requests_version,
},
}
def main():
"" "Pretty-print the bug information as JSON." ""
print(json.dumps(info(), sort_keys=True , indent=2))
if __name__ == "__main__" :
main()
Messung V0.5 C=99 H=96 G=97
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland