Skip to content

Commit 81894d3

Browse files
committed
Support 3.9
Signed-off-by: Kurt Greaves <kurt.greaves@zepben.com>
1 parent 60202ed commit 81894d3

11 files changed

Lines changed: 31 additions & 27 deletions

File tree

src/zepben/evolve/services/network/tracing/feeder/assign_to_lv_feeders.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# License, v. 2.0. If a copy of the MPL was not distributed with this
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
55
from collections.abc import Iterable
6-
from typing import Collection, List, Generator
6+
from typing import Collection, List, Generator, TypeVar
77

88
from zepben.evolve import Switch, AuxiliaryEquipment, ProtectedSwitch, Traversal
99
from zepben.evolve.model.cim.iec61970.base.core.conducting_equipment import ConductingEquipment
@@ -19,6 +19,8 @@
1919
from zepben.evolve.services.network.tracing.networktrace.tracing import Tracing
2020
from zepben.evolve.services.network.tracing.traversal.step_context import StepContext
2121

22+
T = TypeVar("T")
23+
2224
__all__ = ["AssignToLvFeeders"]
2325

2426

@@ -93,7 +95,7 @@ async def run_with_feeders(self,
9395
async def _create_trace(self,
9496
terminal_to_aux_equipment: dict[Terminal, list[AuxiliaryEquipment]],
9597
lv_feeder_start_points: Iterable[ConductingEquipment],
96-
lv_feeders_to_assign: list[LvFeeder]) -> NetworkTrace[...]:
98+
lv_feeders_to_assign: list[LvFeeder]) -> NetworkTrace[T]:
9799

98100
def _reached_hv(ce: ConductingEquipment):
99101
return True if ce.base_voltage and ce.base_voltage.nominal_voltage >= 1000 else False

src/zepben/evolve/services/network/tracing/feeder/clear_direction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
55
from __future__ import annotations
66

7-
from typing import TYPE_CHECKING
7+
from typing import TYPE_CHECKING, Any
88

99
from zepben.evolve.model.cim.iec61970.base.core.terminal import Terminal
1010

@@ -49,7 +49,7 @@ async def run(self,
4949
@staticmethod
5050
def _create_trace(state_operators: NetworkStateOperators,
5151
visited_feeder_head_terminals: list[Terminal]
52-
) -> NetworkTrace[...]:
52+
) -> NetworkTrace[Any]:
5353
def queue_condition(step: NetworkTraceStep, context: StepContext, _, __):
5454
return state_operators.get_direction(step.path.to_terminal) != FeederDirection.NONE
5555

src/zepben/evolve/services/network/tracing/networktrace/actions/equipment_tree_builder.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
55

66
import uuid
7+
from typing import Any
78

89
from zepben.evolve.model.cim.iec61970.base.core.conducting_equipment import ConductingEquipment
910
from zepben.evolve.services.network.tracing.networktrace.actions.tree_node import TreeNode
@@ -40,20 +41,20 @@ def __init__(self):
4041
def roots(self):
4142
return self._roots.values()
4243

43-
def compute_initial_value(self, item: NetworkTraceStep[...]) -> EquipmentTreeNode:
44+
def compute_initial_value(self, item: NetworkTraceStep[Any]) -> EquipmentTreeNode:
4445
node = self._roots.get(item.path.to_equipment)
4546
if node is None:
4647
node = TreeNode(item.path.to_equipment, None)
4748
self._roots[item.path.to_equipment] = node
4849
return node
4950

50-
def compute_next_value_typed(self, next_item: NetworkTraceStep[...], current_item: NetworkTraceStep[...], current_value: EquipmentTreeNode) -> EquipmentTreeNode:
51+
def compute_next_value_typed(self, next_item: NetworkTraceStep[Any], current_item: NetworkTraceStep[Any], current_value: EquipmentTreeNode) -> EquipmentTreeNode:
5152
if next_item.path.traced_internally:
5253
return current_value
5354
else:
5455
return TreeNode(next_item.path.to_equipment, current_value)
5556

