Source code for qip.package_data.python_info

# :coding: utf-8

import argparse
import json
import os
import sys


[docs]def display_python_mapping(): """Display Python version information mapping. The information is displayed as a :term:`JSON` encoded mapping so that it can easily be retrieved via a subprocess. :return: None Example:: >>> display_python_mapping() { "identifier": "2.7", "request": "python >= 2.7, < 2.8", "library-path": "lib/python2.7/site-packages" } """ python_version = sys.version_info name = "python{major}.{minor}".format( major=sys.version_info.major, minor=sys.version_info.minor, ) mapping = { "identifier": "{major}.{minor}".format( major=python_version.major, minor=python_version.minor, ), "request": "python >= {major}.{minor}, < {major}.{next_minor}".format( major=python_version.major, minor=python_version.minor, next_minor=python_version.minor + 1 ), "library-path": os.path.join("lib", name, "site-packages") } print(json.dumps(mapping, sort_keys=True, indent=4))
if __name__ == "__main__": parser = argparse.ArgumentParser( prog="python-info", description="Query information about a Python environment", ) namespace = parser.parse_args() sys.exit(display_python_mapping())