Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
self
/
root
/
srv
/
admin
/
scripts
/
python
/
//proc/self/root/srv/admin/scripts/python/python-version.py
#!/usr/bin/env python import sys from os.path import join import argparse import yaml class Environment(dict): def __init__(self, config): try: env = config['environment'] except KeyError: pass else: if isinstance(env, dict): super(Environment, self).__init__({ k: str(v) for k, v in env.items() }) class Hooks: def __init__(self, config): pass class Config: @classmethod def from_file(cls, file_): try: with open(file_) as f: return cls.from_stream(f) except Exception: return cls() @classmethod def from_stream(cls, stream): try: config = yaml.load(stream) except Exception: config = {} finally: return cls(config) def __init__(self, config={}): self.hooks = Hooks(config) self.env = Environment(config) self._config = config class PythonConfig(Config): _DEFAULT_VERSION = '' _AVAILABLE_VERSIONS = set(['2.7', '3.2', '3.6']) def __version(self): try: version_ = self._config['python']['version'] if version_ is None: return self._DEFAULT_VERSION return str(version_) except (KeyError, TypeError): return self._DEFAULT_VERSION def version(self): """Returns version specified by customers. If not specified, returns DEFAULT, if invalid, returns None""" version_ = self.__version() if version_ in self._AVAILABLE_VERSIONS: return version_ UWSGI_CONFIG_DIR='/srv/admin/configs/uwsgi/base' def parse_arguments(): parser = argparse.ArgumentParser( description='Displays requested python version' ) parser.add_argument('--uwsgi-config', action='store_true') parser.add_argument('--config', metavar='CONFIG_FILE', default='/srv/data/web/vhosts/default/gandi.yml') return parser.parse_args() def main(): args = parse_arguments() version = PythonConfig.from_file(args.config).version() if version is None: sys.exit(1) if args.uwsgi_config: print join(UWSGI_CONFIG_DIR, 'python%s.ini' % (version)) return print version if __name__ == '__main__': main()