Coverage for backend/pinch_service/OpenPinch/src/analysis/response.py: 100%
25 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
1from typing import List
2from .graphs import get_output_graphs
3from .support_methods import *
4from ..classes import *
6__all__ = ["output_response"]
9#######################################################################################################
10# Public API
11#######################################################################################################
13def output_response(site: Zone) -> dict:
14 """Serializes results data into a dictionaty from options."""
15 results = {}
16 results['name'] = site.name
17 results['targets'] = _report(site)
18 results['utilities'] = _get_default_utilities(site)
19 results['graphs'] = get_output_graphs(site)
20 return results
23#######################################################################################################
24# Helper Functions
25#######################################################################################################
27def _report(zone: Zone) -> dict:
28 """Creates the database summary of zone targets."""
29 targets: List[dict] = []
31 for t in zone.targets.values():
32 t: Target
33 targets.append(t.serialize_json())
35 if len(zone.subzones) > 0:
36 for z in zone.subzones.values():
37 z: Zone
38 targets.extend(
39 _report(z)
40 )
42 return targets
45def _get_default_utilities(site: Zone) -> List[Stream]:
46 """Gets a list of any default utilities generated during the analysis."""
47 utilities: List[Stream] = site.hot_utilities + site.cold_utilities
48 default_hu: Stream = next((u for u in utilities if u.name == 'HU'), None)
49 default_cu: Stream = next((u for u in utilities if u.name == 'CU'), None)
50 return [default_hu, default_cu]