OXIESEC PANEL
- Current Dir:
/
/
usr
/
share
/
dh-python
/
dhpython
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
π
..
-
05/09/2024 06:57:52 AM
rwxr-xr-x
π
__init__.py
3.81 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
__pycache__
-
11/12/2024 10:20:17 AM
rwxr-xr-x
π
_defaults.py
3.47 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
build
-
11/12/2024 10:20:17 AM
rwxr-xr-x
π
debhelper.py
11.96 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
depends.py
11.95 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
fs.py
16.26 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
interpreter.py
19.69 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
option.py
1.84 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
pydist.py
12.99 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
tools.py
11.81 KB
03/26/2018 07:42:23 PM
rw-r--r--
π
version.py
14.38 KB
03/26/2018 07:42:23 PM
rw-r--r--
Editing: _defaults.py
Close
#! /usr/bin/python3 # Copyright Β© 2013 Piotr OΕΌarowski <piotr@debian.org> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. import logging from configparser import ConfigParser from os import environ from os.path import exists from subprocess import Popen, PIPE SUPPORTED = { 'cpython2': [(2, 7)], 'cpython3': [(3, 6)], 'pypy': [(4, 0)]} DEFAULT = { 'cpython2': (2, 7), 'cpython3': (3, 6), 'pypy': (4, 0)} log = logging.getLogger('dhpython') def cpython_versions(major): result = [None, None] ver = '' if major == 2 else '3' supported = environ.get("DEBPYTHON{}_SUPPORTED".format(ver)) default = environ.get("DEBPYTHON{}_DEFAULT".format(ver)) if not supported or not default: config = ConfigParser() config.read("/usr/share/python{}/debian_defaults".format(ver)) if not default: default = config.get('DEFAULT', 'default-version', fallback='')[6:] if not supported: supported = config.get('DEFAULT', 'supported-versions', fallback='')\ .replace('python', '') if default: try: result[0] = tuple(int(i) for i in default.split('.')) except Exception as err: log.warn('invalid debian_defaults file: %s', err) if supported: try: result[1] = tuple(tuple(int(j) for j in i.strip().split('.')) for i in supported.split(',')) except Exception as err: log.warn('invalid debian_defaults file: %s', err) return result def from_file(fpath): if not exists(fpath): raise ValueError("missing interpreter: %s" % fpath) command = "{} --version".format(fpath) with Popen(command, shell=True, stdout=PIPE) as process: stdout, stderr = process.communicate() stdout = str(stdout, 'utf-8') print(stdout) cpython2 = cpython_versions(2) cpython3 = cpython_versions(3) if cpython2[0]: DEFAULT['cpython2'] = cpython2[0] if cpython3[0]: DEFAULT['cpython3'] = cpython3[0] if cpython2[1]: SUPPORTED['cpython2'] = cpython2[1] if cpython3[1]: SUPPORTED['cpython3'] = cpython3[1] #from_file('/usr/bin/pypy') if __name__ == '__main__': from sys import argv, stderr if len(argv) != 3: print('invalid number of arguments', file=stderr) exit(1) if argv[1] == 'default': print('.'.join(str(i) for i in DEFAULT[argv[2]])) elif argv[1] == 'supported': print(','.join(('.'.join(str(i) for i in v) for v in SUPPORTED[argv[2]])))