Package ai_todo
AI specific to-do manager.
- python interface
- plain text data store
- simpler than Jira
- optimized for openai tool API
Expand source code
"""AI specific to-do manager.
- python interface
- plain text data store
- simpler than Jira
- optimized for openai tool API
"""
from ai_todo.public_api import TaskManager
__all__ = ["TaskManager"]
Sub-modules
ai_todo.models
ai_todo.public_api
ai_todo.source_refs
ai_todo.views
Classes
class TaskManager (root_folder: str, valid_assignees: list[str])
-
Expand source code
class TaskManager: def __init__(self, root_folder: str, valid_assignees: list[str]): completed_file = root_folder + "/todo_completed.toml" incomplete_file = root_folder + "/todo_incomplete.toml" self.work = Work(completed_file, incomplete_file, valid_assignees) def query_by_assignee(self, assignee_name: str) -> str: results = self.work.incomplete.query_tasks_by_assignee(assignee_name) return assigned_incomplete_tasks_to_markdown(assignee_name, results) def query_by_title_keyword(self, keyword: str) -> str: results = self.work.incomplete.query_tasks(keyword) return search_results_to_markdown(keyword, results) def add_task( self, title: str, description: str, category: str, source_code_ref: str, assignee: Optional[str] = None ) -> None: new_task = Task(title, description, False, category, source_code_ref, assignee) self.work.incomplete.add_task(new_task) self.work.incomplete.save_tasks() # Save after adding task def finish_task(self, title: str): if title in self.work.incomplete.tasks: self.work.incomplete.tasks[title].done_status = True self.work.incomplete.save_tasks() # Save after finishing task self.work.archive_completed_tasks() # Archive if necessary self.work.completed.save_tasks() # Save changes in completed tasks else: raise KeyError(f"Task with title '{title}' not found in incomplete tasks.")
Methods
def add_task(self, title: str, description: str, category: str, source_code_ref: str, assignee: Optional[str] = None) ‑> None
-
Expand source code
def add_task( self, title: str, description: str, category: str, source_code_ref: str, assignee: Optional[str] = None ) -> None: new_task = Task(title, description, False, category, source_code_ref, assignee) self.work.incomplete.add_task(new_task) self.work.incomplete.save_tasks() # Save after adding task
def finish_task(self, title: str)
-
Expand source code
def finish_task(self, title: str): if title in self.work.incomplete.tasks: self.work.incomplete.tasks[title].done_status = True self.work.incomplete.save_tasks() # Save after finishing task self.work.archive_completed_tasks() # Archive if necessary self.work.completed.save_tasks() # Save changes in completed tasks else: raise KeyError(f"Task with title '{title}' not found in incomplete tasks.")
def query_by_assignee(self, assignee_name: str) ‑> str
-
Expand source code
def query_by_assignee(self, assignee_name: str) -> str: results = self.work.incomplete.query_tasks_by_assignee(assignee_name) return assigned_incomplete_tasks_to_markdown(assignee_name, results)
def query_by_title_keyword(self, keyword: str) ‑> str
-
Expand source code
def query_by_title_keyword(self, keyword: str) -> str: results = self.work.incomplete.query_tasks(keyword) return search_results_to_markdown(keyword, results)