Metadata-Version: 2.1
Name: icflow
Version: 0.0.1
Summary: A collection of simple utilities for machine learning workflows.
Author-email: "James Grogan, Irish Centre for High End Computing" <james.grogan@ichec.ie>
Project-URL: Repository, https://git.ichec.ie/performance/toolshed/icflow
Project-URL: Homepage, https://git.ichec.ie/performance/toolshed/icflow
Keywords: Machine Learning,Workflow,HPC
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: icsystemutils
Requires-Dist: PyYAML
Requires-Dist: types-PyYAML
Requires-Dist: albumentations
Requires-Dist: numpy
Requires-Dist: opencv-python
Requires-Dist: patchwork
Requires-Dist: segmentation-models-pytorch
Requires-Dist: tqdm
Requires-Dist: tensorboard
Requires-Dist: torch
Requires-Dist: torchvision
Requires-Dist: ultralytics

`icflow` is a Python package with some prototype 'workflow' tools for use in ICHEC.

# Goals
The goal is to use it to help convert tools and approaches used by ML 'domain experts' into a more standardized workflow by:

* Analysing incoming Juyter notebooks, models, datasets and runtime environments (conda/container)
* Identifying 'hard-coded' data that can be moved into config files
* Adding utility scripts and methods for fetching data and models as needed
* Describing a study as a workflow, using some scripts here to 'stitch' the workflow together

Ultimately we will end up using some common workflow tools across ICHEC, likely something established and open-source (eg MLFlow) - this package is intended to understand and flesh-out our workflow needs and start transforming how we set up studies to ultimately move to these more standard tools.

# Tests

In a Python virtual environment do:

```sh
pip install .'[test]'
```

## Unit Tests

```sh
pytest
```

## Linting and Static Analysis

```sh
black src test
mypy src test
```

## All Tests

Requires `tox`:

```sh
tox
```

