A simple task management package
Project description
ZephyrTask
A simple, lightweight Python package for managing tasks with support for prioritization, reminders, and rewards. ZephyrTask provides a clean API for organizing your tasks, reminding you of upcoming deadlines, and rewarding your accomplishments.
Features
- Task Management: Add, update, and remove tasks with customizable time and value parameters
- Task Listing: List tasks with various sorting options (upcoming, by priority, etc.)
- Task Completion: Mark tasks as completed and track your progress
- Reminder System: Get email reminders for upcoming tasks to stay on track
- Reward System: Receive motivational rewards when completing tasks of sufficient value
Installation
From PyPI (Recommended)
pip install ZephyrTask
From Source
# Clone the repository
git clone https://github.com/software-students-spring2025/3-python-package-super-package.git
cd ZephyrTask
# Install in development mode
pip install -e .
Usage
Core Task Management
import datetime
from ZephyrTask.tasks import add_task, update_task, remove_task
# Add a task with a string time (ISO format)
add_task("2023-06-15T09:00:00", "Morning meeting", 5)
# Add a task with a datetime object
tomorrow = datetime.datetime.now() + datetime.timedelta(days=1)
add_task(tomorrow, "Lunch with team", 3)
# Update a task's value
update_task("2023-06-15T09:00:00", "Morning meeting", 10)
# Remove a task
remove_task("2023-06-15T09:00:00", "Morning meeting")
# Mark a task as completed
complete("Morning meeting")
Task Listing
from ZephyrTask.tasks import list_tasks
# List all tasks sorted by time
tasks = list_tasks(sort_by="time")
# List all tasks sorted by value (highest first)
tasks = list_tasks(sort_by="value")
Reminder System
from ZephyrTask.tasks import reminder
reminder(to_email=target_email, tasks_file=temp_tasks_file, deadline=48)
# Configure email reminders
reminder( tasks_file: Optional[str] = None,
to_email: str = "",
deadline: int = 24, # searching for tasks remained to be done within given hours, default set is 24
from_email: str = "13601583609@163.com", #our default email provided for user
smtp_server: str = "smtp.163.com",
smtp_port: int = 465,
login: str = "13601583609@163.com",
password: str = "password for default email given",
additional_text: str = "",
rank: str = "time" ) #2 options for ranking, time & value
Example of reminder mail
Reward System
from ZephyrTask.tasks import reward
# Configure motivational rewards
reward_result = reward(
threshold_value=reward_threshold,
tasks_file=temp_tasks_file,
to_email=target_email,
reward_message="You've made great progress! Keep going!",
include_joke=True)
Example of reward mail
For Contributors
Development Setup
# Clone the repository
git clone https://github.com/software-students-spring2025/3-python-package-super-package.git
cd ZephyrTask
# Create and activate a virtual environment
pipenv --python 3.9
pipenv shell
# Install package in development mode
pipenv install -e .
# Install development dependencies
pipenv install pytest build twine
# Run tests
pytest
Development Workflow
-
Create a feature branch for your work
-
Implement your changes and add tests
-
Make sure tests pass
python -m pytest
-
Create a pull request to the main branch
Project Structure
3-python-package-super-package/ # Root project directory
├── ZephyrTask/ # Main package source code
│ ├── __init__.py # Package initialization and exports
│ ├── tasks.py # Core task management; Task listing and completion tracking; Email reminder system; Motivational reward system
│
├── tests/ # Test directory
│ ├── __init__.py # Test package initialization
│ ├── test_tasks.py # Tests for tasks module
│
├── examples/ # Example scripts
│ ├── example_usage.py # Basic package usage examples
│
│-- docs/ # Documentation files
│ ├── mail.jpg # Example of reminder mail
│ └── reward.jpg # Example of reward mail
│
├── .github/ # GitHub specific files
│ └── workflows/ # GitHub Actions workflows
│ ├── python-package.yml # CI workflow for testing and building
│ └── event-logger.yml # CI workflow for logging events
├── pyproject.toml # Project configuration (PEP 517/518)
├── Pipfile # Pipenv dependency management
├── Pipfile.lock # Locked dependencies (ensure reproducibility)
├── README.md # Project documentation
├── LICENSE # License information
└── .gitignore # Git ignore patterns
Key Modules
-
tasks.py:
-
Core module for adding, updating, and removing tasks. Tasks are stored as JSON with timestamps, descriptions, values, and completion status.
-
Module for listing tasks with various sorting and filtering options, and for marking tasks as completed.
-
Module for setting up and sending email reminders for upcoming tasks.
-
Module for providing motivational rewards when users complete tasks of sufficient value.
Data Storage
By default, tasks are stored in a JSON file at ~/.ZephyrTask_data.json. Each task has the following structure:
{
"time": "2023-06-15T09:00:00",
"event": "Morning meeting",
"value": 5,
"completed": false
}
You can specify a custom file path when using the API functions.
Contributors
- Xingjian - Core Task Management
- Lan - Task Listing and Completion
- Yuquan - Email Reminders
- Yilei - Reward System
License
This project is licensed under the MIT License - see the LICENSE file for details.
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 zephyrtask-0.1.4.tar.gz.
File metadata
- Download URL: zephyrtask-0.1.4.tar.gz
- Upload date:
- Size: 46.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfba5d02dd7b12fc859d6720225585a339c7ee0de86d82ee0bf582441cbed0f9
|
|
| MD5 |
1b4ba493f4bf04397d60f80a1f3938d6
|
|
| BLAKE2b-256 |
ca3b6ddf7b5d0b8202610643bcd75169dba39fc095ccd1854acbca86e55c3527
|
File details
Details for the file zephyrtask-0.1.4-py3-none-any.whl.
File metadata
- Download URL: zephyrtask-0.1.4-py3-none-any.whl
- Upload date:
- Size: 33.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1466ef6960bafe6033e9900bddcd949ac8c4ec190ec2b038f130c92c092767fe
|
|
| MD5 |
f2775cd40e75b7aeac0d72b4fc7445ab
|
|
| BLAKE2b-256 |
4197c31165175498e313a098e01c0b2f2e8e44cff83a3b3d7600952252c1e648
|