import argparse import os import re platform_file = os.path.join('Lib', 'platform.py') get_version_file = os.path.join('Python', 'getversion.c') def patch_platform(msg): with open(platform_file, 'r') as fh: lines = list(fh) lines_it = iter(lines) with open(platform_file, 'w') as fh: for line in lines_it: fh.write(line) if line.startswith('_sys_version_parser'): next_line = next(lines_it) fh.write(" r'([\w.+]+)\s*" + '(?:' + re.escape(' ' + msg) + ')?' + "\s*'\n") def patch_get_version(msg): with open(get_version_file, 'r') as fh: content = list(fh) lines = iter(content) with open(get_version_file, 'w') as fh: for line in lines: if line.strip().startswith('PyOS_snprintf(version, sizeof(version)'): fh.write(' PyOS_snprintf(version, sizeof(version),\n') fh.write(' "%.80s ' + msg.replace('"', '\\"') + ' (%.80s) %.80s",\n') else: fh.write(line) msg = os.environ.get('python_branding', '') if msg == '': msg = "| packaged by conda-forge |" patch_platform(msg) patch_get_version(msg)