a library for building configurable, repeatable experiments
Project description
fob
fob is a library for building configurable, repeatable experiments. It comes with a fob
command for running and inspecting experiment pipelines, which are built from configurable ingredients.
Ingredient
An ingredient is the basic building block of a pipeline. Ingredients are configured using their __init__
method, which allows unified Python and CLI APIs. They need to:
- Subclass the
Ingredient
class, which allows the ingredient to be recognized (and provides many convenience methods) - Decorate their
__init__
function with@configurable
, which makes the arguments passed to__init__
accessible from theself.cfg
dict. This allows the arguments to be configured from the CLI and tracked for artifact provenance - Decorate select methods with
@cacheable
, which saves the method's output based on (1) the method's arguments and (2) the configuration inself.cfg
. When possible, decorated methods load output from disk rather than recomputing it. The@cacheable
decorator takes an output type as an argument, such as@cacheable(NumpyOutput)
. Other valid types includePathOutput
,PickleOutput
,StringOutput
, etc.
Command
The fob
command can run arbitrary methods within a pipeline. It uses the syntax:
fob <class> [method] [method-args] [--output DIR] [--search-path DIR] [--config config-args]
where
method
can be amethod
ofclass
or of an object inclass.cfg
method-args
is a space-separated list ofkey=val
arguments to pass to method--output
specifies a directory to store @cacheable output (and to find it in)--search-path
specifies directories to look for@cacheable
output inconfig-args
is a space-separated list ofkey=val
arguments to initializeclass
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fob-0.0.3.tar.gz
(23.1 kB
view hashes)
Built Distribution
fob-0.0.3-py3-none-any.whl
(18.2 kB
view hashes)