Habiticalib 0.3.7rc1__py3-none-any.whl → 0.4.0rc0__py3-none-any.whl
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.
- habiticalib/__init__.py +34 -6
- habiticalib/const.py +1 -1
- habiticalib/lib.py +110 -0
- habiticalib/typedefs.py +171 -23
- {habiticalib-0.3.7rc1.dist-info → habiticalib-0.4.0rc0.dist-info}/METADATA +1 -1
- habiticalib-0.4.0rc0.dist-info/RECORD +12 -0
- habiticalib-0.3.7rc1.dist-info/RECORD +0 -12
- {habiticalib-0.3.7rc1.dist-info → habiticalib-0.4.0rc0.dist-info}/WHEEL +0 -0
- {habiticalib-0.3.7rc1.dist-info → habiticalib-0.4.0rc0.dist-info}/licenses/LICENSE +0 -0
habiticalib/__init__.py
CHANGED
@@ -46,11 +46,17 @@ from .typedefs import (
|
|
46
46
|
GearItems,
|
47
47
|
GearItemsAvatar,
|
48
48
|
GearType,
|
49
|
+
GlobalActivity,
|
50
|
+
GlobalActivityWebhook,
|
51
|
+
GroupChatReceived,
|
52
|
+
GroupChatReceivedOptions,
|
53
|
+
GroupChatReceivedWebhook,
|
49
54
|
GroupTask,
|
50
55
|
HabiticaCastSkillResponse,
|
51
56
|
HabiticaClass,
|
52
57
|
HabiticaClassSystemResponse,
|
53
58
|
HabiticaContentResponse,
|
59
|
+
HabiticaDeleteWebhookResponse,
|
54
60
|
HabiticaErrorResponse,
|
55
61
|
HabiticaGroupMembersResponse,
|
56
62
|
HabiticaLoginResponse,
|
@@ -67,6 +73,7 @@ from .typedefs import (
|
|
67
73
|
HabiticaUserAnonymizedResponse,
|
68
74
|
HabiticaUserExport,
|
69
75
|
HabiticaUserResponse,
|
76
|
+
HabiticaWebhookResponse,
|
70
77
|
HairPreferences,
|
71
78
|
HatchingPotionEntry,
|
72
79
|
HistoryUser,
|
@@ -98,6 +105,9 @@ from .typedefs import (
|
|
98
105
|
PurchasedUser,
|
99
106
|
PushDevicesUser,
|
100
107
|
PushNotificationsPreferences,
|
108
|
+
QuestActivity,
|
109
|
+
QuestActivityOptions,
|
110
|
+
QuestActivityWebhook,
|
101
111
|
QuestBoss,
|
102
112
|
QuestBossRage,
|
103
113
|
QuestCollect,
|
@@ -123,6 +133,9 @@ from .typedefs import (
|
|
123
133
|
SuppressModalsPreferences,
|
124
134
|
TagsUser,
|
125
135
|
Task,
|
136
|
+
TaskActivity,
|
137
|
+
TaskActivityOptions,
|
138
|
+
TaskActivityWebhook,
|
126
139
|
TaskData,
|
127
140
|
TaskFilter,
|
128
141
|
TaskPriority,
|
@@ -135,12 +148,13 @@ from .typedefs import (
|
|
135
148
|
TrainingStats,
|
136
149
|
TutorialFlags,
|
137
150
|
UltimateGearSetsAchievments,
|
151
|
+
UserActivity,
|
152
|
+
UserActivityOptions,
|
153
|
+
UserActivityWebhook,
|
138
154
|
UserAnonymizedData,
|
139
155
|
UserData,
|
140
156
|
UserTasks,
|
141
|
-
|
142
|
-
WebhooksType,
|
143
|
-
WebhooksUser,
|
157
|
+
WebhookType,
|
144
158
|
)
|
145
159
|
|
146
160
|
__all__ = [
|
@@ -185,6 +199,11 @@ __all__ = [
|
|
185
199
|
"GearItems",
|
186
200
|
"GearItemsAvatar",
|
187
201
|
"GearType",
|
202
|
+
"GlobalActivity",
|
203
|
+
"GlobalActivityWebhook",
|
204
|
+
"GroupChatReceived",
|
205
|
+
"GroupChatReceivedOptions",
|
206
|
+
"GroupChatReceivedWebhook",
|
188
207
|
"GroupTask",
|
189
208
|
"Habitica",
|
190
209
|
"HabiticaCastSkillResponse",
|
@@ -194,6 +213,7 @@ __all__ = [
|
|
194
213
|
"HabiticaClassSystemResponse",
|
195
214
|
"HabiticaContentResponse",
|
196
215
|
"HabiticaContentResponse",
|
216
|
+
"HabiticaDeleteWebhookResponse",
|
197
217
|
"HabiticaErrorResponse",
|
198
218
|
"HabiticaErrorResponse",
|
199
219
|
"HabiticaException",
|
@@ -227,6 +247,7 @@ __all__ = [
|
|
227
247
|
"HabiticaUserExport",
|
228
248
|
"HabiticaUserResponse",
|
229
249
|
"HabiticaUserResponse",
|
250
|
+
"HabiticaWebhookResponse",
|
230
251
|
"HairPreferences",
|
231
252
|
"HatchingPotionEntry",
|
232
253
|
"HistoryUser",
|
@@ -261,6 +282,9 @@ __all__ = [
|
|
261
282
|
"PurchasedUser",
|
262
283
|
"PushDevicesUser",
|
263
284
|
"PushNotificationsPreferences",
|
285
|
+
"QuestActivity",
|
286
|
+
"QuestActivityOptions",
|
287
|
+
"QuestActivityWebhook",
|
264
288
|
"QuestBoss",
|
265
289
|
"QuestBossRage",
|
266
290
|
"QuestCollect",
|
@@ -291,6 +315,9 @@ __all__ = [
|
|
291
315
|
"TagsUser",
|
292
316
|
"TagsUser",
|
293
317
|
"Task",
|
318
|
+
"TaskActivity",
|
319
|
+
"TaskActivityOptions",
|
320
|
+
"TaskActivityWebhook",
|
294
321
|
"TaskData",
|
295
322
|
"TaskData",
|
296
323
|
"TaskFilter",
|
@@ -305,15 +332,16 @@ __all__ = [
|
|
305
332
|
"TrainingStats",
|
306
333
|
"TutorialFlags",
|
307
334
|
"UltimateGearSetsAchievments",
|
335
|
+
"UserActivity",
|
336
|
+
"UserActivityOptions",
|
337
|
+
"UserActivityWebhook",
|
308
338
|
"UserAnonymizedData",
|
309
339
|
"UserAnonymizedData",
|
310
340
|
"UserData",
|
311
341
|
"UserData",
|
312
342
|
"UserTasks",
|
313
343
|
"UserTasks",
|
314
|
-
"
|
315
|
-
"WebhooksType",
|
316
|
-
"WebhooksUser",
|
344
|
+
"WebhookType",
|
317
345
|
"__version__",
|
318
346
|
"deserialize_task",
|
319
347
|
"extract_avatar",
|
habiticalib/const.py
CHANGED
habiticalib/lib.py
CHANGED
@@ -38,10 +38,13 @@ from .typedefs import (
|
|
38
38
|
Attributes,
|
39
39
|
Avatar,
|
40
40
|
Direction,
|
41
|
+
GlobalActivity,
|
42
|
+
GroupChatReceived,
|
41
43
|
HabiticaCastSkillResponse,
|
42
44
|
HabiticaClass,
|
43
45
|
HabiticaClassSystemResponse,
|
44
46
|
HabiticaContentResponse,
|
47
|
+
HabiticaDeleteWebhookResponse,
|
45
48
|
HabiticaErrorResponse,
|
46
49
|
HabiticaGroupMembersResponse,
|
47
50
|
HabiticaLoginResponse,
|
@@ -58,10 +61,14 @@ from .typedefs import (
|
|
58
61
|
HabiticaUserAnonymizedResponse,
|
59
62
|
HabiticaUserExport,
|
60
63
|
HabiticaUserResponse,
|
64
|
+
HabiticaWebhookResponse,
|
61
65
|
Language,
|
66
|
+
QuestActivity,
|
62
67
|
Skill,
|
63
68
|
Task,
|
69
|
+
TaskActivity,
|
64
70
|
TaskFilter,
|
71
|
+
UserActivity,
|
65
72
|
)
|
66
73
|
|
67
74
|
if TYPE_CHECKING:
|
@@ -2073,3 +2080,106 @@ class Habitica:
|
|
2073
2080
|
"password": self._headers.get("X-API-KEY"),
|
2074
2081
|
}, # type: ignore[var-annotated]
|
2075
2082
|
)
|
2083
|
+
|
2084
|
+
async def create_webhook(
|
2085
|
+
self,
|
2086
|
+
webhook: TaskActivity
|
2087
|
+
| GroupChatReceived
|
2088
|
+
| UserActivity
|
2089
|
+
| QuestActivity
|
2090
|
+
| GlobalActivity,
|
2091
|
+
) -> HabiticaWebhookResponse:
|
2092
|
+
"""Create a new webhook.
|
2093
|
+
|
2094
|
+
Parameters
|
2095
|
+
----------
|
2096
|
+
webhook : TaskActivity or GroupChatReceived or UserActivity or QuestActivity or GlobalActivity
|
2097
|
+
The webhook object to be created. It should be an instance of one of the following types:
|
2098
|
+
- TaskActivity
|
2099
|
+
- GroupChatReceived
|
2100
|
+
- UserActivity
|
2101
|
+
- QuestActivity
|
2102
|
+
- GlobalActivity
|
2103
|
+
|
2104
|
+
Returns
|
2105
|
+
-------
|
2106
|
+
HabiticaWebhookResponse
|
2107
|
+
A response object containing the created webhook.
|
2108
|
+
|
2109
|
+
Raises
|
2110
|
+
------
|
2111
|
+
BadRequestError
|
2112
|
+
A parameter did not pass validation.
|
2113
|
+
|
2114
|
+
"""
|
2115
|
+
|
2116
|
+
url = self.url / "api/v3/user/webhook"
|
2117
|
+
|
2118
|
+
return HabiticaWebhookResponse.from_json(
|
2119
|
+
await self._request("post", url=url, json=webhook.to_dict(omit_none=True))
|
2120
|
+
)
|
2121
|
+
|
2122
|
+
async def delete_webhook(
|
2123
|
+
self, webhook_id: str | UUID
|
2124
|
+
) -> HabiticaDeleteWebhookResponse:
|
2125
|
+
"""Delete a webhook by its UUID.
|
2126
|
+
|
2127
|
+
Parameters
|
2128
|
+
----------
|
2129
|
+
webhook_id : str or UUID
|
2130
|
+
The UUID identifier of the webhook to delete.
|
2131
|
+
|
2132
|
+
Returns
|
2133
|
+
-------
|
2134
|
+
HabiticaDeleteWebhookResponse
|
2135
|
+
A response object containing a list of the remaining webhooks.
|
2136
|
+
|
2137
|
+
Raises
|
2138
|
+
------
|
2139
|
+
NotFoundError
|
2140
|
+
The specified webhook could not be found.
|
2141
|
+
"""
|
2142
|
+
url = self.url / "api/v3/user/webhook" / str(webhook_id)
|
2143
|
+
|
2144
|
+
return HabiticaDeleteWebhookResponse.from_json(
|
2145
|
+
await self._request("delete", url)
|
2146
|
+
)
|
2147
|
+
|
2148
|
+
async def update_webhook(
|
2149
|
+
self,
|
2150
|
+
webhook: TaskActivity
|
2151
|
+
| GroupChatReceived
|
2152
|
+
| UserActivity
|
2153
|
+
| QuestActivity
|
2154
|
+
| GlobalActivity,
|
2155
|
+
) -> HabiticaWebhookResponse:
|
2156
|
+
"""Update a webhook by its UUID with the provided data.
|
2157
|
+
|
2158
|
+
Parameters
|
2159
|
+
----------
|
2160
|
+
webhook : TaskActivity or GroupChatReceived or UserActivity or QuestActivity or GlobalActivity
|
2161
|
+
The webhook data to be updated. It must be an instance of one of the specified types.
|
2162
|
+
|
2163
|
+
Returns
|
2164
|
+
-------
|
2165
|
+
HabiticaWebhookResponse
|
2166
|
+
The response object containing the updated webhook.
|
2167
|
+
|
2168
|
+
|
2169
|
+
Raises
|
2170
|
+
------
|
2171
|
+
ValueError
|
2172
|
+
If the identifier was not provided.
|
2173
|
+
BadRequestError
|
2174
|
+
A parameter did not pass validation.
|
2175
|
+
|
2176
|
+
"""
|
2177
|
+
if not webhook.id:
|
2178
|
+
msg = "You must provide the identifier of the webhook to update."
|
2179
|
+
raise ValueError(msg)
|
2180
|
+
|
2181
|
+
url = self.url / "api/v3/user/webhook" / str(webhook.id)
|
2182
|
+
|
2183
|
+
return HabiticaWebhookResponse.from_json(
|
2184
|
+
await self._request("put", url, json=webhook.to_dict(omit_none=True))
|
2185
|
+
)
|
habiticalib/typedefs.py
CHANGED
@@ -7,12 +7,13 @@ from dataclasses import dataclass, field
|
|
7
7
|
import datetime as dt
|
8
8
|
from datetime import UTC, datetime
|
9
9
|
from enum import Enum, StrEnum
|
10
|
-
from typing import Any, NotRequired, TypedDict
|
10
|
+
from typing import Annotated, Any, NotRequired, TypedDict
|
11
11
|
from uuid import UUID
|
12
12
|
|
13
13
|
from mashumaro import field_options
|
14
14
|
from mashumaro.config import TO_DICT_ADD_OMIT_NONE_FLAG
|
15
15
|
from mashumaro.mixins.orjson import DataClassORJSONMixin
|
16
|
+
from mashumaro.types import Discriminator
|
16
17
|
|
17
18
|
|
18
19
|
def serialize_datetime(date: str | int | None) -> datetime | None:
|
@@ -776,48 +777,187 @@ class PushDevicesUser(BaseModel):
|
|
776
777
|
updatedAt: datetime
|
777
778
|
|
778
779
|
|
779
|
-
class
|
780
|
+
class WebhookType(StrEnum):
|
780
781
|
"""Webhook types."""
|
781
782
|
|
782
783
|
TASK_ACTIVITY = "taskActivity"
|
783
784
|
USER_ACTIVITY = "userActivity"
|
784
785
|
QUEST_ACTIVITY = "questActivity"
|
785
786
|
GROUP_CHAT_RECEIVED = "groupChatReceived"
|
787
|
+
GLOBAL_ACTIVITY = "globalActivity"
|
786
788
|
|
787
789
|
|
788
790
|
@dataclass(kw_only=True)
|
789
|
-
class
|
790
|
-
"""
|
791
|
+
class QuestActivityOptions(BaseModel):
|
792
|
+
"""Quest activity options."""
|
791
793
|
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
scored: bool | None = None
|
796
|
-
questStarted: bool | None = None
|
797
|
-
questFinished: bool | None = None
|
798
|
-
questInvited: bool | None = None
|
799
|
-
petHatched: bool | None = None
|
800
|
-
mountRaised: bool | None = None
|
801
|
-
leveledUp: bool | None = None
|
802
|
-
groupId: UUID | None = None
|
794
|
+
questStarted: bool = False
|
795
|
+
questFinished: bool = False
|
796
|
+
questInvited: bool = False
|
803
797
|
|
804
798
|
|
805
799
|
@dataclass(kw_only=True)
|
806
|
-
class
|
807
|
-
"""
|
800
|
+
class UserActivityOptions(BaseModel):
|
801
|
+
"""User activity options."""
|
802
|
+
|
803
|
+
petHatched: bool = False
|
804
|
+
mountRaised: bool = False
|
805
|
+
leveledUp: bool = False
|
808
806
|
|
807
|
+
|
808
|
+
@dataclass
|
809
|
+
class GroupChatReceivedOptions(BaseModel):
|
810
|
+
"""Group chat received options."""
|
811
|
+
|
812
|
+
groupId: UUID
|
813
|
+
|
814
|
+
|
815
|
+
@dataclass(kw_only=True)
|
816
|
+
class TaskActivityOptions(BaseModel):
|
817
|
+
"""Task activity options."""
|
818
|
+
|
819
|
+
created: bool = False
|
820
|
+
updated: bool = False
|
821
|
+
deleted: bool = False
|
822
|
+
checklistScored: bool = False
|
823
|
+
scored: bool = True
|
824
|
+
|
825
|
+
|
826
|
+
@dataclass(kw_only=True)
|
827
|
+
class Webhook(BaseModel):
|
828
|
+
"""Webhook base class."""
|
829
|
+
|
830
|
+
url: str | None = field(default=None, kw_only=False)
|
831
|
+
enabled: bool | None = None
|
832
|
+
label: str | None = None
|
809
833
|
id: UUID | None = None
|
810
|
-
|
811
|
-
|
812
|
-
|
834
|
+
|
835
|
+
|
836
|
+
@dataclass(kw_only=True)
|
837
|
+
class TaskActivity(Webhook):
|
838
|
+
"""Task activity."""
|
839
|
+
|
840
|
+
Type: WebhookType = field(default=WebhookType.TASK_ACTIVITY, init=False)
|
841
|
+
options: TaskActivityOptions = field(default_factory=TaskActivityOptions)
|
842
|
+
|
843
|
+
|
844
|
+
@dataclass(kw_only=True)
|
845
|
+
class GroupChatReceived(Webhook):
|
846
|
+
"""Group chat received."""
|
847
|
+
|
848
|
+
def __post_init__(self) -> None:
|
849
|
+
"""Initialize the GroupChatReceived class."""
|
850
|
+
if self.groupId:
|
851
|
+
if not isinstance(self.groupId, UUID):
|
852
|
+
self.groupId = UUID(self.groupId)
|
853
|
+
|
854
|
+
self.options = GroupChatReceivedOptions(groupId=self.groupId)
|
855
|
+
self.groupId = None
|
856
|
+
|
857
|
+
groupId: UUID | str | None = field(default=None, kw_only=False)
|
858
|
+
Type: WebhookType = field(default=WebhookType.GROUP_CHAT_RECEIVED, init=False)
|
859
|
+
options: GroupChatReceivedOptions = field(init=False)
|
860
|
+
|
861
|
+
|
862
|
+
@dataclass(kw_only=True)
|
863
|
+
class UserActivity(Webhook):
|
864
|
+
"""User activity."""
|
865
|
+
|
866
|
+
Type: WebhookType = field(default=WebhookType.USER_ACTIVITY, init=False)
|
867
|
+
options: UserActivityOptions = field(default_factory=UserActivityOptions)
|
868
|
+
|
869
|
+
|
870
|
+
@dataclass(kw_only=True)
|
871
|
+
class QuestActivity(Webhook):
|
872
|
+
"""Quest activity."""
|
873
|
+
|
874
|
+
Type: WebhookType = field(default=WebhookType.QUEST_ACTIVITY, init=False)
|
875
|
+
options: QuestActivityOptions = field(default_factory=QuestActivityOptions)
|
876
|
+
|
877
|
+
|
878
|
+
@dataclass(kw_only=True)
|
879
|
+
class GlobalActivity(Webhook):
|
880
|
+
"""Global activity.
|
881
|
+
|
882
|
+
Note: global webhooks send a request for every type of event
|
883
|
+
"""
|
884
|
+
|
885
|
+
Type: WebhookType = field(default=WebhookType.GLOBAL_ACTIVITY, init=False)
|
886
|
+
|
887
|
+
|
888
|
+
class HabiticaWebhookResponse(HabiticaResponse):
|
889
|
+
"""Representation of a webhook data response."""
|
890
|
+
|
891
|
+
data: Annotated[
|
892
|
+
Webhook,
|
893
|
+
Discriminator(
|
894
|
+
field="type",
|
895
|
+
include_subtypes=True,
|
896
|
+
),
|
897
|
+
]
|
898
|
+
|
899
|
+
|
900
|
+
class HabiticaDeleteWebhookResponse(HabiticaResponse):
|
901
|
+
"""Representation of a delete webhook response."""
|
902
|
+
|
903
|
+
data: list[
|
904
|
+
Annotated[
|
905
|
+
Webhook,
|
906
|
+
Discriminator(
|
907
|
+
field="type",
|
908
|
+
include_subtypes=True,
|
909
|
+
),
|
910
|
+
]
|
911
|
+
]
|
912
|
+
|
913
|
+
|
914
|
+
@dataclass(kw_only=True)
|
915
|
+
class WebhookUser(BaseModel):
|
916
|
+
"""Webhooks user data."""
|
917
|
+
|
813
918
|
failures: int = 0
|
814
|
-
label: str = ""
|
815
|
-
options = WebhooksOptions
|
816
919
|
lastFailureAt: datetime | None = None
|
817
920
|
createdAt: datetime | None = None
|
818
921
|
updatedAt: datetime | None = None
|
819
922
|
|
820
923
|
|
924
|
+
@dataclass(kw_only=True)
|
925
|
+
class TaskActivityWebhook(WebhookUser, TaskActivity):
|
926
|
+
"""Task activity webhook."""
|
927
|
+
|
928
|
+
type = "taskActivity"
|
929
|
+
|
930
|
+
|
931
|
+
@dataclass(kw_only=True)
|
932
|
+
class QuestActivityWebhook(WebhookUser, QuestActivity):
|
933
|
+
"""Quest activity webhook."""
|
934
|
+
|
935
|
+
type = "questActivity"
|
936
|
+
|
937
|
+
|
938
|
+
@dataclass(kw_only=True)
|
939
|
+
class GlobalActivityWebhook(WebhookUser, GlobalActivity):
|
940
|
+
"""Global activity webhook."""
|
941
|
+
|
942
|
+
type = "globalActivity"
|
943
|
+
|
944
|
+
|
945
|
+
@dataclass(kw_only=True)
|
946
|
+
class GroupChatReceivedWebhook(WebhookUser, GroupChatReceived):
|
947
|
+
"""Group chat received webhook."""
|
948
|
+
|
949
|
+
type = "groupChatReceived"
|
950
|
+
groupId: None = None
|
951
|
+
options: GroupChatReceivedOptions = field(init=True)
|
952
|
+
|
953
|
+
|
954
|
+
@dataclass(kw_only=True)
|
955
|
+
class UserActivityWebhook(WebhookUser, UserActivity):
|
956
|
+
"""User activity webhook."""
|
957
|
+
|
958
|
+
type = "userActivity"
|
959
|
+
|
960
|
+
|
821
961
|
@dataclass(kw_only=True)
|
822
962
|
class PinnedItemsUser(BaseModel):
|
823
963
|
"""PinnedItems user data."""
|
@@ -851,7 +991,15 @@ class UserData(Avatar, BaseModel):
|
|
851
991
|
tasksOrder: TasksOrderUser = field(default_factory=TasksOrderUser)
|
852
992
|
extra: dict = field(default_factory=dict)
|
853
993
|
pushDevices: list[PushDevicesUser] = field(default_factory=list)
|
854
|
-
webhooks: list[
|
994
|
+
webhooks: list[
|
995
|
+
Annotated[
|
996
|
+
Webhook,
|
997
|
+
Discriminator(
|
998
|
+
field="type",
|
999
|
+
include_subtypes=True,
|
1000
|
+
),
|
1001
|
+
]
|
1002
|
+
] = field(default_factory=list)
|
855
1003
|
loginIncentives: int | None = None
|
856
1004
|
invitesSent: int | None = None
|
857
1005
|
pinnedItems: list[PinnedItemsUser] = field(default_factory=list)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: Habiticalib
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.4.0rc0
|
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
|
@@ -0,0 +1,12 @@
|
|
1
|
+
habiticalib/__init__.py,sha256=2IM9mDegpFIANIdatGTePbT4r1cilUtwNYs4Bups7So,7690
|
2
|
+
habiticalib/const.py,sha256=Yh3d46unPdB1n6EMENXrpV_komBj3b1eDWwc9pdEaws,2311
|
3
|
+
habiticalib/exceptions.py,sha256=i9hnCaMT5RbnTioFhwRYJkcC_bG9lMeUd2jJsWFVnVg,1342
|
4
|
+
habiticalib/ha.py,sha256=rSzrs7ixLJH3ZtOFlcuKV2t1ZndT0VpuPhDsGqorkOs,20757
|
5
|
+
habiticalib/helpers.py,sha256=lq2HBvqLsFo5_zckMnc7hzDsHLfyrcStpFUpet3ZuZY,4500
|
6
|
+
habiticalib/lib.py,sha256=9CqfAIGBx-MJB08UAB81kczB2kD1W1aPYHjDfAvBmFY,76729
|
7
|
+
habiticalib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
habiticalib/typedefs.py,sha256=pU7jfWAKMSvJO8QjTEgm_B0c6GONy1SZH2lTMUPPhrE,47834
|
9
|
+
habiticalib-0.4.0rc0.dist-info/METADATA,sha256=w920G81BFg4JxgAuIwi93JIC-jXZ3zhuwBNOwtu3GWg,4210
|
10
|
+
habiticalib-0.4.0rc0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
11
|
+
habiticalib-0.4.0rc0.dist-info/licenses/LICENSE,sha256=oIinIOSJ49l1iVIRI3XGXFWt6SF7a83kEFBAY8ORwNI,1084
|
12
|
+
habiticalib-0.4.0rc0.dist-info/RECORD,,
|
@@ -1,12 +0,0 @@
|
|
1
|
-
habiticalib/__init__.py,sha256=ZUd6heFQJaJgNiseoSY2SfJzOHfGFdIiOHI-qf9fXuU,6940
|
2
|
-
habiticalib/const.py,sha256=H2LnnOkR3qBIO9rGhndJiFtXwO-FdThjoTt3DkIzqsM,2311
|
3
|
-
habiticalib/exceptions.py,sha256=i9hnCaMT5RbnTioFhwRYJkcC_bG9lMeUd2jJsWFVnVg,1342
|
4
|
-
habiticalib/ha.py,sha256=rSzrs7ixLJH3ZtOFlcuKV2t1ZndT0VpuPhDsGqorkOs,20757
|
5
|
-
habiticalib/helpers.py,sha256=lq2HBvqLsFo5_zckMnc7hzDsHLfyrcStpFUpet3ZuZY,4500
|
6
|
-
habiticalib/lib.py,sha256=K6KwRBw_bq9wyXb5PJcZVlN2kF6zXiPm11Hk4XVHfqE,73598
|
7
|
-
habiticalib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
habiticalib/typedefs.py,sha256=984f8IawG-L8XTinsNDmaiSJkgfIJk-vHBI44qRySNE,44343
|
9
|
-
habiticalib-0.3.7rc1.dist-info/METADATA,sha256=pW_rpLjd26SZc6VSce_SK-MeAmquhVtwg69GEvGjfkQ,4210
|
10
|
-
habiticalib-0.3.7rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
11
|
-
habiticalib-0.3.7rc1.dist-info/licenses/LICENSE,sha256=oIinIOSJ49l1iVIRI3XGXFWt6SF7a83kEFBAY8ORwNI,1084
|
12
|
-
habiticalib-0.3.7rc1.dist-info/RECORD,,
|
File without changes
|
File without changes
|