Metadata-Version: 2.4
Name: TensorImgPipeline
Version: 1.0.2
Summary: This is a repository for creating and running Tipi Pipelines.
Project-URL: Homepage, https://tensorimgpipeline.github.io/TensorImgPipeline/
Project-URL: Repository, https://github.com/tensorimgpipeline/TensorImgPipeline
Project-URL: Documentation, https://tensorimgpipeline.github.io/TensorImgPipeline/
Author-email: Matti Kaupenjohann <matti.kaupenjohann@fh-dortmund.de>
License-File: LICENSE
Keywords: python
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <4.0,>=3.11
Requires-Dist: defusedxml>=0.7.1
Requires-Dist: jinja2>=3.1.0
Requires-Dist: matplotlib>=3.9.4
Requires-Dist: numpy>=2.0.2
Requires-Dist: opencv-python>=4.11.0.86
Requires-Dist: pydantic>=2.0.0
Requires-Dist: rich>=13.9.4
Requires-Dist: scipy>=1.17.0
Requires-Dist: seaborn>=0.13.2
Requires-Dist: torch>=2.6.0
Requires-Dist: torchvision>=0.21.0
Requires-Dist: tqdm>=4.67.1
Requires-Dist: typer>=0.15.1
Requires-Dist: types-defusedxml>=0.7.0.20240218
Requires-Dist: wandb>=0.19.6
Description-Content-Type: text/markdown

# TensorImgPipeline

![LOGO](docs/assets/logos/tipi_logo_text.v2.png)

[![Release](https://img.shields.io/github/v/release/tensorimgpipeline/TensorImgPipeline)](https://img.shields.io/github/v/release/tensorimgpipeline/TensorImgPipeline)
[![Build status](https://img.shields.io/github/actions/workflow/status/tensorimgpipeline/TensorImgPipeline/main.yml?branch=main)](https://github.com/tensorimgpipeline/TensorImgPipeline/actions/workflows/main.yml?query=branch%3Amain)
[![codecov](https://codecov.io/gh/tensorimgpipeline/TensorImgPipeline/branch/main/graph/badge.svg)](https://codecov.io/gh/tensorimgpipeline/TensorImgPipeline)
[![Commit activity](https://img.shields.io/github/commit-activity/m/tensorimgpipeline/TensorImgPipeline)](https://img.shields.io/github/commit-activity/m/tensorimgpipeline/TensorImgPipeline)
[![License](https://img.shields.io/github/license/tensorimgpipeline/TensorImgPipeline)](https://img.shields.io/github/license/tensorimgpipeline/TensorImgPipeline)

This is a repository for creating and running Tensor Image Pipelines, short tipis.

- **Github repository**: <https://github.com/tensorimgpipeline/TensorImgPipeline/>
- **Documentation** <https://tensorimgpipeline.github.io/TensorImgPipeline/>

## Development

To contribute to this project it is strongly recommended to use the devcontainer for local testing.
Since some tests involve creating demo projects, which could lead to tampering with your local environment outside of the project.

If your contribution does not involve in certain actions, you might also execute run tests on a local test environment.
For Example: Your tests includes only backend actions, which do not interact with the app config or create new scaffolding projects.

If you change files that interact with project scaffolding or CLI flows, run the full suite (preferably in devcontainer) and extend tests if necessary.

Use explicit test scopes locally:

```bash
# Fast feedback (unit-focused)
make test-fast

# Full suite (unit + integration + e2e)
make test-full
```

### Setup devcontainer

- Ensure docker or podman (recommended) are installed and configured correctly.
- Install VScode Extensions for Remote Development

This project already provides the necessary configurations to run this project inside devcontainer:

- Open Command Pallete.
- Execute `Dev Containers: Reopen in Container`

## Getting started with your project

### 1. Create a New Repository

First, create a repository on GitHub with the same name as this project, and then run the following commands:

```bash
git init -b main
git add .
git commit -m "init commit"
git remote add origin git@github.com:tensorimgpipeline/TensorImgPipeline.git
git push -u origin main
```

### 2. Set Up Your Development Environment

Then, install the environment and the pre-commit hooks with

```bash
make install
```

This will also generate your `uv.lock` file

### 3. Run the pre-commit hooks

Initially, the CI/CD pipeline might be failing due to formatting issues. To resolve those run:

```bash
uv run pre-commit run -a
```

### 4. Commit the changes

Lastly, commit the changes made by the two steps above to your repository.

```bash
git add .
git commit -m 'Fix formatting issues'
git push origin main
```

You are now ready to start development on your project!
The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

To finalize the set-up for publishing to PyPI, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/publishing/#set-up-for-pypi).
For activating the automatic documentation with MkDocs, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/mkdocs/#enabling-the-documentation-on-github).
To enable the code coverage reports, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/codecov/).

## Releasing a new version

- Create an API Token on [PyPI](https://pypi.org/).
- Add the API Token to your projects secrets with the name `PYPI_TOKEN` by visiting [this page](https://github.com/tensorimgpipeline/TensorImgPipeline/settings/secrets/actions/new).
- Create a [new release](https://github.com/tensorimgpipeline/TensorImgPipeline/releases/new) on Github.
- Create a new tag in the form `*.*.*`.

For more details, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/cicd/#how-to-trigger-a-release).

---

Repository initiated with [fpgmaas/cookiecutter-uv](https://github.com/fpgmaas/cookiecutter-uv).
