|
1 | 1 | # Zepben Python SDK |
2 | 2 | ## [1.0.0] - UNRELEASED |
3 | 3 | ### Breaking Changes |
4 | | -* None. |
5 | | - |
6 | | -### New Features |
7 | | -* None. |
8 | | - |
9 | | -### Enhancements |
10 | | -* None. |
11 | | - |
12 | | -### Fixes |
13 | | -* None. |
14 | | - |
15 | | -### Notes |
16 | | -* None. |
17 | | - |
18 | | -## [0.48.0] - 2025-07-10 |
19 | | -### Breaking Changes |
20 | 4 | * Renamed the package to `zepben.ewb`. You will need to update all your imports `zepben.evolve.*` -> `zepben.ewb.*`. This also updates the pypi artifact to |
21 | 5 | `zepben.ewb`. |
22 | | -* Updated to new Tracing API. All old traces will need to be re-written with the new API. |
23 | | -* `AcLineSegment` supports adding a maximum of 2 terminals. Mid-span terminals are no longer supported and models should migrate to using `Clamp`. |
24 | | -* `Clamp` supports only adding a single terminal. |
25 | | -* `FeederDirectionStateOperations` have been reworked to take `NetworkStateOperators` as a parameter. |
26 | | -* `RemoveDirection` has been removed. It did not work reliably with dual fed networks with loops. You now need to clear direction using the new `ClearDirection` |
27 | | - and reapply directions where appropriate using `SetDirection`. |
28 | | -* `Cut` supports adding a maximum of 2 terminals. |
29 | | -* `NetworkTraceTracker` now uses a `set` to track visited objects, if you were using unhashable objects this will need to be addressed. |
30 | | -* Added a new `debug_logging` and `name` parameters to the constructor of the following traces. The helper functions in `Tracing` also have these parameters, |
31 | | - which defaults to `None` and `network_trace`, meaning anyone using these wrappers will be unaffected by the change: |
32 | | - * `AssignToFeeders` |
33 | | - * `AssignToLvFeeders` |
34 | | - * `ClearDirection` |
35 | | - * `FindSwerEquipment` |
36 | | - * `PhaseInferrer` |
37 | | - * `RemovePhases` |
38 | | - * `SetDirection` |
39 | | - * `SetPhases` |
40 | | -* `NetworkStateOperators` has a new abstract `description`. If you are creating custom operators you will need to add it. |
41 | | -* `StepAction` will now raise an exception if `apply` is overridden. override `_apply` instead, or pass the function to `__init__` |
42 | 6 | * Renamed `length_from_t1_or_0` to `length_from_t1_or_0`. |
43 | 7 | * Relocated the following classes into the Zepben extensions area, marking them as [ZBEX]: |
44 | 8 | * `DistanceRelay`: `cim.iec61970.base.protection` -> `cim.extensions.iec61970.base.protection`. |
|
125 | 89 | * `zepben.auth` -> `zepben.ewb.auth`. You can also import these directly from `zepben.ewb`. |
126 | 90 |
|
127 | 91 | ### New Features |
128 | | -* Added `ClearDirection` that clears feeder directions. |
129 | | -* You can now pass a logger to all `Tracing` methods and `TestNetworkBuilder.build` to enable debug logging for the traces it runs. The debug logging will |
130 | | - include the results of all queue and stop condition checks, and each item that is stepped on. |
| 92 | +* None. |
131 | 93 |
|
132 | 94 | ### Enhancements |
133 | | -* Tracing models with `Cut` and `Clamp` are now supported via the new tracing API. |
134 | | -* Added support to `TestNetworkBuilder` for: |
135 | | - * `with_clamp` - Adds a clamp to the previously added `AcLineSegment` |
136 | | - * `with_cut` - Adds a cut to the previously added `AcLineSegment` |
137 | | - * `connect_to` - Connects the previously added item, rather than having to specify it again in `connect`. |
138 | | - * You can now add sites to the `TestNetworkBuilder` via `addSite`. |
139 | | - * You can now add busbar sections natively with `from_busbar_section` and `to_busbar_section` |
140 | | - * The prefix for generated mRIDs for "other" equipment can be specified with the `default_mrid_prefix` argument in `from_other` and `to_other`. |
141 | | -* When processing feeder assignments, all LV feeders belonging to a dist substation site will now be considered energized when the site is energized by a |
142 | | - feeder. |
143 | | -* `NetworkTrace` now supports starting from a known `NetworkTraceStep.Path`. This allows you to force a trace to start in a particular direction, or to continue |
144 | | - a follow-up trace from a detected stop point. |
145 | | -* `Traversal.is_stopping`/`Traversal.is_not_stopping` now accept `StepAction` and any child classes, including those subclassing `StepActionWithContextValue` |
| 95 | +* None. |
146 | 96 |
|
147 | 97 | ### Fixes |
148 | | -* When finding `LvFeeders` in the `Site` we will now exclude `LvFeeders` that start with an open `Switch` |
149 | | -* `AssignToFeeder` and `AssignToLvFeeder` will no longer trace from start terminals that belong to open switches |
150 | | -* The follow fixes were added to Traversal and NetworkTrace: |
151 | | - * `can_stop_on_start_item` now works for branching traversals. |
152 | | - * Traversal start items are added to the queue before traversal starts, so that the start items honour the queue type order. |
153 | | - * Stop conditions on the `NetworkTrace` now are checked based on a step type, like `QueueCondition` does, rather than by checking `can_action_item`. |
154 | | - * `Cut` and `Clamp` are now correctly supported in `SetDirection` and `DirectionCondition`. |
155 | | - * `NetworkTrace` now handles starting on `Cut` , `Clamp`, and `AcLineSegment` and their terminals in a explicit / sensible way. |
156 | | - * `NetworkTracePathProvider` now correctly handles next paths when starting on a `Clamp` terminal. |
157 | | -* `NetworkTrace`/`Traversal` now correctly respects `can_stop_on_start_item` when providing multiple start items. |
158 | | -* `AssignToFeeders`/`AssignToLvFeeders` now finds back-fed equipment correctly |
159 | | -* `AssignToFeeders` and `AssignToLvFeeders` will now associate `PowerElectronicUnits` with their `powerElectronicsConnection` `Feeder`/`LvFeeder`. |
160 | | -* Phases are now correctly assigned to the LV side of an LV2 transformer that is in parallel with a previously energised LV1 transformer. |
161 | | -* Added missing default network state operators (NORMAL) if you are calling `SetDirection.run` directly. |
162 | 98 | * Marked some extensions properties and classes with [ZBEX] that were missing them (might still be more). In addition to the ones moved into the extensions |
163 | 99 | package: |
164 | 100 | * `PhaseCode.Y` |
|
195 | 131 | ### Notes |
196 | 132 | * None. |
197 | 133 |
|
| 134 | +## [0.48.0] - 2025-07-10 |
| 135 | +### Breaking Changes |
| 136 | +* Updated to new Tracing API. All old traces will need to be re-written with the new API. |
| 137 | +* `AcLineSegment` supports adding a maximum of 2 terminals. Mid-span terminals are no longer supported and models should migrate to using `Clamp`. |
| 138 | +* `Clamp` supports only adding a single terminal. |
| 139 | +* `FeederDirectionStateOperations` have been reworked to take `NetworkStateOperators` as a parameter. |
| 140 | +* `RemoveDirection` has been removed. It did not work reliably with dual fed networks with loops. You now need to clear direction using the new `ClearDirection` |
| 141 | + and reapply directions where appropriate using `SetDirection`. |
| 142 | +* `Cut` supports adding a maximum of 2 terminals. |
| 143 | +* `NetworkTraceTracker` now uses a `set` to track visited objects, if you were using unhashable objects this will need to be addressed. |
| 144 | +* Added a new `debug_logging` and `name` parameters to the constructor of the following traces. The helper functions in `Tracing` also have these parameters, |
| 145 | + which defaults to `None` and `network_trace`, meaning anyone using these wrappers will be unaffected by the change: |
| 146 | + * `AssignToFeeders` |
| 147 | + * `AssignToLvFeeders` |
| 148 | + * `ClearDirection` |
| 149 | + * `FindSwerEquipment` |
| 150 | + * `PhaseInferrer` |
| 151 | + * `RemovePhases` |
| 152 | + * `SetDirection` |
| 153 | + * `SetPhases` |
| 154 | +* `NetworkStateOperators` has a new abstract `description`. If you are creating custom operators you will need to add it. |
| 155 | +* `StepAction` will now raise an exception if `apply` is overridden. override `_apply` instead, or pass the function to `__init__` |
| 156 | + |
| 157 | +### New Features |
| 158 | +* Added `ClearDirection` that clears feeder directions. |
| 159 | +* You can now pass a logger to all `Tracing` methods and `TestNetworkBuilder.build` to enable debug logging for the traces it runs. The debug logging will |
| 160 | + include the results of all queue and stop condition checks, and each item that is stepped on. |
| 161 | + |
| 162 | +### Enhancements |
| 163 | +* Tracing models with `Cut` and `Clamp` are now supported via the new tracing API. |
| 164 | +* Added support to `TestNetworkBuilder` for: |
| 165 | + * `with_clamp` - Adds a clamp to the previously added `AcLineSegment` |
| 166 | + * `with_cut` - Adds a cut to the previously added `AcLineSegment` |
| 167 | + * `connect_to` - Connects the previously added item, rather than having to specify it again in `connect`. |
| 168 | + * You can now add sites to the `TestNetworkBuilder` via `addSite`. |
| 169 | + * You can now add busbar sections natively with `from_busbar_section` and `to_busbar_section` |
| 170 | + * The prefix for generated mRIDs for "other" equipment can be specified with the `default_mrid_prefix` argument in `from_other` and `to_other`. |
| 171 | +* When processing feeder assignments, all LV feeders belonging to a dist substation site will now be considered energized when the site is energized by a |
| 172 | + feeder. |
| 173 | +* `NetworkTrace` now supports starting from a known `NetworkTraceStep.Path`. This allows you to force a trace to start in a particular direction, or to continue |
| 174 | + a follow-up trace from a detected stop point. |
| 175 | +* `Traversal.is_stopping`/`Traversal.is_not_stopping` now accept `StepAction` and any child classes, including those subclassing `StepActionWithContextValue` |
| 176 | + |
| 177 | +### Fixes |
| 178 | +* When finding `LvFeeders` in the `Site` we will now exclude `LvFeeders` that start with an open `Switch` |
| 179 | +* `AssignToFeeder` and `AssignToLvFeeder` will no longer trace from start terminals that belong to open switches |
| 180 | +* The follow fixes were added to Traversal and NetworkTrace: |
| 181 | + * `can_stop_on_start_item` now works for branching traversals. |
| 182 | + * Traversal start items are added to the queue before traversal starts, so that the start items honour the queue type order. |
| 183 | + * Stop conditions on the `NetworkTrace` now are checked based on a step type, like `QueueCondition` does, rather than by checking `can_action_item`. |
| 184 | + * `Cut` and `Clamp` are now correctly supported in `SetDirection` and `DirectionCondition`. |
| 185 | + * `NetworkTrace` now handles starting on `Cut` , `Clamp`, and `AcLineSegment` and their terminals in a explicit / sensible way. |
| 186 | + * `NetworkTracePathProvider` now correctly handles next paths when starting on a `Clamp` terminal. |
| 187 | +* `NetworkTrace`/`Traversal` now correctly respects `can_stop_on_start_item` when providing multiple start items. |
| 188 | +* `AssignToFeeders`/`AssignToLvFeeders` now finds back-fed equipment correctly |
| 189 | +* `AssignToFeeders` and `AssignToLvFeeders` will now associate `PowerElectronicUnits` with their `powerElectronicsConnection` `Feeder`/`LvFeeder`. |
| 190 | +* Phases are now correctly assigned to the LV side of an LV2 transformer that is in parallel with a previously energised LV1 transformer. |
| 191 | +* Added missing default network state operators (NORMAL) if you are calling `SetDirection.run` directly. |
| 192 | + |
| 193 | +### Notes |
| 194 | +* None. |
| 195 | + |
198 | 196 | ## [0.47.1] - 2025-05-14 |
199 | 197 | ### Fixes |
200 | 198 | * Only resolve PowerSystemResource -> Asset relationship in one direction when calling `get_equipment_container` to stop deadlock. |
|
0 commit comments