56-
def apply(self, item: NetworkTraceStep[...], context: StepContext):
57+
def apply(self, item: NetworkTraceStep[Any], context: StepContext):
5758
current_node: TreeNode = self.get_context_value(context)
5859
if current_node.parent:
5960
current_node.parent.add_child(current_node)

src/zepben/evolve/services/network/tracing/networktrace/actions/tree_node.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
# License, v. 2.0. If a copy of the MPL was not distributed with this
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
55

6-
from typing import Self, List, TypeVar, Generic
6+
from typing import List, TypeVar, Generic
77

88
from zepben.evolve import IdentifiedObject
99

1010
T = TypeVar('T')
1111

12+
1213
class TreeNode(Generic[T]):
1314
"""
1415
represents a node in the NetworkTrace tree
1516
"""
1617
def __init__(self, identified_object: IdentifiedObject, parent=None):
1718
self.identified_object = identified_object
18-
self._parent: Self = parent
19-
self._children: List[Self] = []
19+
self._parent: TreeNode = parent
20+
self._children: List[TreeNode] = []
2021

2122
@property
2223
def parent(self) -> 'TreeNode[T]':
@@ -26,7 +27,7 @@ def parent(self) -> 'TreeNode[T]':
2627
def children(self):
2728
return list(self._children)
2829

29-
def add_child(self, child: Self):
30+
def add_child(self, child: 'TreeNode'):
3031
self._children.append(child)
3132

3233
def __str__(self):

src/zepben/evolve/services/network/tracing/networktrace/compute_data.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This Source Code Form is subject to the terms of the Mozilla Public
33
# License, v. 2.0. If a copy of the MPL was not distributed with this
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
5-
from typing import TypeVar, Generic
5+
from typing import TypeVar, Generic, Any
66

77
from zepben.evolve.services.network.tracing.networktrace.network_trace_step import NetworkTraceStep
88
from zepben.evolve.services.network.tracing.traversal.step_context import StepContext
@@ -38,7 +38,7 @@ class ComputeDataWithPaths(Generic[T]):
3838
def __init__(self, func):
3939
self._func = func or (lambda *args: None)
4040

41-
def compute_next(self, current_step: NetworkTraceStep[T], current_context: StepContext, next_path: NetworkTraceStep.Path, next_paths: list[NetworkTraceStep.Path, ...]) -> T:
41+
def compute_next(self, current_step: NetworkTraceStep[T], current_context: StepContext, next_path: NetworkTraceStep.Path, next_paths: list[NetworkTraceStep.Path, Any]) -> T:
4242
"""
4343
Called for each new NetworkTraceStep in a NetworkTrace. The value returned from this function
4444
will be stored against the next step within NetworkTraceStep. data.

src/zepben/evolve/services/network/tracing/networktrace/network_trace_tracker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This Source Code Form is subject to the terms of the Mozilla Public
33
# License, v. 2.0. If a copy of the MPL was not distributed with this
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
5-
from typing import Set
5+
from typing import Set, Any
66

77
from zepben.evolve import Terminal, SinglePhaseKind
88

@@ -31,7 +31,7 @@ def clear(self):
3131
self._visited.clear()
3232

3333
@staticmethod
34-
def _get_key(terminal: Terminal, phases: Set[SinglePhaseKind]) -> ... :
34+
def _get_key(terminal: Terminal, phases: Set[SinglePhaseKind]) -> Any:
3535
if phases and len(phases) < 1:
3636
return terminal
3737
else:

src/zepben/evolve/services/network/tracing/traversal/weighted_priority_queue.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# License, v. 2.0. If a copy of the MPL was not distributed with this
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
55
from collections import defaultdict
6-
from typing import TypeVar, Callable, Iterable
6+
from typing import TypeVar, Callable, Iterable, Any
77

88
from zepben.evolve.services.network.tracing.traversal.queue import TraversalQueue
99

@@ -26,7 +26,7 @@ class WeightedPriorityQueue(TraversalQueue[T]):
2626
:param queue_provider: A queue provider. This allows you to customise the priority of items with the same weight.
2727
:param get_weight: A method to extract the weight of an item being added to the queue.
2828
"""
29-
def __init__(self, queue_provider: Callable[[], TraversalQueue[T]], get_weight: Callable[[...], int]):
29+
def __init__(self, queue_provider: Callable[[], TraversalQueue[T]], get_weight: Callable[[Any], int]):
3030
self._queue_provider = queue_provider
3131
self._get_weight = get_weight
3232
super().__init__(queue=SortedDefaultDict(self._queue_provider))

