Metadata-Version: 2.4
Name: lmopitacrud
Version: 0.1.1
Summary: A simple CRUD package backed by JSON file storage.
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# lmopitacrud

`lmopitacrud` est un petit package Python qui fournit des opérations CRUD
(création, lecture, mise à jour et suppression) sur des éléments stockés dans
un fichier JSON.

## Installation

```bash
pip install lmopitacrud
```

Le package nécessite Python 3.9 ou une version ultérieure et Pydantic 2 ou une
version ultérieure.

## Exemple d'utilisation

Les fonctions CRUD sont accessibles directement depuis le package. Elles
utilisent des modèles Pydantic : le modèle d'entrée de `create_item` doit
fournir `model_dump()`, et le modèle de sortie doit pouvoir être construit à
partir des champs stockés.

```python
from pydantic import BaseModel
from lmopitacrud import create_item, get_item


class NewProduct(BaseModel):
    name: str


class Product(BaseModel):
    id: int
    name: str


filename = "products.json"
created = create_item(filename, NewProduct(name="Clavier"), Product)
product = get_item(filename, created.id, Product)
```

`create_item` attribue automatiquement un identifiant entier à l'élément.
`get_item` renvoie l'élément correspondant ou `None` s'il n'existe pas. Le
fichier JSON est créé lors de la première écriture.

## Fonctions disponibles

- `create_item(filename, item, out_model)` : crée un élément et lui attribue
  un identifiant.
- `get_item(filename, item_id, out_model)` : récupère un élément par son
  identifiant.
- `get_all_items(filename, out_model)` : récupère tous les éléments.
- `get_items_by_field(filename, field_name, value, out_model)` : récupère les
  éléments dont le champ correspond à la valeur fournie.
- `update_item(filename, item_id, item, out_model)` : met à jour un élément
  existant.
- `delete_item(filename, item_id, out_model)` : supprime et renvoie un élément
  existant.

Les fonctions de stockage bas niveau sont également disponibles dans
`lmopitacrud.storage`.
