A CLI tool for managing tasks with priorities and statuses.
Project description
Priority Manager CLI
A command-line tool for managing tasks with features like adding, editing, listing, searching, filtering, exporting to CSV, and archiving tasks. Designed for compatibility with Obsidian.md by storing tasks in Markdown files.
Project Structure
priority_manager/
├── main.py
├── commands/
│ ├── __init__.py
│ ├── add.py
│ ├── edit.py
│ ├── list_tasks.py
│ ├── export_csv.py
│ └── search_filter.py
└── utils/
├── __init__.py
├── helpers.py
└── logger.py
Features
- Add Task: Add a new task with a calculated priority, description, and due date.
- Edit Task: Edit task details (name, description, due date, and priority).
- List Tasks: List tasks sorted by priority score.
- Search Tasks: Search tasks by keyword.
- Filter Tasks: Filter tasks by a specified priority range.
- Export to CSV: Export all tasks to a CSV file.
- Archive Task: Move tasks to an archive folder instead of deleting them.
- Logging: All actions are logged in
log.txt.
Installation
-
Clone the Repository:
git clone https://github.com/DavidTbilisi/PriorityManager.git cd priority_manager
-
Set Up a Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows: venv\\Scripts\\activate
-
Install Dependencies:
pip install -r requirements.txt
Usage
Activate the virtual environment if it's not already active:
source venv/bin/activate # On Windows: venv\\Scripts\\activate
Run the main.py script followed by the desired command.
1. Add a Task
python main.py add "Task Name"
You'll be prompted to enter:
- Urgency (1-5)
- Importance (1-5)
- Effort (1-5)
- Description
- Due Date (YYYY-MM-DD)
2. Edit a Task
python main.py edit
Select the task you want to edit and update the details as prompted.
3. List Tasks
python main.py ls
Lists all tasks sorted by their priority score.
4. Search Tasks by Keyword
python main.py search <keyword>
Example:
python main.py search urgent
5. Filter Tasks by Priority Range
python main.py filter-tasks --min-priority 10 --max-priority 20
6. Export Tasks to CSV
python main.py export-csv
Exports all tasks to tasks_export.csv.
7. Archive a Task
python main.py archive
Moves the selected task to the archive folder.
Directory Structure
- Tasks are stored in the
tasksdirectory as Markdown (.md) files. - Archived Tasks are moved to the
archivedirectory. - Logs are saved in
log.txt.
Example Task File Format
# Task Title
**Description:** This is a sample task description.
**Priority Score:** 15
**Due Date:** 2024-12-31
**Date Added:** 2024-06-01T14:30:00
**Status:** Incomplete
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file priority_manager-0.1.1.tar.gz.
File metadata
- Download URL: priority_manager-0.1.1.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a683c07d71dcd1d6754b2d12eb60fe1d3e5aa7746594d73cc97c3f8a73fa109b
|
|
| MD5 |
c98806243b2a80f66f97e16eadeafaf6
|
|
| BLAKE2b-256 |
cf35ea7006eabea85dccf227a4ec8fa5adeb157c6d4c1c114ca0d47850748998
|
File details
Details for the file priority_manager-0.1.1-py3-none-any.whl.
File metadata
- Download URL: priority_manager-0.1.1-py3-none-any.whl
- Upload date:
- Size: 2.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91ff77c99831776403c498066bbb73558eab341ce14b54cf3ac994014499dc2f
|
|
| MD5 |
ac33cc4c5331b68660588e5edef4c461
|
|
| BLAKE2b-256 |
70f1cba586c1190b6ada167824dcdc12a27e6c71a9cf06461b280e47dc15b223
|