Metadata-Version: 2.1
Name: deciphon-api
Version: 0.4.2
Summary: RESTful API for Deciphon scheduler
Home-page: https://github.com/EBI-Metagenomics/deciphon-api
License: MIT
Keywords: deciphon,api
Author: Danilo Horta
Author-email: danilo.horta@pm.me
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: bcbio-gff
Requires-Dist: biopython
Requires-Dist: deciphon-sched (>=0.0.3,<0.0.4)
Requires-Dist: fastapi
Requires-Dist: loguru
Requires-Dist: pooch
Requires-Dist: pydantic[dotenv]
Requires-Dist: python-multipart
Requires-Dist: typer
Requires-Dist: uvicorn[uvloop,httptools]
Requires-Dist: xxhash
Project-URL: Repository, https://github.com/EBI-Metagenomics/deciphon-api
Description-Content-Type: text/markdown

# deciphon-api

## Dependencies

If you happen to be using a supported Linux environment (which is likely the case),
you would need:

- [Python](https://www.python.org) >=3.8
- [Pipx](https://pypa.github.io/pipx/) for easy installation and environment isolation. Feel free to use [Pip](https://pip.pypa.io/en/stable/) instead though.

## Usage

Generate a configuration file:

```bash
pipx run deciphon-api generate-config > .env
```

Tweak `.env` as needed, and then run

```bash
pipx run deciphon-api start
```

## Development

Make sure you have [Poetry](https://python-poetry.org/docs/).

Enter

```bash
poetry install
poetry shell
```

to setup and activate a Python environment associated with the project.
Then enter

```bash
uvicorn deciphon_api.main:app.api --reload
```

to start the API.

Tests can be performed by entering

```bash
pytest
```

while the corresponding Python environment created by Poetry is active.

## Settings

Copy the file [.env.example](.env.example) to your working directory and rename it to `.env`.
Edit it accordingly.
The rest of the configuration can be tuned by `uvicorn` options.

