SDK Python pour accéder à l’API MauriBooks
Project description
📚 Mauribooks SDK
Un SDK Python moderne et intuitif pour interagir avec l’API Books (dataset inspiré de Goodbooks-10k), spécialement pensé pour les workflows Data.
Fonctionnalités principales
- Simple & clair : interface Python ergonomique
- Multi-format : objets Pydantic, dicts et DataFrames Pandas
- Flexible : Compatible avec APIs locales et déployées
- Performant : Optimisé pour l'analyse de données
- Data-friendly : idéal pour l’exploration et la modélisation
Installation rapide
pip install mauribooks
Prérequis : Python 3.10+
Démarrage rapide
Configuration initiale
from mauribooks import BookClient, BookConfig
# Configuration avec l'API hébergée
config = BookConfig(book_base_url="https://books-project-api.onrender.com")
client = BookClient(config=config)
# Vérification de la connexion
status = client.health_check()
print(status) # {"message": "API Goodreads opérationnelle"}
Exemples d'utilisation
Récupérer un livre spécifique
# Récupération avec validation Pydantic
book = client.get_book(1)
print(f"Titre : {book.title}")
print(f"Auteurs : {book.authors}")
print(f"Note moyenne : {book.average_rating}")
API Reference
Méthodes principales
| Méthode | Description | Formats supportés |
|---|---|---|
health_check() |
Vérification de l'état de l'API | dict |
get_book(id) |
Récupération d'un livre par ID | Pydantic |
list_books |
Liste des livres avec filtres | pydantic, dict, pandas |
get_rating(user_id, book_id) |
Évaluation d’un utilisateur pour un livre | pydantic |
list_book_tags(skip=0, limit=100, book_id=None, tag_id=None, output_format=...) |
Relations livre-tag | pydantic, dict, pandas |
list_ratings(**kwargs) |
Liste des évaluations | pydantic, dict, pandas |
get_analytics() |
Statistiques globales | pydantic |
Multi-formats de sortie
# 1) Pydantic (défaut)
books_p = client.list_books(limit=10)
print(type(books_p[0]))
# 2) Dictionnaires
books_d = client.list_books(limit=10, output_format="dict")
print(type(books_d))
# 3) DataFrame
books_df = client.list_books(limit=10, output_format="pandas")
print(books_df.dtypes)
Analyses rapides
import pandas as pd
df = client.list_books(limit=1000, output_format="pandas")
# Top auteurs par nombre de livres dans l'échantillon
print(df['authors'].value_counts().head(10))
# Notes moyennes par langue
lang_stats = (
df.groupby('language_code', dropna=False)['average_rating']
.mean()
.sort_values(ascending=False)
.round(2)
)
print(lang_stats.head(10))
Relations Livre-Tag
# Relations pour un livre donné
bt_df = client.list_book_tags(book_id=1, limit=20, output_format="pandas")
print(bt_df.head())
# Filtrer par tag_id
bt_df_tag = client.list_book_tags(tag_id=30574, limit=20, output_format="pandas")
Statistics
stats = client.get_analytics()
print(stats) # ex: book_count, rating_count, tag_count, to_read_count, book_tag_count
Paramètres de configuration
config = BookConfig(
book_base_url="https://books-project-api.onrender.com",
timeout=30,
)
Développement local
Pour tester avec une instance locale :
config = BookConfig(book_base_url="http://localhost:8000")
client = BookClient(config=config)
local_df = client.list_books(limit=5, output_format="pandas")
print(local_df)
Développement et contribution
Installation en mode développement
git clone https://github.com/Daouda-Ba/Books_Project_API.git
cd mauribooks
pip install -e .
Tests
# (optionnel) tests si présents
pytest -q
Roadmap
- Support des requêtes asynchrones
- Cache intelligent des données
- Export vers autres formats (JSON, CSV, Parquet)
- Documentation interactive
Public cible
- Data Scientists : Analyse et modélisation de données littéraires
- Data Analysts : Reporting et visualisation
- Développeurs Python : Intégration rapide d'APIs de livres
- Étudiants : Apprentissage de l'analyse de données
- Chercheurs : Études sur les tendances littéraires
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Liens utiles
- API (prod) : https://books-project-api.onrender.com
- PyPI Package : https://pypi.org/project/mauribooks
- Docs Swagger : https://books-project-api.onrender.com/docs
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mauribooks-0.1.1.tar.gz.
File metadata
- Download URL: mauribooks-0.1.1.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a291d291e421b3809fa06b6504345ba2ecaddc1ff692264c9946dbb38d4fa02
|
|
| MD5 |
d39dce3e57bc04259d842c283a3dcb55
|
|
| BLAKE2b-256 |
f1f4ec0a4e75489dbc8b95c3ef0d886b98209ebff2fec023c63a67fdaec21c35
|
File details
Details for the file mauribooks-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mauribooks-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a45ea511d10cb38369eef0ed4243730a3d81169a704d3b445126f4e26a37ba3e
|
|
| MD5 |
37c2b87cd72e2bd3b50970df094f9217
|
|
| BLAKE2b-256 |
9b3900fb71e5f3aea55f08912cf0cb1ca499cf4499ad7fe206da60ab4310bb6f
|