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.
- labtasker-2.0.0/.gitignore +14 -0
- labtasker-2.0.0/PKG-INFO +12 -0
- labtasker-2.0.0/pyproject.toml +27 -0
- labtasker-1.0.0/MANIFEST.in +0 -30
- labtasker-1.0.0/PKG-INFO +0 -182
- labtasker-1.0.0/README.md +0 -113
- labtasker-1.0.0/labtasker/__init__.py +0 -20
- labtasker-1.0.0/labtasker/__main__.py +0 -14
- labtasker-1.0.0/labtasker/api_models.py +0 -497
- labtasker-1.0.0/labtasker/client/__init__.py +0 -0
- labtasker-1.0.0/labtasker/client/cli/__init__.py +0 -26
- labtasker-1.0.0/labtasker/client/cli/cli.py +0 -60
- labtasker-1.0.0/labtasker/client/cli/config.py +0 -94
- labtasker-1.0.0/labtasker/client/cli/event.py +0 -228
- labtasker-1.0.0/labtasker/client/cli/init.py +0 -287
- labtasker-1.0.0/labtasker/client/cli/loop.py +0 -197
- labtasker-1.0.0/labtasker/client/cli/queue.py +0 -241
- labtasker-1.0.0/labtasker/client/cli/task.py +0 -760
- labtasker-1.0.0/labtasker/client/cli/worker.py +0 -251
- labtasker-1.0.0/labtasker/client/client_api.py +0 -145
- labtasker-1.0.0/labtasker/client/core/__init__.py +0 -0
- labtasker-1.0.0/labtasker/client/core/api.py +0 -480
- labtasker-1.0.0/labtasker/client/core/cli_utils.py +0 -688
- labtasker-1.0.0/labtasker/client/core/cmd_parser/LabCmd.g4 +0 -14
- labtasker-1.0.0/labtasker/client/core/cmd_parser/LabCmdLexer.g4 +0 -16
- labtasker-1.0.0/labtasker/client/core/cmd_parser/__init__.py +0 -5
- labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/LabCmd.py +0 -634
- labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/LabCmdLexer.py +0 -574
- labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/LabCmdListener.py +0 -54
- labtasker-1.0.0/labtasker/client/core/cmd_parser/generated/__init__.py +0 -0
- labtasker-1.0.0/labtasker/client/core/cmd_parser/parser.py +0 -368
- labtasker-1.0.0/labtasker/client/core/config.py +0 -166
- labtasker-1.0.0/labtasker/client/core/context.py +0 -59
- labtasker-1.0.0/labtasker/client/core/events.py +0 -247
- labtasker-1.0.0/labtasker/client/core/exceptions.py +0 -89
- labtasker-1.0.0/labtasker/client/core/heartbeat.py +0 -133
- labtasker-1.0.0/labtasker/client/core/job_runner.py +0 -421
- labtasker-1.0.0/labtasker/client/core/logging.py +0 -429
- labtasker-1.0.0/labtasker/client/core/pager.py +0 -119
- labtasker-1.0.0/labtasker/client/core/paths.py +0 -78
- labtasker-1.0.0/labtasker/client/core/plugin_utils.py +0 -72
- labtasker-1.0.0/labtasker/client/core/query_transpiler.py +0 -1019
- labtasker-1.0.0/labtasker/client/core/resolver/__init__.py +0 -6
- labtasker-1.0.0/labtasker/client/core/resolver/models.py +0 -37
- labtasker-1.0.0/labtasker/client/core/resolver/utils.py +0 -316
- labtasker-1.0.0/labtasker/client/core/utils.py +0 -263
- labtasker-1.0.0/labtasker/client/core/version_checker.py +0 -157
- labtasker-1.0.0/labtasker/client/templates/labtasker_root/.gitignore +0 -4
- labtasker-1.0.0/labtasker/client/templates/labtasker_root/client.toml +0 -20
- labtasker-1.0.0/labtasker/client/templates/labtasker_root/logs/.gitkeep +0 -1
- labtasker-1.0.0/labtasker/constants.py +0 -10
- labtasker-1.0.0/labtasker/filtering.py +0 -122
- labtasker-1.0.0/labtasker/security.py +0 -26
- labtasker-1.0.0/labtasker/server/__init__.py +0 -0
- labtasker-1.0.0/labtasker/server/cli.py +0 -90
- labtasker-1.0.0/labtasker/server/config.py +0 -63
- labtasker-1.0.0/labtasker/server/database.py +0 -1234
- labtasker-1.0.0/labtasker/server/db_utils.py +0 -319
- labtasker-1.0.0/labtasker/server/dependencies.py +0 -39
- labtasker-1.0.0/labtasker/server/embedded_db.py +0 -420
- labtasker-1.0.0/labtasker/server/endpoints.py +0 -543
- labtasker-1.0.0/labtasker/server/event_manager.py +0 -122
- labtasker-1.0.0/labtasker/server/fsm.py +0 -413
- labtasker-1.0.0/labtasker/server/logging.py +0 -44
- labtasker-1.0.0/labtasker/utils.py +0 -346
- labtasker-1.0.0/labtasker/vendor/README.txt +0 -8
- labtasker-1.0.0/labtasker/vendor/__init__.py +0 -0
- labtasker-1.0.0/labtasker/vendor/antlr4/BufferedTokenStream.py +0 -302
- labtasker-1.0.0/labtasker/vendor/antlr4/CommonTokenFactory.py +0 -61
- labtasker-1.0.0/labtasker/vendor/antlr4/CommonTokenStream.py +0 -87
- labtasker-1.0.0/labtasker/vendor/antlr4/FileStream.py +0 -27
- labtasker-1.0.0/labtasker/vendor/antlr4/InputStream.py +0 -87
- labtasker-1.0.0/labtasker/vendor/antlr4/IntervalSet.py +0 -180
- labtasker-1.0.0/labtasker/vendor/antlr4/LL1Analyzer.py +0 -173
- labtasker-1.0.0/labtasker/vendor/antlr4/Lexer.py +0 -329
- labtasker-1.0.0/labtasker/vendor/antlr4/ListTokenSource.py +0 -144
- labtasker-1.0.0/labtasker/vendor/antlr4/Parser.py +0 -580
- labtasker-1.0.0/labtasker/vendor/antlr4/ParserInterpreter.py +0 -170
- labtasker-1.0.0/labtasker/vendor/antlr4/ParserRuleContext.py +0 -186
- labtasker-1.0.0/labtasker/vendor/antlr4/PredictionContext.py +0 -629
- labtasker-1.0.0/labtasker/vendor/antlr4/Recognizer.py +0 -147
- labtasker-1.0.0/labtasker/vendor/antlr4/RuleContext.py +0 -227
- labtasker-1.0.0/labtasker/vendor/antlr4/StdinStream.py +0 -11
- labtasker-1.0.0/labtasker/vendor/antlr4/Token.py +0 -155
- labtasker-1.0.0/labtasker/vendor/antlr4/TokenStreamRewriter.py +0 -255
- labtasker-1.0.0/labtasker/vendor/antlr4/Utils.py +0 -33
- labtasker-1.0.0/labtasker/vendor/antlr4/__init__.py +0 -21
- labtasker-1.0.0/labtasker/vendor/antlr4/_pygrun.py +0 -171
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATN.py +0 -132
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNConfig.py +0 -159
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNConfigSet.py +0 -212
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNDeserializationOptions.py +0 -24
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNDeserializer.py +0 -446
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNSimulator.py +0 -47
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNState.py +0 -264
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ATNType.py +0 -17
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/LexerATNSimulator.py +0 -570
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/LexerAction.py +0 -298
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/LexerActionExecutor.py +0 -143
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/ParserATNSimulator.py +0 -1661
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/PredictionMode.py +0 -499
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/SemanticContext.py +0 -330
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/Transition.py +0 -268
- labtasker-1.0.0/labtasker/vendor/antlr4/atn/__init__.py +0 -1
- labtasker-1.0.0/labtasker/vendor/antlr4/dfa/DFA.py +0 -133
- labtasker-1.0.0/labtasker/vendor/antlr4/dfa/DFASerializer.py +0 -73
- labtasker-1.0.0/labtasker/vendor/antlr4/dfa/DFAState.py +0 -126
- labtasker-1.0.0/labtasker/vendor/antlr4/dfa/__init__.py +0 -1
- labtasker-1.0.0/labtasker/vendor/antlr4/error/DiagnosticErrorListener.py +0 -107
- labtasker-1.0.0/labtasker/vendor/antlr4/error/ErrorListener.py +0 -72
- labtasker-1.0.0/labtasker/vendor/antlr4/error/ErrorStrategy.py +0 -709
- labtasker-1.0.0/labtasker/vendor/antlr4/error/Errors.py +0 -173
- labtasker-1.0.0/labtasker/vendor/antlr4/error/__init__.py +0 -1
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/Chunk.py +0 -30
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/ParseTreeMatch.py +0 -118
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/ParseTreePattern.py +0 -72
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/ParseTreePatternMatcher.py +0 -374
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/RuleTagToken.py +0 -50
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/TokenTagToken.py +0 -47
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/Tree.py +0 -191
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/Trees.py +0 -111
- labtasker-1.0.0/labtasker/vendor/antlr4/tree/__init__.py +0 -0
- labtasker-1.0.0/labtasker/vendor/antlr4/xpath/XPath.py +0 -269
- labtasker-1.0.0/labtasker/vendor/antlr4/xpath/XPathLexer.py +0 -95
- labtasker-1.0.0/labtasker/vendor/antlr4/xpath/__init__.py +0 -1
- labtasker-1.0.0/labtasker/vendor/vendor.txt +0 -1
- labtasker-1.0.0/labtasker.egg-info/SOURCES.txt +0 -213
- labtasker-1.0.0/pyproject.toml +0 -171
- labtasker-1.0.0/setup.cfg +0 -4
- labtasker-1.0.0/tests/__init__.py +0 -0
- labtasker-1.0.0/tests/conftest.py +0 -170
- labtasker-1.0.0/tests/demo_pager_iterator.py +0 -72
- labtasker-1.0.0/tests/dummy_jobs/job_1.py +0 -39
- labtasker-1.0.0/tests/fixtures/__init__.py +0 -0
- labtasker-1.0.0/tests/fixtures/database/__init__.py +0 -4
- labtasker-1.0.0/tests/fixtures/database/mock.py +0 -19
- labtasker-1.0.0/tests/fixtures/database/real.py +0 -58
- labtasker-1.0.0/tests/fixtures/logging.py +0 -23
- labtasker-1.0.0/tests/fixtures/mock_datetime_now.py +0 -38
- labtasker-1.0.0/tests/fixtures/server/__init__.py +0 -2
- labtasker-1.0.0/tests/fixtures/server/async_app.py +0 -16
- labtasker-1.0.0/tests/fixtures/server/sync_app.py +0 -13
- labtasker-1.0.0/tests/test_api_models.py +0 -18
- labtasker-1.0.0/tests/test_client/__init__.py +0 -0
- labtasker-1.0.0/tests/test_client/conftest.py +0 -170
- labtasker-1.0.0/tests/test_client/test_cli/__init__.py +0 -0
- labtasker-1.0.0/tests/test_client/test_cli/conftest.py +0 -119
- labtasker-1.0.0/tests/test_client/test_cli/test_basic.py +0 -15
- labtasker-1.0.0/tests/test_client/test_cli/test_config.py +0 -58
- labtasker-1.0.0/tests/test_client/test_cli/test_event.py +0 -125
- labtasker-1.0.0/tests/test_client/test_cli/test_init.py +0 -250
- labtasker-1.0.0/tests/test_client/test_cli/test_loop.py +0 -171
- labtasker-1.0.0/tests/test_client/test_cli/test_queue.py +0 -193
- labtasker-1.0.0/tests/test_client/test_cli/test_task.py +0 -707
- labtasker-1.0.0/tests/test_client/test_cli/test_worker.py +0 -179
- labtasker-1.0.0/tests/test_client/test_core/__init__.py +0 -0
- labtasker-1.0.0/tests/test_client/test_core/test_cli_utils.py +0 -256
- labtasker-1.0.0/tests/test_client/test_core/test_event/__init__.py +0 -0
- labtasker-1.0.0/tests/test_client/test_core/test_event/test_concurrency_job_flow_event.py +0 -285
- labtasker-1.0.0/tests/test_client/test_core/test_event/test_event_listener_basic.py +0 -106
- labtasker-1.0.0/tests/test_client/test_core/test_event/test_event_listener_entity_data.py +0 -108
- labtasker-1.0.0/tests/test_client/test_core/test_event/test_various_actions.py +0 -278
- labtasker-1.0.0/tests/test_client/test_core/test_event/utils.py +0 -15
- labtasker-1.0.0/tests/test_client/test_core/test_heartbeat_e2e.py +0 -73
- labtasker-1.0.0/tests/test_client/test_core/test_heartbeat_unit.py +0 -95
- labtasker-1.0.0/tests/test_client/test_core/test_job_runner.py +0 -193
- labtasker-1.0.0/tests/test_client/test_core/test_logging.py +0 -279
- labtasker-1.0.0/tests/test_client/test_core/test_loop_internal_error_handler.py +0 -68
- labtasker-1.0.0/tests/test_client/test_core/test_pager_iterator.py +0 -98
- labtasker-1.0.0/tests/test_client/test_core/test_parser.py +0 -138
- labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/__init__.py +0 -0
- labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/conftest.py +0 -15
- labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/test_behavior.py +0 -516
- labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/test_matching.py +0 -1011
- labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/test_utils.py +0 -408
- labtasker-1.0.0/tests/test_client/test_core/test_query_transpiler/utils.py +0 -136
- labtasker-1.0.0/tests/test_client/test_core/test_resolver.py +0 -405
- labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/__init__.py +0 -0
- labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/run_concurrent.py +0 -173
- labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/test_runner_concurrency_success_failure.py +0 -241
- labtasker-1.0.0/tests/test_client/test_core/test_runner_concurrency/test_runner_high_concurrency.py +0 -144
- labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/__init__.py +0 -0
- labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/conftest.py +0 -34
- labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/test_job_runner_timeout.py +0 -125
- labtasker-1.0.0/tests/test_client/test_core/test_runner_timeout/test_job_runner_with_resolver_timeout.py +0 -122
- labtasker-1.0.0/tests/test_client/test_core/test_runner_with_resolver.py +0 -607
- labtasker-1.0.0/tests/test_client/test_core/test_server_notification_and_client_version.py +0 -69
- labtasker-1.0.0/tests/test_client/test_core/test_version_checker.py +0 -72
- labtasker-1.0.0/tests/test_filtering/__init__.py +0 -0
- labtasker-1.0.0/tests/test_filtering/exception_utils.py +0 -76
- labtasker-1.0.0/tests/test_filtering/test_exception_filtering.py +0 -106
- labtasker-1.0.0/tests/test_mock_time.py +0 -37
- labtasker-1.0.0/tests/test_security.py +0 -16
- labtasker-1.0.0/tests/test_server/__init__.py +0 -0
- labtasker-1.0.0/tests/test_server/conftest.py +0 -31
- labtasker-1.0.0/tests/test_server/test_database/__init__.py +0 -0
- labtasker-1.0.0/tests/test_server/test_database/conftest.py +0 -64
- labtasker-1.0.0/tests/test_server/test_database/test_database_basic.py +0 -877
- labtasker-1.0.0/tests/test_server/test_database/test_fetch_extra_filter.py +0 -82
- labtasker-1.0.0/tests/test_server/test_database/test_query_dict_to_mongo_filter.py +0 -96
- labtasker-1.0.0/tests/test_server/test_database/test_required_field_fetching.py +0 -280
- labtasker-1.0.0/tests/test_server/test_db_utils/__init__.py +0 -0
- labtasker-1.0.0/tests/test_server/test_db_utils/test_arg_match.py +0 -131
- labtasker-1.0.0/tests/test_server/test_db_utils/test_keys_to_query_dict.py +0 -30
- labtasker-1.0.0/tests/test_server/test_db_utils/test_keys_to_query_dict_deepest.py +0 -78
- labtasker-1.0.0/tests/test_server/test_db_utils/test_keys_to_query_dict_topmost.py +0 -44
- labtasker-1.0.0/tests/test_server/test_embedded_db.py +0 -41
- labtasker-1.0.0/tests/test_server/test_endpoint/__init__.py +0 -0
- labtasker-1.0.0/tests/test_server/test_endpoint/test_event_basic.py +0 -197
- labtasker-1.0.0/tests/test_server/test_endpoint/test_server.py +0 -723
- labtasker-1.0.0/tests/test_server/test_endpoint/test_server_async.py +0 -111
- labtasker-1.0.0/tests/test_server/test_endpoint/test_server_async_ping.py +0 -15
- labtasker-1.0.0/tests/test_server/test_fsm.py +0 -184
- labtasker-1.0.0/tests/test_server/test_get_verified_queue_dependency.py +0 -73
- labtasker-1.0.0/tests/test_utils/__init__.py +0 -0
- labtasker-1.0.0/tests/test_utils/test_utils.py +0 -337
- labtasker-1.0.0/tests/utils.py +0 -16
- labtasker-1.0.0/tox.ini +0 -28
- {labtasker-1.0.0 → labtasker-2.0.0}/LICENSE +0 -0
labtasker-2.0.0/PKG-INFO
ADDED
|
@@ -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
|
labtasker-1.0.0/MANIFEST.in
DELETED
|
@@ -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
|
-

|
|
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
|
-

|
|
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
|
-

|
|
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
|
-

|
|
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()
|