Habiticalib 0.4.0rc4__tar.gz → 0.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/workflows/documentation.yml +1 -1
  2. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.vscode/settings.json +2 -1
  3. habiticalib-0.4.1/CONTRIBUTING.md +132 -0
  4. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/PKG-INFO +48 -18
  5. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/README.md +47 -17
  6. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/pyproject.toml +17 -17
  7. habiticalib-0.4.1/renovate.json +22 -0
  8. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/const.py +1 -1
  9. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/typedefs.py +1 -1
  10. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.cruft.json +0 -0
  11. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.editorconfig +0 -0
  12. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/FUNDING.yml +0 -0
  13. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/dependabot.yml +0 -0
  14. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/labels.yml +0 -0
  15. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/release-drafter.yml +0 -0
  16. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/workflows/build.yml +0 -0
  17. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/workflows/draft.yml +0 -0
  18. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.github/workflows/labeler.yml +0 -0
  19. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.gitignore +0 -0
  20. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/.pre-commit-config.yaml +0 -0
  21. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/LICENSE +0 -0
  22. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/docs/index.md +0 -0
  23. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/docs/reference/habiticalib.md +0 -0
  24. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/mkdocs.yml +0 -0
  25. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/__init__.py +0 -0
  26. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/exceptions.py +0 -0
  27. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/ha.py +0 -0
  28. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/helpers.py +0 -0
  29. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/lib.py +0 -0
  30. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/src/habiticalib/py.typed +0 -0
  31. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__init__.py +0 -0
  32. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar.png +0 -0
  33. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[animated_background].png +0 -0
  34. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[default].png +0 -0
  35. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[kickstarter_backer_gear].png +0 -0
  36. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[kickstarter_pet_mount].png +0 -0
  37. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[seafoam].png +0 -0
  38. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[shinySeed].png +0 -0
  39. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[sleeping].png +0 -0
  40. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[snowball].png +0 -0
  41. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[special_0].png +0 -0
  42. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[special_1].png +0 -0
  43. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[spookySparkles].png +0 -0
  44. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[weapon_critical].png +0 -0
  45. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[with_chair].png +0 -0
  46. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar/test_generate_avatar_to_file.png +0 -0
  47. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_avatar.ambr +0 -0
  48. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_group.ambr +0 -0
  49. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_login.ambr +0 -0
  50. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_serialize.ambr +0 -0
  51. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_tasks.ambr +0 -0
  52. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/__snapshots__/test_user.ambr +0 -0
  53. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/conftest.py +0 -0
  54. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/empty_data.json +0 -0
  55. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/login.json +0 -0
  56. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/party.json +0 -0
  57. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/task.json +0 -0
  58. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/task_order.json +0 -0
  59. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/tasks.json +0 -0
  60. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user.json +0 -0
  61. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_anonymized.json +0 -0
  62. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles.json +0 -0
  63. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_animated_background.json +0 -0
  64. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_kickstarter.json +0 -0
  65. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_kickstarter_pets.json +0 -0
  66. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_seafoam.json +0 -0
  67. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_shinySeed.json +0 -0
  68. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_sleeping.json +0 -0
  69. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_snowball.json +0 -0
  70. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_special_0.json +0 -0
  71. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_special_1.json +0 -0
  72. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_spookySparkles.json +0 -0
  73. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_weapon_critical.json +0 -0
  74. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/fixtures/user_styles_with_chair.json +0 -0
  75. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/test_avatar.py +0 -0
  76. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/test_group.py +0 -0
  77. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/test_login.py +0 -0
  78. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/test_serialize.py +0 -0
  79. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/test_tasks.py +0 -0
  80. {habiticalib-0.4.0rc4 → habiticalib-0.4.1}/tests/test_user.py +0 -0
@@ -31,7 +31,7 @@ jobs:
31
31
  - name: Set up Python
32
32
  uses: actions/setup-python@v5
33
33
  with:
34
- python-version: '3.12'
34
+ python-version: '3.13'
35
35
  - name: Install dependencies
36
36
  run: |
37
37
  python -m pip install --upgrade pip
@@ -18,5 +18,6 @@
18
18
  },
19
19
  "editor.defaultFormatter": "charliermarsh.ruff"
20
20
  },
21
- "pylint.enabled": false
21
+ "pylint.enabled": false,
22
+ "markdown.validate.enabled": true
22
23
  }
