TP_JO2024/discipline/models.py
2024-03-27 15:20:10 +01:00

50 lines
1.3 KiB
Python

from pydantic import BaseModel, RootModel
from typing import Optional, List
import json
class Discipline(BaseModel):
"""
Modèle Discipline
"""
id: Optional[int] = 0
intitule: str
type: str
description: str
logo: str
def loadFromJsonData(self, data: str):
"""
Charge les données depuis une chaine json
:param data: Données json
:return: None
"""
data = json.loads(data)
for key, value in data.items():
setattr(self, key, value)
class ListeDiscipline(RootModel):
root: List[Discipline] = []
def loadFromJson(self, path: str):
"""
Charge les données depuis un fichier json
:param path: Chemin du fichier json
:return: None
"""
try:
with open(path) as f:
data = json.load(f)
for discipline in data:
self.root.append(Discipline(**discipline))
except FileNotFoundError:
print(f"Le fichier {path} n'existe pas")
def loadFromJsonData(self, data: str):
"""
Charge les données depuis une chaine json
:param data: Données json
:return: None
"""
data = json.loads(data)
for discipline in data:
self.root.append(Discipline(**discipline))