Metadata-Version: 2.1
Name: machinable
Version: 2.14.0
Summary: A modular platform for machine learning projects
Home-page: https://machinable.org
License: MIT
Keywords: machine-learning,research
Author: Frithjof Gressmann
Author-email: hello@machinable.org
Maintainer: Frithjof Gressmann
Maintainer-email: hello@machinable.org
Requires-Python: >=3.6.1,<4.0.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Provides-Extra: integrations
Provides-Extra: server
Requires-Dist: GitPython (>=3.1,<4.0)
Requires-Dist: PyYAML (>=5.3,<6.0)
Requires-Dist: ariadne (>=0.12.0,<0.13.0); extra == "server"
Requires-Dist: click (>=7.1,<8.0)
Requires-Dist: dataset (>=1.4.1,<2.0.0); extra == "integrations"
Requires-Dist: deepdiff (>=5.0.2,<6.0.0); extra == "integrations"
Requires-Dist: dotmap (>=1.3,<2.0)
Requires-Dist: expandvars (>=0.6,<0.7)
Requires-Dist: flatten-dict (>=0.3,<0.4)
Requires-Dist: fs (>=2.4,<3.0)
Requires-Dist: igittigitt (>=2.0,<3.0)
Requires-Dist: jsonlines (>=1.2,<2.0)
Requires-Dist: numpy (>=1.19.4,<2.0.0); extra == "integrations"
Requires-Dist: observable (>=1.0,<2.0)
Requires-Dist: pandas (>=1.1.5,<2.0.0); extra == "integrations"
Requires-Dist: pendulum (>=2.1,<3.0)
Requires-Dist: python-baseconv (>=1.2,<2.0)
Requires-Dist: ray[tune] (>=1.0.1,<2.0.0); extra == "integrations"
Requires-Dist: regex (==2020.7.14)
Requires-Dist: setproctitle (>=1.1,<2.0)
Requires-Dist: sh (>=1.13,<2.0)
Requires-Dist: tabulate (>=0.8.7,<0.9.0); extra == "integrations"
Requires-Dist: uvicorn (>=0.13.1,<0.14.0); extra == "server"
Project-URL: Documentation, https://machinable.org
Project-URL: Repository, https://github.com/machinable-org/machinable
Description-Content-Type: text/markdown

<div align="center">
  <img src="https://raw.githubusercontent.com/machinable-org/machinable/master/docs/logo/logo.png">
</div>

# machinable

<a href="https://travis-ci.org/machinable-org/machinable">
<img src="https://travis-ci.org/machinable-org/machinable.svg?branch=master" alt="Build Status">
</a>
<a href="https://opensource.org/licenses/MIT">
<img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License">
</a>
<a href="https://github.com/psf/black">
<img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg">
</a>

<br />
<br />

**machinable** provides a system to manage configuration of machine learning projects more effectively. Using straight-forward conventions and a powerful configuration engine, it can help structure your projects in a principled way so you can move quickly while enabling reuse and collaboration.

Read the [user guide ](https://machinable.org/guide) to get started.

## Features

**Powerful configuration**

- YAML-based project-wide configuration files with expressive syntax
- Efficient configuration manipulation
- Modular code organisation to allow for encapsulation and re-use
- Import system to use 3rd party configuration and code without overhead
- 'Mixins' for horizontal inheritance structure

**Efficient execution**

- Works with existing code
- Support for seamless cloud execution
- Automatic code backups
- Managed randomness and reproducibility
- Advanced hyperparameter tuning using [Ray Tune](https://github.com/ray-project/ray)

**Effective result collection and analysis**

- Logging, tabular record writer and storage API
- File system abstraction (in-memory, AWS S3, and more)
- Flat-file result database with convenient query syntax


