Files
context-paging/output/turn_013.json

2 lines
11 KiB
JSON
Raw Permalink Normal View History

2026-03-28 08:54:57 +00:00
{"id":"chatcmpl-8926058ceb95041d","object":"chat.completion","created":1774196605,"model":"NousResearch\/Hermes-3-Llama-3.2-3B","choices":[{"index":0,"message":{"role":"assistant","content":"import argparse\nimport datetime\nimport json\nfrom collections import defaultdict\n\nclass Task:\n def __init__(self, title, description=None, completed=False, priority='medium', due_date=None, tags=None, depends_on=None, recurrence=None, next_occurrence=None):\n self.id = self._generate_id()\n self.title = title\n self.description = description\n self.completed = completed\n self.priority = priority\n self.due_date = due_date\n self.tags = tags if tags is not None else set()\n self.depends_on = depends_on if depends_on is not None else set()\n self.notes = []\n self.recurrence = recurrence\n self.next_occurrence = next_occurrence\n self.created_at = datetime.now()\n\n @staticmethod\n def _generate_id():\n return str(uuid.uuid4())\n\nclass TaskNote:\n def __init__(self, content, created_at):\n self.id = self._generate_id()\n self.content = content\n self.created_at = created_at\n\nclass TaskManager:\n def __init__(self):\n self.tasks = []\n self.tasks_by_id = defaultdict(list)\n self.dependencies = defaultdict(set)\n self.notes = []\n self.recurring_tasks = defaultdict(list)\n\n def add_task(self, title, description=None, due_date=None, tags=None, depends_on=None, recurrence=None, next_occurrence=None):\n task = Task(title, description, due_date, tags, depends_on, recurrence, next_occurrence)\n self.tasks.append(task)\n\n def list_tasks(self, show_completed=False):\n if show_completed:\n tasks = self.tasks\n else:\n tasks = [task for task in self.tasks if not task.completed]\n for task in tasks:\n color = Fore.YELLOW if task.priority == 'medium' else Fore.GREEN if task.priority == 'low' else Fore.RED\n print(f\"{color}ID: {task.id}, Title: {task.title}, Description: {task.description}, Completed: {task.completed}, Priority: {task.priority}, Tags: {', '.join(task.tags)}, Depends On: {', '.join([self.tasks_by_id[dep_id][0]['title'] for dep_id in task.depends_on])}{Style.RESET_ALL}\")\n\n def complete_task(self, task_id):\n for task in self.tasks:\n if task.id == task_id:\n task.completed = True\n for dep_id in task.depends_on:\n self.dependencies[dep_id].remove(task.id)\n if not any(self.dependencies[dep_id]):\n self.dependencies.pop(dep_id)\n break\n\n def delete_task(self, task_id):\n for task in self.tasks:\n if task.id == task_id:\n self.tasks.remove(task)\n for dep_id in task.depends_on:\n self.dependencies[dep_id].remove(task.id)\n self.dependencies.pop(task_id)\n break\n\n def save_to_file(self, filepath):\n data = {\n 'tasks': [task.to_dict() for task in self.tasks],\n 'notes': self.notes\n }\n with open(filepath, 'w') as f:\n json.dump(data, f)\n\n @staticmethod\n def load_from_file(filepath):\n with open(filepath, 'r') as f:\n data = json.load(f)\n task_manager = TaskManager()\n task_manager.tasks = [Task.from_dict(task) for task in data['tasks']]\n task_manager.notes = data['notes']\n return task_manager\n\n def add_note(self, task_id, content):\n for task in self.tasks:\n if task.id == task_id:\n task.notes.append(TaskNote(content, datetime.now()))\n break\n\n def list_notes(self, task_id):\n for task in self.tasks:\n if task.id == task_id:\n for note in task.notes:\n print(f\"ID: {note.id}, Content: {note.content}, Created At: {note.created_at}\")\n\n