Source code for freeflux.utils.patch
'''Patch OpenOpt.'''
from importlib.util import find_spec
from pathlib import Path
import re
[docs]
OPENOPT_MODULES = ['ooIter', 'result', 'runProbSolver']
[docs]
def _patch_module(spec_dir, mod):
mod_file = Path(spec_dir) / 'kernel' / f'{mod}.py'
with open(mod_file) as f:
old_code = f.read()
new_code = re.sub(r'\bclock\b', 'perf_counter', old_code)
if new_code != old_code:
with open(mod_file, 'w') as f:
f.write(new_code)
print(f'{mod_file} patched.')
[docs]
def apply_patch():
spec_dir = find_spec('openopt').submodule_search_locations[0]
for mod in OPENOPT_MODULES:
_patch_module(spec_dir, mod)