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

1# Copyright 2026 CNRS 

2# This software is distributed under the terms of the CeCILL-C free software license. 

3 

4"""Argument parsing utilities.""" 

5 

6import argparse 

7 

8from mockslurm.process_db import DB_DEFAULTS 

9 

10 

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 

22 

23 return field_filter_values