Metadata-Version: 2.1
Name: cinnamon-generic
Version: 0.2a0
Summary: [Generic Package] A simple high-level framework for research
Home-page: https://github.com/federicoruggeri/cinnamon_generic
Author: Federico Ruggeri
Author-email: federico.ruggeri6@unibo.it
License: MIT
Project-URL: Bug Tracker, https://github.com/federicoruggeri/cinnamon_generic/issues
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: hyperopt (==0.2.7)
Requires-Dist: setuptools (>=47.1.0)
Requires-Dist: pytest (>=7.3.1)
Requires-Dist: tqdm (>=4.64.0)
Requires-Dist: gensim (~=4.2.0)
Requires-Dist: numpy (>=1.21.6)
Requires-Dist: pandas (>=1.3.5)
Requires-Dist: scikit-learn (>=1.0.2)

# Cinnamon Generic 

The generic package offers several ``Component`` and related ``Configuration`` for machine-learning.

Additionally, it provides the first set of **commands**: high-level APIs for speeding up cinnamon registration.

## Documentation

Check the online documentation of [cinnamon-generic](https://nlp-unibo.github.io/cinnamon_generic/) for more information.

Check also the central [cinnamon](https://nlp-unibo.github.io/cinnamon/) documentation to overview all cinnamon packages!


## Components and Configurations


The generic package defines ``Component`` and ``Configuration`` for

- Hyper-parameter calibration
- Callbacks
- Data loaders
- Data splitters (e.g., train, validation and test)
- File manager
- Framework helper (e.g., for deterministic runs)
- Metrics
- Model API
- Pipeline API (i.e., a special nested ``Component`` that executes children sequentially)
- Data processors
- Model validation routines: train and test, cross-validation

## Commands

Commands are syntactic sugar for several cinnamon operations.

For instance, the ``setup_registry()`` performs (i) custom module loading; (ii) registration DAG evaluation and (iii) registration.
Thus, it is just necessary to invoke this command at the beginning of each runnable script to use cinnamon.

Other commands are more specific to the generic package:

- Running a generic ``Component``.
- Running a ``Routine`` component in **training** and **inference** modes.
- Running multiple ``Component`` in sequential fashion.
- Running multiple ``Routine`` components in sequential fashion.
- Running a ``Calibrator`` component.

## Install

pip

      pip install cinnamon-generic

git

      git clone https://github.com/federicoruggeri/cinnamon_generic

## Contribute

Want to contribute with new ``Component`` and ``Configuration``?

Feel free to submit a merge request! 

Cinnamon is meant to be a community project :)

## Contact

Don't hesitate to contact:
- Federico Ruggeri @ [federico.ruggeri6@unibo.it](mailto:federico.ruggeri6@unibo.it)

for questions/doubts/issues!
