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.
Source Distribution
File details
Details for the file simpleparam-0.0.4.tar.gz.
File metadata
- Download URL: simpleparam-0.0.4.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/2.7.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98e4586bab22bfe18b9cd40980afd89825122e40be6c28f57f5cea92e24a04ba
|
|
| MD5 |
0b6831cadb3bd3663e585e22d533de26
|
|
| BLAKE2b-256 |
1de12b395d66d4f1808d87d17cccc16c1e685b440b5124854cb72cfe629ee3bf
|