citygrid-policy-driven-fede.../citygrid/__init__.py

70 lines
1.4 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",
]