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.
Files changed (90) hide show
  1. {fred_oss-0.31.0/src/main/fred_oss.egg-info → fred_oss-0.32.0}/PKG-INFO +1 -1
  2. fred_oss-0.32.0/src/main/fred/version +1 -0
  3. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/_runner.py +40 -12
  4. {fred_oss-0.31.0 → fred_oss-0.32.0/src/main/fred_oss.egg-info}/PKG-INFO +1 -1
  5. fred_oss-0.31.0/src/main/fred/version +0 -1
  6. {fred_oss-0.31.0 → fred_oss-0.32.0}/MANIFEST.in +0 -0
  7. {fred_oss-0.31.0 → fred_oss-0.32.0}/NOTICE.txt +0 -0
  8. {fred_oss-0.31.0 → fred_oss-0.32.0}/README.md +0 -0
  9. {fred_oss-0.31.0 → fred_oss-0.32.0}/requirements.txt +0 -0
  10. {fred_oss-0.31.0 → fred_oss-0.32.0}/setup.cfg +0 -0
  11. {fred_oss-0.31.0 → fred_oss-0.32.0}/setup.py +0 -0
  12. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/__init__.py +0 -0
  13. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/__main__.py +0 -0
  14. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/interface.py +0 -0
  15. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/cli/main.py +0 -0
  16. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/__init__.py +0 -0
  17. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/__init__.py +0 -0
  18. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/_keyval.py +0 -0
  19. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/_queue.py +0 -0
  20. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/catalog.py +0 -0
  21. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/comp/interface.py +0 -0
  22. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/__init__.py +0 -0
  23. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/_redis.py +0 -0
  24. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/_stdlib.py +0 -0
  25. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/catalog.py +0 -0
  26. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/interface.py +0 -0
  27. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/dao/service/utils.py +0 -0
  28. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/__init__.py +0 -0
  29. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/__init__.py +0 -0
  30. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/_function.py +0 -0
  31. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/catalog.py +0 -0
  32. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/callback/interface.py +0 -0
  33. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/impl.py +0 -0
  34. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/result.py +0 -0
  35. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/settings.py +0 -0
  36. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/future/utils.py +0 -0
  37. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/__init__.py +0 -0
  38. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/cli_ext.py +0 -0
  39. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtime.py +0 -0
  40. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/__init__.py +0 -0
  41. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/scanner.py +0 -0
  42. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/runtimes/sync.py +0 -0
  43. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/wrappers/__init__.py +0 -0
  44. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/databricks/wrappers/dbutils.py +0 -0
  45. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/runpod/__init__.py +0 -0
  46. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/runpod/cli_ext.py +0 -0
  47. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/integrations/runpod/helper.py +0 -0
  48. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/maturity.py +0 -0
  49. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/__init__.py +0 -0
  50. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/_either.py +0 -0
  51. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/catalog.py +0 -0
  52. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/monad/interface.py +0 -0
  53. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/settings.py +0 -0
  54. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/utils/__init__.py +0 -0
  55. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/utils/dateops.py +0 -0
  56. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/utils/runtime.py +0 -0
  57. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/version.py +0 -0
  58. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/__init__.py +0 -0
  59. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/interface.py +0 -0
  60. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/__init__.py +0 -0
  61. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/backend.py +0 -0
  62. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/client.py +0 -0
  63. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/handler.py +0 -0
  64. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/info.py +0 -0
  65. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/__init__.py +0 -0
  66. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_handler.py +0 -0
  67. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_item.py +0 -0
  68. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_request.py +0 -0
  69. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/_runner_spec.py +0 -0
  70. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/catalog.py +0 -0
  71. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/model/interface.py +0 -0
  72. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/__init__.py +0 -0
  73. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/_local.py +0 -0
  74. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/catalog.py +0 -0
  75. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/plugins/interface.py +0 -0
  76. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/__init__.py +0 -0
  77. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/cli_ext.py +0 -0
  78. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/__init__.py +0 -0
  79. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/catalog.py +0 -0
  80. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/routers/interface.py +0 -0
  81. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/rest/server.py +0 -0
  82. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/settings.py +0 -0
  83. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/signal.py +0 -0
  84. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/status.py +0 -0
  85. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred/worker/runner/utils.py +0 -0
  86. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/SOURCES.txt +0 -0
  87. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/dependency_links.txt +0 -0
  88. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/entry_points.txt +0 -0
  89. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/requires.txt +0 -0
  90. {fred_oss-0.31.0 → fred_oss-0.32.0}/src/main/fred_oss.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fred-oss
3
- Version: 0.31.0
3
+ Version: 0.32.0
4
4
  Summary: FREDOSS
5
5
  Home-page: https://fred.fahera.mx
6
6
  Author: Fahera Research, Education, and Development
@@ -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
- @dataclass(frozen=True, slots=False)
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fred-oss
3
- Version: 0.31.0
3
+ Version: 0.32.0
4
4
  Summary: FREDOSS
5
5
  Home-page: https://fred.fahera.mx
6
6
  Author: Fahera Research, Education, and Development
@@ -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