SimpleParam: simplified parameters with optional type and range checking
Project description
SimpleParam
About
SimpleParam
was inspired by the param library which offers lots of neat features in a
small package, however param
has a tricky codebase. In SimpleParam
you can either create Parameter
or
ParameterStore
using simple synthax.
SimpleParam
is certainly not complete and is missing a lot of awesome features of param
and of course, has not been battle-tested yet. Missing features (such as Array
, List
, etc) will be added as my other projects that use SimpleParam
will require them.
Usage
You can intilize Parameter
like this:
import simpleparam as param
number = param.Number(42)
number
>>> Parameter(name=param, value=42, doc=')
However, it is probably better to use parameters inside of a ParameterStore
, where you can store multiple parameters together and take advantage of additional functionality (e.g. locking of parameters with constant
or exporting parameters as JSON object using export_as_dict
):
import simpleparam as param
class Config(param.ParameterStore):
def __init__(self):
param.ParameterStore.__init__(self)
# # you can add parameter docstrings by setting `doc`
self.integer = param.Integer(42,
doc="A not very important value")
# `auto_bound` forces hard bounds on values that are outside the specification
self.number = param.Number(42.,
softbounds=[0, 100],
hardbounds=[1, 100],
auto_bound=True)
# setting `allow_any` to False, will force values to be of `str` instance
self.string = param.String("string",
allow_any=False)
# you can set internal parameter name by setting the value of `name`
self.choice = param.Choice("foo",
name="foo_bar_choice",
choices=["foo", "bar"],
)
# parameters can be prevented from being changed by setting value of `constant
self.color = param.Color("#FFFFFF",
constant=True)
self.bool = param.Boolean(True)
self.range = param.Range(value=[0, 100], hardbounds=[0, 100])
config = Config()
config
>>> ParameterStore(count=7)
For complete documentation, please visit the docs website.
Instalation
Install from PyPI
pip install simpleparam
or directly from GitHub
pip install git+https://github.com/lukasz-migas/SimpleParam.git
or in development mode
git clone git+https://github.com/lukasz-migas/SimpleParam.git
cd SimpleParam
python setup.py develop
Requirements
SimpleParam has no external requirements and works in py2 and py3.
Planned features
- add 'List', 'Dict' classes
- rename 'Color' to 'ColorHEX' or add 'modes': RGB or HEX
- add Array class
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.