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))

author_stats = (
    df.groupby('authors')['average_rating']
      .mean()
      .sort_values(ascending=False)
      .round(2)
)
print(author_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-1.0.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

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

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

Uploaded Python 3

File details

Details for the file mauribooks-1.0.0.tar.gz.

File metadata

  • Download URL: mauribooks-1.0.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.7

File hashes

Hashes for mauribooks-1.0.0.tar.gz
Algorithm Hash digest
SHA256 561f565326199119cb2bd71e1e9e3c1e6fcc4f6e05e452899c3e09ff47677e98
MD5 da859c49166ed8957a9b9afb056bec5a
BLAKE2b-256 ddf2c569ec9c1e214bea15261262e952ebd1d58cbe476532ce5e900cb5360c9a

See more details on using hashes here.

File details

Details for the file mauribooks-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: mauribooks-1.0.0-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-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 047b89a2c9eab347a25c0c215b37f846dc3eb1f6b36284dc84b47d2ec31bcef1
MD5 fb2a4671183b0231cb37140b32975d46
BLAKE2b-256 05b472f39cf91041e01aaaa54d5f35bba4f37ec09073814637948a11c24a1bc9

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