1# -*- coding: utf-8 -*- 2import json 3import os 4import platform 5import sys 6 7 8def format_full_version(info): 9 version = "{0.major}.{0.minor}.{0.micro}".format(info) 10 kind = info.releaselevel 11 if kind != "final": 12 version += kind[0] + str(info.serial) 13 return version 14 15 16# Support for 508's implementation_version. 17if hasattr(sys, "implementation"): 18 implementation_version = format_full_version(sys.implementation.version) 19else: 20 implementation_version = "0" 21# Default to cpython for 2.7. 22if hasattr(sys, "implementation"): 23 implementation_name = sys.implementation.name 24else: 25 implementation_name = "cpython" 26lookup = { 27 "os_name": os.name, 28 "sys_platform": sys.platform, 29 "platform_machine": platform.machine(), 30 "platform_python_implementation": platform.python_implementation(), 31 "platform_release": platform.release(), 32 "platform_system": platform.system(), 33 "platform_version": platform.version(), 34 "python_version": ".".join(platform.python_version().split(".")[:2]), 35 "python_full_version": platform.python_version(), 36 "implementation_name": implementation_name, 37 "implementation_version": implementation_version, 38} 39if __name__ == "__main__": 40 print(json.dumps(lookup)) 41