Skip to main content

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.

PyPI version Python 3.8+ License: MIT


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


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

mauribooks-0.1.1.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mauribooks-0.1.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

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

Hashes for mauribooks-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8a291d291e421b3809fa06b6504345ba2ecaddc1ff692264c9946dbb38d4fa02
MD5 d39dce3e57bc04259d842c283a3dcb55
BLAKE2b-256 f1f4ec0a4e75489dbc8b95c3ef0d886b98209ebff2fec023c63a67fdaec21c35

See more details on using hashes here.

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

Hashes for mauribooks-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a45ea511d10cb38369eef0ed4243730a3d81169a704d3b445126f4e26a37ba3e
MD5 37c2b87cd72e2bd3b50970df094f9217
BLAKE2b-256 9b3900fb71e5f3aea55f08912cf0cb1ca499cf4499ad7fe206da60ab4310bb6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page