hugpy-ops 0.2.0a0__py3-none-any.whl
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.
- hugpy_ops/__init__.py +54 -0
- hugpy_ops/admission.py +801 -0
- hugpy_ops/chaos/SCHEMA.md +70 -0
- hugpy_ops/chaos/__init__.py +24 -0
- hugpy_ops/chaos/__main__.py +7 -0
- hugpy_ops/chaos/alloc.py +97 -0
- hugpy_ops/chaos/assortment.py +261 -0
- hugpy_ops/chaos/client.py +308 -0
- hugpy_ops/chaos/observations.py +14 -0
- hugpy_ops/chaos/observe.py +223 -0
- hugpy_ops/chaos/runner.py +399 -0
- hugpy_ops/chaos/schema.py +300 -0
- hugpy_ops/chaos/sweep.py +956 -0
- hugpy_ops/drift.py +1004 -0
- hugpy_ops/drift_units/hugpy-drift-check.service +26 -0
- hugpy_ops/drift_units/hugpy-drift-check.timer +16 -0
- hugpy_ops/keeper.py +403 -0
- hugpy_ops/model_archive.py +232 -0
- hugpy_ops/model_audit.py +2082 -0
- hugpy_ops/model_manifest_backfill.py +290 -0
- hugpy_ops/provisioner.py +967 -0
- hugpy_ops/py.typed +0 -0
- hugpy_ops/resweep.py +512 -0
- hugpy_ops/sentinel/__init__.py +14 -0
- hugpy_ops/sentinel/__main__.py +93 -0
- hugpy_ops/sentinel/cases.py +156 -0
- hugpy_ops/sentinel/checks.py +329 -0
- hugpy_ops/sentinel/remedies.py +158 -0
- hugpy_ops/sentinel/runner.py +282 -0
- hugpy_ops/sentinel/settings.py +112 -0
- hugpy_ops/todo_keeper.py +388 -0
- hugpy_ops/todo_keeper_daemon.py +431 -0
- hugpy_ops/versions.py +33 -0
- hugpy_ops-0.2.0a0.dist-info/METADATA +63 -0
- hugpy_ops-0.2.0a0.dist-info/RECORD +39 -0
- hugpy_ops-0.2.0a0.dist-info/WHEEL +5 -0
- hugpy_ops-0.2.0a0.dist-info/entry_points.txt +13 -0
- hugpy_ops-0.2.0a0.dist-info/licenses/LICENSE +41 -0
- hugpy_ops-0.2.0a0.dist-info/top_level.txt +1 -0
hugpy_ops/__init__.py
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""hugpy_ops — operational consumers of the Hugpy public APIs.
|
|
2
|
+
|
|
3
|
+
Leaf package: nothing here is imported during normal server startup. Each
|
|
4
|
+
tool is a separate console script and is loaded lazily from this namespace:
|
|
5
|
+
|
|
6
|
+
* :mod:`hugpy_ops.sentinel` — bound-exceeded detection over central's HTTP
|
|
7
|
+
read surfaces -> deduplicated cases -> one bounded diagnosis agent per new
|
|
8
|
+
case (``hugpy-sentinel``).
|
|
9
|
+
* :mod:`hugpy_ops.chaos` — the chaos-and-learn exerciser and the k7 offload
|
|
10
|
+
sweep, an HTTP client of central (``hugpy-chaos``).
|
|
11
|
+
* :mod:`hugpy_ops.keeper` — the stationary terminal REPL in which a served
|
|
12
|
+
model keeps a machine (``hugpy-keeper``).
|
|
13
|
+
* :mod:`hugpy_ops.todo_keeper` / :mod:`hugpy_ops.todo_keeper_daemon` — the
|
|
14
|
+
pure todo-keeper contract and the enrolling node daemon
|
|
15
|
+
(``hugpy-todo-keeper``).
|
|
16
|
+
* :mod:`hugpy_ops.provisioner` — declared-but-missing weights across the
|
|
17
|
+
engine, studio and comfy registries, enqueued on ``hugpy_storage``'s
|
|
18
|
+
download queue (``hugpy-provisioner``).
|
|
19
|
+
* :mod:`hugpy_ops.model_audit` — per-model integrity verdict (working /
|
|
20
|
+
broken download / faulty model / misconfigured) with its verbatim evidence
|
|
21
|
+
log (``hugpy-model-audit``).
|
|
22
|
+
* :mod:`hugpy_ops.versions` — the ecosystem distribution versions the
|
|
23
|
+
sentinel reports next to a worker version skew.
|
|
24
|
+
|
|
25
|
+
This ``__init__`` is deliberately light: submodules load on first attribute
|
|
26
|
+
access, so ``import hugpy_ops`` pulls in nothing beyond the stdlib.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
from __future__ import annotations
|
|
30
|
+
|
|
31
|
+
import importlib
|
|
32
|
+
|
|
33
|
+
try: # the installed distribution's version: the workspace tag/commit, never a literal
|
|
34
|
+
from importlib.metadata import version as _dist_version
|
|
35
|
+
__version__ = _dist_version("hugpy-ops")
|
|
36
|
+
except Exception: # noqa: BLE001 — source tree without metadata
|
|
37
|
+
__version__ = "0.0.0+unknown"
|
|
38
|
+
|
|
39
|
+
_SUBMODULES = ("chaos", "drift", "keeper", "model_audit", "provisioner", "sentinel",
|
|
40
|
+
"todo_keeper", "todo_keeper_daemon", "versions")
|
|
41
|
+
|
|
42
|
+
__all__ = ["__version__", *_SUBMODULES]
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def __getattr__(name: str):
|
|
46
|
+
if name in _SUBMODULES:
|
|
47
|
+
module = importlib.import_module(f"{__name__}.{name}")
|
|
48
|
+
globals()[name] = module
|
|
49
|
+
return module
|
|
50
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def __dir__():
|
|
54
|
+
return sorted(set(globals()) | set(_SUBMODULES))
|