Asynchronous Python client library for the Habitica API
Project description
Habiticalib
Modern asynchronous Python client library for the Habitica API
Habiticalib is a Python library for interacting with the Habitica API. It provides an organized, typed interface to work with Habitica’s features, including tasks, user data, and avatars. The goal of this library is to simplify integration with Habitica.
Key features
- Asynchronous: The library is fully asynchronous, allowing non-blocking API calls.
- Fully typed with Dataclasses: The library is fully typed using Python
dataclasses. It handles serialization withmashumaroandorjsonfor efficient conversion between Habitica API JSON data and Python objects. - Dynamic avatar image generation: Habiticalib can fetch all necessary assets (like equipped items, pets, and mounts) and combine them into a single avatar image. This image can be saved to disk or returned as a byte buffer for further processing.
- Fetch user data: Retrieve and manage user data such as stats, preferences, and items. User data is structured with dataclasses to make it easy to work with.
- Task management: Support for creating, updating, and retrieving Habitica tasks (to-dos, dailies, habits, rewards) is provided.
- Task status updates: The library allows updates for task statuses, habit scoring, and daily completion.
- Tags: Habiticalib supports the creation, updating and deletion of tags.
- Stat allocation, class cystem and sleep: The library offers methods for stat point allocation and switching between Habitica classes. It also provides the ability to disable the class system and pausing damage(resting in the inn)
📖 Documentation
- Full Documentation: https://tr4nt0r.github.io/habiticalib
- Source Code: https://github.com/tr4nt0r/habiticalib
📦 Installation
pip install habiticalib
🚀 Getting started
Here’s an example to demonstrate basic usage:
import asyncio
from aiohttp import ClientSession
from habiticalib import Habitica, TaskType
async def main():
async with ClientSession() as session:
habitica = Habitica(session)
# Login to Habitica
habitica.login(username="your_username", password="your_password")
# Fetch user data
user_data = await habitica.user()
print(f"Your current health: {user_data.stats.hp}")
# Fetch all tasks (to-dos, dailies, habits, and rewards)
tasks = await habitica.get_tasks()
print("All tasks:")
for task in tasks:
print(f"- {task.text} (type: {task.type})")
# Fetch only to-dos
todos = await habitica.get_tasks(task_type=TaskType.TODO)
print("\nTo-Do tasks:")
for todo in todos:
print(f"- {todo.text} (due: {todo.date})")
# Fetch only dailies
dailies = await habitica.tasks(task_type=TaskType.DAILY)
print("\nDailies:")
for daily in dailies:
print(f"- {daily.text}")
asyncio.run(main())
🛠️ Contributing
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch.
- Make your changes and commit them.
- Submit a pull request.
Make sure to follow the contributing guidelines.
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
❤️ Support
If you find this project useful, consider buying me a coffee ☕ or sponsoring me on GitHub!
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 habiticalib-0.4.5.tar.gz.
File metadata
- Download URL: habiticalib-0.4.5.tar.gz
- Upload date:
- Size: 125.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
207e6629ccdb1882d9d0b3641968b206a502f5b26553bea756f051655621ae5b
|
|
| MD5 |
3f00d31de02b6ad1ed0131ec5388a366
|
|
| BLAKE2b-256 |
bf8357fd92a46442ca35c3891898c6211857d68980691ccba7c0bcb069bfaaa8
|
File details
Details for the file habiticalib-0.4.5-py3-none-any.whl.
File metadata
- Download URL: habiticalib-0.4.5-py3-none-any.whl
- Upload date:
- Size: 43.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c7a3dded84709c0dd4545198abcc746ec240940cd3b532cf0e09d11a0f86eef
|
|
| MD5 |
c61b66277ad580521d95b00adf056951
|
|
| BLAKE2b-256 |
403def54f9cd9fcf28de4cd147d1c46bbdc075015efda32efc89b76e1c424f49
|