from typing import List from pydantic import BaseModel, Field, TypeAdapter from uuid import UUID, uuid4 import json class Record(BaseModel): id: UUID = Field(default_factory=uuid4) name: str | None = '' description:str | None = '' img_path: str | None = '' class DB: records: List[Record] = [] path = '' def __init__(self, path=''): if path != '': with open(path, 'r') as file: js_data = json.load(file) tmp = [] for item in js_data: tmp.append(json.loads(item)) js_data = tmp self.records = [Record(**model_data) for model_data in js_data] self.path = path def add_record(self, name='', description='', img_path=''): new_rec = Record(name=name, description=description, img_path=img_path) self.records.append(new_rec) with open(self.path, 'w') as file: model_list_json = [record.model_dump_json() for record in self.records] json.dump(model_list_json, file) def edit_record(self, id): pass def delete_record(self, id): for i in range(len(self.records)): if self.records[i].id == id: self.records.pop(i)