File size: 665 Bytes
801501a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from ..custom_types import *
import sys


# minimal argparse
def parse(parse_dict: Dict[str, Dict[str, Any]]):
    args = sys.argv[1:]
    args_dict = {args[i]: args[i + 1] for i in range(0, len(args), 2)}
    out_dict = {}
    for item in parse_dict:
        hint = parse_dict[item]['type']
        if item in args_dict:
            out_dict[item[2:]] = hint(args_dict[item])
        else:
            out_dict[item[2:]] = parse_dict[item]['default']
        if 'options' in parse_dict[item] and out_dict[item[2:]] not in parse_dict[item]['options']:
            raise ValueError(f'Expected {item} to be in {str(parse_dict[item]["options"])}')
    return out_dict