pydrobert-param

Documentation Status Build status License

Utilities for the python package param.

While param is a great tool for keeping track of parameters, currently serialization is restricted to pickling and unpickling objects. pydrobert-param takes the stance that parameter (de)serialization has an intuitive and obvious representation in most cases. The developer can modify how pydrobert-param (de)serializes param.Parameterized instances according to her needs.

A teaser:

import param
import pydrobert.param.serialization as serial

class Foo(param.Parameterized):
    my_int = param.Integer(10)

first, second = Foo(), Foo()
first.my_int = 30
serial.serialize_to_json('foo.json', first)
serial.deserialize_from_json('foo.json', second)
assert first.my_int == second.my_int

While the primary purpose of pydrobert-param is for parameter (de)serialization, there is also code in pydrobert.param.optuna for hyperparameter optimization via Optuna. Check the documentation for more complicated examples of serialization, as well as for hyperparameter optimization.

This is student-driven code, so don’t expect a stable API. I’ll try to use semantic versioning, but the best way to keep functionality stable is by pinning the version in the requirements or by forking.

Documentation

Installation

pydrobert-param is available via both PyPI and Conda.

conda install -c sdrobert pydrobert-param
pip install pydrobert-param
pip install git+https://github.com/sdrobert/pydrobert-param # bleeding edge

Licensing and How to Cite

Please see the pydrobert page for more details.

The implementation of pydrobert.param.abc._check_methods was modified from the CPython codebase, Copyright 2007 Google with additional notices at https://docs.python.org/3/copyright.html?highlight=copyright.

Indices and tables