digitalkin 0.3.0rc1__tar.gz → 0.3.0rc2__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 (113) hide show
  1. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/PKG-INFO +5 -25
  2. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/pyproject.toml +56 -35
  3. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/__version__.py +1 -1
  4. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/task_manager/task_manager.py +5 -2
  5. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/task_manager/task_session.py +12 -2
  6. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/grpc_servers/models.py +4 -4
  7. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/module/module_types.py +5 -1
  8. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin.egg-info/PKG-INFO +5 -25
  9. digitalkin-0.3.0rc2/src/digitalkin.egg-info/requires.txt +12 -0
  10. digitalkin-0.3.0rc1/src/digitalkin.egg-info/requires.txt +0 -34
  11. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/LICENSE +0 -0
  12. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/README.md +0 -0
  13. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/__init__.py +0 -0
  14. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/mock/__init__.py +0 -0
  15. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/mock/mock_pb2.py +0 -0
  16. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/mock/mock_pb2_grpc.py +0 -0
  17. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/server_async_insecure.py +0 -0
  18. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/server_async_secure.py +0 -0
  19. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/server_sync_insecure.py +0 -0
  20. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/base_server/server_sync_secure.py +0 -0
  21. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/modules/__init__.py +0 -0
  22. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/modules/cpu_intensive_module.py +0 -0
  23. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/modules/minimal_llm_module.py +0 -0
  24. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/modules/text_transform_module.py +0 -0
  25. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/services/filesystem_module.py +0 -0
  26. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/examples/services/storage_module.py +0 -0
  27. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/setup.cfg +0 -0
  28. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/__init__.py +0 -0
  29. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/__init__.py +0 -0
  30. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/job_manager/__init__.py +0 -0
  31. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/job_manager/base_job_manager.py +0 -0
  32. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/job_manager/single_job_manager.py +0 -0
  33. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/job_manager/taskiq_broker.py +0 -0
  34. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/job_manager/taskiq_job_manager.py +0 -0
  35. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/task_manager/__init__.py +0 -0
  36. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/core/task_manager/surrealdb_repository.py +0 -0
  37. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/__init__.py +0 -0
  38. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/_base_server.py +0 -0
  39. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/module_server.py +0 -0
  40. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/module_servicer.py +0 -0
  41. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/registry_server.py +0 -0
  42. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/registry_servicer.py +0 -0
  43. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/utils/__init__.py +0 -0
  44. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/utils/exceptions.py +0 -0
  45. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/grpc_servers/utils/grpc_client_wrapper.py +0 -0
  46. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/logger.py +0 -0
  47. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/__init__.py +0 -0
  48. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/base_mixin.py +0 -0
  49. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/callback_mixin.py +0 -0
  50. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/chat_history_mixin.py +0 -0
  51. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/cost_mixin.py +0 -0
  52. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/file_history_mixin.py +0 -0
  53. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/filesystem_mixin.py +0 -0
  54. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/logger_mixin.py +0 -0
  55. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/mixins/storage_mixin.py +0 -0
  56. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/__init__.py +0 -0
  57. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/core/__init__.py +0 -0
  58. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/core/job_manager_models.py +0 -0
  59. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/core/task_monitor.py +0 -0
  60. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/grpc_servers/__init__.py +0 -0
  61. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/grpc_servers/types.py +0 -0
  62. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/module/__init__.py +0 -0
  63. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/module/module.py +0 -0
  64. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/module/module_context.py +0 -0
  65. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/services/__init__.py +0 -0
  66. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/services/cost.py +0 -0
  67. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/models/services/storage.py +0 -0
  68. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/modules/__init__.py +0 -0
  69. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/modules/_base_module.py +0 -0
  70. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/modules/archetype_module.py +0 -0
  71. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/modules/tool_module.py +0 -0
  72. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/modules/trigger_handler.py +0 -0
  73. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/py.typed +0 -0
  74. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/__init__.py +0 -0
  75. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/agent/__init__.py +0 -0
  76. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/agent/agent_strategy.py +0 -0
  77. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/agent/default_agent.py +0 -0
  78. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/base_strategy.py +0 -0
  79. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/cost/__init__.py +0 -0
  80. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/cost/cost_strategy.py +0 -0
  81. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/cost/default_cost.py +0 -0
  82. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/cost/grpc_cost.py +0 -0
  83. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/filesystem/__init__.py +0 -0
  84. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/filesystem/default_filesystem.py +0 -0
  85. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/filesystem/filesystem_strategy.py +0 -0
  86. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/filesystem/grpc_filesystem.py +0 -0
  87. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/identity/__init__.py +0 -0
  88. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/identity/default_identity.py +0 -0
  89. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/identity/identity_strategy.py +0 -0
  90. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/registry/__init__.py +0 -0
  91. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/registry/default_registry.py +0 -0
  92. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/registry/registry_strategy.py +0 -0
  93. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/services_config.py +0 -0
  94. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/services_models.py +0 -0
  95. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/setup/__init__.py +0 -0
  96. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/setup/default_setup.py +0 -0
  97. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/setup/grpc_setup.py +0 -0
  98. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/setup/setup_strategy.py +0 -0
  99. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/snapshot/__init__.py +0 -0
  100. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/snapshot/default_snapshot.py +0 -0
  101. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/snapshot/snapshot_strategy.py +0 -0
  102. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/storage/__init__.py +0 -0
  103. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/storage/default_storage.py +0 -0
  104. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/storage/grpc_storage.py +0 -0
  105. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/services/storage/storage_strategy.py +0 -0
  106. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/utils/__init__.py +0 -0
  107. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/utils/arg_parser.py +0 -0
  108. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/utils/development_mode_action.py +0 -0
  109. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/utils/llm_ready_schema.py +0 -0
  110. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin/utils/package_discover.py +0 -0
  111. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin.egg-info/SOURCES.txt +0 -0
  112. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin.egg-info/dependency_links.txt +0 -0
  113. {digitalkin-0.3.0rc1 → digitalkin-0.3.0rc2}/src/digitalkin.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 0.3.0rc1
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.1
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.31.0; extra == "taskiq"
463
- Requires-Dist: taskiq-aio-pika>=0.4.3; extra == "taskiq"
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.18; extra == "taskiq"
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
@@ -12,7 +12,7 @@
12
12
 
