labtasker 1.0.0__tar.gz → 2.0.0__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 (219) hide show
  1. labtasker-2.0.0/.gitignore +14 -0
  2. labtasker-2.0.0/PKG-INFO +12 -0
  3. labtasker-2.0.0/pyproject.toml +27 -0
  4. labtasker-1.0.0/MANIFEST.in +0 -30
  5. labtasker-1.0.0/PKG-INFO +0 -182
  6. labtasker-1.0.0/README.md +0 -113
  7. labtasker-1.0.0/labtasker/__init__.py +0 -20
  8. labtasker-1.0.0/labtasker/__main__.py +0 -14
  9. labtasker-1.0.0/labtasker/api_models.py +0 -497
  10. labtasker-1.0.0/labtasker/client/__init__.py +0 -0
  11. labtasker-1.0.0/labtasker/client/cli/__init__.py +0 -26
  12. labtasker-1.0.0/labtasker/client/cli/cli.py +0 -60
  13. labtasker-1.0.0/labtasker/client/cli/config.py +0 -94
  14. labtasker-1.0.0/labtasker/client/cli/event.py +0 -228
  15. labtasker-1.0.0/labtasker/client/cli/init.py +0 -287
  16. labtasker-1.0.0/labtasker/client/cli/loop.py +0 -197
  17. labtasker-1.0.0/labtasker/client/cli/queue.py +0 -241
  18. labtasker-1.0.0/labtasker/client/cli/task.py +0 -760
  19. labtasker-1.0.0/labtasker/client/cli/worker.py +0 -251
  20. labtasker-1.0.0/labtasker/client/client_api.py +0 -145
  21. labtasker-1.0.0/labtasker/client/core/__init__.py +0 -0
  22. labtasker-1.0.0/labtasker/client/core/api.py +0 -480
  23. labtasker-1.0.0/labtasker/client/core/cli_utils.py +0 -688
  24. labtasker-1.0.0/labtasker/client/core/cmd_parser/LabCmd.g4 +0 -14
  25. labtasker-1.0.0/labtasker/client/core/cmd_parser/LabCmdLexer.g4 +0 -16
  26. labtasker-1.0.0/labtasker/client/core/cmd_parser/__init__.py +0 -5
  27. labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/LabCmd.py +0 -634
  28. labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/LabCmdLexer.py +0 -574
  29. labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/LabCmdListener.py +0 -54
  30. labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/__init__.py +0 -0
  31. labtasker-1.0.0/labtasker/client/core/cmd_parser/parser.py +0 -368
  32. labtasker-1.0.0/labtasker/client/core/config.py +0 -166
  33. labtasker-1.0.0/labtasker/client/core/context.py +0 -59
  34. labtasker-1.0.0/labtasker/client/core/events.py +0 -247
  35. labtasker-1.0.0/labtasker/client/core/exceptions.py +0 -89
  36. labtasker-1.0.0/labtasker/client/core/heartbeat.py +0 -133
  37. labtasker-1.0.0/labtasker/client/core/job_runner.py +0 -421
  38. labtasker-1.0.0/labtasker/client/core/logging.py +0 -429
  39. labtasker-1.0.0/labtasker/client/core/pager.py +0 -119
  40. labtasker-1.0.0/labtasker/client/core/paths.py +0 -78
  41. labtasker-1.0.0/labtasker/client/core/plugin_utils.py +0 -72
  42. labtasker-1.0.0/labtasker/client/core/query_transpiler.py +0 -1019
  43. labtasker-1.0.0/labtasker/client/core/resolver/__init__.py +0 -6
  44. labtasker-1.0.0/labtasker/client/core/resolver/models.py +0 -37
  45. labtasker-1.0.0/labtasker/client/core/resolver/utils.py +0 -316
  46. labtasker-1.0.0/labtasker/client/core/utils.py +0 -263
  47. labtasker-1.0.0/labtasker/client/core/version_checker.py +0 -157
  48. labtasker-1.0.0/labtasker/client/templates/labtasker_root/.gitignore +0 -4
  49. labtasker-1.0.0/labtasker/client/templates/labtasker_root/client.toml +0 -20
  50. labtasker-1.0.0/labtasker/client/templates/labtasker_root/logs/.gitkeep +0 -1
  51. labtasker-1.0.0/labtasker/constants.py +0 -10
  52. labtasker-1.0.0/labtasker/filtering.py +0 -122
  53. labtasker-1.0.0/labtasker/security.py +0 -26
  54. labtasker-1.0.0/labtasker/server/__init__.py +0 -0
  55. labtasker-1.0.0/labtasker/server/cli.py +0 -90
  56. labtasker-1.0.0/labtasker/server/config.py +0 -63
  57. labtasker-1.0.0/labtasker/server/database.py +0 -1234
  58. labtasker-1.0.0/labtasker/server/db_utils.py +0 -319
  59. labtasker-1.0.0/labtasker/server/dependencies.py +0 -39
  60. labtasker-1.0.0/labtasker/server/embedded_db.py +0 -420
  61. labtasker-1.0.0/labtasker/server/endpoints.py +0 -543
  62. labtasker-1.0.0/labtasker/server/event_manager.py +0 -122
  63. labtasker-1.0.0/labtasker/server/fsm.py +0 -413
  64. labtasker-1.0.0/labtasker/server/logging.py +0 -44
  65. labtasker-1.0.0/labtasker/utils.py +0 -346
  66. labtasker-1.0.0/labtasker/vendor/README.txt +0 -8
  67. labtasker-1.0.0/labtasker/vendor/__init__.py +0 -0
  68. labtasker-1.0.0/labtasker/vendor/antlr4/BufferedTokenStream.py +0 -302
  69. labtasker-1.0.0/labtasker/vendor/antlr4/CommonTokenFactory.py +0 -61
  70. labtasker-1.0.0/labtasker/vendor/antlr4/CommonTokenStream.py +0 -87
  71. labtasker-1.0.0/labtasker/vendor/antlr4/FileStream.py +0 -27
  72. labtasker-1.0.0/labtasker/vendor/antlr4/InputStream.py +0 -87
  73. labtasker-1.0.0/labtasker/vendor/antlr4/IntervalSet.py +0 -180
  74. labtasker-1.0.0/labtasker/vendor/antlr4/LL1Analyzer.py +0 -173
  75. labtasker-1.0.0/labtasker/vendor/antlr4/Lexer.py +0 -329
  76. labtasker-1.0.0/labtasker/vendor/antlr4/ListTokenSource.py +0 -144
  77. labtasker-1.0.0/labtasker/vendor/antlr4/Parser.py +0 -580
  78. labtasker-1.0.0/labtasker/vendor/antlr4/ParserInterpreter.py +0 -170
  79. labtasker-1.0.0/labtasker/vendor/antlr4/ParserRuleContext.py +0 -186
  80. labtasker-1.0.0/labtasker/vendor/antlr4/PredictionContext.py +0 -629
  81. labtasker-1.0.0/labtasker/vendor/antlr4/Recognizer.py +0 -147
  82. labtasker-1.0.0/labtasker/vendor/antlr4/RuleContext.py +0 -227
  83. labtasker-1.0.0/labtasker/vendor/antlr4/StdinStream.py +0 -11
  84. labtasker-1.0.0/labtasker/vendor/antlr4/Token.py +0 -155
  85. labtasker-1.0.0/labtasker/vendor/antlr4/TokenStreamRewriter.py +0 -255
  86. labtasker-1.0.0/labtasker/vendor/antlr4/Utils.py +0 -33
  87. labtasker-1.0.0/labtasker/vendor/antlr4/__init__.py +0 -21
  88. labtasker-1.0.0/labtasker/vendor/antlr4/_pygrun.py +0 -171
  89. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATN.py +0 -132
  90. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNConfig.py +0 -159
  91. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNConfigSet.py +0 -212
  92. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNDeserializationOptions.py +0 -24
  93. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNDeserializer.py +0 -446
  94. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNSimulator.py +0 -47
  95. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNState.py +0 -264
  96. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNType.py +0 -17
  97. labtasker-1.0.0/labtasker/vendor/antlr4/atn/LexerATNSimulator.py +0 -570
  98. labtasker-1.0.0/labtasker/vendor/antlr4/atn/LexerAction.py +0 -298
  99. labtasker-1.0.0/labtasker/vendor/antlr4/atn/LexerActionExecutor.py +0 -143
  100. labtasker-1.0.0/labtasker/vendor/antlr4/atn/ParserATNSimulator.py +0 -1661
  101. labtasker-1.0.0/labtasker/vendor/antlr4/atn/PredictionMode.py +0 -499
  102. labtasker-1.0.0/labtasker/vendor/antlr4/atn/SemanticContext.py +0 -330
  103. labtasker-1.0.0/labtasker/vendor/antlr4/atn/Transition.py +0 -268
  104. labtasker-1.0.0/labtasker/vendor/antlr4/atn/__init__.py +0 -1
  105. labtasker-1.0.0/labtasker/vendor/antlr4/dfa/DFA.py +0 -133
  106. labtasker-1.0.0/labtasker/vendor/antlr4/dfa/DFASerializer.py +0 -73
  107. labtasker-1.0.0/labtasker/vendor/antlr4/dfa/DFAState.py +0 -126
  108. labtasker-1.0.0/labtasker/vendor/antlr4/dfa/__init__.py +0 -1
  109. labtasker-1.0.0/labtasker/vendor/antlr4/error/DiagnosticErrorListener.py +0 -107
  110. labtasker-1.0.0/labtasker/vendor/antlr4/error/ErrorListener.py +0 -72
  111. labtasker-1.0.0/labtasker/vendor/antlr4/error/ErrorStrategy.py +0 -709
  112. labtasker-1.0.0/labtasker/vendor/antlr4/error/Errors.py +0 -173
  113. labtasker-1.0.0/labtasker/vendor/antlr4/error/__init__.py +0 -1
  114. labtasker-1.0.0/labtasker/vendor/antlr4/tree/Chunk.py +0 -30
  115. labtasker-1.0.0/labtasker/vendor/antlr4/tree/ParseTreeMatch.py +0 -118
  116. labtasker-1.0.0/labtasker/vendor/antlr4/tree/ParseTreePattern.py +0 -72
  117. labtasker-1.0.0/labtasker/vendor/antlr4/tree/ParseTreePatternMatcher.py +0 -374
  118. labtasker-1.0.0/labtasker/vendor/antlr4/tree/RuleTagToken.py +0 -50
  119. labtasker-1.0.0/labtasker/vendor/antlr4/tree/TokenTagToken.py +0 -47
  120. labtasker-1.0.0/labtasker/vendor/antlr4/tree/Tree.py +0 -191
  121. labtasker-1.0.0/labtasker/vendor/antlr4/tree/Trees.py +0 -111
  122. labtasker-1.0.0/labtasker/vendor/antlr4/tree/__init__.py +0 -0
  123. labtasker-1.0.0/labtasker/vendor/antlr4/xpath/XPath.py +0 -269
  124. labtasker-1.0.0/labtasker/vendor/antlr4/xpath/XPathLexer.py +0 -95
  125. labtasker-1.0.0/labtasker/vendor/antlr4/xpath/__init__.py +0 -1
  126. labtasker-1.0.0/labtasker/vendor/vendor.txt +0 -1
  127. labtasker-1.0.0/labtasker.egg-info/SOURCES.txt +0 -213
  128. labtasker-1.0.0/pyproject.toml +0 -171
  129. labtasker-1.0.0/setup.cfg +0 -4
  130. labtasker-1.0.0/tests/__init__.py +0 -0
  131. labtasker-1.0.0/tests/conftest.py +0 -170
  132. labtasker-1.0.0/tests/demo_pager_iterator.py +0 -72
  133. labtasker-1.0.0/tests/dummy_jobs/job_1.py +0 -39
  134. labtasker-1.0.0/tests/fixtures/__init__.py +0 -0
  135. labtasker-1.0.0/tests/fixtures/database/__init__.py +0 -4
  136. labtasker-1.0.0/tests/fixtures/database/mock.py +0 -19
  137. labtasker-1.0.0/tests/fixtures/database/real.py +0 -58
  138. labtasker-1.0.0/tests/fixtures/logging.py +0 -23
  139. labtasker-1.0.0/tests/fixtures/mock_datetime_now.py +0 -38
  140. labtasker-1.0.0/tests/fixtures/server/__init__.py +0 -2
  141. labtasker-1.0.0/tests/fixtures/server/async_app.py +0 -16
  142. labtasker-1.0.0/tests/fixtures/server/sync_app.py +0 -13
  143. labtasker-1.0.0/tests/test_api_models.py +0 -18
  144. labtasker-1.0.0/tests/test_client/__init__.py +0 -0
  145. labtasker-1.0.0/tests/test_client/conftest.py +0 -170
  146. labtasker-1.0.0/tests/test_client/test_cli/__init__.py +0 -0
  147. labtasker-1.0.0/tests/test_client/test_cli/conftest.py +0 -119
  148. labtasker-1.0.0/tests/test_client/test_cli/test_basic.py +0 -15
  149. labtasker-1.0.0/tests/test_client/test_cli/test_config.py +0 -58
  150. labtasker-1.0.0/tests/test_client/test_cli/test_event.py +0 -125
  151. labtasker-1.0.0/tests/test_client/test_cli/test_init.py +0 -250
  152. labtasker-1.0.0/tests/test_client/test_cli/test_loop.py +0 -171
  153. labtasker-1.0.0/tests/test_client/test_cli/test_queue.py +0 -193
  154. labtasker-1.0.0/tests/test_client/test_cli/test_task.py +0 -707
  155. labtasker-1.0.0/tests/test_client/test_cli/test_worker.py +0 -179
  156. labtasker-1.0.0/tests/test_client/test_core/__init__.py +0 -0
  157. labtasker-1.0.0/tests/test_client/test_core/test_cli_utils.py +0 -256
  158. labtasker-1.0.0/tests/test_client/test_core/test_event/__init__.py +0 -0
  159. labtasker-1.0.0/tests/test_client/test_core/test_event/test_concurrency_job_flow_event.py +0 -285
  160. labtasker-1.0.0/tests/test_client/test_core/test_event/test_event_listener_basic.py +0 -106
  161. labtasker-1.0.0/tests/test_client/test_core/test_event/test_event_listener_entity_data.py +0 -108
  162. labtasker-1.0.0/tests/test_client/test_core/test_event/test_various_actions.py +0 -278
  163. labtasker-1.0.0/tests/test_client/test_core/test_event/utils.py +0 -15
  164. labtasker-1.0.0/tests/test_client/test_core/test_heartbeat_e2e.py +0 -73
  165. labtasker-1.0.0/tests/test_client/test_core/test_heartbeat_unit.py +0 -95
  166. labtasker-1.0.0/tests/test_client/test_core/test_job_runner.py +0 -193
  167. labtasker-1.0.0/tests/test_client/test_core/test_logging.py +0 -279
  168. labtasker-1.0.0/tests/test_client/test_core/test_loop_internal_error_handler.py +0 -68
  169. labtasker-1.0.0/tests/test_client/test_core/test_pager_iterator.py +0 -98
  170. labtasker-1.0.0/tests/test_client/test_core/test_parser.py +0 -138
  171. labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/__init__.py +0 -0
  172. labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/conftest.py +0 -15
  173. labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/test_behavior.py +0 -516
  174. labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/test_matching.py +0 -1011
  175. labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/test_utils.py +0 -408
  176. labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/utils.py +0 -136
  177. labtasker-1.0.0/tests/test_client/test_core/test_resolver.py +0 -405
  178. labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/__init__.py +0 -0
  179. labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/run_concurrent.py +0 -173
  180. labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/test_runner_concurrency_success_failure.py +0 -241
  181. labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/test_runner_high_concurrency.py +0 -144
  182. labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/__init__.py +0 -0
  183. labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/conftest.py +0 -34
  184. labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/test_job_runner_timeout.py +0 -125
  185. labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/test_job_runner_with_resolver_timeout.py +0 -122
  186. labtasker-1.0.0/tests/test_client/test_core/test_runner_with_resolver.py +0 -607
  187. labtasker-1.0.0/tests/test_client/test_core/test_server_notification_and_client_version.py +0 -69
  188. labtasker-1.0.0/tests/test_client/test_core/test_version_checker.py +0 -72
  189. labtasker-1.0.0/tests/test_filtering/__init__.py +0 -0
  190. labtasker-1.0.0/tests/test_filtering/exception_utils.py +0 -76
  191. labtasker-1.0.0/tests/test_filtering/test_exception_filtering.py +0 -106
  192. labtasker-1.0.0/tests/test_mock_time.py +0 -37
  193. labtasker-1.0.0/tests/test_security.py +0 -16
  194. labtasker-1.0.0/tests/test_server/__init__.py +0 -0
  195. labtasker-1.0.0/tests/test_server/conftest.py +0 -31
  196. labtasker-1.0.0/tests/test_server/test_database/__init__.py +0 -0
  197. labtasker-1.0.0/tests/test_server/test_database/conftest.py +0 -64
  198. labtasker-1.0.0/tests/test_server/test_database/test_database_basic.py +0 -877
  199. labtasker-1.0.0/tests/test_server/test_database/test_fetch_extra_filter.py +0 -82
  200. labtasker-1.0.0/tests/test_server/test_database/test_query_dict_to_mongo_filter.py +0 -96
  201. labtasker-1.0.0/tests/test_server/test_database/test_required_field_fetching.py +0 -280
  202. labtasker-1.0.0/tests/test_server/test_db_utils/__init__.py +0 -0
  203. labtasker-1.0.0/tests/test_server/test_db_utils/test_arg_match.py +0 -131
  204. labtasker-1.0.0/tests/test_server/test_db_utils/test_keys_to_query_dict.py +0 -30
  205. labtasker-1.0.0/tests/test_server/test_db_utils/test_keys_to_query_dict_deepest.py +0 -78
  206. labtasker-1.0.0/tests/test_server/test_db_utils/test_keys_to_query_dict_topmost.py +0 -44
  207. labtasker-1.0.0/tests/test_server/test_embedded_db.py +0 -41
  208. labtasker-1.0.0/tests/test_server/test_endpoint/__init__.py +0 -0
  209. labtasker-1.0.0/tests/test_server/test_endpoint/test_event_basic.py +0 -197
  210. labtasker-1.0.0/tests/test_server/test_endpoint/test_server.py +0 -723
  211. labtasker-1.0.0/tests/test_server/test_endpoint/test_server_async.py +0 -111
  212. labtasker-1.0.0/tests/test_server/test_endpoint/test_server_async_ping.py +0 -15
  213. labtasker-1.0.0/tests/test_server/test_fsm.py +0 -184
  214. labtasker-1.0.0/tests/test_server/test_get_verified_queue_dependency.py +0 -73
  215. labtasker-1.0.0/tests/test_utils/__init__.py +0 -0
  216. labtasker-1.0.0/tests/test_utils/test_utils.py +0 -337
  217. labtasker-1.0.0/tests/utils.py +0 -16
  218. labtasker-1.0.0/tox.ini +0 -28
  219. {labtasker-1.0.0 → labtasker-2.0.0}/LICENSE +0 -0
