Using the values
Accessing the values
You actually don't need to use the return values from params._parse()
. You can access the values via params
itself.
from pyparam import params
params.a = 1
params._parse()
# -a 2
assert params.a.value == 2
Casting the values
If the value is a str
, you can try to cast into different types using:
# assume
# params.a.value == '1'
assert params.a.int() == 1
assert params.a.float() == 1.0
assert params.a.bool() == True
assert params.a.str() == '1'
Str methods
You may also use some methods of str
directly:
# assume
# params.a.value == 'abcdefg'
assert params.a + 'hij' == 'abcdefghij'
assert 'abc' in params.a
assert params.a.capitalize() == 'Abcdefg'
assert params.a.count('a') == 1
assert params.a.islower() == True
assert params.a.find('b') == 1
assert params.a.upper() == 'ABCDEFG'
... ...
Using a different wrapper for parsed values
# python-box
from box import Box
from pyparam import params
params.a = {}
ret = params._parse(['-a.b.c.d', '1'], dict_wrapper = Box)
assert ret.a.b.c.d == 1
Using multiple params instances
You may want multiple params
to store parameters from different sources, or for different uses.
from pyparam import Params
params1 = Params()
params1._loadFile('config1')
params2 = Params()
params2._loadFile('config2')