@@ -0,0 +1,132 @@
1
+ # Contributing
2
+
3
+ Contributions are welcome, and they are greatly appreciated! Every
4
+ little bit helps, and credit will always be given.
5
+
6
+ You can contribute in many ways:
7
+
8
+ ## Types of Contributions
9
+
10
+ ### Report Bugs
11
+
12
+ Report bugs at <https://github.com/tr4nt0r/habiticalib/issues>.
13
+
14
+ If you are reporting a bug, please include:
15
+
16
+ - Your operating system name and version.
17
+ - Any details about your local setup that might be helpful in
18
+ troubleshooting.
19
+ - Detailed steps to reproduce the bug.
20
+
21
+ ### Fix Bugs
22
+
23
+ Look through the GitHub issues for bugs. Anything tagged with "bug"
24
+ and "help wanted" is open to whoever wants to implement it.
25
+
26
+ ### Implement Features
27
+
28
+ Look through the GitHub issues for features. Anything tagged with
29
+ "enhancement" and "help wanted" is open to whoever wants to
30
+ implement it.
31
+
32
+ ### Write Documentation
33
+
34
+ **habiticalib** could always use more documentation, whether as part of the
35
+ official **habiticalib** docs, in docstrings, or even on the web in blog
36
+ posts, articles, and such.
37
+
38
+ ### Submit Feedback
39
+
40
+ The best way to send feedback is to file an issue at
41
+ <https://github.com/tr4nt0r/habiticalib/issues>.
42
+
43
+ If you are proposing a feature:
44
+
45
+ - Explain in detail how it would work.
46
+ - Keep the scope as narrow as possible, to make it easier to
47
+ implement.
48
+ - Remember that this is a volunteer-driven project, and that
49
+ contributions are welcome :)
50
+
51
+ ## Development
52
+
53
+ Ready to contribute? Here's how to set up `habiticalib` for
54
+ local development.
55
+
56
+ ### Setup Git
57
+
58
+ [Fork](https://github.com/tr4nt0r/habiticalib/fork) the `habiticalib` repo on GitHub.
59
+
60
+ Clone your fork locally:
61
+
62
+ ```bash
63
+ git clone git@github.com:yourusername/habiticalib.git
64
+ ```
65
+
66
+ Create a branch for local development:
67
+
68
+ ``` bash
69
+ git checkout -b name-of-your-bugfix-or-feature
70
+ ```
71
+
72
+ Now you can make your changes locally.
73
+
74
+ ### Setup environment
75
+
76
+ We use [Hatch](https://hatch.pypa.io/latest/install/) to manage the development environment and production build. Ensure it's installed on your system.
77
+
78
+ ### Run unit tests
79
+
80
+ You can run all the tests with:
81
+
82
+ ```bash
83
+ hatch run test
84
+ ```
85
+
86
+ ### Format the code
87
+
88
+ Execute the following command to apply linting and check typing:
89
+
90
+ ```bash
91
+ hatch run lint
92
+ ```
93
+
94
+ ### Publish a new version
95
+
96
+ You can bump the version, create a commit and associated tag with one command:
97
+
98
+ ```bash
99
+ hatch version patch
100
+ ```
101
+
102
+ ```bash
103
+ hatch version minor
104
+ ```
105
+
106
+ ```bash
107
+ hatch version major
108
+ ```
109
+
110
+ Your default Git text editor will open so you can add information about the release.
111
+
112
+ When you push the tag on GitHub, the workflow will automatically publish it on PyPi and a GitHub release will be created as draft.
113
+
114
+ ## Pull Request Guidelines
115
+
116
+ Before you submit a pull request, check that it meets these guidelines:
117
+
118
+ 1. The pull request should include tests.
119
+ 2. If the pull request adds functionality, the docs should be updated.
120
+ Put your new functionality into a function with a docstring, and add
121
+ the feature to the list in README.md.
122
+ 3. The pull request should work for Python 3.11 and 3.12. Check
123
+ <https://github.com/tr4nt0r/habiticalib/actions/workflows/build.yaml>
124
+ and make sure that the tests pass for all supported Python versions.
125
+
126
+ ## Serve the documentation
127
+
128
+ You can serve the Mkdocs documentation with:
129
+
130
+ ```bash
131
+ hatch run docs-serve
132
+ ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Habiticalib
3
- Version: 0.4.0rc4
3
+ Version: 0.4.1
4
4
  Summary: Asynchronous Python client library for the Habitica API
5
5
  Project-URL: Documentation, https://tr4nt0r.github.io/habiticalib/
6
6
  Project-URL: Source, https://github.com/tr4nt0r/habiticalib
@@ -19,34 +19,47 @@ Description-Content-Type: text/markdown
19
19
 
20
20
  # Habiticalib
21
21
 
22
- <p align="center">
23
- <em>Modern asynchronous Python client library for the Habitica API</em>
24
- </p>
22
+ Modern asynchronous Python client library for the Habitica API
25
23
 
26
24
  [![build](https://github.com/tr4nt0r/habiticalib/workflows/Build/badge.svg)](https://github.com/tr4nt0r/habiticalib/actions)
27
25
  [![codecov](https://codecov.io/gh/tr4nt0r/habiticalib/graph/badge.svg?token=iEsZ1Ktj7d)](https://codecov.io/gh/tr4nt0r/habiticalib)
28
26
  [![PyPI version](https://badge.fury.io/py/habiticalib.svg)](https://badge.fury.io/py/habiticalib)
27
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/habiticalib?style=flat&label=pypi%20downloads)
28
+ [!["Buy Me A Coffee"](https://img.shields.io/badge/-buy_me_a%C2%A0coffee-gray?logo=buy-me-a-coffee)](https://www.buymeacoffee.com/tr4nt0r)
29
+ [![GitHub Sponsor](https://img.shields.io/badge/GitHub-Sponsor-blue?logo=github)](https://github.com/sponsors/tr4nt0r)
30
+
31
+ ---
29
32
 
30
33
  **Habiticalib** is a Python library for interacting with the [Habitica API](https://habitica.com). 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.
31
34
 
32
35
  ## Key features
33
36
 
34
- - **Asynchronous**: The library is fully asynchronous, allowing non-blocking API calls.
35
- - **Fully typed with Dataclasses**: The library is fully typed using Python `dataclasses`. It handles serialization with `mashumaro` and `orjson` for efficient conversion between Habitica API JSON data and Python objects.
36
- - **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.
37
- **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.
38
- - **Task management**: Support for creating, updating, and retrieving Habitica tasks (to-dos, dailies, habits, rewards) is provided.
39
- - **Task status updates**: The library allows updates for task statuses, habit scoring, and daily completion.
40
- - **Tags**: Habiticalib supports the creation, updating and deletion of tags.
41
- - **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)
37
+ * **Asynchronous**: The library is fully asynchronous, allowing non-blocking API calls.
38
+ * **Fully typed with Dataclasses**: The library is fully typed using Python `dataclasses`. It handles serialization with `mashumaro` and `orjson` for efficient conversion between Habitica API JSON data and Python objects.
39
+ * **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.
40
+ * **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.
41
+ * **Task management**: Support for creating, updating, and retrieving Habitica tasks (to-dos, dailies, habits, rewards) is provided.
42
+ * **Task status updates**: The library allows updates for task statuses, habit scoring, and daily completion.
43
+ * **Tags**: Habiticalib supports the creation, updating and deletion of tags.
44
+ * **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)
45
+
46
+ ---
47
+
48
+ ## 📖 Documentation
49
+
50
+ * **Full Documentation**: [https://tr4nt0r.github.io/habiticalib](https://tr4nt0r.github.io/habiticalib)
51
+ * **Source Code**: [https://github.com/tr4nt0r/habiticalib](https://github.com/tr4nt0r/habiticalib)
42
52
 
43
- ## Installation
53
+ ---
54
+
55
+ ## 📦 Installation
44
56
 
45
57
  ```bash
46
58
  pip install habiticalib
47
59
  ```
48
60
 
49
- ## Getting started
61
+ ## 🚀 Getting started
62
+
50
63
  Here’s an example to demonstrate basic usage:
51
64
 
52
65
  ```python
@@ -89,10 +102,27 @@ async def main():
89
102
  asyncio.run(main())
90
103
  ```
91
104
 
92
- ## Documentation
105
+ ---
106
+
107
+ ## 🛠️ Contributing
108
+
109
+ Contributions are welcome! To contribute:
110
+
111
+ 1. Fork the repository.
112
+ 2. Create a new branch.
113
+ 3. Make your changes and commit them.
114
+ 4. Submit a pull request.
115
+
116
+ Make sure to follow the [contributing guidelines](CONTRIBUTING.md).
117
+
118
+ ---
119
+
120
+ ## 📜 License
121
+
122
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
93
123
 
94
- For full documentation and detailed usage examples, please visit the [Habiticalib documentation](https://tr4nt0r.github.io/habiticalib/).
124
+ ---
95
125
 
96
- ## License
126
+ ## ❤️ Support
97
127
 
98
- This project is licensed under the terms of the MIT license.
128
+ If you find this project useful, consider [buying me a coffee ☕](https://www.buymeacoffee.com/tr4nt0r) or [sponsoring me on GitHub](https://github.com/sponsors/tr4nt0r)!
@@ -1,33 +1,46 @@
1
1
  # Habiticalib
2
2
 
3
- <p align="center">
4
- <em>Modern asynchronous Python client library for the Habitica API</em>
5
- </p>
3
+ Modern asynchronous Python client library for the Habitica API
6
4
 
7
5
  [![build](https://github.com/tr4nt0r/habiticalib/workflows/Build/badge.svg)](https://github.com/tr4nt0r/habiticalib/actions)
8
6
  [![codecov](https://codecov.io/gh/tr4nt0r/habiticalib/graph/badge.svg?token=iEsZ1Ktj7d)](https://codecov.io/gh/tr4nt0r/habiticalib)
9
7
  [![PyPI version](https://badge.fury.io/py/habiticalib.svg)](https://badge.fury.io/py/habiticalib)
8
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/habiticalib?style=flat&label=pypi%20downloads)
9
+ [!["Buy Me A Coffee"](https://img.shields.io/badge/-buy_me_a%C2%A0coffee-gray?logo=buy-me-a-coffee)](https://www.buymeacoffee.com/tr4nt0r)
10
+ [![GitHub Sponsor](https://img.shields.io/badge/GitHub-Sponsor-blue?logo=github)](https://github.com/sponsors/tr4nt0r)
11
+
12
+ ---
10
13
 
11
14
  **Habiticalib** is a Python library for interacting with the [Habitica API](https://habitica.com). 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.
12
15
 
13
16
  ## Key features
14
17
 
15
- - **Asynchronous**: The library is fully asynchronous, allowing non-blocking API calls.
16
- - **Fully typed with Dataclasses**: The library is fully typed using Python `dataclasses`. It handles serialization with `mashumaro` and `orjson` for efficient conversion between Habitica API JSON data and Python objects.
17
- - **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.
18
- **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.
19
- - **Task management**: Support for creating, updating, and retrieving Habitica tasks (to-dos, dailies, habits, rewards) is provided.
20
- - **Task status updates**: The library allows updates for task statuses, habit scoring, and daily completion.
21
- - **Tags**: Habiticalib supports the creation, updating and deletion of tags.
22
- - **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)
18
+ * **Asynchronous**: The library is fully asynchronous, allowing non-blocking API calls.
19
+ * **Fully typed with Dataclasses**: The library is fully typed using Python `dataclasses`. It handles serialization with `mashumaro` and `orjson` for efficient conversion between Habitica API JSON data and Python objects.
20
+ * **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.
21
+ * **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.
22
+ * **Task management**: Support for creating, updating, and retrieving Habitica tasks (to-dos, dailies, habits, rewards) is provided.
23
+ * **Task status updates**: The library allows updates for task statuses, habit scoring, and daily completion.
24
+ * **Tags**: Habiticalib supports the creation, updating and deletion of tags.
25
+ * **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)
26
+
27
+ ---
28
+
29
+ ## 📖 Documentation
30
+
31
+ * **Full Documentation**: [https://tr4nt0r.github.io/habiticalib](https://tr4nt0r.github.io/habiticalib)
32
+ * **Source Code**: [https://github.com/tr4nt0r/habiticalib](https://github.com/tr4nt0r/habiticalib)
23
33
 
24
- ## Installation
34
+ ---
35
+
36
+ ## 📦 Installation
25
37
 
26
38
  ```bash
27
39
  pip install habiticalib
28
40
  ```
29
41
 
30
- ## Getting started
42
+ ## 🚀 Getting started
43
+
31
44
  Here’s an example to demonstrate basic usage:
32
45
 
33
46
  ```python
@@ -70,10 +83,27 @@ async def main():
70
83
  asyncio.run(main())
71
84
  ```
72
85
 
73
- ## Documentation
86
+ ---
87
+
88
+ ## 🛠️ Contributing
89
+
90
+ Contributions are welcome! To contribute:
91
+
92
+ 1. Fork the repository.
93
+ 2. Create a new branch.
94
+ 3. Make your changes and commit them.
95
+ 4. Submit a pull request.
96
+
97
+ Make sure to follow the [contributing guidelines](CONTRIBUTING.md).
98
+
99
+ ---
100
+
101
+ ## 📜 License
102
+
103
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
74
104
 
75
- For full documentation and detailed usage examples, please visit the [Habiticalib documentation](https://tr4nt0r.github.io/habiticalib/).
105
+ ---
76
106
 
77
- ## License
107
+ ## ❤️ Support
78
108
 
79
- This project is licensed under the terms of the MIT license.
109
+ If you find this project useful, consider [buying me a coffee ☕](https://www.buymeacoffee.com/tr4nt0r) or [sponsoring me on GitHub](https://github.com/sponsors/tr4nt0r)!
@@ -4,7 +4,7 @@ line-length = 88
4
4
 
5
5
  [tool.ruff.lint]
6
6
  select = ["ALL"]
7
- ignore = ["TRY003", "D202", "D213", "D417", "ANN003", "ANN401", "E501", "COM812", "ISC001"]
7
+ ignore = ["TRY003", "D202", "D213", "D417", "ANN003", "ANN401", "E501", "COM812", "ISC001", "PLW1641"]
8
8
 
9
9
  [tool.ruff.lint.isort]
10
10
  force-sort-within-sections = true
@@ -75,29 +75,29 @@ path = "src/habiticalib/const.py"
75
75
  [tool.hatch.envs.default]
76
76
  python = "3.12"
77
77
  dependencies = [
78
- "aiohttp==3.11.12",
79
- "mashumaro==3.15",
80
- "orjson==3.10.15",
81
- "Pillow==11.1.0",
82
- "mypy==1.15.0",
83
- "ruff==0.9.6",
84
- "pytest==8.3.4",
85
- "pytest-cov==6.0.0",
86
- "mkdocs-material==9.6.3",
87
- "mkdocstrings[python]==0.28.0",
88
- "pytest-asyncio==0.25.3",
78
+ "aiohttp==3.12.14",
79
+ "mashumaro==3.16",
80
+ "orjson==3.11.1",
81
+ "Pillow==11.3.0",
82
+ "mypy==1.17.0",
83
+ "ruff==0.12.5",
84
+ "pytest==8.4.1",
85
+ "pytest-cov==6.2.1",
86
+ "mkdocs-material==9.6.16",
87
+ "mkdocstrings[python]==0.30.0",
88
+ "pytest-asyncio==1.1.0",
89
89
  "aioresponses==0.7.8",
90
- "pre-commit==4.1.0",
91
- "syrupy==4.8.1"
90
+ "pre-commit==4.2.0",
91
+ "syrupy==4.9.1"
92
92
  ]
93
93
 
94
94
  [tool.hatch.envs.hatch-test]
95
95
  parallel = true
96
96
  extra-dependencies = [
97
97
  "aioresponses==0.7.8",
98
- "pytest-asyncio==0.25.3",
99
- "syrupy==4.8.1",
100
- "pytest-cov==6.0.0",
98
+ "pytest-asyncio==1.1.0",
99
+ "syrupy==4.9.1",
100
+ "pytest-cov==6.2.1",
101
101
  ]
102
102
  extra-args = ["--cov-report=xml", "-vv"]
103
103
  type = "virtual"
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:recommended"
5
+ ],
6
+ "rebaseWhen": "behind-base-branch",
7
+ "labels": [
8
+ ":recycle: dependencies"
9
+ ],
10
+ "commitMessageTopic": "{{depName}}",
11
+ "commitMessageAction": "Bump",
12
+ "packageRules": [
13
+ {
14
+ "matchManagers": [
15
+ "pep621"
16
+ ],
17
+ "addLabels": [
18
+ ":snake: python"
19
+ ]
20
+ }
21
+ ]
22
+ }
@@ -1,6 +1,6 @@
1
1
  """Constants for Habiticalib."""
2
2
 
3
- __version__ = "0.4.0rc4"
3
+ __version__ = "0.4.1"
4
4
 
5
5
  DEFAULT_URL = "https://habitica.com/"
6
6
  ASSETS_URL = "https://habitica-assets.s3.amazonaws.com/mobileApp/images/"
@@ -456,7 +456,7 @@ class FlagsUser(BaseModel):
456
456
  class EntryHistory(BaseModel):
457
457
  """History entry data."""
458
458
 
459
- date: datetime = field(
459
+ date: datetime | None = field(
460
460
  metadata=field_options(
461
461
  deserialize=serialize_datetime,
462
462
  )
File without changes
File without changes
File without changes
File without changes