src/zepben/evolve/streaming/data/set_current_states_status.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from abc import ABC, abstractmethod
99
from dataclasses import dataclass
10-
from typing import List, Optional, Tuple
10+
from typing import List, Optional, Tuple, Any
1111

1212
from zepben.protobuf.ns.data.change_status_pb2 import BatchSuccessful as PBBatchSuccessful, BatchFailure as PBBatchFailure, \
1313
BatchNotProcessed as PBBatchNotProcessed, StateEventFailure as PBStateEventFailure, StateEventUnknownMrid as PBStateEventUnknownMrid, \
@@ -88,7 +88,7 @@ class BatchFailure(SetCurrentStatesStatus):
8888
failures: The status of each item processed in the batch that failed.
8989
"""
9090

91-
def __init__(self, batch_id: int, partial_failure: bool, failures: Tuple['StateEventFailure', ...]):
91+
def __init__(self, batch_id: int, partial_failure: bool, failures: Tuple['StateEventFailure', Any]):
9292
super().__init__(batch_id)
9393
self.partial_failure = partial_failure
9494
self.failures = failures

src/zepben/evolve/streaming/mutations/update_network_state_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
55
__all__ = ["UpdateNetworkStateService"]
66

7-
from typing import Tuple, Callable, AsyncGenerator
7+
from typing import Tuple, Callable, AsyncGenerator, Any
88

99
from zepben.protobuf.ns.network_state_pb2_grpc import UpdateNetworkStateServiceServicer
1010
from zepben.protobuf.ns.network_state_requests_pb2 import SetCurrentStatesRequest as PBSetCurrentStatesRequest
@@ -29,7 +29,7 @@ class UpdateNetworkStateService(UpdateNetworkStateServiceServicer):
2929
"""
3030

3131
def __init__(self, on_set_current_states: Callable[
32-
[AsyncGenerator[Tuple[int, Tuple[CurrentStateEvent, ...]], None]], AsyncGenerator[SetCurrentStatesStatus, None]]):
32+
[AsyncGenerator[Tuple[int, Tuple[CurrentStateEvent, Any]], None]], AsyncGenerator[SetCurrentStatesStatus, None]]):
3333
self.on_set_current_states = on_set_current_states
3434

3535
async def setCurrentStates(self, request_iterator: AsyncGenerator[PBSetCurrentStatesRequest, None], context) -> AsyncGenerator[
@@ -52,7 +52,7 @@ async def setCurrentStates(self, request_iterator: AsyncGenerator[PBSetCurrentSt
5252
A stream of protobuf SetCurrentStatesResponse sent back.
5353
"""
5454

55-
async def request_generator() -> AsyncGenerator[Tuple[int, Tuple[CurrentStateEvent, ...]], None]:
55+
async def request_generator() -> AsyncGenerator[Tuple[int, Tuple[CurrentStateEvent, Any]], None]:
5656
async for request in request_iterator:
5757
yield request.messageId, tuple([CurrentStateEvent.from_pb(event) for event in request.event])
5858

src/zepben/evolve/testing/test_network_builder.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from zepben.evolve.services.network.tracing.networktrace.operators.network_state_operators import NetworkStateOperators
66
from zepben.evolve.services.network.tracing.networktrace.tracing import Tracing
77
try:
8-
from typing import Protocol
8+
from typing import Protocol, Any
99
except ImportError:
1010
Protocol = object
1111

@@ -27,7 +27,7 @@ def null_action(_):
2727
class OtherCreator(Protocol):
2828
"""Type hint class"""
2929

30-
def __call__(self, mrid: str, *args, **kwargs) -> ConductingEquipment: ...
30+
def __call__(self, mrid: str, *args, **kwargs) -> ConductingEquipment: Any
3131

3232

3333
class TestNetworkBuilder:

0 commit comments

Comments
 (0)