Metadata-Version: 2.4
Name: plantdb.commons
Version: 0.15.0
Summary: Core shared library for the ROMI plant database ecosystem.
Author-email: Peter Hanappe <peter.hanappe@sony.com>, Timothée Wintz <timothee@timwin.fr>, Nabil Ait Taleb <mohamednabil.aittaleb@sony.com>, Arthur Luciani <arthur.luciani@ens-lyon.fr>
Maintainer-email: Jonathan Legrand <jonathan.legrand@ens-lyon.fr>
License: LGPL-3.0-or-later
Project-URL: homepage, https://romi-project.eu/
Project-URL: documentation, https://docs.romi-project.eu/plant_imager/
Project-URL: source, https://github.com/romi/plantdb
Project-URL: issues, https://github.com/romi/plantdb/issues
Keywords: Robotics for Microfarms,ROMI,Plant Phenotyping,Scientific Database,Data Management
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Database
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: English
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
Requires-Dist: appdirs
Requires-Dist: argon2-cffi
Requires-Dist: colorlog
Requires-Dist: imagecodecs
Requires-Dist: imageio>=2.16.2
Requires-Dist: numpy
Requires-Dist: paramiko
Requires-Dist: pillow
Requires-Dist: PyJWT>=2.6.0
Requires-Dist: plyfile
Requires-Dist: toml
Requires-Dist: tqdm
Provides-Extra: doc
Requires-Dist: mkdocs; extra == "doc"
Requires-Dist: mkdocs-material; extra == "doc"
Requires-Dist: mkdocstrings[python]; extra == "doc"
Requires-Dist: pymdown-extensions; extra == "doc"
Requires-Dist: markdown-exec[ansi]; extra == "doc"
Requires-Dist: mkdocs-gen-files; extra == "doc"
Requires-Dist: mkdocs-literate-nav; extra == "doc"
Requires-Dist: mkdocs-section-index; extra == "doc"
Provides-Extra: io
Requires-Dist: networkx; extra == "io"
Requires-Dist: tifffile; extra == "io"
Requires-Dist: open3d>=0.9.0.0; extra == "io"
Provides-Extra: test
Requires-Dist: nose2[coverage]; extra == "test"
Requires-Dist: coverage[toml]; extra == "test"
Requires-Dist: ruff; extra == "test"

# [![ROMI_logo](../../docs/assets/images/ROMI_logo_green_25.svg)](https://romi-project.eu) / PlantDB.commons

[![Licence](https://img.shields.io/github/license/romi/plantdb?color=lightgray)](https://www.gnu.org/licenses/lgpl-3.0.en.html)
[![Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fromi%2Fplantdb%2Frefs%2Fheads%2Fdev%2Fsrc%2Fcommons%2Fpyproject.toml&logo=python&logoColor=white)]()
[![GitHub branch check runs](https://img.shields.io/github/check-runs/romi/plantdb/dev)](https://github.com/romi/plantdb)
[![PyPI - Version](https://img.shields.io/pypi/v/plantdb.commons?logo=pypi&logoColor=white)](https://pypi.org/project/plantdb.commons/)

Core shared library for the ROMI plant database ecosystem.

This package provides common utilities and base functionality used by both server and client components.

Features include:
- Data management
- Common data models and schemas
- File system operations and validation
- Logging and debugging tools
- Data format specifications and validators

## Overview

PlantDB is a library for the ROMI (Robotics for Microfarms) plant database ecosystem.
It is designed for plant and agricultural research facilities and robotics labs that require lightweight plant data management infrastructure.

It consists of three components:

1. `plantdb.commons`: provides a **Python API** for interacting with plant data
2. `plantdb.server`: provides the _server-side_ REST API to interact with plant data
3. `plantdb.client`: provides the _client-side_ REST API to interact with plant data

For comprehensive documentation of the _PlantImager_ project, visit: [https://docs.romi-project.eu/plant_imager/](https://docs.romi-project.eu/plant_imager/)

API documentation for the `plantdb` library is available at: [https://romi.github.io/plantdb/](https://romi.github.io/plantdb/)

## Environment Setup

We strongly recommend using isolated environments to install ROMI libraries.

This documentation uses `conda` as both an environment and package manager.
If you don't have`miniconda3` installed, please refer to the [official documentation](https://docs.conda.io/en/latest/miniconda.html).

To create a new conda environment for PlantDB:
``` shell
conda create -n plantdb 'python=3.10' ipython
```

## Installation

Activate your environment and install the packages using `pip`:

``` shell
conda activate plantdb  # activate your environment first!
pip install plantdb.commons plantdb.server plantdb.client
```
