diff --git a/README.md b/README.md index f93d749..c06900e 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,13 @@ Add the following items to your setup.py: ``` install_requires=[ "zepben.auth==", - "zepben.evolve==" + "zepben.ewb==" ], ``` The latest versions can be found on the Python package index: -* [zepben.evolve](https://pypi.org/project/zepben.evolve/) +* [zepben.ewb](https://pypi.org/project/zepben.ewb/) * [zepben.auth](https://pypi.org/project/zepben.auth/) > [!NOTE] diff --git a/changelog.md b/changelog.md index 4b25366..1430a49 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,7 @@ # EWB Python SDK examples ## [0.4.0] - UNRELEASED ### Breaking Changes -* None. +* Update `zepben.evolve` to latest version, renamed too `zepben.ewb` 1.0.0b7. Previous versions will be incompatible. ### New Features * None. diff --git a/pyproject.toml b/pyproject.toml index 6828a67..0d1f53f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,15 +16,15 @@ build-backend = "setuptools.build_meta" name = "zepben.examples" description = "Module containing examples for interacting with Zepben's platform" version = "0.4.0b2" -readme = {file = "README.md", content-type = "test/markdown"} +readme = {file = "README.md", content-type = "text/markdown"} license = "MPL-2.0" -requires-python = '>=3.9,<3.13' +requires-python = '>=3.10,<3.13' authors = [ {name = "Zeppelin Bend", email = "oss@zepben.com"} ] dependencies = [ "zepben.eas==0.19.0", - "zepben.evolve==0.48.0", + "zepben.ewb==1.0.0b7", "numba==0.60.0", "geojson==2.5.0", "gql[requests]==3.4.1", @@ -34,7 +34,6 @@ dependencies = [ ] classifiers = [ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", diff --git a/src/zepben/examples/building_network_hierarchy.py b/src/zepben/examples/building_network_hierarchy.py index 135eeba..f4ce539 100644 --- a/src/zepben/examples/building_network_hierarchy.py +++ b/src/zepben/examples/building_network_hierarchy.py @@ -4,7 +4,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at https://mozilla.org/MPL/2.0/. -from zepben.evolve import NetworkHierarchy, GeographicalRegion, SubGeographicalRegion, Feeder, Substation, Loop, Circuit +from zepben.ewb import NetworkHierarchy, GeographicalRegion, SubGeographicalRegion, Feeder, Substation, Loop, Circuit if __name__ == '__main__': diff --git a/src/zepben/examples/connecting_to_grpc_service.py b/src/zepben/examples/connecting_to_grpc_service.py index 63ba393..3122df8 100644 --- a/src/zepben/examples/connecting_to_grpc_service.py +++ b/src/zepben/examples/connecting_to_grpc_service.py @@ -10,7 +10,7 @@ async def plaintext_connection(): Connects to an RPC server without TLS or authentication. This method should only be used in development and for demos. """ - from zepben.evolve import connect_insecure, NetworkConsumerClient + from zepben.ewb import connect_insecure, NetworkConsumerClient async with connect_insecure("hostname", 1234) as insecure_channel: client = NetworkConsumerClient(insecure_channel) grpc_result = await client.get_network_hierarchy() @@ -22,7 +22,7 @@ async def secure_connection(): Connects to an RPC server over TLS. No user/client credentials are used. """ - from zepben.evolve import connect_tls, NetworkConsumerClient + from zepben.ewb import connect_tls, NetworkConsumerClient async with connect_tls("hostname", 1234) as secure_channel: client = NetworkConsumerClient(secure_channel) grpc_result = await client.get_network_hierarchy() @@ -35,7 +35,7 @@ async def secure_connection_with_user_credentials(): fetched from https://hostname/auth or https://hostname/ewb/auth by default, which includes the domain of the OAuth token provider. """ - from zepben.evolve import connect_with_password, NetworkConsumerClient + from zepben.ewb import connect_with_password, NetworkConsumerClient async with connect_with_password( "client ID", "username", @@ -70,7 +70,7 @@ async def secure_connection_with_client_credentials(): fetched from https://hostname/auth or https://hostname/ewb/auth by default, which includes the domain of the OAuth token provider. """ - from zepben.evolve import connect_with_secret, NetworkConsumerClient + from zepben.ewb import connect_with_secret, NetworkConsumerClient async with connect_with_secret( "client ID", "client secret", @@ -102,7 +102,7 @@ def connect_sync(): You may use `SyncNetworkConsumerClient` if you prefer not to use asyncio. The API calls are the same between `SyncNetworkConsumerClient` and `NetworkConsumerClient`. """ - from zepben.evolve import connect_insecure, SyncNetworkConsumerClient + from zepben.ewb import connect_insecure, SyncNetworkConsumerClient channel = connect_insecure("hostname", 1234) client = SyncNetworkConsumerClient(channel) grpc_result = client.get_network_hierarchy() @@ -111,7 +111,7 @@ def connect_sync(): async def connect_using_token(): import json - from zepben.evolve import connect_with_token, NetworkConsumerClient + from zepben.ewb import connect_with_token, NetworkConsumerClient with open("config.json") as f: c = json.load(f) diff --git a/src/zepben/examples/current_state_manipulations.py b/src/zepben/examples/current_state_manipulations.py index e6c7237..40a2a8b 100644 --- a/src/zepben/examples/current_state_manipulations.py +++ b/src/zepben/examples/current_state_manipulations.py @@ -6,16 +6,14 @@ import asyncio import json -import sys from typing import List, Set -from zepben.evolve import ( - Feeder, PowerTransformer, Switch, Tracing, NetworkConsumerClient, connect_with_password, Terminal, - BusbarSection, ConductingEquipment, Breaker, EquipmentContainer, StepContext, NetworkTraceStep, connect_with_token +from zepben.ewb import ( + Feeder, PowerTransformer, Switch, Tracing, NetworkConsumerClient, Terminal, BusbarSection, + ConductingEquipment, Breaker, EquipmentContainer, StepContext, NetworkTraceStep, connect_with_token, + IncludedEnergizedContainers, IncludedEnergizingContainers ) -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_FEEDERS, INCLUDE_ENERGIZING_FEEDERS - """ Primary question to answer/example for: 1. How to access the CIM model? Show examples of how the static/design and dynamic/current states @@ -49,8 +47,8 @@ async def fetch_zone_feeders(client: NetworkConsumerClient): await client.get_equipment_container( feeder.mrid, Feeder, - include_energizing_containers=INCLUDE_ENERGIZING_FEEDERS, - include_energized_containers=INCLUDE_ENERGIZED_FEEDERS + include_energizing_containers=IncludedEnergizingContainers.FEEDERS, + include_energized_containers=IncludedEnergizedContainers.FEEDERS ) print("CPM feeders fetched.") diff --git a/src/zepben/examples/dsub_from_nmi.py b/src/zepben/examples/dsub_from_nmi.py index 665f957..c7e5c0b 100644 --- a/src/zepben/examples/dsub_from_nmi.py +++ b/src/zepben/examples/dsub_from_nmi.py @@ -12,12 +12,11 @@ import asyncio import json -from zepben.evolve import ( +from zepben.ewb import ( NetworkStateOperators, NetworkTraceActionType, NetworkTraceStep, StepContext, NetworkConsumerClient, ConductingEquipment, connect_with_token ) -from zepben.evolve import PowerTransformer, UsagePoint, Tracing, Switch -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_LV_FEEDERS +from zepben.ewb import PowerTransformer, UsagePoint, Tracing, Switch, IncludedEnergizedContainers with open("config.json") as f: @@ -47,7 +46,7 @@ def step_action(step: NetworkTraceStep, context: StepContext): async def main(mrid: str, feeder_mrid: str): channel = connect_with_token(host=c["host"], access_token=c["access_token"], rpc_port=c["rpc_port"]) client = NetworkConsumerClient(channel) - await client.get_equipment_container(feeder_mrid, include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS) + await client.get_equipment_container(feeder_mrid, include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS) network = client.service try: diff --git a/src/zepben/examples/energy_consumer_device_hierarchy.py b/src/zepben/examples/energy_consumer_device_hierarchy.py index 41801d9..7d2b4fa 100644 --- a/src/zepben/examples/energy_consumer_device_hierarchy.py +++ b/src/zepben/examples/energy_consumer_device_hierarchy.py @@ -12,9 +12,9 @@ from typing import Union import pandas as pd -from zepben.evolve import NetworkConsumerClient, connect_with_token, Tracing, upstream, EnergyConsumer, NetworkTraceStep, StepContext, PowerTransformer, \ +from zepben.ewb import NetworkConsumerClient, connect_with_token, Tracing, upstream, EnergyConsumer, NetworkTraceStep, StepContext, PowerTransformer, \ TransformerFunctionKind, Breaker, ConductingEquipment, Fuse, IdentifiedObject, NetworkTrace, Feeder -from zepben.protobuf.nc.nc_requests_pb2 import IncludedEnergizingContainers, IncludedEnergizedContainers +from zepben.protobuf.nc.nc_requests_pb2 import IncludedEnergizedContainers @dataclass diff --git a/src/zepben/examples/energy_consumer_device_hierarchy_downstream.py b/src/zepben/examples/energy_consumer_device_hierarchy_downstream.py index 46fee35..aa745af 100644 --- a/src/zepben/examples/energy_consumer_device_hierarchy_downstream.py +++ b/src/zepben/examples/energy_consumer_device_hierarchy_downstream.py @@ -11,9 +11,9 @@ from typing import Dict import pandas as pd -from zepben.evolve import NetworkConsumerClient, connect_with_token, Tracing, EnergyConsumer, PowerTransformer, \ - TransformerFunctionKind, Breaker, Fuse, IdentifiedObject, EquipmentTreeBuilder, downstream, TreeNode, Feeder -from zepben.protobuf.nc.nc_requests_pb2 import IncludedEnergizedContainers +from zepben.ewb import NetworkConsumerClient, connect_with_token, Tracing, EnergyConsumer, PowerTransformer, \ + TransformerFunctionKind, Breaker, Fuse, IdentifiedObject, EquipmentTreeBuilder, downstream, TreeNode, \ + Feeder, IncludedEnergizedContainers @dataclass diff --git a/src/zepben/examples/examining_connectivity.py b/src/zepben/examples/examining_connectivity.py index dd67de6..87e0207 100644 --- a/src/zepben/examples/examining_connectivity.py +++ b/src/zepben/examples/examining_connectivity.py @@ -3,7 +3,7 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at https://mozilla.org/MPL/2.0/. -from zepben.evolve import ( +from zepben.ewb import ( EnergySource, AcLineSegment, Fuse, PowerTransformer, Breaker, EnergyConsumer, NetworkService, Terminal, connected_equipment, ConductingEquipment, PhaseCode, connected_terminals, ConnectivityResult diff --git a/src/zepben/examples/fetching_network_hierarchy.py b/src/zepben/examples/fetching_network_hierarchy.py index 392eb27..9e504ca 100644 --- a/src/zepben/examples/fetching_network_hierarchy.py +++ b/src/zepben/examples/fetching_network_hierarchy.py @@ -6,7 +6,7 @@ import asyncio import json -from zepben.evolve import connect_with_token, NetworkConsumerClient +from zepben.ewb import connect_with_token, NetworkConsumerClient with open("config.json") as f: c = json.loads(f.read()) diff --git a/src/zepben/examples/fetching_network_model.py b/src/zepben/examples/fetching_network_model.py index 2216e1f..5196926 100644 --- a/src/zepben/examples/fetching_network_model.py +++ b/src/zepben/examples/fetching_network_model.py @@ -7,11 +7,9 @@ import json from collections import defaultdict -from zepben.evolve import ( - Conductor, PowerTransformer, ConductingEquipment, EnergyConsumer, Switch, connect_with_token, NetworkConsumerClient -) -from zepben.protobuf.nc.nc_requests_pb2 import ( - INCLUDE_ENERGIZED_LV_FEEDERS, INCLUDE_ENERGIZED_FEEDERS, INCLUDE_ENERGIZING_SUBSTATIONS, INCLUDE_ENERGIZING_FEEDERS +from zepben.ewb import ( + Conductor, PowerTransformer, ConductingEquipment, EnergyConsumer, Switch, connect_with_token, + NetworkConsumerClient, IncludedEnergizedContainers, IncludedEnergizingContainers ) @@ -31,7 +29,7 @@ async def main(): # Fetch feeder and all its LvFeeders await client.get_equipment_container( feeder_mrid, - include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS ) print(f"\nTotal Number of objects: {client.service.len_of()}") @@ -66,13 +64,13 @@ async def main(): # Fetch substation equipment and include equipment from HV/MV feeders powered by it await client.get_equipment_container( "substation ID", - include_energized_containers=INCLUDE_ENERGIZED_FEEDERS + include_energized_containers=IncludedEnergizedContainers.FEEDERS ) # Same as above, but also fetch equipment from LV feeders powered by the HV/MV feeders await client.get_equipment_container( "substation ID", - include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS ) # Fetch feeder equipment without fetching any additional equipment from powering/powered containers @@ -82,20 +80,20 @@ async def main(): # and the equipment from the LV feeders it powers await client.get_equipment_container( "feeder ID", - include_energizing_containers=INCLUDE_ENERGIZING_SUBSTATIONS, - include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + include_energizing_containers=IncludedEnergizingContainers.SUBSTATIONS, + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS ) # Fetch LV feeder equipment and include equipment from HV/MV feeders powering it await client.get_equipment_container( "LV feeder ID", - include_energizing_containers=INCLUDE_ENERGIZING_FEEDERS + include_energizing_containers=IncludedEnergizingContainers.FEEDERS ) # Same as above, but also fetch equipment from the substations powering the HV/MV feeders await client.get_equipment_container( "LV feeder ID", - include_energizing_containers=INCLUDE_ENERGIZING_SUBSTATIONS + include_energizing_containers=IncludedEnergizingContainers.SUBSTATIONS ) diff --git a/src/zepben/examples/find_isolation_section_from_equipment.py b/src/zepben/examples/find_isolation_section_from_equipment.py index 4bea668..784dc1e 100644 --- a/src/zepben/examples/find_isolation_section_from_equipment.py +++ b/src/zepben/examples/find_isolation_section_from_equipment.py @@ -12,12 +12,11 @@ import asyncio import json -from zepben.evolve import ( +from zepben.ewb import ( NetworkStateOperators, NetworkTraceActionType, NetworkTraceStep, StepContext, - NetworkConsumerClient, AcLineSegment, connect_with_token, stop_at_open + NetworkConsumerClient, AcLineSegment, connect_with_token, stop_at_open, IncludedEnergizedContainers ) -from zepben.evolve import Tracing, Switch -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_LV_FEEDERS +from zepben.ewb import Tracing, Switch async def main(conductor_mrid: str, feeder_mrid: str): @@ -31,7 +30,7 @@ async def main(conductor_mrid: str, feeder_mrid: str): ) client = NetworkConsumerClient(channel) await client.get_equipment_container( - feeder_mrid, include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + feeder_mrid, include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS ) network = client.service diff --git a/src/zepben/examples/id_csv_generator.py b/src/zepben/examples/id_csv_generator.py index 7c3fcb2..0664611 100644 --- a/src/zepben/examples/id_csv_generator.py +++ b/src/zepben/examples/id_csv_generator.py @@ -14,9 +14,7 @@ from typing import Optional import pandas as pd -from zepben.protobuf.nc.nc_requests_pb2 import IncludedEnergizedContainers - -from zepben.evolve import NetworkConsumerClient, connect_with_token, ConductingEquipment, Feeder, connect_tls +from zepben.ewb import NetworkConsumerClient, connect_with_token, ConductingEquipment, Feeder, IncludedEnergizedContainers with open("./config.json") as f: c = json.loads(f.read()) @@ -58,8 +56,10 @@ async def process_nodes(feeder_mrid: str, channel): print("Fetching from server ...") network_client = NetworkConsumerClient(channel=channel) network_service = network_client.service - (await network_client.get_equipment_container(feeder_mrid, - include_energized_containers=IncludedEnergizedContainers.INCLUDE_ENERGIZED_LV_FEEDERS)).throw_on_error() + (await network_client.get_equipment_container( + feeder_mrid, + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS) + ).throw_on_error() print("Processing equipment ...") feeder = network_service.get(feeder_mrid, Feeder) diff --git a/src/zepben/examples/ieee_13_node_test_feeder.py b/src/zepben/examples/ieee_13_node_test_feeder.py index c3bad9e..48aee6b 100644 --- a/src/zepben/examples/ieee_13_node_test_feeder.py +++ b/src/zepben/examples/ieee_13_node_test_feeder.py @@ -6,7 +6,7 @@ from typing import Tuple import numpy -from zepben.evolve import ( +from zepben.ewb import ( AcLineSegment, Disconnector, PowerTransformer, TransformerFunctionKind, NetworkService, Terminal, PowerTransformerEnd, EnergyConsumer, PerLengthSequenceImpedance, PhaseCode, EnergyConsumerPhase, SinglePhaseKind, LinearShuntCompensator, ShuntCompensatorInfo, Feeder, LvFeeder, BaseVoltage, Breaker diff --git a/src/zepben/examples/isolation_equipment_between_nodes.py b/src/zepben/examples/isolation_equipment_between_nodes.py index 904bbfb..5b2be0c 100644 --- a/src/zepben/examples/isolation_equipment_between_nodes.py +++ b/src/zepben/examples/isolation_equipment_between_nodes.py @@ -13,11 +13,11 @@ import json from typing import Tuple, Type -from zepben.evolve import ( +from zepben.ewb import ( NetworkStateOperators, NetworkTraceActionType, NetworkTraceStep, StepContext, Tracing, - NetworkConsumerClient, ProtectedSwitch, Recloser, LoadBreakSwitch, connect_with_token + NetworkConsumerClient, ProtectedSwitch, Recloser, LoadBreakSwitch, connect_with_token, + IncludedEnergizedContainers ) -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_LV_FEEDERS async def main(mrids: Tuple[str, str], io_type: Type[ProtectedSwitch], feeder_mrid): @@ -32,7 +32,7 @@ async def main(mrids: Tuple[str, str], io_type: Type[ProtectedSwitch], feeder_mr client = NetworkConsumerClient(channel) await client.get_equipment_container( feeder_mrid, - include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS ) network = client.service diff --git a/src/zepben/examples/list_ewb_network_models.py b/src/zepben/examples/list_ewb_network_models.py index c4fa7f9..f62592c 100644 --- a/src/zepben/examples/list_ewb_network_models.py +++ b/src/zepben/examples/list_ewb_network_models.py @@ -5,7 +5,7 @@ # file, You can obtain one at https://mozilla.org/MPL/2.0/. import tempfile -from zepben.evolve import EwbDataFilePaths, DatabaseType +from zepben.ewb import EwbDataFilePaths, DatabaseType from pathlib import Path from datetime import date diff --git a/src/zepben/examples/network_service_interactions.py b/src/zepben/examples/network_service_interactions.py index a7aeea7..1fe8e0d 100644 --- a/src/zepben/examples/network_service_interactions.py +++ b/src/zepben/examples/network_service_interactions.py @@ -3,8 +3,8 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at https://mozilla.org/MPL/2.0/. -from zepben.evolve.services.common.resolver import per_length_impedance -from zepben.evolve import ( +from zepben.ewb.services.common.resolver import per_length_impedance +from zepben.ewb import ( NetworkService, AcLineSegment, PerLengthSequenceImpedance, Switch, Breaker, ConductingEquipment, NameType, Meter, EnergySource, Terminal ) diff --git a/src/zepben/examples/studies/creating_and_uploading_study.py b/src/zepben/examples/studies/creating_and_uploading_study.py index 1c485c1..201b89d 100644 --- a/src/zepben/examples/studies/creating_and_uploading_study.py +++ b/src/zepben/examples/studies/creating_and_uploading_study.py @@ -8,14 +8,13 @@ from geojson import Feature, LineString, FeatureCollection, Point from zepben.eas import Study, Result, GeoJsonOverlay, EasClient -from zepben.evolve import AcLineSegment, EnergyConsumer, connect_with_token, NetworkConsumerClient +from zepben.ewb import AcLineSegment, EnergyConsumer, connect_with_token, NetworkConsumerClient, IncludedEnergizedContainers # A study is a geographical visualisation of data that is drawn on top of the network. # This data is typically the result of a load flow simulation. # Each study may contain multiple results: different visualisations that the user may switch between. # For example, the first result may display per-unit voltage data, while the second result highlights overloaded equipment. # Two results are created in this example study: one makes a heatmap of energy consumers and the other highlights LV lines and displays their length. # Both Evolve App Server and Energy Workbench must be running for this example. -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_LV_FEEDERS with open("../config.json") as f: @@ -29,7 +28,7 @@ async def main(): feeder_mrid = "WD24" grpc_client = NetworkConsumerClient(grpc_channel) print("Connection established..") - await grpc_client.get_equipment_container(feeder_mrid, include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS) + await grpc_client.get_equipment_container(feeder_mrid, include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS) network = grpc_client.service print("Creating study..") diff --git a/src/zepben/examples/studies/suspect_end_of_line.py b/src/zepben/examples/studies/suspect_end_of_line.py index 3cd837f..abcaf6f 100644 --- a/src/zepben/examples/studies/suspect_end_of_line.py +++ b/src/zepben/examples/studies/suspect_end_of_line.py @@ -14,10 +14,9 @@ from geojson.geometry import Geometry, LineString, Point from zepben.eas.client.eas_client import EasClient from zepben.eas.client.study import Study, Result, GeoJsonOverlay -from zepben.evolve import PowerTransformer, ConductingEquipment, EnergyConsumer, AcLineSegment, \ +from zepben.ewb import PowerTransformer, ConductingEquipment, EnergyConsumer, AcLineSegment, \ NetworkConsumerClient, PhaseCode, PowerElectronicsConnection, Feeder, PowerSystemResource, Location, \ - connect_with_token, NetworkTraceStep, Tracing, downstream, upstream -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_LV_FEEDERS + connect_with_token, NetworkTraceStep, Tracing, downstream, upstream, IncludedEnergizedContainers with open("../config.json") as f: @@ -115,7 +114,7 @@ async def fetch_feeder_and_trace(feeder_mrid: str, rpc_channel): await client.get_equipment_container( mrid=feeder_mrid, expected_class=Feeder, - include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS ) ) if result.was_failure: diff --git a/src/zepben/examples/tracing.py b/src/zepben/examples/tracing.py index fc30213..0e418ce 100644 --- a/src/zepben/examples/tracing.py +++ b/src/zepben/examples/tracing.py @@ -8,7 +8,7 @@ # The Evolve SDK contains several factory functions for traversals that cover common use cases. import asyncio -from zepben.evolve import NetworkTraceStep, StepContext, Breaker, Switch, Feeder, LvFeeder, NetworkStateOperators +from zepben.ewb import NetworkTraceStep, StepContext, Breaker, Switch, Feeder, LvFeeder, NetworkStateOperators # For the purposes of this example, we will use the IEEE 13 node feeder. from zepben.examples.ieee_13_node_test_feeder import network @@ -49,7 +49,7 @@ async def network_traces(): - Considering only the normal state of the network. - Performing :class:`StepAction`s only once per unique equipment encountered """ - from zepben.evolve import Tracing + from zepben.ewb import Tracing await ( Tracing.network_trace() @@ -60,7 +60,7 @@ async def network_trace_state_operators(): Both the normal and current state of the network can be operated on by passing :class:`NetworkStateOperators` to the constructor as `network_state_operators` """ - from zepben.evolve import Tracing, NetworkStateOperators + from zepben.ewb import Tracing, NetworkStateOperators await ( Tracing.network_trace(network_state_operators=NetworkStateOperators.NORMAL) @@ -77,7 +77,7 @@ async def network_trace_queue(): `queue` to the constructor to control which step is taken next as the `NetworkTrace` traverses the network """ - from zepben.evolve import Tracing, TraversalQueue + from zepben.ewb import Tracing, TraversalQueue await ( Tracing.network_trace(queue=TraversalQueue.depth_first()) @@ -95,7 +95,7 @@ async def network_trace_branching(): A branching trace has the same defaults as a non_branching trace """ - from zepben.evolve import Tracing + from zepben.ewb import Tracing await ( Tracing.network_trace_branching() ).run(start_item) @@ -121,7 +121,7 @@ async def lambda_step_action(): to take as we traverse. async functions are supported as step actions To get started, let's demonstrate a simple :class:`StepAction defined as a lambda. """ - from zepben.evolve import Tracing + from zepben.ewb import Tracing print_heading('NetworkTrace StepAction (as lambda):') await ( @@ -133,7 +133,7 @@ async def function_step_action(): """ Functions can be used if you want type hinting, or more then one line. """ - from zepben.evolve import Tracing, NetworkTraceStep, StepContext + from zepben.ewb import Tracing, NetworkTraceStep, StepContext print_heading('NetworkTrace StepAction (as function):') def print_step(step: NetworkTraceStep, context: StepContext) -> None: @@ -150,7 +150,7 @@ async def subclassed_step_action(): approach, please read the documentation of :class:`StepAction` as there are specific methods you will need to override. """ - from zepben.evolve import Tracing, NetworkTraceStep, StepAction, StepContext + from zepben.ewb import Tracing, NetworkTraceStep, StepAction, StepContext print_heading('NetworkTrace StepAction (as subclass):') class PrintingStepAction(StepAction): @@ -171,7 +171,7 @@ async def step_action_type(): per equipment. This is configured by passing :class:`NetworkTraceActionType to the :class:`NetworkTrace` constructor. """ - from zepben.evolve import Tracing, NetworkTraceActionType + from zepben.ewb import Tracing, NetworkTraceActionType print_heading('NetworkTrace (ALL_STEPS):') await ( @@ -218,7 +218,7 @@ async def conditions_stop_at_open(): The condition is checked against the state specified with `network_state_operators` passed to the constructor of :class:`NetworkTrace` """ - from zepben.evolve import Tracing, stop_at_open, Switch + from zepben.ewb import Tracing, stop_at_open, Switch print_heading("Network Trace Stopping at open equipment (NetworkStateOperators.NORMAL):") @@ -242,7 +242,7 @@ async def conditions_downstream(): You can specify a direction to trace to achieve a directed network trace. Tracing.set_direction() must be run on a network before performing any directed traces """ - from zepben.evolve import Tracing, downstream, upstream + from zepben.ewb import Tracing, downstream, upstream print_heading("Downstream Network Trace:") @@ -267,7 +267,7 @@ async def conditions_limit_equipment_steps(): Running the trace returns a dictionary from each visited equipment to the number of steps away it is from a starting equipment. """ - from zepben.evolve import Tracing, downstream, limit_equipment_steps, AcLineSegment + from zepben.ewb import Tracing, downstream, limit_equipment_steps, AcLineSegment print_heading("Downstream NetworkTrace with limited equipment steps:") @@ -309,7 +309,7 @@ async def assigning_equipment_to_feeders(): network_state_operators=NetworkStateOperators.NORMAL ) """ - from zepben.evolve import Tracing + from zepben.ewb import Tracing print_heading("ASSIGNING EQUIPMENT TO FEEDERS") @@ -353,7 +353,7 @@ async def set_feeder_direction(): network_state_operators=NetworkStateOperators.CURRENT ) """ - from zepben.evolve import Tracing, NetworkStateOperators, Terminal + from zepben.ewb import Tracing, NetworkStateOperators, Terminal print_heading("SETTING FEEDER DIRECTION") @@ -393,7 +393,7 @@ async def clear_feeder_direction(): network_state_operators=NetworkStateOperators.CURRENT ) """ - from zepben.evolve import Tracing, NetworkStateOperators, Terminal + from zepben.ewb import Tracing, NetworkStateOperators, Terminal print_heading("REMOVING FEEDER DIRECTION") @@ -415,7 +415,7 @@ async def clear_feeder_direction(): reset_switch() - from zepben.evolve import SinglePhaseKind + from zepben.ewb import SinglePhaseKind switch.set_normally_open(True, phase=SinglePhaseKind.A) print(f"Switch set to normally open on phase A. Switch is between feeder head and energy consumer 675.") @@ -432,7 +432,7 @@ async def trees(): a NetworkTrace, either the normal or current state of the network may be used to determine whether to trace through each switch when combined with `Conditions.stop_at_open` """ - from zepben.evolve import Tracing, SinglePhaseKind, EquipmentTreeBuilder, TreeNode, NetworkStateOperators + from zepben.ewb import Tracing, SinglePhaseKind, EquipmentTreeBuilder, TreeNode, NetworkStateOperators print_heading("DOWNSTREAM TREES") diff --git a/src/zepben/examples/tracing_conductor_type_by_lv_circuit.py b/src/zepben/examples/tracing_conductor_type_by_lv_circuit.py index c57aae4..247cd8b 100644 --- a/src/zepben/examples/tracing_conductor_type_by_lv_circuit.py +++ b/src/zepben/examples/tracing_conductor_type_by_lv_circuit.py @@ -10,9 +10,8 @@ import os from typing import List, Union, Tuple, Optional, Dict -from zepben.evolve import NetworkConsumerClient, PhaseCode, AcLineSegment, \ - FeederDirection, connect_with_token, Tracing, downstream, NetworkTraceStep, ConductingEquipment, PowerTransformer -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_LV_FEEDERS +from zepben.ewb import NetworkConsumerClient, PhaseCode, AcLineSegment, FeederDirection, connect_with_token, \ + Tracing, downstream, NetworkTraceStep, ConductingEquipment, PowerTransformer, IncludedEnergizedContainers LineInfo = Tuple[str, str, Optional[Union[int, float]]] @@ -70,7 +69,7 @@ async def get_feeder_network(channel, feeder_mrid): result = ( await client.get_equipment_container( mrid=feeder_mrid, - include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS ) ) if result.was_failure: diff --git a/src/zepben/examples/tracing_example.py b/src/zepben/examples/tracing_example.py index 6f3628b..6bb85b7 100644 --- a/src/zepben/examples/tracing_example.py +++ b/src/zepben/examples/tracing_example.py @@ -8,11 +8,11 @@ import asyncio import json -from zepben.evolve import ( +from zepben.ewb import ( NetworkConsumerClient, PhaseCode, AcLineSegment, connect_with_token, EnergyConsumer, - PowerTransformer, ConductingEquipment, Tracing, NetworkTraceStep, downstream, upstream + PowerTransformer, ConductingEquipment, Tracing, NetworkTraceStep, downstream, upstream, + IncludedEnergizedContainers ) -from zepben.protobuf.nc.nc_requests_pb2 import INCLUDE_ENERGIZED_LV_FEEDERS async def main(): @@ -48,7 +48,7 @@ async def get_feeder_network(channel, feeder_mrid): client = NetworkConsumerClient(channel) (await client.get_equipment_container( mrid=feeder_mrid, - include_energized_containers=INCLUDE_ENERGIZED_LV_FEEDERS + include_energized_containers=IncludedEnergizedContainers.LV_FEEDERS )).throw_on_error() return client.service diff --git a/src/zepben/examples/translating_to_pandapower_model.py b/src/zepben/examples/translating_to_pandapower_model.py index 6eeb481..d82596e 100644 --- a/src/zepben/examples/translating_to_pandapower_model.py +++ b/src/zepben/examples/translating_to_pandapower_model.py @@ -8,7 +8,7 @@ import pandapower as pp from pp_creators.basic_creator import BasicPandaPowerNetworkCreator -from zepben.evolve import NetworkService, Terminal, EnergySource, Tracing +from zepben.ewb import NetworkService, Terminal, EnergySource, Tracing from zepben.examples.ieee_13_node_test_feeder import network diff --git a/src/zepben/examples/tx_id_to_name.py b/src/zepben/examples/tx_id_to_name.py index 07bb962..05ca357 100644 --- a/src/zepben/examples/tx_id_to_name.py +++ b/src/zepben/examples/tx_id_to_name.py @@ -13,7 +13,7 @@ from dataclasses import dataclass import pandas as pd -from zepben.evolve import NetworkConsumerClient, connect_with_token, PowerTransformer +from zepben.ewb import NetworkConsumerClient, connect_with_token, PowerTransformer OUTPUT_FILE = "transformer_id_mapping.csv" HEADER = True