From 7d6a258a7651d5cc246acf058005f0976ff3fae6 Mon Sep 17 00:00:00 2001
From: Michael Loukeris <michael.loukeris@icloud.com>
Date: Fri, 16 May 2025 14:54:32 +0300
Subject: [PATCH 1/2] fix #11: Align Black and Flake8 line-length to 119 to
 prevent pre-commit failures

---
 pyproject.toml       | 2 +-
 setup.cfg            | 3 +++
 src/hypertool/cli.py | 4 +---
 3 files changed, 5 insertions(+), 4 deletions(-)
 create mode 100644 setup.cfg

diff --git a/pyproject.toml b/pyproject.toml
index 23254cb..acfb3ba 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -42,7 +42,7 @@ scripts.hypertool = "hypertool.cli:main"
 
 
 [tool.black]
-line-length = 80
+line-length = 119
 target-version = [ "py311" ]
 
 [tool.isort]
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..3ef2ed4
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,3 @@
+
+[flake8]
+max-line-length = 119
diff --git a/src/hypertool/cli.py b/src/hypertool/cli.py
index b72fbee..6718625 100644
--- a/src/hypertool/cli.py
+++ b/src/hypertool/cli.py
@@ -46,9 +46,7 @@ def start_daemon() -> None:
     try:
         config.load_incluster_config()
     except ConfigException:
-        raise exceptions.HyperToolKubernetesError(
-            "Error loading in-cluster config"
-        )
+        raise exceptions.HyperToolKubernetesError("Error loading in-cluster config")
 
     v1 = client.CoreV1Api()
 
-- 
GitLab


From 531e4cf6d920936dcd39576df8587ec06999a1f8 Mon Sep 17 00:00:00 2001
From: mafooq <mafoqulhassan@gmail.com>
Date: Fri, 16 May 2025 14:46:37 +0000
Subject: [PATCH 2/2] Apply pre-commit formatting fixes

---
 requirements.txt                       |   1 +
 src/hypertool/cli.py                   |  15 +++--
 src/hypertool/cloud_costs.xlsx         | Bin 0 -> 42561 bytes
 src/hypertool/clustered_instances.xlsx | Bin 0 -> 48266 bytes
 src/hypertool/cost_centroids.npy       | Bin 0 -> 248 bytes
 src/hypertool/k-means.py               |  72 ++++++++++++++++++++++
 src/hypertool/scaler.json              |   1 +
 src/hypertool/utils.py                 |  81 +++++++++++++++++++++++++
 8 files changed, 166 insertions(+), 4 deletions(-)
 create mode 100644 src/hypertool/cloud_costs.xlsx
 create mode 100644 src/hypertool/clustered_instances.xlsx
 create mode 100644 src/hypertool/cost_centroids.npy
 create mode 100644 src/hypertool/k-means.py
 create mode 100644 src/hypertool/scaler.json

diff --git a/requirements.txt b/requirements.txt
index d456fa8..1464bcc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -27,3 +27,4 @@ typing_extensions==4.12.2
 virtualenv==20.29.1
 wcmatch==10.0
 wcwidth==0.2.13
+numpy==1.26.4
diff --git a/src/hypertool/cli.py b/src/hypertool/cli.py
index 6718625..d09ce3f 100644
--- a/src/hypertool/cli.py
+++ b/src/hypertool/cli.py
@@ -29,16 +29,23 @@ def test_command() -> None:
 @click.option("--dry-run", is_flag=True, help="Explain the command's function")
 def run(dry_run: bool) -> None:
     network_interfaces = utils.get_network_interfaces_annotations()
+    monetary_cost = utils.get_monetary_cost_annotation()
+    energy_raw, energy_label = utils.get_energy_efficiency_annotation()
+
+    all_annotations = {
+        **network_interfaces,
+        **monetary_cost,
+        **energy_raw,
+        **energy_label,
+    }
 
     if dry_run:
-        click.echo("[DRY-RUN] The following attributes would be applied: \n")
+        click.echo("[DRY-RUN] The following attributes would be applied:\n")
         click.echo("Annotations:")
-        for key, value in network_interfaces.items():
+        for key, value in all_annotations.items():
             click.echo(f"\t{key}: {value}")
         return
 
-    pass
-
 
 @click.command("start_daemon", short_help="Start the diagnostics.")
 def start_daemon() -> None:
