digitalkin 0.3.0rc1__py3-none-any.whl → 0.3.0rc2__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.
- digitalkin/__version__.py +1 -1
- digitalkin/core/task_manager/task_manager.py +5 -2
- digitalkin/core/task_manager/task_session.py +12 -2
- digitalkin/models/grpc_servers/models.py +4 -4
- digitalkin/models/module/module_types.py +5 -1
- {digitalkin-0.3.0rc1.dist-info → digitalkin-0.3.0rc2.dist-info}/METADATA +5 -25
- {digitalkin-0.3.0rc1.dist-info → digitalkin-0.3.0rc2.dist-info}/RECORD +10 -10
- {digitalkin-0.3.0rc1.dist-info → digitalkin-0.3.0rc2.dist-info}/WHEEL +0 -0
- {digitalkin-0.3.0rc1.dist-info → digitalkin-0.3.0rc2.dist-info}/licenses/LICENSE +0 -0
- {digitalkin-0.3.0rc1.dist-info → digitalkin-0.3.0rc2.dist-info}/top_level.txt +0 -0
digitalkin/__version__.py
CHANGED
|
@@ -26,7 +26,7 @@ class TaskManager:
|
|
|
26
26
|
max_concurrent_tasks: int
|
|
27
27
|
_shutdown_event: asyncio.Event
|
|
28
28
|
|
|
29
|
-
def __init__(self, default_timeout: float = 10.0, max_concurrent_tasks: int =
|
|
29
|
+
def __init__(self, default_timeout: float = 10.0, max_concurrent_tasks: int = 1000) -> None:
|
|
30
30
|
"""Defining task manager properties."""
|
|
31
31
|
self.tasks = {}
|
|
32
32
|
self.tasks_sessions = {}
|
|
@@ -67,6 +67,8 @@ class TaskManager:
|
|
|
67
67
|
if task_id in self.tasks_sessions:
|
|
68
68
|
await self.tasks_sessions[task_id].db.close()
|
|
69
69
|
# Remove from collections
|
|
70
|
+
self.tasks.pop(task_id, None)
|
|
71
|
+
self.tasks_sessions.pop(task_id, None)
|
|
70
72
|
|
|
71
73
|
async def _task_wrapper( # noqa: C901, PLR0915
|
|
72
74
|
self,
|
|
@@ -356,10 +358,11 @@ class TaskManager:
|
|
|
356
358
|
return False
|
|
357
359
|
|
|
358
360
|
await self.tasks_sessions[task_id].module.stop()
|
|
359
|
-
await self.cancel_task(
|
|
361
|
+
await self.cancel_task(task_id, mission_id)
|
|
360
362
|
|
|
361
363
|
logger.info("Cleaning up session for task: '%s'", task_id, extra={"mission_id": mission_id, "task_id": task_id})
|
|
362
364
|
self.tasks_sessions.pop(task_id, None)
|
|
365
|
+
self.tasks.pop(task_id, None)
|
|
363
366
|
return True
|
|
364
367
|
|
|
365
368
|
async def pause_task(self, task_id: str, mission_id: str) -> bool:
|
|
@@ -42,13 +42,23 @@ class TaskSession:
|
|
|
42
42
|
db: SurrealDBConnection,
|
|
43
43
|
module: BaseModule,
|
|
44
44
|
heartbeat_interval: datetime.timedelta = datetime.timedelta(seconds=2),
|
|
45
|
+
queue_maxsize: int = 1000,
|
|
45
46
|
) -> None:
|
|
46
|
-
"""Initialize Task Session.
|
|
47
|
+
"""Initialize Task Session.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
task_id: Unique task identifier
|
|
51
|
+
mission_id: Mission identifier
|
|
52
|
+
db: SurrealDB connection
|
|
53
|
+
module: Module instance
|
|
54
|
+
heartbeat_interval: Interval between heartbeats
|
|
55
|
+
queue_maxsize: Maximum size for the queue (0 = unlimited)
|
|
56
|
+
"""
|
|
47
57
|
self.db = db
|
|
48
58
|
self.module = module
|
|
49
59
|
|
|
50
60
|
self.status = TaskStatus.PENDING
|
|
51
|
-
self.queue: asyncio.Queue = asyncio.Queue()
|
|
61
|
+
self.queue: asyncio.Queue = asyncio.Queue(maxsize=queue_maxsize)
|
|
52
62
|
|
|
53
63
|
self.task_id = task_id
|
|
54
64
|
self.mission_id = mission_id
|
|
@@ -175,8 +175,8 @@ class ClientConfig(ChannelConfig):
|
|
|
175
175
|
credentials: ClientCredentials | None = Field(None, description="Client credentials for secure mode")
|
|
176
176
|
channel_options: list[tuple[str, Any]] = Field(
|
|
177
177
|
default_factory=lambda: [
|
|
178
|
-
("grpc.max_receive_message_length",
|
|
179
|
-
("grpc.max_send_message_length",
|
|
178
|
+
("grpc.max_receive_message_length", 100 * 1024 * 1024), # 100MB
|
|
179
|
+
("grpc.max_send_message_length", 100 * 1024 * 1024), # 100MB
|
|
180
180
|
],
|
|
181
181
|
description="Additional channel options",
|
|
182
182
|
)
|
|
@@ -223,8 +223,8 @@ class ServerConfig(ChannelConfig):
|
|
|
223
223
|
credentials: ServerCredentials | None = Field(None, description="Server credentials for secure mode")
|
|
224
224
|
server_options: list[tuple[str, Any]] = Field(
|
|
225
225
|
default_factory=lambda: [
|
|
226
|
-
("grpc.max_receive_message_length",
|
|
227
|
-
("grpc.max_send_message_length",
|
|
226
|
+
("grpc.max_receive_message_length", 100 * 1024 * 1024), # 100MB
|
|
227
|
+
("grpc.max_send_message_length", 100 * 1024 * 1024), # 100MB
|
|
228
228
|
],
|
|
229
229
|
description="Additional server options",
|
|
230
230
|
)
|
|
@@ -24,7 +24,11 @@ class DataTrigger(BaseModel):
|
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
26
|
protocol: ClassVar[str]
|
|
27
|
-
created_at: str =
|
|
27
|
+
created_at: str = Field(
|
|
28
|
+
default_factory=lambda: datetime.now(tz=timezone.utc).isoformat(),
|
|
29
|
+
title="Created At",
|
|
30
|
+
description="Timestamp when the payload was created.",
|
|
31
|
+
)
|
|
28
32
|
|
|
29
33
|
|
|
30
34
|
DataTriggerT = TypeVar("DataTriggerT", bound=DataTrigger)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: digitalkin
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.0rc2
|
|
4
4
|
Summary: SDK to build kin used in DigitalKin
|
|
5
5
|
Author-email: "DigitalKin.ai" <contact@digitalkin.ai>
|
|
6
6
|
License: Attribution-NonCommercial-ShareAlike 4.0 International
|
|
@@ -456,33 +456,13 @@ Requires-Dist: digitalkin-proto>=0.1.16
|
|
|
456
456
|
Requires-Dist: grpcio-health-checking>=1.71.0
|
|
457
457
|
Requires-Dist: grpcio-reflection>=1.71.0
|
|
458
458
|
Requires-Dist: grpcio-status>=1.71.0
|
|
459
|
-
Requires-Dist: pydantic>=2.12.
|
|
459
|
+
Requires-Dist: pydantic>=2.12.3
|
|
460
460
|
Requires-Dist: surrealdb>=1.0.6
|
|
461
461
|
Provides-Extra: taskiq
|
|
462
|
-
Requires-Dist: rstream>=0.
|
|
463
|
-
Requires-Dist: taskiq-aio-pika>=0.4.
|
|
462
|
+
Requires-Dist: rstream>=0.40.0; extra == "taskiq"
|
|
463
|
+
Requires-Dist: taskiq-aio-pika>=0.4.4; extra == "taskiq"
|
|
464
464
|
Requires-Dist: taskiq-redis>=1.1.2; extra == "taskiq"
|
|
465
|
-
Requires-Dist: taskiq[reload]>=0.11.
|
|
466
|
-
Provides-Extra: dev
|
|
467
|
-
Requires-Dist: typos>=1.38.0; extra == "dev"
|
|
468
|
-
Requires-Dist: ruff>=0.14.1; extra == "dev"
|
|
469
|
-
Requires-Dist: mypy>=1.18.2; extra == "dev"
|
|
470
|
-
Requires-Dist: pyright>=1.1.406; extra == "dev"
|
|
471
|
-
Requires-Dist: pre-commit>=4.3.0; extra == "dev"
|
|
472
|
-
Requires-Dist: bump-my-version>=1.2.4; extra == "dev"
|
|
473
|
-
Requires-Dist: build>=1.3.0; extra == "dev"
|
|
474
|
-
Requires-Dist: twine>=6.2.0; extra == "dev"
|
|
475
|
-
Requires-Dist: cryptography>=46.0.2; extra == "dev"
|
|
476
|
-
Provides-Extra: tests
|
|
477
|
-
Requires-Dist: freezegun>=1.5.3; extra == "tests"
|
|
478
|
-
Requires-Dist: hdrhistogram>=0.10.3; extra == "tests"
|
|
479
|
-
Requires-Dist: grpcio-testing>=1.71.0; extra == "tests"
|
|
480
|
-
Requires-Dist: psutil>=7.0.0; extra == "tests"
|
|
481
|
-
Requires-Dist: pytest>=8.4.2; extra == "tests"
|
|
482
|
-
Requires-Dist: pytest-asyncio>=1.2.0; extra == "tests"
|
|
483
|
-
Requires-Dist: pytest-cov>=7.0.0; extra == "tests"
|
|
484
|
-
Requires-Dist: pytest-html==4.1.1; extra == "tests"
|
|
485
|
-
Requires-Dist: pytest-json-report==1.5.0; extra == "tests"
|
|
465
|
+
Requires-Dist: taskiq[reload]>=0.11.19; extra == "taskiq"
|
|
486
466
|
Dynamic: license-file
|
|
487
467
|
|
|
488
468
|
# DigitalKin Python SDK
|
|
@@ -7,7 +7,7 @@ base_server/mock/__init__.py,sha256=YZFT-F1l_TpvJYuIPX-7kTeE1CfOjhx9YmNRXVoi-jQ,
|
|
|
7
7
|
base_server/mock/mock_pb2.py,sha256=sETakcS3PAAm4E-hTCV1jIVaQTPEAIoVVHupB8Z_k7Y,1843
|
|
8
8
|
base_server/mock/mock_pb2_grpc.py,sha256=BbOT70H6q3laKgkHfOx1QdfmCS_HxCY4wCOX84YAdG4,3180
|
|
9
9
|
digitalkin/__init__.py,sha256=7LLBAba0th-3SGqcpqFO-lopWdUkVLKzLZiMtB-mW3M,162
|
|
10
|
-
digitalkin/__version__.py,sha256=
|
|
10
|
+
digitalkin/__version__.py,sha256=E2yVreleU06EKzkLQ9EZXBVcevjDkGR22lHHo58xfD4,194
|
|
11
11
|
digitalkin/logger.py,sha256=8ze_tjt2G6mDTuQcsf7-UTXWP3UHZ7LZVSs_iqF4rX4,4685
|
|
12
12
|
digitalkin/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
digitalkin/core/__init__.py,sha256=FJRcJ-B1Viyn-38L8XpOpZ8KOnf1I7PCDOAmKXLQhqc,71
|
|
@@ -18,8 +18,8 @@ digitalkin/core/job_manager/taskiq_broker.py,sha256=qnN45i688z81WnEbpeoaiT9R60ud
|
|
|
18
18
|
digitalkin/core/job_manager/taskiq_job_manager.py,sha256=UsqBsSYm88ibgRabSVPzK-9o2iXtGPsRlUO58M_PqVA,10147
|
|
19
19
|
digitalkin/core/task_manager/__init__.py,sha256=k9i-qIoee_1yXogyQolaVFDUQBIZU3ENbYKtjrCNmTQ,31
|
|
20
20
|
digitalkin/core/task_manager/surrealdb_repository.py,sha256=bmKaUoLTGfF-26zG_lX8mD-0dL3eTNr-BerUkSH7T2k,7739
|
|
21
|
-
digitalkin/core/task_manager/task_manager.py,sha256=
|
|
22
|
-
digitalkin/core/task_manager/task_session.py,sha256=
|
|
21
|
+
digitalkin/core/task_manager/task_manager.py,sha256=IAlMLpIEyt-6kUN4RYyWRsMEVOJs1ZxjU5uhNdwqN-4,16502
|
|
22
|
+
digitalkin/core/task_manager/task_session.py,sha256=glilSXbjMvP819QTUUQ7ElVsUCUdjRCNXLv5yXzhrYY,10895
|
|
23
23
|
digitalkin/grpc_servers/__init__.py,sha256=ZIRMJ1Lcas8yQ106GCup6hn2UBOsx1sNk8ap0lpEDnY,72
|
|
24
24
|
digitalkin/grpc_servers/_base_server.py,sha256=ZVeCDwI7w7fFbPTXPkeJb_SOuLfd2T7za3T4oCu2UWY,18680
|
|
25
25
|
digitalkin/grpc_servers/module_server.py,sha256=kXvPOfJ9LT9oRd5oPj-ZpYB9EYY_4RDlRpcyGzWkilc,10213
|
|
@@ -43,12 +43,12 @@ digitalkin/models/core/__init__.py,sha256=jOMDmPX0uSfGA9zUi0u_kOvYJ46VdIssoIhVYv
|
|
|
43
43
|
digitalkin/models/core/job_manager_models.py,sha256=RCrW20HCTQ7l2D1JtNgEKefZpMzoN-uAXK8bPorIqqA,1120
|
|
44
44
|
digitalkin/models/core/task_monitor.py,sha256=JBMzqaKLrsxb0QZYM1BlvCxxkbqD_YKgsWob7bsmBeE,1626
|
|
45
45
|
digitalkin/models/grpc_servers/__init__.py,sha256=0tA71nPSXgRrh9DoLvx-TSwZXdYIRUEItoadpTL1cTo,42
|
|
46
|
-
digitalkin/models/grpc_servers/models.py,sha256=
|
|
46
|
+
digitalkin/models/grpc_servers/models.py,sha256=unV1Wo0u3Efm7ddgYyYZZYUC_W6F0S5BQYH3xsOmXjw,8965
|
|
47
47
|
digitalkin/models/grpc_servers/types.py,sha256=rQ78s4nAet2jy-NIDj_PUWriT0kuGHr_w6ELjmjgBao,539
|
|
48
48
|
digitalkin/models/module/__init__.py,sha256=nFPHp0JcAZq9ISkcSu1y2zeNyXH3V4j10oMjHzMBYBU,599
|
|
49
49
|
digitalkin/models/module/module.py,sha256=k0W8vfJJFth8XdDzkHm32SyTuSf3h2qF0hSrxAfGF1s,956
|
|
50
50
|
digitalkin/models/module/module_context.py,sha256=0sKIvLYt0KHR4oF0MUQ4RQZDBrPjmOSaIHNMcl7vUmI,4649
|
|
51
|
-
digitalkin/models/module/module_types.py,sha256=
|
|
51
|
+
digitalkin/models/module/module_types.py,sha256=FPoF5PenhfFr6gCDF7ZyyJQDkt9JZAfpiHlE8HErIuM,3699
|
|
52
52
|
digitalkin/models/services/__init__.py,sha256=jhfVw6egq0OcHmos_fypH9XFehbHTBw09wluVFVFEyw,226
|
|
53
53
|
digitalkin/models/services/cost.py,sha256=9PXvd5RrIk9vCrRjcUGQ9ZyAokEbwLg4s0RfnE-aLP4,1616
|
|
54
54
|
digitalkin/models/services/storage.py,sha256=wp7F-AvTsU46ujGPcguqM5kUKRZx4399D4EGAAJt2zs,1143
|
|
@@ -94,14 +94,14 @@ digitalkin/utils/arg_parser.py,sha256=wzscRlE1Qp1gGl-lAJlkkwnbU1O2oezj6BwK_BZFBI
|
|
|
94
94
|
digitalkin/utils/development_mode_action.py,sha256=2hznh0ajW_4ZTysfoc0Y49161f_PQPATRgNk8NAn1_o,1623
|
|
95
95
|
digitalkin/utils/llm_ready_schema.py,sha256=JjMug_lrQllqFoanaC091VgOqwAd-_YzcpqFlS7p778,2375
|
|
96
96
|
digitalkin/utils/package_discover.py,sha256=sa6Zp5Kape1Zr4iYiNrnZxiHDnqM06ODk6yfWHom53w,13465
|
|
97
|
-
digitalkin-0.3.
|
|
97
|
+
digitalkin-0.3.0rc2.dist-info/licenses/LICENSE,sha256=Ies4HFv2r2hzDRakJYxk3Y60uDFLiG-orIgeTpstnIo,20327
|
|
98
98
|
modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
99
99
|
modules/cpu_intensive_module.py,sha256=ejB9XPnFfA0uCuFUQbM3fy5UYfqqAlF36rv_P5Ri8ho,8363
|
|
100
100
|
modules/minimal_llm_module.py,sha256=Ijld__ZnhzfLwpXD1XVkLZ7jyKZKyOFZczOpiPttJZc,11216
|
|
101
101
|
modules/text_transform_module.py,sha256=bwPSnEUthZQyfLwcTLo52iAxItAoknkLh8Y3m5aywaY,7251
|
|
102
102
|
services/filesystem_module.py,sha256=71Mcja8jCQqiqFHPdsIXplFIHTvgkxRhp0TRXuCfgkk,7430
|
|
103
103
|
services/storage_module.py,sha256=ybTMqmvGaTrR8PqJ4FU0cwxaDjT36TskVrGoetTGmno,6955
|
|
104
|
-
digitalkin-0.3.
|
|
105
|
-
digitalkin-0.3.
|
|
106
|
-
digitalkin-0.3.
|
|
107
|
-
digitalkin-0.3.
|
|
104
|
+
digitalkin-0.3.0rc2.dist-info/METADATA,sha256=sFMbURd1YqkoDo3yYYpkJOOflqFAGrRoTOWOJwUC4OM,29714
|
|
105
|
+
digitalkin-0.3.0rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
106
|
+
digitalkin-0.3.0rc2.dist-info/top_level.txt,sha256=gcjqlyrZuLjIyxrOIavCQM_olpr6ND5kPKkZd2j0xGo,40
|
|
107
|
+
digitalkin-0.3.0rc2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|