Metadata-Version: 2.1
Name: forml
Version: 0.2.dev0
Summary: Lifecycle management framework for Data science projects
Home-page: https://github.com/formlio/forml
Maintainer: ForML Development Team
Maintainer-email: forml-dev@googlegroups.com
License: Apache License 2.0
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: joblib
Requires-Dist: pip
Requires-Dist: setuptools
Requires-Dist: packaging (>=20.0)
Requires-Dist: toml
Provides-Extra: all
Requires-Dist: sphinxcontrib-napoleon ; extra == 'all'
Requires-Dist: sphinx-rtd-theme ; extra == 'all'
Requires-Dist: pandas ; extra == 'all'
Requires-Dist: pytest-pylint ; extra == 'all'
Requires-Dist: scikit-learn ; extra == 'all'
Requires-Dist: cloudpickle ; extra == 'all'
Requires-Dist: pytest-cov ; extra == 'all'
Requires-Dist: pytest-xdist ; extra == 'all'
Requires-Dist: dask ; extra == 'all'
Requires-Dist: black ; extra == 'all'
Requires-Dist: flake8-colors ; extra == 'all'
Requires-Dist: sphinx ; extra == 'all'
Requires-Dist: graphviz ; extra == 'all'
Requires-Dist: pytest-flake8 ; extra == 'all'
Requires-Dist: pyhive ; extra == 'all'
Requires-Dist: pre-commit ; extra == 'all'
Provides-Extra: dask
Requires-Dist: cloudpickle ; extra == 'dask'
Requires-Dist: dask ; extra == 'dask'
Provides-Extra: dev
Requires-Dist: pytest-pylint ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: pytest-xdist ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: flake8-colors ; extra == 'dev'
Requires-Dist: pytest-flake8 ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Provides-Extra: doc
Requires-Dist: sphinxcontrib-napoleon ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme ; extra == 'doc'
Requires-Dist: sphinx ; extra == 'doc'
Provides-Extra: flow
Requires-Dist: pandas ; extra == 'flow'
Requires-Dist: scikit-learn ; extra == 'flow'
Provides-Extra: graphviz
Requires-Dist: graphviz ; extra == 'graphviz'
Provides-Extra: presto
Requires-Dist: pyhive ; extra == 'presto'

<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->

ForML
=====

[![GitHub Build](https://github.com/formlio/forml/workflows/CI%20Build/badge.svg)](https://github.com/formlio/forml/actions)
[![Coverage Status](https://img.shields.io/codecov/c/github/formlio/forml/master.svg)](https://codecov.io/github/formlio/forml?branch=master)
[![Documentation Status](https://readthedocs.org/projects/forml/badge/?version=latest)](https://forml.readthedocs.io/en/latest/?badge=latest)
[![License](http://img.shields.io/:license-Apache%202-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)
[![PyPI Version](https://badge.fury.io/py/forml.svg)](https://pypi.org/project/forml/)
[![PyPI Downloads](https://img.shields.io/pypi/dm/forml)](https://pypi.org/project/forml/)
[![Code Style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)


ForML is a framework for researching, implementing and operating data science projects.

Use ForML to formally describe a data science problem as a composition of high-level operators. ForML expands your
project into a task dependency graph specific to a given life-cycle phase and executes it using any of its supported
runners.

Solutions built on ForML are naturally easy to reuse, extend, reproduce, or share and collaborate on.


Not Just Another DAG
--------------------

Despite *DAG* (directed acyclic graph) being at the heart of ForML operations, it stands out amongst the many other task
dependency processing systems due to:

1. Its specialization on machine learning problems, that is wired right into the flow topology.
2. Concept of high-level operator composition which helps to wrap complex ML techniques into simple reusable units.
3. An abstraction of runtime dependencies allowing to run the same project using different technologies.


History
-------

ForML started as an open-source project in response to ever painful transitions of datascience research into production.
While there are other projects trying to solve this problem, they are typically either generic data processing systems
too low-level to provide out-of-the-box ML lifecycle routines or special scientific frameworks that are on the other
end too high-level to allow for robust operations.


Resources
---------

* [Documentation](https://docs.forml.io/en/latest/)
* [Source Code](https://github.com/formlio/forml/)
* Mailing lists:

  * Developers: `forml-dev@googlegroups.com`
  * Users: `forml-users@googlegroups.com`

* [Issue Tracker](https://github.com/formlio/forml/issues/)
* [PyPI Repository](https://pypi.org/project/forml/)


