Metadata-Version: 2.1
Name: fractal-server
Version: 1.0.0b5
Summary: Server component of the Fractal analytics platform
Home-page: https://github.com/fractal-analytics-platform/fractal-server
License: BSD-3-Clause
Author: Jacopo Nespolo
Author-email: jacopo.nespolo@exact-lab.it
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Provides-Extra: gunicorn
Provides-Extra: postgres
Provides-Extra: slurm
Requires-Dist: SQLAlchemy-Utils (>=0.38.3,<0.39.0)
Requires-Dist: aiosqlite (>=0.17.0,<0.18.0)
Requires-Dist: alembic (>=1.8.0,<2.0.0)
Requires-Dist: asyncpg (>=0.27.0,<0.28.0) ; extra == "postgres"
Requires-Dist: clusterfutures (>=0.4,<0.5) ; extra == "slurm"
Requires-Dist: fastapi (>=0.78.0,<0.79.0)
Requires-Dist: fastapi-users-db-sqlmodel (>=0.2.0,<0.3.0)
Requires-Dist: fastapi-users[oauth] (>=10.1.1,<11.0.0)
Requires-Dist: gunicorn (>=20.1.0,<21.0.0) ; extra == "gunicorn"
Requires-Dist: psycopg2 (>=2.9.5,<3.0.0) ; extra == "postgres"
Requires-Dist: python-dotenv (>=0.20.0,<0.21.0)
Requires-Dist: sqlmodel (>=0.0.8,<0.0.9)
Requires-Dist: uvicorn (>=0.18.2,<0.19.0)
Description-Content-Type: text/markdown

# Fractal Server

[![PyPI version](https://img.shields.io/pypi/v/fractal-server?color=gree)](https://pypi.org/project/fractal-server/)
[![CI Status](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml/badge.svg)](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml)
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)

Fractal is a framework to process high content imaging data at scale and prepare it for interactive visualization.

![Fractal_Overview](https://fractal-analytics-platform.github.io/assets/fractal_overview.jpg)

This is the server component of the fractal analytics platform. If you are interested in the client component, please refer to the [main
repository](https://github.com/fractal-analytics-platform/fractal). If you are interested in the fractal tasks, please refer to [the tasks repository](https://github.com/fractal-analytics-platform/fractal-tasks-core).

## Documentation

See https://fractal-analytics-platform.github.io/fractal-server.

## Development

### Setting up environment

We use [poetry](https://python-poetry.org/docs/) (v1.2) to manage the development environment and the dependencies. Running
```
poetry install [--with dev] [-E slurm]
```
will take care of installing all the dependencies in a separate environment,
optionally installing also the development dependencies.

It may be useful to use a different interpreter from the one installed in your
system. To this end we recommend using
[pyenv](https://github.com/pyenv/pyenv). In the project folder, invoking
```
pyenv local 3.8.13
poetry env use 3.8
poetry install
```
will install Fractal in a development environment using `python 3.8.13` instead
of the system-wide interpreter.

### Testing

We use [pytest](https://docs.pytest.org/en/7.1.x/) for unit and integration
testing of Fractal. If you installed the development dependencies, you may run
the test suite by invoking
```
poetry run pytest
```

# Contributors and license

Unless otherwise stated in each individual module, all Fractal components are released according to a BSD 3-Clause License, and Copyright is with Friedrich Miescher Institute for Biomedical Research and University of Zurich.

The SLURM compatibility layer is based on [`clusterfutures`](https://github.com/sampsyo/clusterfutures), by [@sampsyo](https://github.com/sampsyo) and collaborators, and it is released under the terms of the MIT license.

Fractal was conceived in the Liberali Lab at the Friedrich Miescher Institute for Biomedical Research and in the Pelkmans Lab at the University of Zurich (both in Switzerland). The project lead is with [@gusqgm](https://github.com/gusqgm) & [@jluethi](https://github.com/jluethi). The core development is done under contract by [@mfranzon](https://github.com/mfranzon), [@tcompa](https://github.com/tcompa) & [@jacopo-exact](https://github.com/jacopo-exact) from [eXact lab S.r.l.](exact-lab.it).

