fred-oss 0.31.0__tar.gz → 0.32.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.
- {fred_oss-0.31.0/src/main/fred_oss.egg-info → fred_oss-0.32.0}/PKG-INFO +1 -1
- fred_oss-0.32.0/src/main/fred/version +1 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/_runner.py +40 -12
- {fred_oss-0.31.0 → fred_oss-0.32.0/src/main/fred_oss.egg-info}/PKG-INFO +1 -1
- fred_oss-0.31.0/src/main/fred/version +0 -1
- {fred_oss-0.31.0 → fred_oss-0.32.0}/MANIFEST.in +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/NOTICE.txt +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/README.md +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/requirements.txt +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/setup.cfg +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/setup.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/__main__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/main.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/_keyval.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/_queue.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/catalog.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/_redis.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/_stdlib.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/catalog.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/utils.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/_function.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/catalog.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/impl.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/result.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/settings.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/utils.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/cli_ext.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtime.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/scanner.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/sync.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/wrappers/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/wrappers/dbutils.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/runpod/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/runpod/cli_ext.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/runpod/helper.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/maturity.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/_either.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/catalog.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/settings.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/utils/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/utils/dateops.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/utils/runtime.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/version.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/backend.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/client.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/handler.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/info.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_handler.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_item.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_request.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_runner_spec.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/catalog.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/_local.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/catalog.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/cli_ext.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/__init__.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/catalog.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/interface.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/server.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/settings.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/signal.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/status.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/utils.py +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/SOURCES.txt +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/dependency_links.txt +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/entry_points.txt +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/requires.txt +0 -0
- {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.32.0
|
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
|
+
|
|
2
3
|
from fred.worker.runner.rest.routers.interface import RouterInterface
|
|
3
4
|
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
class RunnerRouter(RouterInterface):
|
|
7
|
-
|
|
8
|
-
def __post_init__(self):
|
|
9
|
-
self.router.add_api_route(
|
|
10
|
-
"/handler_exists",
|
|
11
|
-
self.handler_exists,
|
|
12
|
-
methods=["GET"],
|
|
13
|
-
tags=["Runner"],
|
|
14
|
-
summary="Check if a handler class exists and is a RunnerHandler.",
|
|
15
|
-
response_description="Details about the handler class.",
|
|
16
|
-
)
|
|
6
|
+
class RunnerRouterMethods:
|
|
17
7
|
|
|
18
8
|
def handler_exists(self, classname: str, classpath: str) -> dict:
|
|
19
9
|
from fred.worker.runner.handler import RunnerHandler
|
|
@@ -38,3 +28,41 @@ class RunnerRouter(RouterInterface):
|
|
|
38
28
|
except Exception as e:
|
|
39
29
|
result_payload["metadata"]["error"] = str(e)
|
|
40
30
|
return result_payload
|
|
31
|
+
|
|
32
|
+
def runner_start(self, payload: dict) -> dict:
|
|
33
|
+
from fred.worker.runner.model.catalog import RunnerModelCatalog
|
|
34
|
+
from fred.worker.runner.plugins.catalog import PluginCatalog
|
|
35
|
+
# Determine which plugin to use; default to LOCAL if not specified
|
|
36
|
+
plugin_name: str = payload.pop("plugin", "LOCAL")
|
|
37
|
+
wait_for_exec: bool = payload.pop("wait_for_exec", False)
|
|
38
|
+
# Create the RunnerSpec from the provided payload
|
|
39
|
+
# TODO: Instead on depending on parsing a dict... Can we implement a base-model to facilitate fast-api validation?
|
|
40
|
+
runner_spec = RunnerModelCatalog.RUNNER_SPEC.value.from_payload(payload=payload)
|
|
41
|
+
# Instantiate the plugin and execute the runner
|
|
42
|
+
plugin = PluginCatalog[plugin_name.upper()]()
|
|
43
|
+
return {
|
|
44
|
+
"runner_id": plugin.execute(runner_spec, wait_for_exec=wait_for_exec).runner_id,
|
|
45
|
+
"queue_slug": runner_spec.queue_slug,
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@dataclass(frozen=True, slots=False)
|
|
50
|
+
class RunnerRouter(RouterInterface, RunnerRouterMethods):
|
|
51
|
+
|
|
52
|
+
def __post_init__(self):
|
|
53
|
+
self.router.add_api_route(
|
|
54
|
+
"/handler_exists",
|
|
55
|
+
self.handler_exists,
|
|
56
|
+
methods=["GET"],
|
|
57
|
+
tags=["Runner"],
|
|
58
|
+
summary="Check if a handler class exists and is a RunnerHandler.",
|
|
59
|
+
response_description="Details about the handler class.",
|
|
60
|
+
)
|
|
61
|
+
self.router.add_api_route(
|
|
62
|
+
"/start",
|
|
63
|
+
self.runner_start,
|
|
64
|
+
methods=["POST"],
|
|
65
|
+
tags=["Runner"],
|
|
66
|
+
summary="Start a runner using the specified plugin.",
|
|
67
|
+
response_description="The ID of the started runner.",
|
|
68
|
+
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.31.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/__init__.py
RENAMED
|
File without changes
|
{fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/scanner.py
RENAMED
|
File without changes
|
|
File without changes
|
{fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/wrappers/__init__.py
RENAMED
|
File without changes
|
{fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/wrappers/dbutils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|