13
13
  keywords = [ "digitalkin", "kin", "agent", "gprc", "sdk" ]
14
14
 
15
- version = "0.3.0-rc1"
15
+ version = "0.3.0-rc2"
16
16
  classifiers = [
17
17
  "Development Status :: 3 - Alpha",
18
18
  "Intended Audience :: Developers",
@@ -32,39 +32,18 @@
32
32
  "grpcio-health-checking>=1.71.0",
33
33
  "grpcio-reflection>=1.71.0",
34
34
  "grpcio-status>=1.71.0",
35
- "pydantic>=2.12.1",
35
+ "pydantic>=2.12.3",
36
36
  "surrealdb>=1.0.6",
37
37
  ]
38
38
 
39
39
  [project.optional-dependencies]
40
40
  taskiq = [
41
- "rstream>=0.31.0",
42
- "taskiq-aio-pika>=0.4.3",
41
+ "rstream>=0.40.0",
42
+ "taskiq-aio-pika>=0.4.4",
43
43
  "taskiq-redis>=1.1.2",
44
- "taskiq[reload]>=0.11.18",
45
- ]
46
- dev = [
47
- "typos>=1.38.0",
48
- "ruff>=0.14.1",
49
- "mypy>=1.18.2",
50
- "pyright>=1.1.406",
51
- "pre-commit>=4.3.0",
52
- "bump-my-version>=1.2.4",
53
- "build>=1.3.0",
54
- "twine>=6.2.0",
55
- "cryptography>=46.0.2",
56
- ]
57
- tests = [
58
- "freezegun>=1.5.3",
59
- "hdrhistogram>=0.10.3",
60
- "grpcio-testing>=1.71.0",
61
- "psutil>=7.0.0",
62
- "pytest>=8.4.2",
63
- "pytest-asyncio>=1.2.0",
64
- "pytest-cov>=7.0.0",
65
- "pytest-html==4.1.1",
66
- "pytest-json-report==1.5.0",
44
+ "taskiq[reload]>=0.11.19",
67
45
  ]
46
+
68
47
  [project.urls]
69
48
  Homepage = "https://github.com/DigitalKin-ai/digitalkin"
70
49
  Documentation = "https://github.com/DigitalKin-ai/digitalkin"
@@ -74,6 +53,55 @@
74
53
  name = "DigitalKin.ai"
75
54
  email = "contact@digitalkin.ai"
76
55
 
