#!/usr/bin/env python # vim: fileencoding=utf-8 ft=python et sw=4 ts=4 sts=4 tw=79 from __future__ import ( generators, division, absolute_import, with_statement, print_function ) import sys try: import venv except ImportError: venv = None try: from packaging.tags import sys_tags def get_tag(): tag = sys_tags().__next__() return (tag.interpreter, tag.abi, tag.platform) except ImportError: from wheel.pep425tags import ( get_abbr_impl, get_impl_ver, get_abi_tag, get_platform, ) # sporked from wheel.bdist_wheel.get_tag def get_tag(): """Get the specific implementation name in a wheel-compatible format.""" plat_name = get_platform().replace('-', '_').replace('.', '_') impl_name = get_abbr_impl() impl_ver = get_impl_ver() impl = impl_name + impl_ver abi_tag = str(get_abi_tag()).lower() tag = (impl, abi_tag, plat_name) return tag PY2 = sys.version_info[0] == 2 def main(): tag = '%s-%s-%s' % get_tag() mk_filename = 'python_vars_%s.mk' % tag with open(mk_filename, 'wt') as f: # TODO: add proper escaping whenever I feel like staring into the abyss f.write('PYTHON_IMPL:=%s\n' % tag) f.write("PYTHON_VENV:=%s\n" % ( "virtualenv -p $(PYTHON_EXE)" if venv is None else "$(PYTHON_EXE) -m venv" )) f.write("PYTHON_VENV_INSTALL:=%s\n" % ( "'setuptools<45.0.0' 'pip<20.3' 'pip-tools<6'" if PY2 else "'pip-tools'" )) print("include %s" % mk_filename) if __name__ == '__main__': main()