59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
import json
|
|
|
|
def add_new_book(book_list: list[dict[str, str]], book: dict[str, str]): # On précise le contenu des clefs et valeurs du dictionnaire
|
|
"""Ajoute un nouveau livre"""
|
|
if book in book_list:
|
|
return f"{book["Title"].upper()} y est déjà."
|
|
book_list.append(book)
|
|
save(book_list)
|
|
return f"{book["Title"].upper()} a été ajouté."
|
|
|
|
def take_out_book(book_list: list[dict[str, str]], title: str):
|
|
"""Retire un livre déjà présent"""
|
|
for book in book_list:
|
|
if book["Title"].lower() == title.lower():
|
|
book_list.remove(book)
|
|
save(book_list)
|
|
return f"{title.upper()} a été retiré."
|
|
return f"{title.upper()} n'y est pas."
|
|
|
|
def list_books_in_list(book_list: list[dict]):
|
|
"""Liste les livres présents"""
|
|
return book_list
|
|
|
|
def sort_books_by_name(book_list: list[dict]):
|
|
"""Tri les livres par ordre alphabétique"""
|
|
book_list.sort(key= lambda dict: dict["Title"]) # pour trier par clefs et non plus par objets
|
|
|
|
def display_number_of_books(book_list: list) -> int:
|
|
"""Donne le nombre de livres présents"""
|
|
return len(book_list)
|
|
|
|
def search_book_by_word(book_list: list[dict[str, str]], word: str):
|
|
"""Cherche un livre par mot de départ"""
|
|
results = []
|
|
for book in book_list:
|
|
if word.lower() in book["Title"].lower():
|
|
results.append(book)
|
|
return results if len(results) > 0 else "Pas de résultat."
|
|
|
|
def search_book_by_letter(book_list: list[dict[str, str]], letter: str):
|
|
"""Cherche un livre par lettre de départ"""
|
|
results = []
|
|
for book in book_list:
|
|
if book["Title"].lower().startswith(letter):
|
|
results.append(book)
|
|
return results if len(results) > 0 else "Pas de résultat."
|
|
|
|
# Sauvegarde des livres dans un JSON pour persistance des données
|
|
|
|
def save(book_list):
|
|
"""Inscris dans un fichier JSON le contenu de la bibliothèque"""
|
|
with open("books.json", "w") as json_file:
|
|
json.dump(book_list, json_file, indent= 4)
|
|
|
|
def load():
|
|
"""Récupère le contenu d'un fichier JSON"""
|
|
with open("books.json") as json_file:
|
|
return json.load(json_file)
|