56
+ [dependency-groups]
57
+ dev = [
58
+ "typos>=1.38.0",
59
+ "ruff>=0.14.2",
60
+ "mypy>=1.18.2",
61
+ "pyright>=1.1.407",
62
+ "pre-commit>=4.3.0",
63
+ "bump-my-version>=1.2.4",
64
+ "build>=1.3.0",
65
+ "twine>=6.2.0",
66
+ "cryptography>=46.0.3",
67
+ ]
68
+ tests = [
69
+ "freezegun>=1.5.3",
70
+ "hdrhistogram>=0.10.3",
71
+ "grpcio-testing>=1.71.0",
72
+ "psutil>=7.1.2",
73
+ "pytest>=8.4.2",
74
+ "pytest-asyncio>=1.2.0",
75
+ "pytest-cov>=7.0.0",
76
+ "pytest-html==4.1.1",
77
+ "pytest-json-report==1.5.0",
78
+ ]
79
+ docs = [
80
+ "mike>=2.1.3",
81
+ "markdown-callouts>=0.4",
82
+ "markdown-exec>=1.8",
83
+ "mkdocs>=1.6",
84
+ "mkdocs-coverage>=2.0.0",
85
+ "mkdocs-llmstxt>=0.2",
86
+ "mkdocs-redirects>=1.2",
87
+ "mkdocstrings>=0.29",
88
+ "griffe-inherited-docstrings>=1.1.2",
89
+ "mkdocs-autorefs>=1.4.3",
90
+ "mkdocs-awesome-pages-plugin>=2.10.1",
91
+ "mkdocs-git-committers-plugin-2>=2.5.0",
92
+ "mkdocs-git-revision-date-localized-plugin>=1.4.7",
93
+ "mkdocs-glightbox>=0.5.2",
94
+ "mkdocs-include-markdown-plugin>=7.2.0",
95
+ "mkdocs-literate-nav>=0.6.2",
96
+ "mkdocs-material[imaging]>=9.6.22",
97
+ "mkdocs-minify-plugin>=0.8.0",
98
+ "mkdocs-section-index>=0.3.10",
99
+ "mkdocstrings>=0.30.1",
100
+ "mkdocstrings-python>=1.18.2",
101
+ "mkdocs-open-in-new-tab>=1.0.8",
102
+ "tomli>=2.3.0",
103
+ ]
104
+
77
105
  [tool.setuptools]
78
106
  package-dir = { "" = "src" }
79
107
 
@@ -114,6 +142,7 @@
114
142
  "generate_certificates.py",
115
143
  "examples/*",
116
144
  "tests/*",
145
+ "docs/*",
117
146
  ]
118
147
  preview = true
119
148
 
@@ -232,11 +261,3 @@
232
261
  testpaths = [ "tests" ]
233
262
  python_files = "test_*.py"
234
263
  asyncio_mode = "auto"
235
-
236
- [dependency-groups]
237
- dev = [
238
- "pytest>=8.4.2",
239
- "pytest-cov>=7.0.0",
240
- "pytest-html>=4.1.1",
241
- "pytest-json-report>=1.5.0",
242
- ]
@@ -5,4 +5,4 @@ from importlib.metadata import PackageNotFoundError, version
5
5
  try:
6
6
  __version__ = version("digitalkin")
7
7
  except PackageNotFoundError:
8
- __version__ = "0.3.0-rc1"
8
+ __version__ = "0.3.0-rc2"
@@ -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 = 100) -> None:
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(mission_id, task_id)
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", 50 * 1024 * 1024), # 50MB
179
- ("grpc.max_send_message_length", 50 * 1024 * 1024), # 50MB
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", 50 * 1024 * 1024), # 50MB
227
- ("grpc.max_send_message_length", 50 * 1024 * 1024), # 50MB
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 = datetime.now(tz=timezone.utc).isoformat()
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.0rc1
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.1
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.31.0; extra == "taskiq"
463
- Requires-Dist: taskiq-aio-pika>=0.4.3; extra == "taskiq"
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.18; extra == "taskiq"
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
@@ -0,0 +1,12 @@
1
+ digitalkin-proto>=0.1.16
2
+ grpcio-health-checking>=1.71.0
3
+ grpcio-reflection>=1.71.0
4
+ grpcio-status>=1.71.0
5
+ pydantic>=2.12.3
6
+ surrealdb>=1.0.6
7
+
8
+ [taskiq]
9
+ rstream>=0.40.0
10
+ taskiq-aio-pika>=0.4.4
11
+ taskiq-redis>=1.1.2
12
+ taskiq[reload]>=0.11.19
@@ -1,34 +0,0 @@
1
- digitalkin-proto>=0.1.16
2
- grpcio-health-checking>=1.71.0
3
- grpcio-reflection>=1.71.0
4
- grpcio-status>=1.71.0
5
- pydantic>=2.12.1
6
- surrealdb>=1.0.6
7
-
8
- [dev]
9
- typos>=1.38.0
10
- ruff>=0.14.1
11
- mypy>=1.18.2
12
- pyright>=1.1.406
13
- pre-commit>=4.3.0
14
- bump-my-version>=1.2.4
15
- build>=1.3.0
16
- twine>=6.2.0
17
- cryptography>=46.0.2
18
-
19
- [taskiq]
20
- rstream>=0.31.0
21
- taskiq-aio-pika>=0.4.3
22
- taskiq-redis>=1.1.2
23
- taskiq[reload]>=0.11.18
24
-
25
- [tests]
26
- freezegun>=1.5.3
27
- hdrhistogram>=0.10.3
28
- grpcio-testing>=1.71.0
29
- psutil>=7.0.0
30
- pytest>=8.4.2
31
- pytest-asyncio>=1.2.0
32
- pytest-cov>=7.0.0
33
- pytest-html==4.1.1
34
- pytest-json-report==1.5.0
File without changes
File without changes
File without changes