76 lines
1.6 KiB
Python
76 lines
1.6 KiB
Python
"""CityGrid: Lightweight, production-ready MVP for policy-driven federated optimization across cross-utility districts.
|
|
|
|
This package provides core primitives, a minimal Graph-of-Contracts (GoC) registry, a lightweight
|
|
EnergiaBridge for interoperability, and two toy adapters to bootstrap a 2-domain MVP (DER and water pumps).
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
from typing import Any, Dict, List
|
|
|
|
__version__ = "0.1.0"
|
|
|
|
@dataclass
|
|
class LocalProblem:
|
|
id: str
|
|
domain: str
|
|
assets: List[str]
|
|
objective: Dict[str, Any]
|
|
constraints: Dict[str, Any]
|
|
solver_hint: Dict[str, Any] | None = None
|
|
|
|
@dataclass
|
|
class SharedVariables:
|
|
version: int
|
|
signals: Dict[str, Any]
|
|
priors: Dict[str, Any] | None = None
|
|
|
|
@dataclass
|
|
class DualVariables:
|
|
multipliers: Dict[str, float]
|
|
|
|
@dataclass
|
|
class PlanDelta:
|
|
delta: Dict[str, Any]
|
|
timestamp: float
|
|
author: str
|
|
contract_id: str
|
|
signature: str | None = None
|
|
|
|
@dataclass
|
|
class PrivacyBudget:
|
|
signal: str
|
|
budget: float
|
|
expiry: float | None = None
|
|
|
|
@dataclass
|
|
class AuditLog:
|
|
entry: str
|
|
signer: str
|
|
timestamp: float
|
|
contract_id: str
|
|
version: str
|
|
|
|
@dataclass
|
|
class PolicyBlock:
|
|
safety: Dict[str, Any]
|
|
exposure_rules: Dict[str, Any]
|
|
|
|
__all__ = [
|
|
"__version__",
|
|
"LocalProblem",
|
|
"SharedVariables",
|
|
"DualVariables",
|
|
"PlanDelta",
|
|
"PrivacyBudget",
|
|
"AuditLog",
|
|
"PolicyBlock",
|
|
# Policy DSL utilities
|
|
"policy_to_constraints",
|
|
"PolicyDSL",
|
|
]
|
|
|
|
# Lightweight policy-to-constraint utilities (DSL sketch)
|
|
from .policy.dsl import policy_to_constraints, PolicyDSL # noqa: E402,F401
|