Priority Manager is a Command-Line Interface (CLI) tool for managing tasks with priorities, statuses, tags, and due dates. It's designed to help you organize and prioritize your tasks efficiently with ease of use and flexibility.
- Add Tasks: Create tasks with descriptions, priorities, due dates, tags, and statuses.
- Edit Tasks: Modify existing tasks interactively.
- List Tasks: Display tasks sorted by priority, with optional filtering by status or tags.
- Search and Filter: Search tasks by keywords or filter them by status and tags.
- Export Tasks: Export tasks to various formats, including CSV, JSON, and YAML.
- Archive Tasks: Archive completed tasks to keep your workspace clean.
- Sync with Microsoft To Do: Synchronize tasks with a dedicated list in Microsoft To Do.
- Task Completion: Mark tasks as complete or reopen them if needed.
- Configurable: Customize task directories and settings through a configuration file (
config.yaml).
You can install Priority Manager from PyPI:
pip install priority-managerOr upgrade
pip install --upgrade priority-managerpip install --upgrade pipAfter installation, you can use the priority-manager command. Here are some basic commands:
priority-manager --helppriority-manager add "Finish the report"You'll be prompted to provide additional details such as priority, description, due date, tags, and status.
priority-manager lsList all tasks sorted by priority.
priority-manager ls --status "In Progress"priority-manager editYou’ll be prompted to select a task and edit its details interactively.
priority-manager completeMark a task as completed.
priority-manager archiveMove completed tasks to the archive directory.
Export tasks to CSV, JSON, or YAML:
priority-manager export --format csvAvailable formats: csv, json, yaml.
Synchronize local tasks with your Microsoft To Do list. Set the MS_TODO_TOKEN environment variable with a valid Microsoft Graph token before running:
priority-manager syncThe tool uses a config.yaml file for customizable settings. The default config.yaml looks like this:
directories:
tasks_dir: "tasks"
archive_dir: "archive"
test_tasks_dir: "tests/test_tasks"
test_archive_dir: "tests/test_archive"
statuses:
- "To Do"
- "In Progress"
- "Blocked"
- "Complete"
- "Archived"
export_files:
csv: "tasks_export.csv"
json: "tasks_export.json"
yaml: "tasks_export.yaml"
defaults:
description: "No description"
due_date: "No due date"
tags: ""
status: "To Do"Run tests using pytest:
TEST_MODE=true pytestEnsure all dependencies are installed:
pip install pytestContributions are welcome! Here's how you can help:
- Fork the Repository.
- Create a New Branch:
git checkout -b feature-name. - Make Changes and Commit:
git commit -m "Add new feature". - Push to the Branch:
git push origin feature-name. - Create a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
David Chincharashvili
Email: davidchincharashvili@gmail.com
GitHub: davidtbilisi