added flexibility

This commit is contained in:
Dominik Demuth
2024-11-28 14:50:26 +01:00
parent 1c8befac3f
commit d844aac0e8
16 changed files with 121 additions and 52 deletions

View File

@@ -53,13 +53,23 @@ def run_sims(
subprocess.run(arguments)
def find_config_file(var_params: dict) -> pathlib.Path:
def find_config_file(motion: str, distribution: str, var_params: dict) -> pathlib.Path:
# TODO handle situation if multiple files fit
pattern = re.compile('|'.join(([f'{k}={v:1.6e}' for (k, v) in var_params.items()])).replace('.', '\.').replace('+', '\+'))
p_file = None
if var_params:
var_string = '|'.join(([f'{k}={v:1.6e}' for (k, v) in var_params.items()])).replace('.', '\.').replace('+', '\+')
pattern = re.compile(var_string)
for p_file in pathlib.Path('.').glob('*_parameter.txt'):
if len(re.findall(pattern, str(p_file))) == len(var_params) and re.search(f'{motion}_{distribution}', str(p_file)):
return p_file
raise ValueError(f'No parameter file found for {motion}, {distribution}, {var_params}')
else:
for p_file in pathlib.Path('.').glob('*_parameter.txt'):
if re.search(f'{motion}_{distribution}', str(p_file)):
return p_file
raise ValueError(f'No parameter file found for {motion}, {distribution}, {var_params}')
for p_file in pathlib.Path('.').glob('*_parameter.txt'):
if len(re.findall(pattern, str(p_file))) == len(var_params):
return p_file
def read_parameter_file(path: str | pathlib.Path) -> dict[str, float]: