diff options
author | José Padilla <jpadilla@webapplicate.com> | 2018-05-19 09:47:33 -0400 |
---|---|---|
committer | José Padilla <jpadilla@webapplicate.com> | 2018-05-19 09:47:33 -0400 |
commit | 7ca41e53b3d7d9f5cd31bdd8a2b832d192006239 (patch) | |
tree | 1b3ce81063c6d023b857d4665f1f58d569db12d5 | |
parent | 7187336b03b0262541f337f9b4c3748a9d332745 (diff) | |
download | pyjwt-7ca41e53b3d7d9f5cd31bdd8a2b832d192006239.tar.gz |
Add help module
-rw-r--r-- | jwt/help.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/jwt/help.py b/jwt/help.py new file mode 100644 index 0000000..55e39eb --- /dev/null +++ b/jwt/help.py @@ -0,0 +1,61 @@ +from __future__ import print_function + +import json +import platform +import sys + +from . import __version__ as pyjwt_version + +try: + import cryptography +except ImportError: + cryptography = None + +try: + import ecdsa +except ImportError: + ecdsa = None + + +def info(): + """ + Generate information for a bug report. + Based on the requests package help utility module. + """ + try: + platform_info = {"system": platform.system(), "release": platform.release()} + except IOError: + platform_info = {"system": "Unknown", "release": "Unknown"} + + implementation = platform.python_implementation() + + if implementation == "CPython": + implementation_version = platform.python_version() + elif implementation == "PyPy": + implementation_version = "%s.%s.%s" % ( + 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] + ) + else: + implementation_version = "Unknown" + + return { + "platform": platform_info, + "implementation": {"name": implementation, "version": implementation_version}, + "cryptography": {"version": getattr(cryptography, "__version__", "")}, + "pyjwt": {"version": pyjwt_version}, + } + + +def main(): + """Pretty-print the bug information as JSON.""" + print(json.dumps(info(), sort_keys=True, indent=2)) + + +if __name__ == "__main__": + main() |