Coverage for src/mockslurm/utils.py: 100%
13 statements
« prev ^ index » next coverage.py v7.15.3, created at 2026-08-07 13:34 +0000
« prev ^ index » next coverage.py v7.15.3, created at 2026-08-07 13:34 +0000
1# Copyright 2026 CNRS
2# This software is distributed under the terms of the CeCILL-C free software license.
4"""Argument parsing utilities."""
6import argparse
8from mockslurm.process_db import DB_DEFAULTS
11def filter_dict_from_args(args: argparse.Namespace):
12 # Transform the arguments values into a map {field: value, field2: [values], etc...} for filtering DB
13 field_filter_values = {}
14 for arg, value in vars(args).items():
15 if arg in DB_DEFAULTS.keys():
16 if isinstance(value, str):
17 field_filter_values[arg] = value.encode()
18 elif isinstance(value, list):
19 field_filter_values[arg] = [v.encode() if isinstance(v, str) else v for v in value]
20 elif value is not None:
21 field_filter_values[arg] = value
23 return field_filter_values