diff --git a/storage.py b/storage.py new file mode 100644 index 0000000..e36133c --- /dev/null +++ b/storage.py @@ -0,0 +1,44 @@ +""" +Модуль для сохранения и загрузки данных +Работа с файлами JSON +""" + +import json +from task import Task + + +def save_tasks_to_file(tasks, filename="tasks.json"): + """Сохранить список задач в файл JSON""" + data = [] + for task in tasks: + data.append({ + "title": task.title, + "description": task.description, + "completed": task.completed + }) + + with open(filename, "w", encoding="utf-8") as f: + json.dump(data, f, ensure_ascii=False, indent=2) + + return True + + +def load_tasks_from_file(filename="tasks.json"): + """Загрузить список задач из файла JSON""" + try: + with open(filename, "r", encoding="utf-8") as f: + data = json.load(f) + + tasks = [] + for item in data: + task = Task(item["title"], item.get("description", "")) + if item.get("completed", False): + task.mark_complete() + tasks.append(task) + + return tasks + except FileNotFoundError: + return [] + except json.JSONDecodeError: + print("Ошибка чтения файла. Данные могут быть повреждены.") + return []