Skip to content

Commit

Permalink
readme reorg
Browse files Browse the repository at this point in the history
  • Loading branch information
ncilfone committed Jul 28, 2021
1 parent 7b9bc96 commit 7d99308
Showing 1 changed file with 36 additions and 48 deletions.
84 changes: 36 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,50 @@ creating ArgParsers, reading configuration files, implementing traceability etc.
In short, `spock` configurations are defined by simple and familiar class-based structures. This allows `spock` to
support inheritance, read from multiple markdown formats, and allow hierarchical configuration by composition.

## Key Features

* [Simple Declaration](https://fidelity.github.io/spock/docs/basic_tutorial/Define/): Type checked parameters are
defined within a `@spock` decorated class. Supports required/optional and automatic defaults.
* Easily Managed Parameter Groups: Each class automatically generates its own object within a single namespace.
* [Parameter Inheritance](https://fidelity.github.io/spock/docs/advanced_features/Inheritance/): Classes support
inheritance allowing for complex configurations derived from a common base set of parameters.
* [Complex Types](https://fidelity.github.io/spock/docs/advanced_features/Advanced-Types/): Nested Lists/Tuples,
List/Tuples of Enum of `@spock` classes, List of repeated `@spock` classes
* Multiple Configuration File Types: Configurations are specified from YAML, TOML, or JSON files.
* [Hierarchical Configuration](https://fidelity.github.io/spock/docs/advanced_features/Composition/): Compose from
multiple configuration files via simple include statements.
* [Command-Line Overrides](https://fidelity.github.io/spock/docs/advanced_features/Command-Line-Overrides/): Quickly
experiment by overriding a value with automatically generated command line arguments.
* Immutable: All classes are *frozen* preventing any misuse or accidental overwrites (to the extent they can be in
Python).
* [Tractability and Reproducibility](https://fidelity.github.io/spock/docs/basic_tutorial/Saving/): Save runtime
parameter configuration to YAML, TOML, or JSON with a single chained command (with extra runtime info such as Git info,
Python version, machine FQDN, etc). The saved markdown file can be used as the configuration input to reproduce
prior runtime configurations.
* [Hyper-Parameter Tuner Addon](https://fidelity.github.io/spock/docs/addons/tuner/About.html): Provides a unified
interface for defining hyper-parameters (via `@spockTuner` decorator) that supports various tuning/algorithm
backends (Optuna, WIP: Ax)
* [S3 Addon](https://fidelity.github.io/spock/docs/addons/S3/): Automatically detects `s3://` URI(s) and handles loading
and saving `spock` configuration files when an active `boto3.Session` is passed in (plus any additional
`S3Transfer` configurations)

## Quick Install

Requires Python 3.6+

```bash
pip install spock-config
```

w/ S3 extension
| Base | w/ S3 Extension | w/ Hyper-Parameter Tuner |
|------|-----------------|--------------------------|
| `pip install spock-config` | `pip install spock-config[s3]` | `pip install spock-config[tune]` |

```bash
pip install spock-config[s3]
```
## Quick Start & Documentation

## Version(s)
Refer to the quick-start guide [here](https://fidelity.github.io/spock/docs/Quick-Start/).

All prior versions are available on PyPi. If legacy API and backend support is needed please install a pre v2.0.0+
version. We recommend refactoring your code to the new API and backend instead as legacy versions will be missing
recent features, bugfixes, and hotfixes.
Current documentation and more information can be found [here](https://fidelity.github.io/spock/).

* v2.0.0+: Dropped support for legacy backend and API semantics
* v1.1.0-v1.2.1: New API with support for legacy backend and legacy API semantics
* v1.0.0: Legacy API and backend
Example `spock` usage is located [here](https://github.com/fidelity/spock/blob/master/examples).

## News
## News/Releases

See [Releases](https://github.com/fidelity/spock/releases) for more information.

Expand All @@ -60,39 +79,8 @@ active `boto3.Session`
* Support for Google docstring style annotation of `spock` class (and Enums) and attributes
* Added in ability to print docstring annotated help information to command line with `--help` argument

## Documentation

Current documentation and more information can be found [here](https://fidelity.github.io/spock/).

Example `spock` usage is located [here](https://github.com/fidelity/spock/blob/master/examples).

## Key Features

* [Simple Declaration](https://fidelity.github.io/spock/docs/basic_tutorial/Define/): Type checked parameters are
defined within a `@spock` decorated class. Supports required/optional and automatic defaults.
* Easily Managed Parameter Groups: Each class automatically generates its own object within a single namespace.
* [Parameter Inheritance](https://fidelity.github.io/spock/docs/advanced_features/Inheritance/): Classes support
inheritance allowing for complex configurations derived from a common base set of parameters.
* [Complex Types](https://fidelity.github.io/spock/docs/advanced_features/Advanced-Types/): Nested Lists/Tuples,
List/Tuples of Enum of `@spock` classes, List of repeated `@spock` classes
* Multiple Configuration File Types: Configurations are specified from YAML, TOML, or JSON files.
* [Hierarchical Configuration](https://fidelity.github.io/spock/docs/advanced_features/Composition/): Compose from
multiple configuration files via simple include statements.
* [Command-Line Overrides](https://fidelity.github.io/spock/docs/advanced_features/Command-Line-Overrides/): Quickly
experiment by overriding a value with automatically generated command line arguments.
* Immutable: All classes are *frozen* preventing any misuse or accidental overwrites (to the extent they can be in
Python).
* [Tractability and Reproducibility](https://fidelity.github.io/spock/docs/basic_tutorial/Saving/): Save runtime
parameter configuration to YAML, TOML, or JSON with a single chained command (with extra runtime info such as Git info,
Python version, machine FQDN, etc). The saved markdown file can be used as the configuration input to reproduce
prior runtime configurations.
* [Hyper-Parameter Tuner Addon](https://fidelity.github.io/spock/docs/addons/tuner/About.html): Provides a unified
interface for hyper-parameter tuning that supports various backends (Optuna, WIP: Ax)
* [S3 Addon](https://fidelity.github.io/spock/docs/addons/S3/): Automatically detects `s3://` URI(s) and handles loading
and saving `spock` configuration files when an active `boto3.Session` is passed in (plus any additional
`S3Transfer` configurations)

#### Main Contributors
### Original Implementation

[Nicholas Cilfone](https://github.com/ncilfone), [Siddharth Narayanan](https://github.com/sidnarayanan)
___
Expand Down

0 comments on commit 7d99308

Please sign in to comment.