diff --git a/src/hypertool/cloud_costs.xlsx b/src/hypertool/cloud_costs.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..2161a0ab82e5ae7b4d2e200ff3c822bdfc38d496
GIT binary patch
literal 42561
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%0D?2pm2F>4+l1rPR{5ZF3Pkwo@D)T()jAWMhzf
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%0DPII$tyvXTin>%W(l
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
Y4WhO>4!U*$07CR999?-8g@3L64`_2hp8x;=

literal 0
HcmV?d00001

diff --git a/src/hypertool/clustered_instances.xlsx b/src/hypertool/clustered_instances.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..a37736bde04868383f2f676b8f1864ddb3e343ca
GIT binary patch
literal 48266
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%0A^q}-+#
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

literal 0
HcmV?d00001

diff --git a/src/hypertool/cost_centroids.npy b/src/hypertool/cost_centroids.npy
new file mode 100644
index 0000000000000000000000000000000000000000..91aee3257beb9ddf95b0bdca7963c3b67afeb5ba
GIT binary patch
literal 248
zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh=
zXCxM+0{I%IIts>`ItsN4WCO0rp87Tm*F4@otH`07Y5m3hvJv;6{q(=OU*r^vs+pRM
z!`U@=Tl|Bx9K`<1wSQ^TbSOOhC!;R^pZ)cy?YeU&Kehj|^VembrSI$?W-d|k3%YGz
uzxxHR-M$6(pWC*ITzR+E-d#y%tJE_Vhr0%!#pNRS9K`b<hy79GbN~Q<$W`e8

literal 0
HcmV?d00001

diff --git a/src/hypertool/k-means.py b/src/hypertool/k-means.py
new file mode 100644
index 0000000..aab9f5b
--- /dev/null
+++ b/src/hypertool/k-means.py
@@ -0,0 +1,72 @@
+import json
+import os
+
+import numpy as np
+import pandas as pd
+from sklearn.cluster import KMeans
+from sklearn.preprocessing import StandardScaler
+
+
+def train_kmeans_from_excel(file_path, k=5, save_dir="output"):
+    # Read Excel file
+    df = pd.read_excel(file_path)
+
+    # Required columns
+    required_cols = ["vCPU", "Memory", "On-Demand hourly rate"]
+    if not all(col in df.columns for col in required_cols):
+        raise ValueError(f"Excel must contain the following columns: {required_cols}")
+
+    # Clean and convert memory and price columns
+    df["Memory"] = df["Memory"].astype(str).str.replace(" GiB", "", regex=False).astype(float)
+    df["On-Demand hourly rate"] = (
+        df["On-Demand hourly rate"].astype(str).str.replace("$", "", regex=False).astype(float)
+    )
+
+    # Normalize features
+    features = df[["vCPU", "Memory", "On-Demand hourly rate"]]
+    scaler = StandardScaler()
+    features_scaled = scaler.fit_transform(features)
+
+    # KMeans clustering
+    kmeans = KMeans(n_clusters=k, random_state=42, n_init="auto")
+    df["Original Cluster"] = kmeans.fit_predict(features_scaled)
+
+    # Map clusters to qualitative cost labels based on average price
+    cluster_avg_cost = df.groupby("Original Cluster")["On-Demand hourly rate"].mean().sort_values()
+    sorted_clusters = cluster_avg_cost.index.tolist()
+
+    # Define qualitative labels
+    qualitative_labels = ["very low", "low", "medium", "high", "very high"]
+    if k > len(qualitative_labels):
+        raise ValueError(f"Only {len(qualitative_labels)} labels defined for {k} clusters.")
+
+    # Remap original cluster IDs to ordered 0–(k-1)
+    cluster_id_mapping = {old: new for new, old in enumerate(sorted_clusters)}
+    df["Cluster"] = df["Original Cluster"].map(cluster_id_mapping)
+    df["Cost Category"] = df["Cluster"].map(dict(enumerate(qualitative_labels)))
+
+    # Save model outputs
+    os.makedirs(save_dir, exist_ok=True)
+
+    # Overwrite existing files if they exist
+    clustered_file_path = os.path.join(save_dir, "clustered_instances.xlsx")
+    if os.path.exists(clustered_file_path):
+        os.remove(clustered_file_path)
+
+    np.save(os.path.join(save_dir, "cost_centroids.npy"), kmeans.cluster_centers_)
+    scaler_data = {
+        "mean": scaler.mean_.tolist(),
+        "scale": scaler.scale_.tolist(),
+    }
+    with open(os.path.join(save_dir, "scaler.json"), "w") as f:
+        json.dump(scaler_data, f)
+
+    # Save final result
+    df.drop(columns=["Original Cluster"], inplace=True)
+    df.to_excel(clustered_file_path, index=False)
+
+
+if __name__ == "__main__":
+    current_dir = os.path.dirname(os.path.abspath(__file__))
+    file_path = os.path.join(current_dir, "cloud_costs.xlsx")
+    train_kmeans_from_excel(file_path, k=5)
diff --git a/src/hypertool/scaler.json b/src/hypertool/scaler.json
new file mode 100644
index 0000000..e218c97
--- /dev/null
+++ b/src/hypertool/scaler.json
@@ -0,0 +1 @@
+{"mean": [46.52039555006181, 334.4412855377009, 4.552835995055624], "scale": [57.05010390300931, 986.0795139030431, 10.824401690402746]}
diff --git a/src/hypertool/utils.py b/src/hypertool/utils.py
index 818efd8..ee11abd 100644
--- a/src/hypertool/utils.py
+++ b/src/hypertool/utils.py
@@ -1,6 +1,87 @@
+import json
+import os
+import subprocess
+from pathlib import Path
+
 import netifaces
+import numpy as np
 
 
 def get_network_interfaces_annotations():
     interfaces = ",".join(f"{item}" for item in netifaces.interfaces())
     return {"hyperai.eu/node-available-interfaces": interfaces}
+
+
+def get_cpu_count():
+    cpu_count = os.cpu_count()
+    return cpu_count if cpu_count is not None else 1
+    # fallback to 1 if not detectable
+
+
+def get_ram_gb():
+    try:
+        with open("/proc/meminfo") as f:
+            meminfo = f.read()
+        mem_line = [line for line in meminfo.split("\n") if "MemTotal" in line][0]
+        mem_total_kb = int(mem_line.split()[1])
+        mem_total_gb = mem_total_kb / 1024 / 1024
+        return mem_total_gb
+    except Exception:
+        return 0  # fallback if file missing
+
+
+def load_kmeans_model():
+    model_dir = Path(__file__).parent
+    centroids = np.load(model_dir / "cost_centroids.npy")
+    with open(model_dir / "scaler.json") as f:
+        scaler = json.load(f)
+    return centroids, np.array(scaler["mean"]), np.array(scaler["scale"])
+
+
+def predict_cost_category(cpu, ram):
+    centroids, mean, scale = load_kmeans_model()
+    input_vector = np.array([cpu, ram, 0.0])  # price excluded during inference
+    scaled = (input_vector - mean) / scale
+    idx = np.argmin(np.linalg.norm(centroids[:, :2] - scaled[:2], axis=1))
+    labels = ["very low", "low", "medium", "high", "very high"]
+    return labels[idx]
+
+
+def get_monetary_cost_annotation():
+    cpu = get_cpu_count()
+    ram = get_ram_gb()
+
+    try:
+        label = predict_cost_category(cpu, ram)
+        return {"hyperai.eu/node-monetary-cost-category": label}
+    except Exception:
+        return {"hyperai.eu/node-monetary-cost-category": "unknown"}
+
+
+def get_energy_efficiency_annotation():
+    try:
+        result = subprocess.run(
+            ["perf", "stat", "-a", "-e", "power/energy-pkg/", "sleep", "1"],
+            capture_output=True,
+            text=True,
+            check=True,
+        )
+        output = result.stderr
+        for line in output.splitlines():
+            if "Joules power/energy-pkg/" in line:
+                energy = float(line.strip().split()[0])
+                if energy < 10:
+                    label = "high"
+                elif energy < 20:
+                    label = "medium"
+                else:
+                    label = "low"
+                return (
+                    {"hyperai.eu/node-energy-usage-joules": round(energy, 2)},
+                    {"hyperai.eu/node-energy-efficiency": label},
+                )
+    except Exception:
+        return (
+            {"hyperai.eu/node-energy-usage-joules": "unknown"},
+            {"hyperai.eu/node-energy-efficiency": "unknown"},
+        )
-- 
GitLab