fred-oss 0.10.0__tar.gz → 0.12.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 (42) hide show
  1. {fred_oss-0.10.0/src/main/fred_oss.egg-info → fred_oss-0.12.0}/PKG-INFO +1 -1
  2. fred_oss-0.12.0/src/main/fred/version +1 -0
  3. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/worker/runner/client.py +10 -13
  4. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/worker/runner/handler.py +6 -6
  5. fred_oss-0.12.0/src/main/fred/worker/runner/utils.py +74 -0
  6. {fred_oss-0.10.0 → fred_oss-0.12.0/src/main/fred_oss.egg-info}/PKG-INFO +1 -1
  7. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred_oss.egg-info/SOURCES.txt +1 -0
  8. fred_oss-0.10.0/src/main/fred/version +0 -1
  9. {fred_oss-0.10.0 → fred_oss-0.12.0}/MANIFEST.in +0 -0
  10. {fred_oss-0.10.0 → fred_oss-0.12.0}/NOTICE.txt +0 -0
  11. {fred_oss-0.10.0 → fred_oss-0.12.0}/README.md +0 -0
  12. {fred_oss-0.10.0 → fred_oss-0.12.0}/requirements.txt +0 -0
  13. {fred_oss-0.10.0 → fred_oss-0.12.0}/setup.cfg +0 -0
  14. {fred_oss-0.10.0 → fred_oss-0.12.0}/setup.py +0 -0
  15. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/cli/__init__.py +0 -0
  16. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/cli/__main__.py +0 -0
  17. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/cli/interface.py +0 -0
  18. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/cli/main.py +0 -0
  19. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/__init__.py +0 -0
  20. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/cli_ext.py +0 -0
  21. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/runtime.py +0 -0
  22. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/runtimes/__init__.py +0 -0
  23. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/runtimes/scanner.py +0 -0
  24. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/runtimes/sync.py +0 -0
  25. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/wrappers/__init__.py +0 -0
  26. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/databricks/wrappers/dbutils.py +0 -0
  27. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/runpod/__init__.py +0 -0
  28. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/runpod/cli_ext.py +0 -0
  29. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/integrations/runpod/helper.py +0 -0
  30. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/maturity.py +0 -0
  31. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/settings.py +0 -0
  32. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/utils/__init__.py +0 -0
  33. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/utils/dateops.py +0 -0
  34. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/utils/runtime.py +0 -0
  35. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/version.py +0 -0
  36. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/worker/__init__.py +0 -0
  37. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/worker/interface.py +0 -0
  38. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred/worker/runner/__init__.py +0 -0
  39. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred_oss.egg-info/dependency_links.txt +0 -0
  40. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred_oss.egg-info/entry_points.txt +0 -0
  41. {fred_oss-0.10.0 → fred_oss-0.12.0}/src/main/fred_oss.egg-info/requires.txt +0 -0
  42. {fred_oss-0.10.0 → fred_oss-0.12.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.10.0
3
+ Version: 0.12.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.12.0
@@ -6,6 +6,11 @@ from fred.settings import (
6
6
  get_environ_variable,
7
7
  logger_manager,
8
8
  )
9
+ from fred.worker.runner.utils import (
10
+ get_request_queue_name_from_payload,
11
+ get_response_queue_name_from_payload,
12
+ get_redis_configs_from_payload,
13
+ )
9
14
 
10
15
  from redis import Redis
11
16
 
@@ -20,20 +25,12 @@ class RunnerClient:
20
25
 
21
26
  @classmethod
22
27
  def auto(cls, **kwargs) -> "RunnerClient":
23
- redis_configs = {
24
- "host": kwargs.get("host") or get_environ_variable(name="REDIS_HOST", default="localhost"),
25
- "port": int(kwargs.get("port") or get_environ_variable(name="REDIS_PORT", default=6379)),
26
- "password": get_environ_variable(name="REDIS_PASSWORD", default=None),
27
- "db": int(kwargs.get("db") or get_environ_variable(name="REDIS_DB", default=0)),
28
- "decode_responses": True,
29
- **kwargs.pop("redis_configs", {}),
30
- }
28
+ redis_configs = get_redis_configs_from_payload(payload=kwargs, keep=False)
31
29
  redis_instance = Redis(**redis_configs)
32
- req_queue = kwargs.get("request_queue") or get_environ_variable(name="FRD_RUNNER_REQUEST_QUEUE", default=None) or (
33
- logger.warning("Redis request queue not specified; defaulting to 'req:demo'.") or "req:demo"
34
- )
35
- res_queue = kwargs.get("response_queue") or get_environ_variable(name="FRD_RUNNER_RESPONSE_QUEUE", default=None) or (
36
- logger.warning("Redis response queue not specified; defaulting to inferring pattern.") or f"res:{req_queue.split(':')[-1]}"
30
+ req_queue = get_request_queue_name_from_payload(payload=kwargs, keep=False)
31
+ res_queue = get_response_queue_name_from_payload(payload=kwargs, keep=False) or (
32
+ logger.warning("Redis response queue not specified; defaulting to inferring pattern.")
33
+ or f"res:{req_queue.split(':')[-1]}"
37
34
  )
38
35
  logger.info(f"Connecting to Redis, using request queue '{req_queue}' and response queue '{res_queue}'.")
39
36
  return cls(
@@ -8,6 +8,10 @@ from fred.settings import (
8
8
  get_environ_variable,
9
9
  logger_manager,
10
10
  )
11
+ from fred.worker.runner.utils import (
12
+ get_request_queue_name_from_payload,
13
+ get_response_queue_name_from_payload,
14
+ )
11
15
 
12
16
  from redis import Redis
13
17
 
@@ -37,12 +41,8 @@ class RunnerHandler(HandlerInterface):
37
41
  }
38
42
  # Connect to Redis
39
43
  redis = Redis(**redis_configs)
40
- req_queue = payload.pop("redis_request_queue", None) or get_environ_variable(name="FRD_RUNNER_REQUEST_QUEUE", default=None) or (
41
- logger.warning("Redis request queue not specified; defaulting to: 'req:demo'") or "req:demo"
42
- )
43
- res_queue = payload.pop("redis_response_queue", None) or get_environ_variable(name="FRD_RUNNER_RESPONSE_QUEUE", default=None) or (
44
- logger.warning("Redis response queue not specified; defaulting to: None (not using response queue)") or None
45
- )
44
+ req_queue = get_request_queue_name_from_payload(payload=payload, keep=False)
45
+ res_queue = get_response_queue_name_from_payload(payload=payload, keep=False)
46
46
  # Handoff to target handler (i.e., runner)
47
47
  runner_configs = payload.pop("runner_configs")
48
48
  runner_id = runner_configs.pop("id", str(uuid.uuid4()))
@@ -0,0 +1,74 @@
1
+ from typing import Optional
2
+
3
+ from fred.settings import get_environ_variable, logger_manager
4
+
5
+ logger = logger_manager.get_logger(name=__name__)
6
+
7
+
8
+ def get_queue_name_from_payload(
9
+ payload: dict,
10
+ search_keys: list[str],
11
+ env_fallback: str,
12
+ default: Optional[str] = None,
13
+ keep: bool = False,
14
+ ) -> str:
15
+ for key in search_keys:
16
+ if (queue_name := payload.get(key) if keep else payload.pop(key, None)):
17
+ return queue_name
18
+ return (
19
+ queue_name
20
+ or get_environ_variable(name=env_fallback, default=None)
21
+ or (
22
+ logger.warning(f"Redis queue not specified; defaulting to: '{default}'")
23
+ or default
24
+ )
25
+ )
26
+
27
+ def get_request_queue_name_from_payload(
28
+ payload: dict,
29
+ keep: bool = False,
30
+ ) -> Optional[str]:
31
+ return get_queue_name_from_payload(
32
+ payload=payload,
33
+ search_keys=["redis_request_queue", "request_queue", "req_queue"],
34
+ env_fallback="FRD_RUNNER_REQUEST_QUEUE",
35
+ default="req:demo",
36
+ keep=keep,
37
+ )
38
+
39
+ def get_response_queue_name_from_payload(
40
+ payload: dict,
41
+ keep: bool = False,
42
+ ) -> Optional[str]:
43
+ return get_queue_name_from_payload(
44
+ payload=payload,
45
+ search_keys=["redis_response_queue", "response_queue", "res_queue"],
46
+ env_fallback="FRD_RUNNER_RESPONSE_QUEUE",
47
+ default=None,
48
+ keep=keep,
49
+ )
50
+
51
+ def get_redis_configs_from_payload(
52
+ payload: dict,
53
+ keep: bool = False,
54
+ ) -> dict:
55
+ for host_key in ["host", "redis_host"]:
56
+ if (host := payload.get(host_key) if keep else payload.pop(host_key, None)):
57
+ break
58
+ for port_key in ["port", "redis_port"]:
59
+ if (port := payload.get(port_key) if keep else payload.pop(port_key, None)):
60
+ break
61
+ for password_key in ["password", "redis_password"]:
62
+ if (password := payload.get(password_key) if keep else payload.pop(password_key, None)):
63
+ break
64
+ for db_key in ["db", "redis_db"]:
65
+ if (db := payload.get(db_key) if keep else payload.pop(db_key, None)):
66
+ break
67
+ return {
68
+ "host": host or get_environ_variable(name="REDIS_HOST", default="localhost"),
69
+ "port": int(port or get_environ_variable(name="REDIS_PORT", default=6379)),
70
+ "password": password or get_environ_variable(name="REDIS_PASSWORD", default=None),
71
+ "db": int(db or get_environ_variable(name="REDIS_DB", default=0)),
72
+ "decode_responses": True,
73
+ **(payload.get("redis_configs", {}) if keep else payload.pop("redis_configs", {})),
74
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fred-oss
3
- Version: 0.10.0
3
+ Version: 0.12.0
4
4
  Summary: FREDOSS
5
5
  Home-page: https://fred.fahera.mx
6
6
  Author: Fahera Research, Education, and Development
@@ -30,6 +30,7 @@ src/main/fred/worker/interface.py
30
30
  src/main/fred/worker/runner/__init__.py
31
31
  src/main/fred/worker/runner/client.py
32
32
  src/main/fred/worker/runner/handler.py
33
+ src/main/fred/worker/runner/utils.py
33
34
  src/main/fred_oss.egg-info/PKG-INFO
34
35
  src/main/fred_oss.egg-info/SOURCES.txt
35
36
  src/main/fred_oss.egg-info/dependency_links.txt
@@ -1 +0,0 @@
1
- 0.10.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes