Using the parsed values
The parsed values by params.parse() or params.values() are attached to a namespace. Yes, argparse's Namespace. So this will be true:
from argparse import Namespace
from params import Params
params.add_param('i', default=1)
values = params.values()
isinstance(values, Namespace)
However, it is not exactly the same, meaning this is NOT true:
from argparse import Namespace as APNamespace
from params import PMNamespace
PMNamespace is APNamespace
But PMNamespace is a subclass of APNamespace, with following functionalities being added:
-
Subscription:
ns = PMNamespace() ns['a'] = 1 ns['a'] == 1 -
Length:
len(ns['a']) == 1 -
Key existence detection:
'a' in ns is True
You can turn a namespace into a dictionary by vars(ns). However, if you want to turned all the namespaces inside into dictionaries, you may need to do it recursively.