@@ -0,0 +1,14 @@
1
+ .venv/
2
+ .pytest_cache/
3
+ .coverage
4
+ coverage.xml
5
+ htmlcov/
6
+ .mypy_cache/
7
+ .ruff_cache/
8
+ __pycache__/
9
+ *.py[cod]
10
+ *.egg-info/
11
+ build/
12
+ dist/
13
+ site/
14
+ .labtasker/
@@ -0,0 +1,12 @@
1
+ Metadata-Version: 2.5
2
+ Name: labtasker
3
+ Version: 2.0.0
4
+ Summary: Complete Labtasker installation with Client and local Server
5
+ Project-URL: Homepage, https://github.com/luocfprime/labtasker
6
+ Project-URL: Repository, https://github.com/luocfprime/labtasker.git
7
+ Author-email: lcf <luocfprime@gmail.com>
8
+ License-Expression: Apache-2.0
9
+ License-File: LICENSE
10
+ Requires-Python: >=3.11
11
+ Requires-Dist: labtasker-client==2.0.0
12
+ Requires-Dist: labtasker-server==2.0.0
@@ -0,0 +1,27 @@
1
+ [build-system]
2
+ requires = ["hatchling>=1.27"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "labtasker"
7
+ version = "2.0.0"
8
+ description = "Complete Labtasker installation with Client and local Server"
9
+ requires-python = ">=3.11"
10
+ license = "Apache-2.0"
11
+ license-files = ["LICENSE"]
12
+ authors = [{ name = "lcf", email = "luocfprime@gmail.com" }]
13
+ dependencies = [
14
+ "labtasker-client==2.0.0",
15
+ "labtasker-server==2.0.0",
16
+ ]
17
+
18
+ [tool.uv.sources]
19
+ labtasker-client = { workspace = true }
20
+ labtasker-server = { workspace = true }
21
+
22
+ [project.urls]
23
+ Homepage = "https://github.com/luocfprime/labtasker"
24
+ Repository = "https://github.com/luocfprime/labtasker.git"
25
+
26
+ [tool.hatch.build.targets.wheel]
27
+ bypass-selection = true
@@ -1,30 +0,0 @@
1
- graft labtasker
2
- graft tests
3
-
4
- include tox.ini
5
-
6
- prune build
7
- prune dist
8
- prune labtasker.egg-info
9
-
10
- prune .venv
11
- prune .tox
12
- prune .benchmarks
13
-
14
- prune plugins
15
-
16
- exclude Makefile
17
- exclude coverage.xml
18
-
19
- exclude poetry.lock
20
- exclude poetry.toml
21
-
22
- exclude labtasker_db.json
23
-
24
- prune .vscode
25
- prune .github
26
-
27
- global-exclude *~ *.py[cod] *.so *.coverage
28
-
29
- prune __pycache__
30
- prune docs
labtasker-1.0.0/PKG-INFO DELETED
@@ -1,182 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: labtasker
3
- Version: 1.0.0
4
- Summary: A task queue system for lab experiments
5
- Author-email: Your Name <your.email@example.com>
6
- License: Apache License 2.0
7
- Project-URL: Homepage, https://github.com/luocfprime/labtasker
8
- Project-URL: Documentation, https://luocfprime.github.io/labtasker
9
- Project-URL: Repository, https://github.com/luocfprime/labtasker.git
10
- Classifier: Intended Audience :: Science/Research
11
- Classifier: License :: OSI Approved :: Apache Software License
12
- Classifier: Operating System :: OS Independent
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Requires-Python: <4.0,>=3.10
19
- Description-Content-Type: text/markdown
20
- License-File: LICENSE
21
- Requires-Dist: pymongo<5.0.0,>=4.0.0
22
- Requires-Dist: fastapi<0.137.0,>=0.115.0
23
- Requires-Dist: uvicorn[standard]<0.45.0,>=0.15.0
24
- Requires-Dist: click<9.0.0,>=8.2.0
25
- Requires-Dist: passlib<2.0.0,>=1.7.0
26
- Requires-Dist: pydantic-settings<3.0.0,>=2.8.0
27
- Requires-Dist: httpx[socks]<0.29.0,>=0.28.0
28
- Requires-Dist: typer<0.25.0,>=0.16.0
29
- Requires-Dist: loguru<0.8.0,>=0.7.0
30
- Requires-Dist: ruamel-yaml<0.20.0,>=0.18.10
31
- Requires-Dist: pyyaml<7.0.0,>=6.0.0
32
- Requires-Dist: tomlkit<0.15.0,>=0.13.2
33
- Requires-Dist: importlib-metadata<10.0.0,>=8.5.0
34
- Requires-Dist: packaging<27.0,>=24.2
35
- Requires-Dist: sse-starlette<4.0.0,>=2.1.3
36
- Requires-Dist: httpx-sse<0.5.0,>=0.4.0
37
- Requires-Dist: stamina<27.0.0,>=25.1.0
38
- Requires-Dist: noneprompt<0.2.0,>=0.1.9
39
- Requires-Dist: mongomock<4.4.0,>=4.3.0
40
- Requires-Dist: jsonpickle<5.0.0,>=4.0.2
41
- Requires-Dist: mslex<2.0.0,>=1.3.0
42
- Requires-Dist: pexpect<5.0.0,>=4.9.0
43
- Requires-Dist: pip>=25
44
- Requires-Dist: dateparser<2.0.0,>=1.2.2
45
- Provides-Extra: dev
46
- Requires-Dist: pytest<10.0.0,>=8.0.0; extra == "dev"
47
- Requires-Dist: pytest-cov<8.0.0,>=5.0.0; extra == "dev"
48
- Requires-Dist: black<27.0.0,>=24.0.0; extra == "dev"
49
- Requires-Dist: isort<9.0.0,>=5.13.0; extra == "dev"
50
- Requires-Dist: mypy<2.0.0,>=1.14.0; extra == "dev"
51
- Requires-Dist: flake8<8.0.0,>=7.0.0; extra == "dev"
52
- Requires-Dist: pre-commit<5.0.0,>=3.0.0; extra == "dev"
53
- Requires-Dist: freezegun<2.0.0,>=1.5.0; extra == "dev"
54
- Requires-Dist: pytest-docker<4.0.0,>=3.0.0; extra == "dev"
55
- Requires-Dist: pytest-asyncio<1.4.0,>=0.24.0; extra == "dev"
56
- Requires-Dist: asgi-lifespan<3.0.0,>=2.1.0; extra == "dev"
57
- Requires-Dist: tox<4.54.0,>=4.24.0; extra == "dev"
58
- Requires-Dist: pytest-dependency<0.7.0,>=0.6.0; extra == "dev"
59
- Requires-Dist: pytest-sugar<2.0.0,>=1.0.0; extra == "dev"
60
- Requires-Dist: rust-just<2.0.0,>=1.42.4; extra == "dev"
61
- Provides-Extra: doc
62
- Requires-Dist: mkdocs-material<9.8.0,>=9.6.5; extra == "doc"
63
- Requires-Dist: mkdocs-glightbox<0.6.0,>=0.4.0; extra == "doc"
64
- Requires-Dist: mike<2.3.0,>=2.1.3; extra == "doc"
65
- Provides-Extra: plugins
66
- Requires-Dist: labtasker-plugin-task-count; extra == "plugins"
67
- Requires-Dist: labtasker-plugin-task-recency; extra == "plugins"
68
- Dynamic: license-file
69
-
70
- <p align="center"><em>Make your ML experiment wrapper scripts smarter with...</em></p>
71
- <p align="center">
72
- <img src="docs/docs/assets/logo.png" alt="Labtasker" width="350" />
73
- </p>
74
- <p align="center"><a href="https://luocfprime.github.io/labtasker/latest/install/install/">Install</a> • <a href="https://luocfprime.github.io/labtasker/latest/guide/basic/">Tutorial / Demo</a> • <a href="https://luocfprime.github.io/labtasker/latest/">Documentation</a> • <a href="https://luocfprime.github.io/labtasker/latest/faq/">FAQs</a> • <a href="https://github.com/luocfprime/labtasker/releases">Releases</a></p>
75
-
76
- <p align="center">
77
- <img src="https://github.com/luocfprime/labtasker/actions/workflows/unit-test-matrix.yml/badge.svg" alt="unit-test-matrix" />
78
- <a href="https://codecov.io/gh/luocfprime/labtasker"><img src="https://codecov.io/gh/luocfprime/labtasker/graph/badge.svg?token=KQFBV3QRPY" alt="codecov" /></a>
79
- <img src="https://img.shields.io/badge/Python-3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12%20|%203.13-blue" alt="Python version" />
80
- <a href="https://pypi.org/project/labtasker/"><img src="https://img.shields.io/pypi/v/labtasker" alt="PyPI" /></a>
81
- </p>
82
-
83
-
84
- **<span style="font-size: 20px;"> 🌟 Labtasker makes ML experiment wrapper scripts smarter with task prioritization,
85
- failure handling, halfway resume and more: just change 1 line of code.</span>**
86
-
87
- If you like our project, please give us a star ⭐ on GitHub for latest update.
88
-
89
- ## ✨ When and Where to Use
90
-
91
- **TLDR**: Replace `for` loops in your experiment *wrapper script* with labtasker to enable features like experiment
92
- parallelization, dynamic task prioritization, failure handling, halfway resume, and more.
93
-
94
- ![comparison](docs/docs/assets/comparison.png)
95
-
96
- 🐳 For detailed examples and concepts, check out the [documentation](https://luocfprime.github.io/labtasker/).
97
-
98
- ## 🧪️ A Quick Demo
99
-
100
- This demo shows how to easily submit task arguments and run jobs in parallel.
101
-
102
- It also features an event listener to monitor task execution in real-time and automate workflows,
103
- such as sending emails on task failure.
104
-
105
- ![demo](docs/docs/assets/gifs/demo.gif)
106
-
107
- For more detailed steps, please refer to the content in
108
- the [Tutorial / Demo](https://luocfprime.github.io/labtasker/latest/guide/basic/).
109
-
110
- ## ⚡️ Features
111
-
112
- - ⚙️ Easy configuration and setup.
113
- - 🧩 Versatile and minimalistic design.
114
- - 🔄 Supports both CLI and Python API for task scheduling.
115
- - 🔌 Customizable plugin system.
116
-
117
- ## 🔮 Supercharge Your ML Experiments with Labtasker
118
-
119
- - ⚡️ **Effortless Parallelization:** Distribute tasks across multiple GPU workers with just a few lines of code.
120
- - 🛡️ **Intelligent Failure Management:** Automatically capture exceptions, retry failed tasks, and maintain detailed
121
- error logs.
122
- - 🔄 **Seamless Recovery:** Resume failed experiments with a single command - no more scavenging through logs or
123
- directories.
124
- - 🎯 **Real-time Prioritization:** Changed your mind about experiment settings? Instantly cancel, add, or reschedule
125
- tasks without disrupting existing ones.
126
- - 🤖 **Workflow Automation:** Set up smart event triggers for email notifications or task workflow based on FSM
127
- transition events.
128
- - 📊 **Streamlined Logging:** All stdout/stderr automatically organized in `.labtasker/logs` - zero configuration
129
- required.
130
- - 🧩 **Extensible Plugin System:** Create custom command combinations or leverage community plugins to extend
131
- functionality.
132
- - 🦾 **AI Agent Skills:** First-class skill definitions for [Claude Code](https://claude.ai/code) and [OpenCode](https://opencode.ai) — let your AI assistant decompose and manage experiment scripts automatically.
133
-
134
- ## 🛠️ Installation
135
-
136
- > [!NOTE]
137
- > You need a running Labtasker server to use the client tools.
138
- > Simply use the installed Python CLI `labtasker-server serve` or use docker-compose to deploy the server.
139
- > See [deployment instructions](https://luocfprime.github.io/labtasker/latest/install/deployment/).
140
-
141
- ### 1. Install via PyPI
142
-
143
- ```bash
144
- # Install with optional bundled plugins
145
- pip install 'labtasker[plugins]'
146
- ```
147
-
148
- ### 2. Install the Latest Version from GitHub
149
-
150
- ```bash
151
- pip install git+https://github.com/luocfprime/labtasker.git
152
- ```
153
-
154
- ## 🚀 Quick Start
155
-
156
- Use the following command to launch a labtasker server in the background:
157
-
158
- ```bash
159
- labtasker-server serve &
160
- ```
161
-
162
- Use the following command to quickly setup a labtasker queue for your project:
163
-
164
- ```bash
165
- labtasker init
166
- ```
167
-
168
- Then, use `labtasker submit` to submit tasks and use `labtasker loop` to run tasks across any number of workers.
169
-
170
- > [!TIP]
171
- > Use AI to help decompose your experiment scripts. Install the Labtasker skill for your agent:
172
- >
173
- > **Claude Code** — copy [`docs/docs/guide/skill.md`](docs/docs/guide/skill.md) (Claude Code section) to `~/.claude/skills/labtasker/SKILL.md`
174
-
175
- ## 📚 Documentation
176
-
177
- For detailed information on demo, tutorial, deployment, usage, please refer to
178
- the [documentation](https://luocfprime.github.io/labtasker/).
179
-
180
- ## 🔒 License
181
-
182
- See [LICENSE](LICENSE) for details.
labtasker-1.0.0/README.md DELETED
@@ -1,113 +0,0 @@
1
- <p align="center"><em>Make your ML experiment wrapper scripts smarter with...</em></p>
2
- <p align="center">
3
- <img src="docs/docs/assets/logo.png" alt="Labtasker" width="350" />
4
- </p>
5
- <p align="center"><a href="https://luocfprime.github.io/labtasker/latest/install/install/">Install</a> • <a href="https://luocfprime.github.io/labtasker/latest/guide/basic/">Tutorial / Demo</a> • <a href="https://luocfprime.github.io/labtasker/latest/">Documentation</a> • <a href="https://luocfprime.github.io/labtasker/latest/faq/">FAQs</a> • <a href="https://github.com/luocfprime/labtasker/releases">Releases</a></p>
6
-
7
- <p align="center">
8
- <img src="https://github.com/luocfprime/labtasker/actions/workflows/unit-test-matrix.yml/badge.svg" alt="unit-test-matrix" />
9
- <a href="https://codecov.io/gh/luocfprime/labtasker"><img src="https://codecov.io/gh/luocfprime/labtasker/graph/badge.svg?token=KQFBV3QRPY" alt="codecov" /></a>
10
- <img src="https://img.shields.io/badge/Python-3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12%20|%203.13-blue" alt="Python version" />
11
- <a href="https://pypi.org/project/labtasker/"><img src="https://img.shields.io/pypi/v/labtasker" alt="PyPI" /></a>
12
- </p>
13
-
14
-
15
- **<span style="font-size: 20px;"> 🌟 Labtasker makes ML experiment wrapper scripts smarter with task prioritization,
16
- failure handling, halfway resume and more: just change 1 line of code.</span>**
17
-
18
- If you like our project, please give us a star ⭐ on GitHub for latest update.
19
-
20
- ## ✨ When and Where to Use
21
-
22
- **TLDR**: Replace `for` loops in your experiment *wrapper script* with labtasker to enable features like experiment
23
- parallelization, dynamic task prioritization, failure handling, halfway resume, and more.
24
-
25
- ![comparison](docs/docs/assets/comparison.png)
26
-
27
- 🐳 For detailed examples and concepts, check out the [documentation](https://luocfprime.github.io/labtasker/).
28
-
29
- ## 🧪️ A Quick Demo
30
-
31
- This demo shows how to easily submit task arguments and run jobs in parallel.
32
-
33
- It also features an event listener to monitor task execution in real-time and automate workflows,
34
- such as sending emails on task failure.
35
-
36
- ![demo](docs/docs/assets/gifs/demo.gif)
37
-
38
- For more detailed steps, please refer to the content in
39
- the [Tutorial / Demo](https://luocfprime.github.io/labtasker/latest/guide/basic/).
40
-
41
- ## ⚡️ Features
42
-
43
- - ⚙️ Easy configuration and setup.
44
- - 🧩 Versatile and minimalistic design.
45
- - 🔄 Supports both CLI and Python API for task scheduling.
46
- - 🔌 Customizable plugin system.
47
-
48
- ## 🔮 Supercharge Your ML Experiments with Labtasker
49
-
50
- - ⚡️ **Effortless Parallelization:** Distribute tasks across multiple GPU workers with just a few lines of code.
51
- - 🛡️ **Intelligent Failure Management:** Automatically capture exceptions, retry failed tasks, and maintain detailed
52
- error logs.
53
- - 🔄 **Seamless Recovery:** Resume failed experiments with a single command - no more scavenging through logs or
54
- directories.
55
- - 🎯 **Real-time Prioritization:** Changed your mind about experiment settings? Instantly cancel, add, or reschedule
56
- tasks without disrupting existing ones.
57
- - 🤖 **Workflow Automation:** Set up smart event triggers for email notifications or task workflow based on FSM
58
- transition events.
59
- - 📊 **Streamlined Logging:** All stdout/stderr automatically organized in `.labtasker/logs` - zero configuration
60
- required.
61
- - 🧩 **Extensible Plugin System:** Create custom command combinations or leverage community plugins to extend
62
- functionality.
63
- - 🦾 **AI Agent Skills:** First-class skill definitions for [Claude Code](https://claude.ai/code) and [OpenCode](https://opencode.ai) — let your AI assistant decompose and manage experiment scripts automatically.
64
-
65
- ## 🛠️ Installation
66
-
67
- > [!NOTE]
68
- > You need a running Labtasker server to use the client tools.
69
- > Simply use the installed Python CLI `labtasker-server serve` or use docker-compose to deploy the server.
70
- > See [deployment instructions](https://luocfprime.github.io/labtasker/latest/install/deployment/).
71
-
72
- ### 1. Install via PyPI
73
-
74
- ```bash
75
- # Install with optional bundled plugins
76
- pip install 'labtasker[plugins]'
77
- ```
78
-
79
- ### 2. Install the Latest Version from GitHub
80
-
81
- ```bash
82
- pip install git+https://github.com/luocfprime/labtasker.git
83
- ```
84
-
85
- ## 🚀 Quick Start
86
-
87
- Use the following command to launch a labtasker server in the background:
88
-
89
- ```bash
90
- labtasker-server serve &
91
- ```
92
-
93
- Use the following command to quickly setup a labtasker queue for your project:
94
-
95
- ```bash
96
- labtasker init
97
- ```
98
-
99
- Then, use `labtasker submit` to submit tasks and use `labtasker loop` to run tasks across any number of workers.
100
-
101
- > [!TIP]
102
- > Use AI to help decompose your experiment scripts. Install the Labtasker skill for your agent:
103
- >
104
- > **Claude Code** — copy [`docs/docs/guide/skill.md`](docs/docs/guide/skill.md) (Claude Code section) to `~/.claude/skills/labtasker/SKILL.md`
105
-
106
- ## 📚 Documentation
107
-
108
- For detailed information on demo, tutorial, deployment, usage, please refer to
109
- the [documentation](https://luocfprime.github.io/labtasker/).
110
-
111
- ## 🔒 License
112
-
113
- See [LICENSE](LICENSE) for details.
@@ -1,20 +0,0 @@
1
- from importlib.metadata import version
2
-
3
- __application__ = "labtasker"
4
- __version__: str = version(__application__)
5
-
6
- from labtasker.client.client_api import *
7
- from labtasker.client.core.config import get_client_config
8
- from labtasker.client.core.exceptions import *
9
- from labtasker.client.core.paths import get_labtasker_client_config_path
10
- from labtasker.client.core.version_checker import check_package_version
11
- from labtasker.filtering import install_traceback_filter, set_traceback_filter_hook
12
-
13
- check_package_version()
14
-
15
- # by default, traceback filter is enabled.
16
- # you may disable it via client config
17
- if get_labtasker_client_config_path().exists():
18
- if get_client_config().enable_traceback_filter:
19
- install_traceback_filter()
20
- set_traceback_filter_hook(enabled=True)
@@ -1,14 +0,0 @@
1
- """Entrypoint for the cli app"""
2
-
3
- import typer
4
-
5
- from labtasker.client.cli import app
6
-
7
-
8
- def main():
9
- # Use this to invoke command to prevent typer overriding exception hook
10
- return typer.main.get_command(app).main()
11
-
12
-
13
- if __name__ == "__main__":
14
- main()