zepben.ewb 1.0.0b7__py3-none-any.whl → 1.0.0b8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zepben/ewb/services/common/translator/base_cim2proto.py +21 -10
- zepben/ewb/services/common/translator/base_proto2cim.py +42 -13
- zepben/ewb/services/common/translator/util.py +3 -6
- zepben/ewb/services/network/translator/network_cim2proto.py +88 -132
- zepben/ewb/services/network/translator/network_proto2cim.py +259 -223
- {zepben_ewb-1.0.0b7.dist-info → zepben_ewb-1.0.0b8.dist-info}/METADATA +1 -1
- {zepben_ewb-1.0.0b7.dist-info → zepben_ewb-1.0.0b8.dist-info}/RECORD +10 -10
- {zepben_ewb-1.0.0b7.dist-info → zepben_ewb-1.0.0b8.dist-info}/WHEEL +0 -0
- {zepben_ewb-1.0.0b7.dist-info → zepben_ewb-1.0.0b8.dist-info}/licenses/LICENSE +0 -0
- {zepben_ewb-1.0.0b7.dist-info → zepben_ewb-1.0.0b8.dist-info}/top_level.txt +0 -0
|
@@ -169,6 +169,7 @@ from zepben.protobuf.cim.iec61970.base.wires.TransformerStarImpedance_pb2 import
|
|
|
169
169
|
from zepben.protobuf.cim.iec61970.infiec61970.feeder.Circuit_pb2 import Circuit as PBCircuit
|
|
170
170
|
|
|
171
171
|
import zepben.ewb.services.common.resolver as resolver
|
|
172
|
+
from zepben.ewb import IdentifiedObject
|
|
172
173
|
from zepben.ewb.model.cim.extensions.iec61968.assetinfo.relay_info import *
|
|
173
174
|
from zepben.ewb.model.cim.extensions.iec61968.metering.pan_demand_reponse_function import PanDemandResponseFunction
|
|
174
175
|
from zepben.ewb.model.cim.extensions.iec61970.base.core.site import *
|
|
@@ -323,7 +324,8 @@ from zepben.ewb.model.cim.iec61970.base.wires.transformer_end import Transformer
|
|
|
323
324
|
from zepben.ewb.model.cim.iec61970.base.wires.transformer_star_impedance import *
|
|
324
325
|
from zepben.ewb.model.cim.iec61970.base.wires.winding_connection import *
|
|
325
326
|
from zepben.ewb.model.cim.iec61970.infiec61970.feeder.circuit import *
|
|
326
|
-
from zepben.ewb.services.common.translator.base_proto2cim import identified_object_to_cim, organisation_role_to_cim, document_to_cim
|
|
327
|
+
from zepben.ewb.services.common.translator.base_proto2cim import identified_object_to_cim, organisation_role_to_cim, document_to_cim, add_to_network_or_none, \
|
|
328
|
+
bind_to_cim
|
|
327
329
|
from zepben.ewb.services.common.translator.util import int_or_none, float_or_none, long_or_none, str_or_none, uint_or_none
|
|
328
330
|
from zepben.ewb.services.network.network_service import NetworkService
|
|
329
331
|
from zepben.ewb.services.network.tracing.feeder.feeder_direction import FeederDirection
|
|
@@ -333,6 +335,8 @@ from zepben.ewb.services.network.tracing.feeder.feeder_direction import FeederDi
|
|
|
333
335
|
# Extensions IEC61968 Asset Info #
|
|
334
336
|
##################################
|
|
335
337
|
|
|
338
|
+
@bind_to_cim
|
|
339
|
+
@add_to_network_or_none
|
|
336
340
|
def relay_info_to_cim(pb: PBRelayInfo, network_service: NetworkService) -> Optional[RelayInfo]:
|
|
337
341
|
# noinspection PyUnresolvedReferences
|
|
338
342
|
cim = RelayInfo(
|
|
@@ -343,16 +347,15 @@ def relay_info_to_cim(pb: PBRelayInfo, network_service: NetworkService) -> Optio
|
|
|
343
347
|
)
|
|
344
348
|
|
|
345
349
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
346
|
-
return cim
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
PBRelayInfo.to_cim = relay_info_to_cim
|
|
350
|
+
return cim
|
|
350
351
|
|
|
351
352
|
|
|
352
353
|
################################
|
|
353
354
|
# Extensions IEC61968 Metering #
|
|
354
355
|
################################
|
|
355
356
|
|
|
357
|
+
@bind_to_cim
|
|
358
|
+
@add_to_network_or_none
|
|
356
359
|
def pan_demand_response_function_to_cim(pb: PBPanDemandResponseFunction, network_service: NetworkService) -> PanDemandResponseFunction:
|
|
357
360
|
"""
|
|
358
361
|
Convert the protobuf :class:`PBPanDemandResponseFunction` into its CIM counterpart.
|
|
@@ -366,31 +369,29 @@ def pan_demand_response_function_to_cim(pb: PBPanDemandResponseFunction, network
|
|
|
366
369
|
cim.kind = EndDeviceFunctionKind(pb.kind)
|
|
367
370
|
end_device_function_to_cim(pb.edf, cim, network_service)
|
|
368
371
|
|
|
369
|
-
return cim
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
PBPanDemandResponseFunction.to_cim = pan_demand_response_function_to_cim
|
|
372
|
+
return cim
|
|
373
373
|
|
|
374
374
|
|
|
375
375
|
#################################
|
|
376
376
|
# Extensions IEC61970 Base Core #
|
|
377
377
|
#################################
|
|
378
378
|
|
|
379
|
+
@bind_to_cim
|
|
380
|
+
@add_to_network_or_none
|
|
379
381
|
def site_to_cim(pb: PBSite, network_service: NetworkService) -> Optional[Site]:
|
|
380
382
|
# noinspection PyUnresolvedReferences
|
|
381
383
|
cim = Site(mrid=pb.mrid())
|
|
382
384
|
|
|
383
385
|
equipment_container_to_cim(pb.ec, cim, network_service)
|
|
384
|
-
return cim
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
PBSite.to_cim = site_to_cim
|
|
386
|
+
return cim
|
|
388
387
|
|
|
389
388
|
|
|
390
389
|
###################################
|
|
391
390
|
# Extensions IEC61970 Base Feeder #
|
|
392
391
|
###################################
|
|
393
392
|
|
|
393
|
+
@bind_to_cim
|
|
394
|
+
@add_to_network_or_none
|
|
394
395
|
def loop_to_cim(pb: PBLoop, network_service: NetworkService) -> Optional[Loop]:
|
|
395
396
|
# noinspection PyUnresolvedReferences
|
|
396
397
|
cim = Loop(mrid=pb.mrid())
|
|
@@ -403,9 +404,11 @@ def loop_to_cim(pb: PBLoop, network_service: NetworkService) -> Optional[Loop]:
|
|
|
403
404
|
network_service.resolve_or_defer_reference(resolver.loop_energizing_substations(cim), mrid)
|
|
404
405
|
|
|
405
406
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
406
|
-
return cim
|
|
407
|
+
return cim
|
|
407
408
|
|
|
408
409
|
|
|
410
|
+
@bind_to_cim
|
|
411
|
+
@add_to_network_or_none
|
|
409
412
|
def lv_feeder_to_cim(pb: PBLvFeeder, network_service: NetworkService) -> Optional[LvFeeder]:
|
|
410
413
|
# noinspection PyUnresolvedReferences
|
|
411
414
|
cim = LvFeeder(mrid=pb.mrid())
|
|
@@ -417,31 +420,27 @@ def lv_feeder_to_cim(pb: PBLvFeeder, network_service: NetworkService) -> Optiona
|
|
|
417
420
|
network_service.resolve_or_defer_reference(resolver.current_energizing_feeders(cim), mrid)
|
|
418
421
|
|
|
419
422
|
equipment_container_to_cim(pb.ec, cim, network_service)
|
|
420
|
-
return cim
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
PBLoop.to_cim = loop_to_cim
|
|
424
|
-
PBLvFeeder.to_cim = lv_feeder_to_cim
|
|
423
|
+
return cim
|
|
425
424
|
|
|
426
425
|
|
|
427
426
|
##################################################
|
|
428
427
|
# Extensions IEC61970 Base Generation Production #
|
|
429
428
|
##################################################
|
|
430
429
|
|
|
430
|
+
@bind_to_cim
|
|
431
|
+
@add_to_network_or_none
|
|
431
432
|
def ev_charging_unit_to_cim(pb: PBEvChargingUnit, network_service: NetworkService) -> Optional[EvChargingUnit]:
|
|
432
433
|
# noinspection PyUnresolvedReferences
|
|
433
434
|
cim = EvChargingUnit(mrid=pb.mrid())
|
|
434
435
|
power_electronics_unit_to_cim(pb.peu, cim, network_service)
|
|
435
|
-
return cim
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
PBEvChargingUnit.to_cim = ev_charging_unit_to_cim
|
|
439
|
-
|
|
436
|
+
return cim
|
|
440
437
|
|
|
441
438
|
#######################################
|
|
442
439
|
# Extensions IEC61970 Base Protection #
|
|
443
440
|
#######################################
|
|
444
441
|
|
|
442
|
+
@bind_to_cim
|
|
443
|
+
@add_to_network_or_none
|
|
445
444
|
def distance_relay_to_cim(pb: PBDistanceRelay, network_service: NetworkService) -> Optional[DistanceRelay]:
|
|
446
445
|
# noinspection PyUnresolvedReferences
|
|
447
446
|
cim = DistanceRelay(
|
|
@@ -458,7 +457,7 @@ def distance_relay_to_cim(pb: PBDistanceRelay, network_service: NetworkService)
|
|
|
458
457
|
)
|
|
459
458
|
|
|
460
459
|
protection_relay_function_to_cim(pb.prf, cim, network_service)
|
|
461
|
-
return cim
|
|
460
|
+
return cim
|
|
462
461
|
|
|
463
462
|
|
|
464
463
|
def protection_relay_function_to_cim(pb: PBProtectionRelayFunction, cim: ProtectionRelayFunction, network_service: NetworkService):
|
|
@@ -484,6 +483,8 @@ def protection_relay_function_to_cim(pb: PBProtectionRelayFunction, cim: Protect
|
|
|
484
483
|
power_system_resource_to_cim(pb.psr, cim, network_service)
|
|
485
484
|
|
|
486
485
|
|
|
486
|
+
@bind_to_cim
|
|
487
|
+
@add_to_network_or_none
|
|
487
488
|
def protection_relay_scheme_to_cim(pb: PBProtectionRelayScheme, network_service: NetworkService) -> Optional[ProtectionRelayScheme]:
|
|
488
489
|
# noinspection PyUnresolvedReferences
|
|
489
490
|
cim = ProtectionRelayScheme(
|
|
@@ -497,9 +498,11 @@ def protection_relay_scheme_to_cim(pb: PBProtectionRelayScheme, network_service:
|
|
|
497
498
|
network_service.resolve_or_defer_reference(resolver.prscheme_function(cim), mrid)
|
|
498
499
|
|
|
499
500
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
500
|
-
return cim
|
|
501
|
+
return cim
|
|
501
502
|
|
|
502
503
|
|
|
504
|
+
@bind_to_cim
|
|
505
|
+
@add_to_network_or_none
|
|
503
506
|
def protection_relay_system_to_cim(pb: PBProtectionRelaySystem, network_service: NetworkService) -> Optional[ProtectionRelaySystem]:
|
|
504
507
|
# noinspection PyUnresolvedReferences
|
|
505
508
|
cim = ProtectionRelaySystem(
|
|
@@ -511,7 +514,7 @@ def protection_relay_system_to_cim(pb: PBProtectionRelaySystem, network_service:
|
|
|
511
514
|
network_service.resolve_or_defer_reference(resolver.prsystem_scheme(cim), mrid)
|
|
512
515
|
|
|
513
516
|
equipment_to_cim(pb.eq, cim, network_service)
|
|
514
|
-
return cim
|
|
517
|
+
return cim
|
|
515
518
|
|
|
516
519
|
|
|
517
520
|
def relay_setting_to_cim(pb: PBRelaySetting) -> Optional[RelaySetting]:
|
|
@@ -522,24 +525,22 @@ def relay_setting_to_cim(pb: PBRelaySetting) -> Optional[RelaySetting]:
|
|
|
522
525
|
)
|
|
523
526
|
|
|
524
527
|
|
|
528
|
+
@bind_to_cim
|
|
529
|
+
@add_to_network_or_none
|
|
525
530
|
def voltage_relay_to_cim(pb: PBVoltageRelay, network_service: NetworkService) -> Optional[VoltageRelay]:
|
|
526
531
|
# noinspection PyUnresolvedReferences
|
|
527
532
|
cim = VoltageRelay(mrid=pb.mrid())
|
|
528
533
|
|
|
529
534
|
protection_relay_function_to_cim(pb.prf, cim, network_service)
|
|
530
|
-
return cim
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
PBDistanceRelay.to_cim = distance_relay_to_cim
|
|
534
|
-
PBProtectionRelayScheme.to_cim = protection_relay_scheme_to_cim
|
|
535
|
-
PBProtectionRelaySystem.to_cim = protection_relay_system_to_cim
|
|
536
|
-
PBVoltageRelay.to_cim = voltage_relay_to_cim
|
|
535
|
+
return cim
|
|
537
536
|
|
|
538
537
|
|
|
539
538
|
##################################
|
|
540
539
|
# Extensions IEC61970 Base Wires #
|
|
541
540
|
##################################
|
|
542
541
|
|
|
542
|
+
@bind_to_cim
|
|
543
|
+
@add_to_network_or_none
|
|
543
544
|
def battery_control_to_cim(pb: PBBatteryControl, network_service: NetworkService) -> BatteryControl:
|
|
544
545
|
"""
|
|
545
546
|
Convert the protobuf :class:`PBBatteryControl` into its CIM counterpart.
|
|
@@ -558,10 +559,7 @@ def battery_control_to_cim(pb: PBBatteryControl, network_service: NetworkService
|
|
|
558
559
|
|
|
559
560
|
regulating_control_to_cim(pb.rc, cim, network_service)
|
|
560
561
|
|
|
561
|
-
return cim
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
PBBatteryControl.to_cim = battery_control_to_cim
|
|
562
|
+
return cim
|
|
565
563
|
|
|
566
564
|
|
|
567
565
|
#######################
|
|
@@ -569,14 +567,18 @@ PBBatteryControl.to_cim = battery_control_to_cim
|
|
|
569
567
|
#######################
|
|
570
568
|
|
|
571
569
|
|
|
570
|
+
@bind_to_cim
|
|
571
|
+
@add_to_network_or_none
|
|
572
572
|
def cable_info_to_cim(pb: PBCableInfo, network_service: NetworkService) -> Optional[CableInfo]:
|
|
573
573
|
# noinspection PyUnresolvedReferences
|
|
574
574
|
cim = CableInfo(mrid=pb.mrid())
|
|
575
575
|
|
|
576
576
|
wire_info_to_cim(pb.wi, cim, network_service)
|
|
577
|
-
return cim
|
|
577
|
+
return cim
|
|
578
578
|
|
|
579
579
|
|
|
580
|
+
@bind_to_cim
|
|
581
|
+
@add_to_network_or_none
|
|
580
582
|
def no_load_test_to_cim(pb: PBNoLoadTest, network_service: NetworkService) -> Optional[NoLoadTest]:
|
|
581
583
|
# noinspection PyUnresolvedReferences
|
|
582
584
|
cim = NoLoadTest(
|
|
@@ -589,9 +591,11 @@ def no_load_test_to_cim(pb: PBNoLoadTest, network_service: NetworkService) -> Op
|
|
|
589
591
|
)
|
|
590
592
|
|
|
591
593
|
transformer_test_to_cim(pb.tt, cim, network_service)
|
|
592
|
-
return cim
|
|
594
|
+
return cim
|
|
593
595
|
|
|
594
596
|
|
|
597
|
+
@bind_to_cim
|
|
598
|
+
@add_to_network_or_none
|
|
595
599
|
def open_circuit_test_to_cim(pb: PBOpenCircuitTest, network_service: NetworkService) -> Optional[OpenCircuitTest]:
|
|
596
600
|
# noinspection PyUnresolvedReferences
|
|
597
601
|
cim = OpenCircuitTest(
|
|
@@ -604,17 +608,21 @@ def open_circuit_test_to_cim(pb: PBOpenCircuitTest, network_service: NetworkServ
|
|
|
604
608
|
)
|
|
605
609
|
|
|
606
610
|
transformer_test_to_cim(pb.tt, cim, network_service)
|
|
607
|
-
return cim
|
|
611
|
+
return cim
|
|
608
612
|
|
|
609
613
|
|
|
614
|
+
@bind_to_cim
|
|
615
|
+
@add_to_network_or_none
|
|
610
616
|
def overhead_wire_info_to_cim(pb: PBOverheadWireInfo, network_service: NetworkService) -> Optional[OverheadWireInfo]:
|
|
611
617
|
# noinspection PyUnresolvedReferences
|
|
612
618
|
cim = OverheadWireInfo(mrid=pb.mrid())
|
|
613
619
|
|
|
614
620
|
wire_info_to_cim(pb.wi, cim, network_service)
|
|
615
|
-
return cim
|
|
621
|
+
return cim
|
|
616
622
|
|
|
617
623
|
|
|
624
|
+
@bind_to_cim
|
|
625
|
+
@add_to_network_or_none
|
|
618
626
|
def power_transformer_info_to_cim(pb: PBPowerTransformerInfo, network_service: NetworkService) -> Optional[PowerTransformerInfo]:
|
|
619
627
|
# noinspection PyUnresolvedReferences
|
|
620
628
|
cim = PowerTransformerInfo(mrid=pb.mrid())
|
|
@@ -623,9 +631,11 @@ def power_transformer_info_to_cim(pb: PBPowerTransformerInfo, network_service: N
|
|
|
623
631
|
network_service.resolve_or_defer_reference(resolver.power_transformer_info_transformer_tank_info(cim), mrid)
|
|
624
632
|
|
|
625
633
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
626
|
-
return cim
|
|
634
|
+
return cim
|
|
627
635
|
|
|
628
636
|
|
|
637
|
+
@bind_to_cim
|
|
638
|
+
@add_to_network_or_none
|
|
629
639
|
def short_circuit_test_to_cim(pb: PBShortCircuitTest, network_service: NetworkService) -> Optional[ShortCircuitTest]:
|
|
630
640
|
# noinspection PyUnresolvedReferences
|
|
631
641
|
cim = ShortCircuitTest(
|
|
@@ -643,9 +653,11 @@ def short_circuit_test_to_cim(pb: PBShortCircuitTest, network_service: NetworkSe
|
|
|
643
653
|
)
|
|
644
654
|
|
|
645
655
|
transformer_test_to_cim(pb.tt, cim, network_service)
|
|
646
|
-
return cim
|
|
656
|
+
return cim
|
|
647
657
|
|
|
648
658
|
|
|
659
|
+
@bind_to_cim
|
|
660
|
+
@add_to_network_or_none
|
|
649
661
|
def shunt_compensator_info_to_cim(pb: PBShuntCompensatorInfo, network_service: NetworkService) -> Optional[ShuntCompensatorInfo]:
|
|
650
662
|
# noinspection PyUnresolvedReferences
|
|
651
663
|
cim = ShuntCompensatorInfo(
|
|
@@ -657,9 +669,11 @@ def shunt_compensator_info_to_cim(pb: PBShuntCompensatorInfo, network_service: N
|
|
|
657
669
|
)
|
|
658
670
|
|
|
659
671
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
660
|
-
return cim
|
|
672
|
+
return cim
|
|
661
673
|
|
|
662
674
|
|
|
675
|
+
@bind_to_cim
|
|
676
|
+
@add_to_network_or_none
|
|
663
677
|
def switch_info_to_cim(pb: PBSwitchInfo, network_service: NetworkService) -> Optional[SwitchInfo]:
|
|
664
678
|
# noinspection PyUnresolvedReferences
|
|
665
679
|
cim = SwitchInfo(
|
|
@@ -668,9 +682,11 @@ def switch_info_to_cim(pb: PBSwitchInfo, network_service: NetworkService) -> Opt
|
|
|
668
682
|
)
|
|
669
683
|
|
|
670
684
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
671
|
-
return cim
|
|
685
|
+
return cim
|
|
672
686
|
|
|
673
687
|
|
|
688
|
+
@bind_to_cim
|
|
689
|
+
@add_to_network_or_none
|
|
674
690
|
def transformer_end_info_to_cim(pb: PBTransformerEndInfo, network_service: NetworkService) -> Optional[TransformerEndInfo]:
|
|
675
691
|
# noinspection PyUnresolvedReferences
|
|
676
692
|
cim = TransformerEndInfo(
|
|
@@ -695,9 +711,11 @@ def transformer_end_info_to_cim(pb: PBTransformerEndInfo, network_service: Netwo
|
|
|
695
711
|
network_service.resolve_or_defer_reference(resolver.energised_end_open_circuit_tests(cim), pb.energisedEndOpenCircuitTestsMRID)
|
|
696
712
|
|
|
697
713
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
698
|
-
return cim
|
|
714
|
+
return cim
|
|
699
715
|
|
|
700
716
|
|
|
717
|
+
@bind_to_cim
|
|
718
|
+
@add_to_network_or_none
|
|
701
719
|
def transformer_tank_info_to_cim(pb: PBTransformerTankInfo, network_service: NetworkService) -> Optional[TransformerTankInfo]:
|
|
702
720
|
# noinspection PyUnresolvedReferences
|
|
703
721
|
cim = TransformerTankInfo(mrid=pb.mrid())
|
|
@@ -706,7 +724,7 @@ def transformer_tank_info_to_cim(pb: PBTransformerTankInfo, network_service: Net
|
|
|
706
724
|
network_service.resolve_or_defer_reference(resolver.transformer_end_info(cim), mrid)
|
|
707
725
|
|
|
708
726
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
709
|
-
return cim
|
|
727
|
+
return cim
|
|
710
728
|
|
|
711
729
|
|
|
712
730
|
def transformer_test_to_cim(pb: PBTransformerTest, cim: TransformerTest, network_service: NetworkService):
|
|
@@ -723,18 +741,6 @@ def wire_info_to_cim(pb: PBWireInfo, cim: WireInfo, network_service: NetworkServ
|
|
|
723
741
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
724
742
|
|
|
725
743
|
|
|
726
|
-
PBCableInfo.to_cim = cable_info_to_cim
|
|
727
|
-
PBNoLoadTest.to_cim = no_load_test_to_cim
|
|
728
|
-
PBOpenCircuitTest.to_cim = open_circuit_test_to_cim
|
|
729
|
-
PBOverheadWireInfo.to_cim = overhead_wire_info_to_cim
|
|
730
|
-
PBPowerTransformerInfo.to_cim = power_transformer_info_to_cim
|
|
731
|
-
PBShortCircuitTest.to_cim = short_circuit_test_to_cim
|
|
732
|
-
PBShuntCompensatorInfo.to_cim = shunt_compensator_info_to_cim
|
|
733
|
-
PBSwitchInfo.to_cim = switch_info_to_cim
|
|
734
|
-
PBTransformerEndInfo.to_cim = transformer_end_info_to_cim
|
|
735
|
-
PBTransformerTankInfo.to_cim = transformer_tank_info_to_cim
|
|
736
|
-
|
|
737
|
-
|
|
738
744
|
###################
|
|
739
745
|
# IEC61968 Assets #
|
|
740
746
|
###################
|
|
@@ -775,14 +781,18 @@ def asset_organisation_role_to_cim(pb: PBAssetOrganisationRole, cim: AssetOrgani
|
|
|
775
781
|
organisation_role_to_cim(getattr(pb, "or"), cim, network_service)
|
|
776
782
|
|
|
777
783
|
|
|
784
|
+
@bind_to_cim
|
|
785
|
+
@add_to_network_or_none
|
|
778
786
|
def asset_owner_to_cim(pb: PBAssetOwner, network_service: NetworkService) -> Optional[AssetOwner]:
|
|
779
787
|
# noinspection PyUnresolvedReferences
|
|
780
788
|
cim = AssetOwner(mrid=pb.mrid())
|
|
781
789
|
|
|
782
790
|
asset_organisation_role_to_cim(pb.aor, cim, network_service)
|
|
783
|
-
return cim
|
|
791
|
+
return cim
|
|
784
792
|
|
|
785
793
|
|
|
794
|
+
@bind_to_cim
|
|
795
|
+
@add_to_network_or_none
|
|
786
796
|
def streetlight_to_cim(pb: PBStreetlight, network_service: NetworkService) -> Optional[Streetlight]:
|
|
787
797
|
# noinspection PyUnresolvedReferences
|
|
788
798
|
cim = Streetlight(
|
|
@@ -794,21 +804,19 @@ def streetlight_to_cim(pb: PBStreetlight, network_service: NetworkService) -> Op
|
|
|
794
804
|
network_service.resolve_or_defer_reference(resolver.pole(cim), pb.poleMRID)
|
|
795
805
|
|
|
796
806
|
asset_to_cim(pb.at, cim, network_service)
|
|
797
|
-
return cim
|
|
807
|
+
return cim
|
|
798
808
|
|
|
799
809
|
|
|
800
810
|
def structure_to_cim(pb: PBStructure, cim: Structure, network_service: NetworkService):
|
|
801
811
|
asset_container_to_cim(pb.ac, cim, network_service)
|
|
802
812
|
|
|
803
813
|
|
|
804
|
-
PBAssetOwner.to_cim = asset_owner_to_cim
|
|
805
|
-
PBStreetlight.to_cim = streetlight_to_cim
|
|
806
|
-
|
|
807
|
-
|
|
808
814
|
###################
|
|
809
815
|
# IEC61968 Common #
|
|
810
816
|
###################
|
|
811
817
|
|
|
818
|
+
@bind_to_cim
|
|
819
|
+
@add_to_network_or_none
|
|
812
820
|
def location_to_cim(pb: PBLocation, network_service: NetworkService) -> Optional[Location]:
|
|
813
821
|
# noinspection PyUnresolvedReferences
|
|
814
822
|
cim = Location(mrid=pb.mrid(), main_address=street_address_to_cim(pb.mainAddress) if pb.HasField("mainAddress") else None)
|
|
@@ -817,7 +825,7 @@ def location_to_cim(pb: PBLocation, network_service: NetworkService) -> Optional
|
|
|
817
825
|
cim.add_point(position_point_to_cim(point))
|
|
818
826
|
|
|
819
827
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
820
|
-
return cim
|
|
828
|
+
return cim
|
|
821
829
|
|
|
822
830
|
|
|
823
831
|
def position_point_to_cim(pb: PBPositionPoint) -> Optional[PositionPoint]:
|
|
@@ -849,14 +857,12 @@ def town_detail_to_cim(pb: PBTownDetail) -> Optional[TownDetail]:
|
|
|
849
857
|
return TownDetail(name=pb.name, state_or_province=pb.stateOrProvince)
|
|
850
858
|
|
|
851
859
|
|
|
852
|
-
PBLocation.to_cim = location_to_cim
|
|
853
|
-
PBPositionPoint.to_cim = position_point_to_cim
|
|
854
|
-
|
|
855
|
-
|
|
856
860
|
#####################################
|
|
857
861
|
# IEC61968 InfIEC61968 InfAssetInfo #
|
|
858
862
|
#####################################
|
|
859
863
|
|
|
864
|
+
@bind_to_cim
|
|
865
|
+
@add_to_network_or_none
|
|
860
866
|
def current_transformer_info_to_cim(pb: PBCurrentTransformerInfo, network_service: NetworkService) -> Optional[CurrentTransformerInfo]:
|
|
861
867
|
# noinspection PyUnresolvedReferences
|
|
862
868
|
cim = CurrentTransformerInfo(
|
|
@@ -876,9 +882,11 @@ def current_transformer_info_to_cim(pb: PBCurrentTransformerInfo, network_servic
|
|
|
876
882
|
)
|
|
877
883
|
|
|
878
884
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
879
|
-
return cim
|
|
885
|
+
return cim
|
|
880
886
|
|
|
881
887
|
|
|
888
|
+
@bind_to_cim
|
|
889
|
+
@add_to_network_or_none
|
|
882
890
|
def potential_transformer_info_to_cim(pb: PBPotentialTransformerInfo, network_service: NetworkService) -> Optional[PotentialTransformerInfo]:
|
|
883
891
|
# noinspection PyUnresolvedReferences
|
|
884
892
|
cim = PotentialTransformerInfo(
|
|
@@ -892,17 +900,15 @@ def potential_transformer_info_to_cim(pb: PBPotentialTransformerInfo, network_se
|
|
|
892
900
|
)
|
|
893
901
|
|
|
894
902
|
asset_info_to_cim(pb.ai, cim, network_service)
|
|
895
|
-
return cim
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
PBCurrentTransformerInfo.to_cim = current_transformer_info_to_cim
|
|
899
|
-
PBPotentialTransformerInfo.to_cim = potential_transformer_info_to_cim
|
|
903
|
+
return cim
|
|
900
904
|
|
|
901
905
|
|
|
902
906
|
##################################
|
|
903
907
|
# IEC61968 InfIEC61968 InfAssets #
|
|
904
908
|
##################################
|
|
905
909
|
|
|
910
|
+
@bind_to_cim
|
|
911
|
+
@add_to_network_or_none
|
|
906
912
|
def pole_to_cim(pb: PBPole, network_service: NetworkService) -> Optional[Pole]:
|
|
907
913
|
# noinspection PyUnresolvedReferences
|
|
908
914
|
cim = Pole(mrid=pb.mrid(), classification=pb.classification)
|
|
@@ -911,23 +917,18 @@ def pole_to_cim(pb: PBPole, network_service: NetworkService) -> Optional[Pole]:
|
|
|
911
917
|
network_service.resolve_or_defer_reference(resolver.streetlights(cim), mrid)
|
|
912
918
|
|
|
913
919
|
structure_to_cim(pb.st, cim, network_service)
|
|
914
|
-
return cim
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
PBPole.to_cim = pole_to_cim
|
|
920
|
+
return cim
|
|
918
921
|
|
|
919
922
|
|
|
920
923
|
##################################
|
|
921
924
|
# IEC61968 InfIEC61968 InfCommon #
|
|
922
925
|
##################################
|
|
923
926
|
|
|
927
|
+
@bind_to_cim
|
|
924
928
|
def ratio_to_cim(pb: PBRatio) -> Ratio:
|
|
925
929
|
return Ratio(pb.numerator, pb.denominator)
|
|
926
930
|
|
|
927
931
|
|
|
928
|
-
PBRatio.to_cim = ratio_to_cim
|
|
929
|
-
|
|
930
|
-
|
|
931
932
|
#####################
|
|
932
933
|
# IEC61968 Metering #
|
|
933
934
|
#####################
|
|
@@ -965,14 +966,18 @@ def end_device_function_to_cim(pb: PBEndDeviceFunction, cim: EndDeviceFunction,
|
|
|
965
966
|
asset_function_to_cim(pb.af, cim, network_service)
|
|
966
967
|
|
|
967
968
|
|
|
969
|
+
@bind_to_cim
|
|
970
|
+
@add_to_network_or_none
|
|
968
971
|
def meter_to_cim(pb: PBMeter, network_service: NetworkService) -> Optional[Meter]:
|
|
969
972
|
# noinspection PyUnresolvedReferences
|
|
970
973
|
cim = Meter(mrid=pb.mrid())
|
|
971
974
|
|
|
972
975
|
end_device_to_cim(pb.ed, cim, network_service)
|
|
973
|
-
return cim
|
|
976
|
+
return cim
|
|
974
977
|
|
|
975
978
|
|
|
979
|
+
@bind_to_cim
|
|
980
|
+
@add_to_network_or_none
|
|
976
981
|
def usage_point_to_cim(pb: PBUsagePoint, network_service: NetworkService) -> Optional[UsagePoint]:
|
|
977
982
|
# noinspection PyUnresolvedReferences
|
|
978
983
|
cim = UsagePoint(mrid=pb.mrid())
|
|
@@ -990,25 +995,20 @@ def usage_point_to_cim(pb: PBUsagePoint, network_service: NetworkService) -> Opt
|
|
|
990
995
|
network_service.resolve_or_defer_reference(resolver.end_devices(cim), mrid)
|
|
991
996
|
|
|
992
997
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
993
|
-
return cim
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
PBMeter.to_cim = meter_to_cim
|
|
997
|
-
PBUsagePoint.to_cim = usage_point_to_cim
|
|
998
|
+
return cim
|
|
998
999
|
|
|
999
1000
|
|
|
1000
1001
|
#######################
|
|
1001
1002
|
# IEC61968 Operations #
|
|
1002
1003
|
#######################
|
|
1003
1004
|
|
|
1005
|
+
@bind_to_cim
|
|
1006
|
+
@add_to_network_or_none
|
|
1004
1007
|
def operational_restriction_to_cim(pb: PBOperationalRestriction, network_service: NetworkService) -> Optional[OperationalRestriction]:
|
|
1005
1008
|
# noinspection PyUnresolvedReferences
|
|
1006
1009
|
cim = OperationalRestriction(mrid=pb.mrid())
|
|
1007
1010
|
document_to_cim(pb.doc, cim, network_service)
|
|
1008
|
-
return cim
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
PBOperationalRestriction.to_cim = operational_restriction_to_cim
|
|
1011
|
+
return cim
|
|
1012
1012
|
|
|
1013
1013
|
|
|
1014
1014
|
#####################################
|
|
@@ -1021,6 +1021,8 @@ def auxiliary_equipment_to_cim(pb: PBAuxiliaryEquipment, cim: AuxiliaryEquipment
|
|
|
1021
1021
|
equipment_to_cim(pb.eq, cim, network_service)
|
|
1022
1022
|
|
|
1023
1023
|
|
|
1024
|
+
@bind_to_cim
|
|
1025
|
+
@add_to_network_or_none
|
|
1024
1026
|
def current_transformer_to_cim(pb: PBCurrentTransformer, network_service: NetworkService) -> Optional[CurrentTransformer]:
|
|
1025
1027
|
# noinspection PyUnresolvedReferences
|
|
1026
1028
|
cim = CurrentTransformer(mrid=pb.mrid(), core_burden=int_or_none(pb.coreBurden))
|
|
@@ -1029,17 +1031,21 @@ def current_transformer_to_cim(pb: PBCurrentTransformer, network_service: Networ
|
|
|
1029
1031
|
network_service.resolve_or_defer_reference(resolver.current_transformer_info(cim), pb.asset_info_mrid())
|
|
1030
1032
|
|
|
1031
1033
|
sensor_to_cim(pb.sn, cim, network_service)
|
|
1032
|
-
return cim
|
|
1034
|
+
return cim
|
|
1033
1035
|
|
|
1034
1036
|
|
|
1037
|
+
@bind_to_cim
|
|
1038
|
+
@add_to_network_or_none
|
|
1035
1039
|
def fault_indicator_to_cim(pb: PBFaultIndicator, network_service: NetworkService) -> Optional[FaultIndicator]:
|
|
1036
1040
|
# noinspection PyUnresolvedReferences
|
|
1037
1041
|
cim = FaultIndicator(mrid=pb.mrid())
|
|
1038
1042
|
|
|
1039
1043
|
auxiliary_equipment_to_cim(pb.ae, cim, network_service)
|
|
1040
|
-
return cim
|
|
1044
|
+
return cim
|
|
1041
1045
|
|
|
1042
1046
|
|
|
1047
|
+
@bind_to_cim
|
|
1048
|
+
@add_to_network_or_none
|
|
1043
1049
|
def potential_transformer_to_cim(pb: PBPotentialTransformer, network_service: NetworkService) -> Optional[PotentialTransformer]:
|
|
1044
1050
|
# noinspection PyUnresolvedReferences
|
|
1045
1051
|
cim = PotentialTransformer(mrid=pb.mrid(), type=PotentialTransformerKind(pb.type))
|
|
@@ -1048,7 +1054,7 @@ def potential_transformer_to_cim(pb: PBPotentialTransformer, network_service: Ne
|
|
|
1048
1054
|
network_service.resolve_or_defer_reference(resolver.potential_transformer_info(cim), pb.asset_info_mrid())
|
|
1049
1055
|
|
|
1050
1056
|
sensor_to_cim(pb.sn, cim, network_service)
|
|
1051
|
-
return cim
|
|
1057
|
+
return cim
|
|
1052
1058
|
|
|
1053
1059
|
|
|
1054
1060
|
def sensor_to_cim(pb: PBSensor, cim: Sensor, network_service: NetworkService):
|
|
@@ -1057,11 +1063,6 @@ def sensor_to_cim(pb: PBSensor, cim: Sensor, network_service: NetworkService):
|
|
|
1057
1063
|
auxiliary_equipment_to_cim(pb.ae, cim, network_service)
|
|
1058
1064
|
|
|
1059
1065
|
|
|
1060
|
-
PBCurrentTransformer.to_cim = current_transformer_to_cim
|
|
1061
|
-
PBFaultIndicator.to_cim = fault_indicator_to_cim
|
|
1062
|
-
PBPotentialTransformer.to_cim = potential_transformer_to_cim
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
1066
|
######################
|
|
1066
1067
|
# IEC61970 Base Core #
|
|
1067
1068
|
######################
|
|
@@ -1070,12 +1071,14 @@ def ac_dc_terminal_to_cim(pb: PBAcDcTerminal, cim: AcDcTerminal, network_service
|
|
|
1070
1071
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
1071
1072
|
|
|
1072
1073
|
|
|
1074
|
+
@bind_to_cim
|
|
1075
|
+
@add_to_network_or_none
|
|
1073
1076
|
def base_voltage_to_cim(pb: PBBaseVoltage, network_service: NetworkService) -> Optional[BaseVoltage]:
|
|
1074
1077
|
# noinspection PyUnresolvedReferences
|
|
1075
1078
|
cim = BaseVoltage(mrid=pb.mrid(), nominal_voltage=pb.nominalVoltage)
|
|
1076
1079
|
|
|
1077
1080
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
1078
|
-
return cim
|
|
1081
|
+
return cim
|
|
1079
1082
|
|
|
1080
1083
|
|
|
1081
1084
|
def conducting_equipment_to_cim(pb: PBConductingEquipment, cim: ConductingEquipment, network_service: NetworkService):
|
|
@@ -1086,12 +1089,14 @@ def conducting_equipment_to_cim(pb: PBConductingEquipment, cim: ConductingEquipm
|
|
|
1086
1089
|
equipment_to_cim(pb.eq, cim, network_service)
|
|
1087
1090
|
|
|
1088
1091
|
|
|
1092
|
+
@bind_to_cim
|
|
1093
|
+
@add_to_network_or_none
|
|
1089
1094
|
def connectivity_node_to_cim(pb: PBConnectivityNode, network_service: NetworkService) -> Optional[ConnectivityNode]:
|
|
1090
1095
|
# noinspection PyUnresolvedReferences
|
|
1091
1096
|
cim = ConnectivityNode(mrid=pb.mrid())
|
|
1092
1097
|
|
|
1093
1098
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
1094
|
-
return cim
|
|
1099
|
+
return cim
|
|
1095
1100
|
|
|
1096
1101
|
|
|
1097
1102
|
def connectivity_node_container_to_cim(pb: PBConnectivityNodeContainer, cim: ConnectivityNodeContainer, network_service: NetworkService):
|
|
@@ -1130,6 +1135,8 @@ def equipment_container_to_cim(pb: PBEquipmentContainer, cim: EquipmentContainer
|
|
|
1130
1135
|
connectivity_node_container_to_cim(pb.cnc, cim, network_service)
|
|
1131
1136
|
|
|
1132
1137
|
|
|
1138
|
+
@bind_to_cim
|
|
1139
|
+
@add_to_network_or_none
|
|
1133
1140
|
def feeder_to_cim(pb: PBFeeder, network_service: NetworkService) -> Optional[Feeder]:
|
|
1134
1141
|
# noinspection PyUnresolvedReferences
|
|
1135
1142
|
cim = Feeder(mrid=pb.mrid())
|
|
@@ -1142,9 +1149,11 @@ def feeder_to_cim(pb: PBFeeder, network_service: NetworkService) -> Optional[Fee
|
|
|
1142
1149
|
network_service.resolve_or_defer_reference(resolver.current_energized_lv_feeders(cim), mrid)
|
|
1143
1150
|
|
|
1144
1151
|
equipment_container_to_cim(pb.ec, cim, network_service)
|
|
1145
|
-
return cim
|
|
1152
|
+
return cim
|
|
1146
1153
|
|
|
1147
1154
|
|
|
1155
|
+
@bind_to_cim
|
|
1156
|
+
@add_to_network_or_none
|
|
1148
1157
|
def geographical_region_to_cim(pb: PBGeographicalRegion, network_service: NetworkService) -> Optional[GeographicalRegion]:
|
|
1149
1158
|
# noinspection PyUnresolvedReferences
|
|
1150
1159
|
cim = GeographicalRegion(mrid=pb.mrid())
|
|
@@ -1153,7 +1162,7 @@ def geographical_region_to_cim(pb: PBGeographicalRegion, network_service: Networ
|
|
|
1153
1162
|
network_service.resolve_or_defer_reference(resolver.sub_geographical_regions(cim), mrid)
|
|
1154
1163
|
|
|
1155
1164
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
1156
|
-
return cim
|
|
1165
|
+
return cim
|
|
1157
1166
|
|
|
1158
1167
|
|
|
1159
1168
|
def power_system_resource_to_cim(pb: PBPowerSystemResource, cim: PowerSystemResource, network_service: NetworkService):
|
|
@@ -1165,6 +1174,8 @@ def power_system_resource_to_cim(pb: PBPowerSystemResource, cim: PowerSystemReso
|
|
|
1165
1174
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
1166
1175
|
|
|
1167
1176
|
|
|
1177
|
+
@bind_to_cim
|
|
1178
|
+
@add_to_network_or_none
|
|
1168
1179
|
def sub_geographical_region_to_cim(pb: PBSubGeographicalRegion, network_service: NetworkService) -> Optional[SubGeographicalRegion]:
|
|
1169
1180
|
# noinspection PyUnresolvedReferences
|
|
1170
1181
|
cim = SubGeographicalRegion(mrid=pb.mrid())
|
|
@@ -1174,9 +1185,11 @@ def sub_geographical_region_to_cim(pb: PBSubGeographicalRegion, network_service:
|
|
|
1174
1185
|
network_service.resolve_or_defer_reference(resolver.substations(cim), mrid)
|
|
1175
1186
|
|
|
1176
1187
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
1177
|
-
return cim
|
|
1188
|
+
return cim
|
|
1178
1189
|
|
|
1179
1190
|
|
|
1191
|
+
@bind_to_cim
|
|
1192
|
+
@add_to_network_or_none
|
|
1180
1193
|
def substation_to_cim(pb: PBSubstation, network_service: NetworkService) -> Optional[Substation]:
|
|
1181
1194
|
# noinspection PyUnresolvedReferences
|
|
1182
1195
|
cim = Substation(mrid=pb.mrid())
|
|
@@ -1192,9 +1205,11 @@ def substation_to_cim(pb: PBSubstation, network_service: NetworkService) -> Opti
|
|
|
1192
1205
|
network_service.resolve_or_defer_reference(resolver.circuits(cim), mrid)
|
|
1193
1206
|
|
|
1194
1207
|
equipment_container_to_cim(pb.ec, cim, network_service)
|
|
1195
|
-
return cim
|
|
1208
|
+
return cim
|
|
1196
1209
|
|
|
1197
1210
|
|
|
1211
|
+
@bind_to_cim
|
|
1212
|
+
@add_to_network_or_none
|
|
1198
1213
|
def terminal_to_cim(pb: PBTerminal, network_service: NetworkService) -> Optional[Terminal]:
|
|
1199
1214
|
# noinspection PyUnresolvedReferences
|
|
1200
1215
|
cim = Terminal(
|
|
@@ -1209,22 +1224,15 @@ def terminal_to_cim(pb: PBTerminal, network_service: NetworkService) -> Optional
|
|
|
1209
1224
|
network_service.resolve_or_defer_reference(resolver.connectivity_node(cim), pb.connectivityNodeMRID)
|
|
1210
1225
|
|
|
1211
1226
|
ac_dc_terminal_to_cim(pb.ad, cim, network_service)
|
|
1212
|
-
return cim
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
PBBaseVoltage.to_cim = base_voltage_to_cim
|
|
1216
|
-
PBConnectivityNode.to_cim = connectivity_node_to_cim
|
|
1217
|
-
PBFeeder.to_cim = feeder_to_cim
|
|
1218
|
-
PBGeographicalRegion.to_cim = geographical_region_to_cim
|
|
1219
|
-
PBSubGeographicalRegion.to_cim = sub_geographical_region_to_cim
|
|
1220
|
-
PBSubstation.to_cim = substation_to_cim
|
|
1221
|
-
PBTerminal.to_cim = terminal_to_cim
|
|
1227
|
+
return cim
|
|
1222
1228
|
|
|
1223
1229
|
|
|
1224
1230
|
#############################
|
|
1225
1231
|
# IEC61970 Base Equivalents #
|
|
1226
1232
|
#############################
|
|
1227
1233
|
|
|
1234
|
+
@bind_to_cim
|
|
1235
|
+
@add_to_network_or_none
|
|
1228
1236
|
def equivalent_branch_to_cim(pb: PBEquivalentBranch, network_service: NetworkService) -> Optional[EquivalentBranch]:
|
|
1229
1237
|
# noinspection PyUnresolvedReferences
|
|
1230
1238
|
cim = EquivalentBranch(
|
|
@@ -1248,20 +1256,19 @@ def equivalent_branch_to_cim(pb: PBEquivalentBranch, network_service: NetworkSer
|
|
|
1248
1256
|
)
|
|
1249
1257
|
|
|
1250
1258
|
equivalent_equipment_to_cim(pb.ee, cim, network_service)
|
|
1251
|
-
return cim
|
|
1259
|
+
return cim
|
|
1252
1260
|
|
|
1253
1261
|
|
|
1254
1262
|
def equivalent_equipment_to_cim(pb: PBEquivalentEquipment, cim: EquivalentEquipment, network_service: NetworkService):
|
|
1255
1263
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1256
1264
|
|
|
1257
1265
|
|
|
1258
|
-
PBEquivalentBranch.to_cim = equivalent_branch_to_cim
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
1266
|
#######################################
|
|
1262
1267
|
# IEC61970 Base Generation Production #
|
|
1263
1268
|
#######################################
|
|
1264
1269
|
|
|
1270
|
+
@bind_to_cim
|
|
1271
|
+
@add_to_network_or_none
|
|
1265
1272
|
def battery_unit_to_cim(pb: PBBatteryUnit, network_service: NetworkService) -> Optional[BatteryUnit]:
|
|
1266
1273
|
"""
|
|
1267
1274
|
Convert the protobuf :class:`PBBatteryUnit` into its CIM counterpart.
|
|
@@ -1281,15 +1288,17 @@ def battery_unit_to_cim(pb: PBBatteryUnit, network_service: NetworkService) -> O
|
|
|
1281
1288
|
network_service.resolve_or_defer_reference(resolver.battery_controls(cim), mrid)
|
|
1282
1289
|
|
|
1283
1290
|
power_electronics_unit_to_cim(pb.peu, cim, network_service)
|
|
1284
|
-
return cim
|
|
1291
|
+
return cim
|
|
1285
1292
|
|
|
1286
1293
|
|
|
1294
|
+
@bind_to_cim
|
|
1295
|
+
@add_to_network_or_none
|
|
1287
1296
|
def photo_voltaic_unit_to_cim(pb: PBPhotoVoltaicUnit, network_service: NetworkService) -> Optional[PhotoVoltaicUnit]:
|
|
1288
1297
|
# noinspection PyUnresolvedReferences
|
|
1289
1298
|
cim = PhotoVoltaicUnit(mrid=pb.mrid())
|
|
1290
1299
|
|
|
1291
1300
|
power_electronics_unit_to_cim(pb.peu, cim, network_service)
|
|
1292
|
-
return cim
|
|
1301
|
+
return cim
|
|
1293
1302
|
|
|
1294
1303
|
|
|
1295
1304
|
def power_electronics_unit_to_cim(pb: PBPowerElectronicsUnit, cim: PowerElectronicsUnit, network_service: NetworkService):
|
|
@@ -1301,39 +1310,41 @@ def power_electronics_unit_to_cim(pb: PBPowerElectronicsUnit, cim: PowerElectron
|
|
|
1301
1310
|
equipment_to_cim(pb.eq, cim, network_service)
|
|
1302
1311
|
|
|
1303
1312
|
|
|
1313
|
+
@bind_to_cim
|
|
1314
|
+
@add_to_network_or_none
|
|
1304
1315
|
def power_electronics_wind_unit_to_cim(pb: PBPowerElectronicsWindUnit, network_service: NetworkService) -> Optional[PowerElectronicsWindUnit]:
|
|
1305
1316
|
# noinspection PyUnresolvedReferences
|
|
1306
1317
|
cim = PowerElectronicsWindUnit(mrid=pb.mrid())
|
|
1307
1318
|
|
|
1308
1319
|
power_electronics_unit_to_cim(pb.peu, cim, network_service)
|
|
1309
|
-
return cim
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
PBBatteryUnit.to_cim = battery_unit_to_cim
|
|
1313
|
-
PBPhotoVoltaicUnit.to_cim = photo_voltaic_unit_to_cim
|
|
1314
|
-
PBPowerElectronicsWindUnit.to_cim = power_electronics_wind_unit_to_cim
|
|
1320
|
+
return cim
|
|
1315
1321
|
|
|
1316
1322
|
|
|
1317
1323
|
######################
|
|
1318
1324
|
# IEC61970 Base Meas #
|
|
1319
1325
|
######################
|
|
1320
1326
|
|
|
1327
|
+
@bind_to_cim
|
|
1328
|
+
@add_to_network_or_none
|
|
1321
1329
|
def accumulator_to_cim(pb: PBAccumulator, network_service: NetworkService) -> Optional[Accumulator]:
|
|
1322
1330
|
# noinspection PyUnresolvedReferences
|
|
1323
1331
|
cim = Accumulator(mrid=pb.mrid())
|
|
1324
1332
|
|
|
1325
1333
|
measurement_to_cim(pb.measurement, cim, network_service)
|
|
1326
|
-
return cim
|
|
1334
|
+
return cim
|
|
1327
1335
|
|
|
1328
1336
|
|
|
1337
|
+
@bind_to_cim
|
|
1338
|
+
@add_to_network_or_none
|
|
1329
1339
|
def analog_to_cim(pb: PBAnalog, network_service: NetworkService) -> Optional[Analog]:
|
|
1330
1340
|
# noinspection PyUnresolvedReferences
|
|
1331
1341
|
cim = Analog(mrid=pb.mrid(), positive_flow_in=pb.positiveFlowIn)
|
|
1332
1342
|
|
|
1333
1343
|
measurement_to_cim(pb.measurement, cim, network_service)
|
|
1334
|
-
return cim
|
|
1335
|
-
|
|
1344
|
+
return cim
|
|
1336
1345
|
|
|
1346
|
+
@bind_to_cim
|
|
1347
|
+
@add_to_network_or_none
|
|
1337
1348
|
def control_to_cim(pb: PBControl, network_service: NetworkService) -> Optional[Control]:
|
|
1338
1349
|
# noinspection PyUnresolvedReferences
|
|
1339
1350
|
cim = Control(
|
|
@@ -1345,15 +1356,17 @@ def control_to_cim(pb: PBControl, network_service: NetworkService) -> Optional[C
|
|
|
1345
1356
|
network_service.resolve_or_defer_reference(resolver.remote_control(cim), pb.remoteControlMRID)
|
|
1346
1357
|
|
|
1347
1358
|
io_point_to_cim(pb.ip, cim, network_service)
|
|
1348
|
-
return cim
|
|
1359
|
+
return cim
|
|
1349
1360
|
|
|
1350
1361
|
|
|
1362
|
+
@bind_to_cim
|
|
1363
|
+
@add_to_network_or_none
|
|
1351
1364
|
def discrete_to_cim(pb: PBDiscrete, network_service: NetworkService) -> Optional[Discrete]:
|
|
1352
1365
|
# noinspection PyUnresolvedReferences
|
|
1353
1366
|
cim = Discrete(mrid=pb.mrid())
|
|
1354
1367
|
|
|
1355
1368
|
measurement_to_cim(pb.measurement, cim, network_service)
|
|
1356
|
-
return cim
|
|
1369
|
+
return cim
|
|
1357
1370
|
|
|
1358
1371
|
|
|
1359
1372
|
def io_point_to_cim(pb: PBIoPoint, cim: IoPoint, service: NetworkService):
|
|
@@ -1371,16 +1384,12 @@ def measurement_to_cim(pb: PBMeasurement, cim: Measurement, service: NetworkServ
|
|
|
1371
1384
|
identified_object_to_cim(pb.io, cim, service)
|
|
1372
1385
|
|
|
1373
1386
|
|
|
1374
|
-
PBAccumulator.to_cim = accumulator_to_cim
|
|
1375
|
-
PBAnalog.to_cim = analog_to_cim
|
|
1376
|
-
PBControl.to_cim = control_to_cim
|
|
1377
|
-
PBDiscrete.to_cim = discrete_to_cim
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
1387
|
############################
|
|
1381
1388
|
# IEC61970 Base Protection #
|
|
1382
1389
|
############################
|
|
1383
1390
|
|
|
1391
|
+
@bind_to_cim
|
|
1392
|
+
@add_to_network_or_none
|
|
1384
1393
|
def current_relay_to_cim(pb: PBCurrentRelay, network_service: NetworkService) -> Optional[CurrentRelay]:
|
|
1385
1394
|
# noinspection PyUnresolvedReferences
|
|
1386
1395
|
cim = CurrentRelay(
|
|
@@ -1391,16 +1400,15 @@ def current_relay_to_cim(pb: PBCurrentRelay, network_service: NetworkService) ->
|
|
|
1391
1400
|
)
|
|
1392
1401
|
|
|
1393
1402
|
protection_relay_function_to_cim(pb.prf, cim, network_service)
|
|
1394
|
-
return cim
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
PBCurrentRelay.to_cim = current_relay_to_cim
|
|
1403
|
+
return cim
|
|
1398
1404
|
|
|
1399
1405
|
|
|
1400
1406
|
#######################
|
|
1401
1407
|
# IEC61970 Base Scada #
|
|
1402
1408
|
#######################
|
|
1403
1409
|
|
|
1410
|
+
@bind_to_cim
|
|
1411
|
+
@add_to_network_or_none
|
|
1404
1412
|
def remote_control_to_cim(pb: PBRemoteControl, network_service: NetworkService) -> Optional[RemoteControl]:
|
|
1405
1413
|
# noinspection PyUnresolvedReferences
|
|
1406
1414
|
cim = RemoteControl(mrid=pb.mrid())
|
|
@@ -1408,13 +1416,15 @@ def remote_control_to_cim(pb: PBRemoteControl, network_service: NetworkService)
|
|
|
1408
1416
|
network_service.resolve_or_defer_reference(resolver.control(cim), pb.controlMRID)
|
|
1409
1417
|
|
|
1410
1418
|
remote_point_to_cim(pb.rp, cim, network_service)
|
|
1411
|
-
return cim
|
|
1419
|
+
return cim
|
|
1412
1420
|
|
|
1413
1421
|
|
|
1414
1422
|
def remote_point_to_cim(pb: PBRemotePoint, cim: RemotePoint, service: NetworkService):
|
|
1415
1423
|
identified_object_to_cim(pb.io, cim, service)
|
|
1416
1424
|
|
|
1417
1425
|
|
|
1426
|
+
@bind_to_cim
|
|
1427
|
+
@add_to_network_or_none
|
|
1418
1428
|
def remote_source_to_cim(pb: PBRemoteSource, network_service: NetworkService) -> Optional[RemoteSource]:
|
|
1419
1429
|
# noinspection PyUnresolvedReferences
|
|
1420
1430
|
cim = RemoteSource(mrid=pb.mrid())
|
|
@@ -1422,17 +1432,15 @@ def remote_source_to_cim(pb: PBRemoteSource, network_service: NetworkService) ->
|
|
|
1422
1432
|
network_service.resolve_or_defer_reference(resolver.measurement(cim), pb.measurementMRID)
|
|
1423
1433
|
|
|
1424
1434
|
remote_point_to_cim(pb.rp, cim, network_service)
|
|
1425
|
-
return cim
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
PBRemoteControl.to_cim = remote_control_to_cim
|
|
1429
|
-
PBRemoteSource.to_cim = remote_source_to_cim
|
|
1435
|
+
return cim
|
|
1430
1436
|
|
|
1431
1437
|
|
|
1432
1438
|
#######################
|
|
1433
1439
|
# IEC61970 Base Wires #
|
|
1434
1440
|
#######################
|
|
1435
1441
|
|
|
1442
|
+
@bind_to_cim
|
|
1443
|
+
@add_to_network_or_none
|
|
1436
1444
|
def ac_line_segment_to_cim(pb: PBAcLineSegment, network_service: NetworkService) -> Optional[AcLineSegment]:
|
|
1437
1445
|
"""
|
|
1438
1446
|
Convert the protobuf :class:`PBAcLineSegment` into its CIM counterpart.
|
|
@@ -1450,9 +1458,11 @@ def ac_line_segment_to_cim(pb: PBAcLineSegment, network_service: NetworkService)
|
|
|
1450
1458
|
network_service.resolve_or_defer_reference(resolver.clamps(cim), mrid)
|
|
1451
1459
|
|
|
1452
1460
|
conductor_to_cim(pb.cd, cim, network_service)
|
|
1453
|
-
return cim
|
|
1461
|
+
return cim
|
|
1454
1462
|
|
|
1455
1463
|
|
|
1464
|
+
@bind_to_cim
|
|
1465
|
+
@add_to_network_or_none
|
|
1456
1466
|
def breaker_to_cim(pb: PBBreaker, network_service: NetworkService) -> Optional[Breaker]:
|
|
1457
1467
|
# noinspection PyUnresolvedReferences
|
|
1458
1468
|
cim = Breaker(
|
|
@@ -1461,17 +1471,21 @@ def breaker_to_cim(pb: PBBreaker, network_service: NetworkService) -> Optional[B
|
|
|
1461
1471
|
)
|
|
1462
1472
|
|
|
1463
1473
|
protected_switch_to_cim(pb.sw, cim, network_service)
|
|
1464
|
-
return cim
|
|
1474
|
+
return cim
|
|
1465
1475
|
|
|
1466
1476
|
|
|
1477
|
+
@bind_to_cim
|
|
1478
|
+
@add_to_network_or_none
|
|
1467
1479
|
def busbar_section_to_cim(pb: PBBusbarSection, network_service: NetworkService) -> Optional[BusbarSection]:
|
|
1468
1480
|
# noinspection PyUnresolvedReferences
|
|
1469
1481
|
cim = BusbarSection(mrid=pb.mrid())
|
|
1470
1482
|
|
|
1471
1483
|
connector_to_cim(pb.cn, cim, network_service)
|
|
1472
|
-
return cim
|
|
1484
|
+
return cim
|
|
1473
1485
|
|
|
1474
1486
|
|
|
1487
|
+
@bind_to_cim
|
|
1488
|
+
@add_to_network_or_none
|
|
1475
1489
|
def clamp_to_cim(pb: PBClamp, network_service: NetworkService) -> Optional[Clamp]:
|
|
1476
1490
|
# noinspection PyUnresolvedReferences
|
|
1477
1491
|
cim = Clamp(mrid=pb.mrid())
|
|
@@ -1480,7 +1494,7 @@ def clamp_to_cim(pb: PBClamp, network_service: NetworkService) -> Optional[Clamp
|
|
|
1480
1494
|
network_service.resolve_or_defer_reference(resolver.clamp_ac_line_segment(cim), pb.acLineSegmentMRID)
|
|
1481
1495
|
|
|
1482
1496
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1483
|
-
return cim
|
|
1497
|
+
return cim
|
|
1484
1498
|
|
|
1485
1499
|
|
|
1486
1500
|
def conductor_to_cim(pb: PBConductor, cim: Conductor, network_service: NetworkService):
|
|
@@ -1498,6 +1512,8 @@ def connector_to_cim(pb: PBConnector, cim: Connector, network_service: NetworkSe
|
|
|
1498
1512
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1499
1513
|
|
|
1500
1514
|
|
|
1515
|
+
@bind_to_cim
|
|
1516
|
+
@add_to_network_or_none
|
|
1501
1517
|
def cut_to_cim(pb: PBCut, network_service: NetworkService) -> Optional[Cut]:
|
|
1502
1518
|
# noinspection PyUnresolvedReferences
|
|
1503
1519
|
cim = Cut(mrid=pb.mrid())
|
|
@@ -1506,15 +1522,17 @@ def cut_to_cim(pb: PBCut, network_service: NetworkService) -> Optional[Cut]:
|
|
|
1506
1522
|
network_service.resolve_or_defer_reference(resolver.cut_ac_line_segment(cim), pb.acLineSegmentMRID)
|
|
1507
1523
|
|
|
1508
1524
|
switch_to_cim(pb.sw, cim, network_service)
|
|
1509
|
-
return cim
|
|
1525
|
+
return cim
|
|
1510
1526
|
|
|
1511
1527
|
|
|
1528
|
+
@bind_to_cim
|
|
1529
|
+
@add_to_network_or_none
|
|
1512
1530
|
def disconnector_to_cim(pb: PBDisconnector, network_service: NetworkService) -> Optional[Disconnector]:
|
|
1513
1531
|
# noinspection PyUnresolvedReferences
|
|
1514
1532
|
cim = Disconnector(mrid=pb.mrid())
|
|
1515
1533
|
|
|
1516
1534
|
switch_to_cim(pb.sw, cim, network_service)
|
|
1517
|
-
return cim
|
|
1535
|
+
return cim
|
|
1518
1536
|
|
|
1519
1537
|
|
|
1520
1538
|
def earth_fault_compensator_to_cim(pb: PBEarthFaultCompensator, cim: EarthFaultCompensator, network_service: NetworkService):
|
|
@@ -1527,6 +1545,8 @@ def energy_connection_to_cim(pb: PBEnergyConnection, cim: EnergyConnection, netw
|
|
|
1527
1545
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1528
1546
|
|
|
1529
1547
|
|
|
1548
|
+
@bind_to_cim
|
|
1549
|
+
@add_to_network_or_none
|
|
1530
1550
|
def energy_consumer_to_cim(pb: PBEnergyConsumer, network_service: NetworkService) -> Optional[EnergyConsumer]:
|
|
1531
1551
|
# noinspection PyUnresolvedReferences
|
|
1532
1552
|
cim = EnergyConsumer(
|
|
@@ -1544,9 +1564,11 @@ def energy_consumer_to_cim(pb: PBEnergyConsumer, network_service: NetworkService
|
|
|
1544
1564
|
network_service.resolve_or_defer_reference(resolver.ec_phases(cim), mrid)
|
|
1545
1565
|
|
|
1546
1566
|
energy_connection_to_cim(pb.ec, cim, network_service)
|
|
1547
|
-
return cim
|
|
1567
|
+
return cim
|
|
1548
1568
|
|
|
1549
1569
|
|
|
1570
|
+
@bind_to_cim
|
|
1571
|
+
@add_to_network_or_none
|
|
1550
1572
|
def energy_consumer_phase_to_cim(pb: PBEnergyConsumerPhase, network_service: NetworkService) -> Optional[EnergyConsumerPhase]:
|
|
1551
1573
|
# noinspection PyUnresolvedReferences
|
|
1552
1574
|
cim = EnergyConsumerPhase(
|
|
@@ -1561,9 +1583,11 @@ def energy_consumer_phase_to_cim(pb: PBEnergyConsumerPhase, network_service: Net
|
|
|
1561
1583
|
network_service.resolve_or_defer_reference(resolver.energy_consumer(cim), pb.energyConsumerMRID)
|
|
1562
1584
|
|
|
1563
1585
|
power_system_resource_to_cim(pb.psr, cim, network_service)
|
|
1564
|
-
return cim
|
|
1586
|
+
return cim
|
|
1565
1587
|
|
|
1566
1588
|
|
|
1589
|
+
@bind_to_cim
|
|
1590
|
+
@add_to_network_or_none
|
|
1567
1591
|
def energy_source_to_cim(pb: PBEnergySource, network_service: NetworkService) -> Optional[EnergySource]:
|
|
1568
1592
|
# noinspection PyUnresolvedReferences
|
|
1569
1593
|
cim = EnergySource(
|
|
@@ -1599,9 +1623,11 @@ def energy_source_to_cim(pb: PBEnergySource, network_service: NetworkService) ->
|
|
|
1599
1623
|
network_service.resolve_or_defer_reference(resolver.es_phases(cim), mrid)
|
|
1600
1624
|
|
|
1601
1625
|
energy_connection_to_cim(pb.ec, cim, network_service)
|
|
1602
|
-
return cim
|
|
1626
|
+
return cim
|
|
1603
1627
|
|
|
1604
1628
|
|
|
1629
|
+
@bind_to_cim
|
|
1630
|
+
@add_to_network_or_none
|
|
1605
1631
|
def energy_source_phase_to_cim(pb: PBEnergySourcePhase, network_service: NetworkService) -> Optional[EnergySourcePhase]:
|
|
1606
1632
|
# noinspection PyUnresolvedReferences
|
|
1607
1633
|
cim = EnergySourcePhase(mrid=pb.mrid(), phase=single_phase_kind_by_id(pb.phase))
|
|
@@ -1609,9 +1635,11 @@ def energy_source_phase_to_cim(pb: PBEnergySourcePhase, network_service: Network
|
|
|
1609
1635
|
network_service.resolve_or_defer_reference(resolver.energy_source(cim), pb.energySourceMRID)
|
|
1610
1636
|
|
|
1611
1637
|
power_system_resource_to_cim(pb.psr, cim, network_service)
|
|
1612
|
-
return cim
|
|
1638
|
+
return cim
|
|
1613
1639
|
|
|
1614
1640
|
|
|
1641
|
+
@bind_to_cim
|
|
1642
|
+
@add_to_network_or_none
|
|
1615
1643
|
def fuse_to_cim(pb: PBFuse, network_service: NetworkService) -> Optional[Fuse]:
|
|
1616
1644
|
# noinspection PyUnresolvedReferences
|
|
1617
1645
|
cim = Fuse(mrid=pb.mrid())
|
|
@@ -1619,53 +1647,65 @@ def fuse_to_cim(pb: PBFuse, network_service: NetworkService) -> Optional[Fuse]:
|
|
|
1619
1647
|
network_service.resolve_or_defer_reference(resolver.fuse_function(cim), pb.functionMRID)
|
|
1620
1648
|
|
|
1621
1649
|
switch_to_cim(pb.sw, cim, network_service)
|
|
1622
|
-
return cim
|
|
1650
|
+
return cim
|
|
1623
1651
|
|
|
1624
1652
|
|
|
1653
|
+
@bind_to_cim
|
|
1654
|
+
@add_to_network_or_none
|
|
1625
1655
|
def ground_to_cim(pb: PBGround, network_service: NetworkService) -> Optional[Ground]:
|
|
1626
1656
|
# noinspection PyUnresolvedReferences
|
|
1627
1657
|
cim = Ground(mrid=pb.mrid())
|
|
1628
1658
|
|
|
1629
1659
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1630
|
-
return cim
|
|
1660
|
+
return cim
|
|
1631
1661
|
|
|
1632
1662
|
|
|
1663
|
+
@bind_to_cim
|
|
1664
|
+
@add_to_network_or_none
|
|
1633
1665
|
def ground_disconnector_to_cim(pb: PBGroundDisconnector, network_service: NetworkService) -> Optional[GroundDisconnector]:
|
|
1634
1666
|
# noinspection PyUnresolvedReferences
|
|
1635
1667
|
cim = GroundDisconnector(mrid=pb.mrid())
|
|
1636
1668
|
|
|
1637
1669
|
switch_to_cim(pb.sw, cim, network_service)
|
|
1638
|
-
return cim
|
|
1670
|
+
return cim
|
|
1639
1671
|
|
|
1640
1672
|
|
|
1673
|
+
@bind_to_cim
|
|
1674
|
+
@add_to_network_or_none
|
|
1641
1675
|
def grounding_impedance_to_cim(pb: PBGroundingImpedance, network_service: NetworkService) -> Optional[GroundingImpedance]:
|
|
1642
1676
|
# noinspection PyUnresolvedReferences
|
|
1643
1677
|
cim = GroundingImpedance(mrid=pb.mrid(), x=float_or_none(pb.x))
|
|
1644
1678
|
|
|
1645
1679
|
earth_fault_compensator_to_cim(pb.efc, cim, network_service)
|
|
1646
|
-
return cim
|
|
1680
|
+
return cim
|
|
1647
1681
|
|
|
1648
1682
|
|
|
1683
|
+
@bind_to_cim
|
|
1684
|
+
@add_to_network_or_none
|
|
1649
1685
|
def jumper_to_cim(pb: PBJumper, network_service: NetworkService) -> Optional[Jumper]:
|
|
1650
1686
|
# noinspection PyUnresolvedReferences
|
|
1651
1687
|
cim = Jumper(mrid=pb.mrid())
|
|
1652
1688
|
|
|
1653
1689
|
switch_to_cim(pb.sw, cim, network_service)
|
|
1654
|
-
return cim
|
|
1690
|
+
return cim
|
|
1655
1691
|
|
|
1656
1692
|
|
|
1693
|
+
@bind_to_cim
|
|
1694
|
+
@add_to_network_or_none
|
|
1657
1695
|
def junction_to_cim(pb: PBJunction, network_service: NetworkService) -> Optional[Junction]:
|
|
1658
1696
|
# noinspection PyUnresolvedReferences
|
|
1659
1697
|
cim = Junction(mrid=pb.mrid())
|
|
1660
1698
|
|
|
1661
1699
|
connector_to_cim(pb.cn, cim, network_service)
|
|
1662
|
-
return cim
|
|
1700
|
+
return cim
|
|
1663
1701
|
|
|
1664
1702
|
|
|
1665
1703
|
def line_to_cim(pb: PBLine, cim: Line, network_service: NetworkService):
|
|
1666
1704
|
equipment_container_to_cim(pb.ec, cim, network_service)
|
|
1667
1705
|
|
|
1668
1706
|
|
|
1707
|
+
@bind_to_cim
|
|
1708
|
+
@add_to_network_or_none
|
|
1669
1709
|
def linear_shunt_compensator_to_cim(pb: PBLinearShuntCompensator, network_service: NetworkService) -> Optional[LinearShuntCompensator]:
|
|
1670
1710
|
# noinspection PyUnresolvedReferences
|
|
1671
1711
|
cim = LinearShuntCompensator(
|
|
@@ -1677,15 +1717,17 @@ def linear_shunt_compensator_to_cim(pb: PBLinearShuntCompensator, network_servic
|
|
|
1677
1717
|
)
|
|
1678
1718
|
|
|
1679
1719
|
shunt_compensator_to_cim(pb.sc, cim, network_service)
|
|
1680
|
-
return cim
|
|
1720
|
+
return cim
|
|
1681
1721
|
|
|
1682
1722
|
|
|
1723
|
+
@bind_to_cim
|
|
1724
|
+
@add_to_network_or_none
|
|
1683
1725
|
def load_break_switch_to_cim(pb: PBLoadBreakSwitch, network_service: NetworkService) -> Optional[LoadBreakSwitch]:
|
|
1684
1726
|
# noinspection PyUnresolvedReferences
|
|
1685
1727
|
cim = LoadBreakSwitch(mrid=pb.mrid())
|
|
1686
1728
|
|
|
1687
1729
|
protected_switch_to_cim(pb.ps, cim, network_service)
|
|
1688
|
-
return cim
|
|
1730
|
+
return cim
|
|
1689
1731
|
|
|
1690
1732
|
|
|
1691
1733
|
def per_length_line_parameter_to_cim(pb: PBPerLengthLineParameter, cim: PerLengthLineParameter, network_service: NetworkService):
|
|
@@ -1696,6 +1738,8 @@ def per_length_impedance_to_cim(pb: PBPerLengthImpedance, cim: PerLengthImpedanc
|
|
|
1696
1738
|
per_length_line_parameter_to_cim(pb.lp, cim, network_service)
|
|
1697
1739
|
|
|
1698
1740
|
|
|
1741
|
+
@bind_to_cim
|
|
1742
|
+
@add_to_network_or_none
|
|
1699
1743
|
def per_length_phase_impedance_to_cim(pb: PBPerLengthPhaseImpedance, network_service: NetworkService) -> Optional[PerLengthPhaseImpedance]:
|
|
1700
1744
|
"""
|
|
1701
1745
|
Convert the protobuf :class:`PBPerLengthPhaseImpedance` into its CIM counterpart.
|
|
@@ -1710,9 +1754,11 @@ def per_length_phase_impedance_to_cim(pb: PBPerLengthPhaseImpedance, network_ser
|
|
|
1710
1754
|
cim.add_data(phase_impedance_data_to_cim(phase_impedance_data))
|
|
1711
1755
|
|
|
1712
1756
|
per_length_impedance_to_cim(pb.pli, cim, network_service)
|
|
1713
|
-
return cim
|
|
1757
|
+
return cim
|
|
1714
1758
|
|
|
1715
1759
|
|
|
1760
|
+
@bind_to_cim
|
|
1761
|
+
@add_to_network_or_none
|
|
1716
1762
|
def per_length_sequence_impedance_to_cim(pb: PBPerLengthSequenceImpedance, network_service: NetworkService) -> Optional[PerLengthSequenceImpedance]:
|
|
1717
1763
|
# noinspection PyUnresolvedReferences
|
|
1718
1764
|
cim = PerLengthSequenceImpedance(
|
|
@@ -1728,15 +1774,17 @@ def per_length_sequence_impedance_to_cim(pb: PBPerLengthSequenceImpedance, netwo
|
|
|
1728
1774
|
)
|
|
1729
1775
|
|
|
1730
1776
|
per_length_impedance_to_cim(pb.pli, cim, network_service)
|
|
1731
|
-
return cim
|
|
1777
|
+
return cim
|
|
1732
1778
|
|
|
1733
1779
|
|
|
1780
|
+
@bind_to_cim
|
|
1781
|
+
@add_to_network_or_none
|
|
1734
1782
|
def petersen_coil_to_cim(pb: PBPetersenCoil, network_service: NetworkService) -> Optional[PetersenCoil]:
|
|
1735
1783
|
# noinspection PyUnresolvedReferences
|
|
1736
1784
|
cim = PetersenCoil(mrid=pb.mrid(), x_ground_nominal=float_or_none(pb.xGroundNominal))
|
|
1737
1785
|
|
|
1738
1786
|
earth_fault_compensator_to_cim(pb.efc, cim, network_service)
|
|
1739
|
-
return cim
|
|
1787
|
+
return cim
|
|
1740
1788
|
|
|
1741
1789
|
|
|
1742
1790
|
def phase_impedance_data_to_cim(pb: PBPhaseImpedanceData) -> Optional[PhaseImpedanceData]:
|
|
@@ -1755,6 +1803,8 @@ def phase_impedance_data_to_cim(pb: PBPhaseImpedanceData) -> Optional[PhaseImped
|
|
|
1755
1803
|
)
|
|
1756
1804
|
|
|
1757
1805
|
|
|
1806
|
+
@bind_to_cim
|
|
1807
|
+
@add_to_network_or_none
|
|
1758
1808
|
def power_electronics_connection_to_cim(pb: PBPowerElectronicsConnection, network_service: NetworkService) -> Optional[PowerElectronicsConnection]:
|
|
1759
1809
|
# noinspection PyUnresolvedReferences
|
|
1760
1810
|
cim = PowerElectronicsConnection(
|
|
@@ -1798,9 +1848,11 @@ def power_electronics_connection_to_cim(pb: PBPowerElectronicsConnection, networ
|
|
|
1798
1848
|
network_service.resolve_or_defer_reference(resolver.power_electronics_connection_phase(cim), mrid)
|
|
1799
1849
|
|
|
1800
1850
|
regulating_cond_eq_to_cim(pb.rce, cim, network_service)
|
|
1801
|
-
return cim
|
|
1851
|
+
return cim
|
|
1802
1852
|
|
|
1803
1853
|
|
|
1854
|
+
@bind_to_cim
|
|
1855
|
+
@add_to_network_or_none
|
|
1804
1856
|
def power_electronics_connection_phase_to_cim(
|
|
1805
1857
|
pb: PBPowerElectronicsConnectionPhase,
|
|
1806
1858
|
network_service: NetworkService
|
|
@@ -1816,9 +1868,11 @@ def power_electronics_connection_phase_to_cim(
|
|
|
1816
1868
|
network_service.resolve_or_defer_reference(resolver.phase_power_electronics_connection(cim), pb.powerElectronicsConnectionMRID)
|
|
1817
1869
|
|
|
1818
1870
|
power_system_resource_to_cim(pb.psr, cim, network_service)
|
|
1819
|
-
return cim
|
|
1871
|
+
return cim
|
|
1820
1872
|
|
|
1821
1873
|
|
|
1874
|
+
@bind_to_cim
|
|
1875
|
+
@add_to_network_or_none
|
|
1822
1876
|
def power_transformer_to_cim(pb: PBPowerTransformer, network_service: NetworkService) -> Optional[PowerTransformer]:
|
|
1823
1877
|
# noinspection PyUnresolvedReferences
|
|
1824
1878
|
cim = PowerTransformer(
|
|
@@ -1835,9 +1889,11 @@ def power_transformer_to_cim(pb: PBPowerTransformer, network_service: NetworkSer
|
|
|
1835
1889
|
network_service.resolve_or_defer_reference(resolver.power_transformer_info(cim), pb.asset_info_mrid())
|
|
1836
1890
|
|
|
1837
1891
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1838
|
-
return cim
|
|
1892
|
+
return cim
|
|
1839
1893
|
|
|
1840
1894
|
|
|
1895
|
+
@bind_to_cim
|
|
1896
|
+
@add_to_network_or_none
|
|
1841
1897
|
def power_transformer_end_to_cim(pb: PBPowerTransformerEnd, network_service: NetworkService) -> Optional[PowerTransformerEnd]:
|
|
1842
1898
|
# noinspection PyUnresolvedReferences
|
|
1843
1899
|
cim = PowerTransformerEnd(
|
|
@@ -1862,7 +1918,7 @@ def power_transformer_end_to_cim(pb: PBPowerTransformerEnd, network_service: Net
|
|
|
1862
1918
|
transformer_end_to_cim(pb.te, cim, network_service)
|
|
1863
1919
|
|
|
1864
1920
|
network_service.resolve_or_defer_reference(resolver.power_transformer(cim), pb.powerTransformerMRID)
|
|
1865
|
-
return cim
|
|
1921
|
+
return cim
|
|
1866
1922
|
|
|
1867
1923
|
|
|
1868
1924
|
def protected_switch_to_cim(pb: PBProtectedSwitch, cim: ProtectedSwitch, network_service: NetworkService):
|
|
@@ -1874,6 +1930,8 @@ def protected_switch_to_cim(pb: PBProtectedSwitch, cim: ProtectedSwitch, network
|
|
|
1874
1930
|
switch_to_cim(pb.sw, cim, network_service)
|
|
1875
1931
|
|
|
1876
1932
|
|
|
1933
|
+
@bind_to_cim
|
|
1934
|
+
@add_to_network_or_none
|
|
1877
1935
|
def ratio_tap_changer_to_cim(pb: PBRatioTapChanger, network_service: NetworkService) -> Optional[RatioTapChanger]:
|
|
1878
1936
|
# noinspection PyUnresolvedReferences
|
|
1879
1937
|
cim = RatioTapChanger(
|
|
@@ -1884,23 +1942,27 @@ def ratio_tap_changer_to_cim(pb: PBRatioTapChanger, network_service: NetworkServ
|
|
|
1884
1942
|
network_service.resolve_or_defer_reference(resolver.transformer_end(cim), pb.transformerEndMRID)
|
|
1885
1943
|
|
|
1886
1944
|
tap_changer_to_cim(pb.tc, cim, network_service)
|
|
1887
|
-
return cim
|
|
1945
|
+
return cim
|
|
1888
1946
|
|
|
1889
1947
|
|
|
1948
|
+
@bind_to_cim
|
|
1949
|
+
@add_to_network_or_none
|
|
1890
1950
|
def reactive_capability_curve_to_cim(pb: PBReactiveCapabilityCurve, network_service: NetworkService) -> Optional[ReactiveCapabilityCurve]:
|
|
1891
1951
|
# noinspection PyUnresolvedReferences
|
|
1892
1952
|
cim = ReactiveCapabilityCurve(mrid=pb.mrid())
|
|
1893
1953
|
|
|
1894
1954
|
curve_to_cim(pb.c, cim, network_service)
|
|
1895
|
-
return cim
|
|
1955
|
+
return cim
|
|
1896
1956
|
|
|
1897
1957
|
|
|
1958
|
+
@bind_to_cim
|
|
1959
|
+
@add_to_network_or_none
|
|
1898
1960
|
def recloser_to_cim(pb: PBRecloser, network_service: NetworkService) -> Optional[Recloser]:
|
|
1899
1961
|
# noinspection PyUnresolvedReferences
|
|
1900
1962
|
cim = Recloser(mrid=pb.mrid())
|
|
1901
1963
|
|
|
1902
1964
|
protected_switch_to_cim(pb.sw, cim, network_service)
|
|
1903
|
-
return cim
|
|
1965
|
+
return cim
|
|
1904
1966
|
|
|
1905
1967
|
|
|
1906
1968
|
def regulating_cond_eq_to_cim(pb: PBRegulatingCondEq, cim: RegulatingCondEq, network_service: NetworkService):
|
|
@@ -1939,6 +2001,8 @@ def rotating_machine_to_cim(pb: PBRotatingMachine, cim: RotatingMachine, network
|
|
|
1939
2001
|
regulating_cond_eq_to_cim(pb.rce, cim, network_service)
|
|
1940
2002
|
|
|
1941
2003
|
|
|
2004
|
+
@bind_to_cim
|
|
2005
|
+
@add_to_network_or_none
|
|
1942
2006
|
def series_compensator_to_cim(pb: PBSeriesCompensator, network_service: NetworkService) -> Optional[SeriesCompensator]:
|
|
1943
2007
|
# noinspection PyUnresolvedReferences
|
|
1944
2008
|
cim = SeriesCompensator(
|
|
@@ -1952,7 +2016,7 @@ def series_compensator_to_cim(pb: PBSeriesCompensator, network_service: NetworkS
|
|
|
1952
2016
|
)
|
|
1953
2017
|
|
|
1954
2018
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1955
|
-
return cim
|
|
2019
|
+
return cim
|
|
1956
2020
|
|
|
1957
2021
|
|
|
1958
2022
|
def shunt_compensator_to_cim(pb: PBShuntCompensator, cim: ShuntCompensator, network_service: NetworkService):
|
|
@@ -1966,6 +2030,8 @@ def shunt_compensator_to_cim(pb: PBShuntCompensator, cim: ShuntCompensator, netw
|
|
|
1966
2030
|
regulating_cond_eq_to_cim(pb.rce, cim, network_service)
|
|
1967
2031
|
|
|
1968
2032
|
|
|
2033
|
+
@bind_to_cim
|
|
2034
|
+
@add_to_network_or_none
|
|
1969
2035
|
def static_var_compensator_to_cim(pb: PBStaticVarCompensator, network_service: NetworkService):
|
|
1970
2036
|
"""
|
|
1971
2037
|
Convert the protobuf :class:`PBStaticVarCompensator` into its CIM counterpart.
|
|
@@ -1984,7 +2050,7 @@ def static_var_compensator_to_cim(pb: PBStaticVarCompensator, network_service: N
|
|
|
1984
2050
|
)
|
|
1985
2051
|
|
|
1986
2052
|
regulating_cond_eq_to_cim(pb.rce, cim, network_service)
|
|
1987
|
-
return cim
|
|
2053
|
+
return cim
|
|
1988
2054
|
|
|
1989
2055
|
|
|
1990
2056
|
def switch_to_cim(pb: PBSwitch, cim: Switch, network_service: NetworkService):
|
|
@@ -1997,6 +2063,8 @@ def switch_to_cim(pb: PBSwitch, cim: Switch, network_service: NetworkService):
|
|
|
1997
2063
|
conducting_equipment_to_cim(pb.ce, cim, network_service)
|
|
1998
2064
|
|
|
1999
2065
|
|
|
2066
|
+
@bind_to_cim
|
|
2067
|
+
@add_to_network_or_none
|
|
2000
2068
|
def synchronous_machine_to_cim(pb: PBSynchronousMachine, network_service: NetworkService) -> Optional[SynchronousMachine]:
|
|
2001
2069
|
# noinspection PyUnresolvedReferences
|
|
2002
2070
|
cim = SynchronousMachine(
|
|
@@ -2028,7 +2096,7 @@ def synchronous_machine_to_cim(pb: PBSynchronousMachine, network_service: Networ
|
|
|
2028
2096
|
network_service.resolve_or_defer_reference(resolver.reactive_capability_curve(cim), mrid)
|
|
2029
2097
|
|
|
2030
2098
|
rotating_machine_to_cim(pb.rm, cim, network_service)
|
|
2031
|
-
return cim
|
|
2099
|
+
return cim
|
|
2032
2100
|
|
|
2033
2101
|
|
|
2034
2102
|
def tap_changer_to_cim(pb: PBTapChanger, cim: TapChanger, network_service: NetworkService):
|
|
@@ -2044,6 +2112,8 @@ def tap_changer_to_cim(pb: PBTapChanger, cim: TapChanger, network_service: Netwo
|
|
|
2044
2112
|
power_system_resource_to_cim(pb.psr, cim, network_service)
|
|
2045
2113
|
|
|
2046
2114
|
|
|
2115
|
+
@bind_to_cim
|
|
2116
|
+
@add_to_network_or_none
|
|
2047
2117
|
def tap_changer_control_to_cim(pb: PBTapChangerControl, network_service: NetworkService) -> Optional[TapChangerControl]:
|
|
2048
2118
|
# noinspection PyUnresolvedReferences
|
|
2049
2119
|
cim = TapChangerControl(
|
|
@@ -2060,7 +2130,7 @@ def tap_changer_control_to_cim(pb: PBTapChangerControl, network_service: Network
|
|
|
2060
2130
|
)
|
|
2061
2131
|
|
|
2062
2132
|
regulating_control_to_cim(pb.rc, cim, network_service)
|
|
2063
|
-
return cim
|
|
2133
|
+
return cim
|
|
2064
2134
|
|
|
2065
2135
|
|
|
2066
2136
|
def transformer_end_to_cim(pb: PBTransformerEnd, cim: TransformerEnd, network_service: NetworkService):
|
|
@@ -2081,6 +2151,8 @@ def transformer_end_rated_s_to_cim(pb: PBTransformerEndRatedS) -> Optional[Trans
|
|
|
2081
2151
|
return TransformerEndRatedS(cooling_type=TransformerCoolingType(pb.coolingType), rated_s=pb.ratedS)
|
|
2082
2152
|
|
|
2083
2153
|
|
|
2154
|
+
@bind_to_cim
|
|
2155
|
+
@add_to_network_or_none
|
|
2084
2156
|
def transformer_star_impedance_to_cim(pb: PBTransformerStarImpedance, network_service: NetworkService) -> Optional[TransformerStarImpedance]:
|
|
2085
2157
|
# noinspection PyUnresolvedReferences
|
|
2086
2158
|
cim = TransformerStarImpedance(mrid=pb.mrid(), r=pb.r, r0=pb.r0, x=pb.x, x0=pb.x0)
|
|
@@ -2088,48 +2160,15 @@ def transformer_star_impedance_to_cim(pb: PBTransformerStarImpedance, network_se
|
|
|
2088
2160
|
network_service.resolve_or_defer_reference(resolver.star_impedance_transformer_end_info(cim), pb.transformerEndInfoMRID)
|
|
2089
2161
|
|
|
2090
2162
|
identified_object_to_cim(pb.io, cim, network_service)
|
|
2091
|
-
return cim
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
PBAcLineSegment.to_cim = ac_line_segment_to_cim
|
|
2095
|
-
PBBreaker.to_cim = breaker_to_cim
|
|
2096
|
-
PBBusbarSection.to_cim = busbar_section_to_cim
|
|
2097
|
-
PBClamp.to_cim = clamp_to_cim
|
|
2098
|
-
PBCut.to_cim = cut_to_cim
|
|
2099
|
-
PBDisconnector.to_cim = disconnector_to_cim
|
|
2100
|
-
PBEnergyConsumer.to_cim = energy_consumer_to_cim
|
|
2101
|
-
PBEnergyConsumerPhase.to_cim = energy_consumer_phase_to_cim
|
|
2102
|
-
PBEnergySource.to_cim = energy_source_to_cim
|
|
2103
|
-
PBEnergySourcePhase.to_cim = energy_source_phase_to_cim
|
|
2104
|
-
PBFuse.to_cim = fuse_to_cim
|
|
2105
|
-
PBGround.to_cim = ground_to_cim
|
|
2106
|
-
PBGroundDisconnector.to_cim = ground_disconnector_to_cim
|
|
2107
|
-
PBGroundingImpedance.to_cim = grounding_impedance_to_cim
|
|
2108
|
-
PBJumper.to_cim = jumper_to_cim
|
|
2109
|
-
PBJunction.to_cim = junction_to_cim
|
|
2110
|
-
PBLinearShuntCompensator.to_cim = linear_shunt_compensator_to_cim
|
|
2111
|
-
PBLoadBreakSwitch.to_cim = load_break_switch_to_cim
|
|
2112
|
-
PBPerLengthPhaseImpedance.to_cim = per_length_phase_impedance_to_cim
|
|
2113
|
-
PBPerLengthSequenceImpedance.to_cim = per_length_sequence_impedance_to_cim
|
|
2114
|
-
PBPetersenCoil.to_cim = petersen_coil_to_cim
|
|
2115
|
-
PBPowerElectronicsConnection.to_cim = power_electronics_connection_to_cim
|
|
2116
|
-
PBPowerElectronicsConnectionPhase.to_cim = power_electronics_connection_phase_to_cim
|
|
2117
|
-
PBPowerTransformer.to_cim = power_transformer_to_cim
|
|
2118
|
-
PBPowerTransformerEnd.to_cim = power_transformer_end_to_cim
|
|
2119
|
-
PBRatioTapChanger.to_cim = ratio_tap_changer_to_cim
|
|
2120
|
-
PBReactiveCapabilityCurve.to_cim = reactive_capability_curve_to_cim
|
|
2121
|
-
PBRecloser.to_cim = recloser_to_cim
|
|
2122
|
-
PBSeriesCompensator.to_cim = series_compensator_to_cim
|
|
2123
|
-
PBStaticVarCompensator.to_cim = static_var_compensator_to_cim
|
|
2124
|
-
PBSynchronousMachine.to_cim = synchronous_machine_to_cim
|
|
2125
|
-
PBTapChangerControl.to_cim = tap_changer_control_to_cim
|
|
2126
|
-
PBTransformerStarImpedance.to_cim = transformer_star_impedance_to_cim
|
|
2163
|
+
return cim
|
|
2127
2164
|
|
|
2128
2165
|
|
|
2129
2166
|
###############################
|
|
2130
2167
|
# IEC61970 InfIEC61970 Feeder #
|
|
2131
2168
|
###############################
|
|
2132
2169
|
|
|
2170
|
+
@bind_to_cim
|
|
2171
|
+
@add_to_network_or_none
|
|
2133
2172
|
def circuit_to_cim(pb: PBCircuit, network_service: NetworkService) -> Optional[Circuit]:
|
|
2134
2173
|
# noinspection PyUnresolvedReferences
|
|
2135
2174
|
cim = Circuit(mrid=pb.mrid())
|
|
@@ -2141,7 +2180,4 @@ def circuit_to_cim(pb: PBCircuit, network_service: NetworkService) -> Optional[C
|
|
|
2141
2180
|
network_service.resolve_or_defer_reference(resolver.end_substation(cim), mrid)
|
|
2142
2181
|
|
|
2143
2182
|
line_to_cim(pb.l, cim, network_service)
|
|
2144
|
-
return cim
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
PBCircuit.to_cim = circuit_to_cim
|
|
2183
|
+
return cim
|