seeding expansion
also: replace energy output with energy output density
This commit is contained in:
@@ -153,6 +153,35 @@ class Repository:
|
||||
self.conn.commit()
|
||||
return dep
|
||||
|
||||
def replace_entity_dependencies(self, entity_id: int, deps: list[Dependency]) -> None:
|
||||
"""Delete all existing dependencies for an entity and insert new ones."""
|
||||
self.conn.execute("DELETE FROM dependencies WHERE entity_id = ?", (entity_id,))
|
||||
for dep in deps:
|
||||
cur = self.conn.execute(
|
||||
"""INSERT INTO dependencies
|
||||
(entity_id, category, key, value, unit, constraint_type)
|
||||
VALUES (?, ?, ?, ?, ?, ?)""",
|
||||
(entity_id, dep.category, dep.key, dep.value, dep.unit, dep.constraint_type),
|
||||
)
|
||||
dep.id = cur.lastrowid
|
||||
self.conn.commit()
|
||||
|
||||
def get_entity_by_name(self, dimension: str, name: str) -> Entity | None:
|
||||
row = self.conn.execute(
|
||||
"""SELECT e.id, e.name, e.description, d.name as dimension, e.dimension_id
|
||||
FROM entities e JOIN dimensions d ON e.dimension_id = d.id
|
||||
WHERE d.name = ? AND e.name = ?""",
|
||||
(dimension, name),
|
||||
).fetchone()
|
||||
if not row:
|
||||
return None
|
||||
deps = self._load_dependencies(row["id"])
|
||||
return Entity(
|
||||
id=row["id"], name=row["name"], description=row["description"] or "",
|
||||
dimension=row["dimension"], dimension_id=row["dimension_id"],
|
||||
dependencies=deps,
|
||||
)
|
||||
|
||||
def update_dependency(self, dep_id: int, dep: Dependency) -> None:
|
||||
self.conn.execute(
|
||||
"""UPDATE dependencies
|
||||
@@ -772,3 +801,20 @@ class Repository:
|
||||
(combo_id, domain_id),
|
||||
).fetchone()
|
||||
return dict(row) if row else None
|
||||
|
||||
# ── Admin ────────────────────────────────────────────────────
|
||||
|
||||
def clear_all(self) -> None:
|
||||
"""Delete all data from every table in FK-safe order."""
|
||||
self.conn.execute("DELETE FROM pipeline_runs")
|
||||
self.conn.execute("DELETE FROM combination_results")
|
||||
self.conn.execute("DELETE FROM combination_scores")
|
||||
self.conn.execute("DELETE FROM combination_entities")
|
||||
self.conn.execute("DELETE FROM combinations")
|
||||
self.conn.execute("DELETE FROM dependencies")
|
||||
self.conn.execute("DELETE FROM entities")
|
||||
self.conn.execute("DELETE FROM domain_metric_weights")
|
||||
self.conn.execute("DELETE FROM domains")
|
||||
self.conn.execute("DELETE FROM metrics")
|
||||
self.conn.execute("DELETE FROM dimensions")
|
||||
self.conn.commit()
|
||||
|
||||
Reference in New Issue
Block a user