zepben.ewb 1.0.0b1__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/__init__.py +601 -0
- zepben/ewb/auth/__init__.py +10 -0
- zepben/ewb/auth/client/__init__.py +5 -0
- zepben/ewb/auth/client/zepben_token_fetcher.py +273 -0
- zepben/ewb/auth/common/__init__.py +5 -0
- zepben/ewb/auth/common/auth_exception.py +16 -0
- zepben/ewb/auth/common/auth_method.py +28 -0
- zepben/ewb/auth/common/auth_provider_config.py +96 -0
- zepben/ewb/database/__init__.py +4 -0
- zepben/ewb/database/paths/__init__.py +4 -0
- zepben/ewb/database/paths/database_type.py +34 -0
- zepben/ewb/database/paths/ewb_data_file_paths.py +237 -0
- zepben/ewb/database/sqlite/__init__.py +4 -0
- zepben/ewb/database/sqlite/common/__init__.py +4 -0
- zepben/ewb/database/sqlite/common/base_cim_reader.py +212 -0
- zepben/ewb/database/sqlite/common/base_cim_writer.py +159 -0
- zepben/ewb/database/sqlite/common/base_collection_reader.py +96 -0
- zepben/ewb/database/sqlite/common/base_collection_writer.py +73 -0
- zepben/ewb/database/sqlite/common/base_database_reader.py +127 -0
- zepben/ewb/database/sqlite/common/base_database_tables.py +137 -0
- zepben/ewb/database/sqlite/common/base_database_writer.py +195 -0
- zepben/ewb/database/sqlite/common/base_entry_writer.py +34 -0
- zepben/ewb/database/sqlite/common/base_service_reader.py +50 -0
- zepben/ewb/database/sqlite/common/base_service_writer.py +104 -0
- zepben/ewb/database/sqlite/common/metadata_collection_reader.py +39 -0
- zepben/ewb/database/sqlite/common/metadata_collection_writer.py +38 -0
- zepben/ewb/database/sqlite/common/metadata_entry_reader.py +45 -0
- zepben/ewb/database/sqlite/common/metadata_entry_writer.py +41 -0
- zepben/ewb/database/sqlite/common/reader_exceptions.py +30 -0
- zepben/ewb/database/sqlite/customer/__init__.py +4 -0
- zepben/ewb/database/sqlite/customer/customer_cim_reader.py +169 -0
- zepben/ewb/database/sqlite/customer/customer_cim_writer.py +137 -0
- zepben/ewb/database/sqlite/customer/customer_database_reader.py +44 -0
- zepben/ewb/database/sqlite/customer/customer_database_tables.py +37 -0
- zepben/ewb/database/sqlite/customer/customer_database_writer.py +45 -0
- zepben/ewb/database/sqlite/customer/customer_service_reader.py +57 -0
- zepben/ewb/database/sqlite/customer/customer_service_writer.py +47 -0
- zepben/ewb/database/sqlite/diagram/__init__.py +4 -0
- zepben/ewb/database/sqlite/diagram/diagram_cim_reader.py +105 -0
- zepben/ewb/database/sqlite/diagram/diagram_cim_writer.py +81 -0
- zepben/ewb/database/sqlite/diagram/diagram_database_reader.py +45 -0
- zepben/ewb/database/sqlite/diagram/diagram_database_tables.py +29 -0
- zepben/ewb/database/sqlite/diagram/diagram_database_writer.py +44 -0
- zepben/ewb/database/sqlite/diagram/diagram_service_reader.py +49 -0
- zepben/ewb/database/sqlite/diagram/diagram_service_writer.py +41 -0
- zepben/ewb/database/sqlite/extensions/__init__.py +4 -0
- zepben/ewb/database/sqlite/extensions/prepared_statement.py +112 -0
- zepben/ewb/database/sqlite/extensions/result_set.py +153 -0
- zepben/ewb/database/sqlite/network/__init__.py +4 -0
- zepben/ewb/database/sqlite/network/network_cim_reader.py +3167 -0
- zepben/ewb/database/sqlite/network/network_cim_writer.py +2561 -0
- zepben/ewb/database/sqlite/network/network_database_reader.py +173 -0
- zepben/ewb/database/sqlite/network/network_database_tables.py +242 -0
- zepben/ewb/database/sqlite/network/network_database_writer.py +43 -0
- zepben/ewb/database/sqlite/network/network_service_reader.py +265 -0
- zepben/ewb/database/sqlite/network/network_service_writer.py +209 -0
- zepben/ewb/database/sqlite/tables/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/associations/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/associations/loop_substation_relationship.py +17 -0
- zepben/ewb/database/sqlite/tables/associations/table_asset_organisation_roles_assets.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_assets_power_system_resources.py +41 -0
- zepben/ewb/database/sqlite/tables/associations/table_battery_units_battery_controls.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_circuits_substations.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_circuits_terminals.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_customer_agreements_pricing_structures.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_end_devices_end_device_functions.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_equipment_equipment_containers.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_equipment_operational_restrictions.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_equipment_usage_points.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_loops_substations.py +43 -0
- zepben/ewb/database/sqlite/tables/associations/table_pricing_structures_tariffs.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_protection_relay_functions_protected_switches.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_protection_relay_functions_sensors.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_protection_relay_schemes_protection_relay_functions.py +40 -0
- zepben/ewb/database/sqlite/tables/associations/table_synchronous_machines_reactive_capability_curves.py +39 -0
- zepben/ewb/database/sqlite/tables/associations/table_usage_points_end_devices.py +40 -0
- zepben/ewb/database/sqlite/tables/column.py +37 -0
- zepben/ewb/database/sqlite/tables/exceptions.py +10 -0
- zepben/ewb/database/sqlite/tables/extensions/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61968/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61968/assetinfo/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61968/assetinfo/table_reclose_delays.py +38 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61968/assetinfo/table_relay_info.py +21 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61968/metering/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61968/metering/table_pan_demand_response_functions.py +21 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/core/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/core/table_sites.py +15 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/feeder/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/feeder/table_loops.py +15 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/feeder/table_lv_feeders.py +20 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/generation/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/generation/production/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/generation/production/table_ev_charging_units.py +15 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/table_distance_relays.py +28 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/table_protection_relay_function_thresholds.py +36 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/table_protection_relay_function_time_limits.py +34 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/table_protection_relay_functions.py +24 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/table_protection_relay_schemes.py +20 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/table_protection_relay_systems.py +20 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/protection/table_voltage_relays.py +15 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/wires/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/wires/table_battery_controls.py +23 -0
- zepben/ewb/database/sqlite/tables/extensions/iec61970/base/wires/table_power_transformer_end_ratings.py +34 -0
- zepben/ewb/database/sqlite/tables/iec61968/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_cable_info.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_no_load_tests.py +24 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_open_circuit_tests.py +24 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_overhead_wire_info.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_power_transformer_info.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_short_circuit_tests.py +29 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_shunt_compensator_info.py +23 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_switch_info.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_transformer_end_info.py +46 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_transformer_tank_info.py +27 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_transformer_test.py +19 -0
- zepben/ewb/database/sqlite/tables/iec61968/assetinfo/table_wire_info.py +19 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_asset_containers.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_asset_functions.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_asset_info.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_asset_organisation_roles.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_asset_owners.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_assets.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_streetlights.py +22 -0
- zepben/ewb/database/sqlite/tables/iec61968/assets/table_structures.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_agreements.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_documents.py +23 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_location_street_address_field.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_location_street_addresses.py +33 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_locations.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_organisation_roles.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_organisations.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_position_points.py +30 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_street_addresses.py +26 -0
- zepben/ewb/database/sqlite/tables/iec61968/common/table_town_details.py +19 -0
- zepben/ewb/database/sqlite/tables/iec61968/customers/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/customers/table_customer_agreements.py +27 -0
- zepben/ewb/database/sqlite/tables/iec61968/customers/table_customers.py +22 -0
- zepben/ewb/database/sqlite/tables/iec61968/customers/table_pricing_structures.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/customers/table_tariffs.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/infiec61968/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/infiec61968/infassetinfo/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/infiec61968/infassetinfo/table_current_transformer_info.py +33 -0
- zepben/ewb/database/sqlite/tables/iec61968/infiec61968/infassetinfo/table_potential_transformer_info.py +26 -0
- zepben/ewb/database/sqlite/tables/iec61968/infiec61968/infassets/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/infiec61968/infassets/table_poles.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61968/metering/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/metering/table_end_device_functions.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61968/metering/table_end_devices.py +19 -0
- zepben/ewb/database/sqlite/tables/iec61968/metering/table_meters.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61968/metering/table_usage_points.py +23 -0
- zepben/ewb/database/sqlite/tables/iec61968/operations/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61968/operations/table_operational_restrictions.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/auxiliaryequipment/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/auxiliaryequipment/table_auxiliary_equipment.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/auxiliaryequipment/table_current_transformers.py +21 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/auxiliaryequipment/table_fault_indicators.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/auxiliaryequipment/table_potential_transformers.py +21 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/auxiliaryequipment/table_sensors.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_ac_dc_terminals.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_base_voltages.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_conducting_equipment.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_connectivity_node_containers.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_connectivity_nodes.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_curve_data.py +46 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_curves.py +17 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_equipment.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_equipment_containers.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_feeders.py +28 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_geographical_regions.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_identified_objects.py +29 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_name_types.py +28 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_names.py +36 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_power_system_resources.py +19 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_sub_geographical_regions.py +27 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_substations.py +27 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/core/table_terminals.py +35 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/diagramlayout/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/diagramlayout/table_diagram_object_points.py +35 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/diagramlayout/table_diagram_objects.py +31 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/diagramlayout/table_diagrams.py +21 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/equivalents/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/equivalents/table_equivalent_branches.py +35 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/equivalents/table_equivalent_equipment.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/generation/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/generation/production/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/generation/production/table_battery_units.py +22 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/generation/production/table_photo_voltaic_units.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/generation/production/table_power_electronics_units.py +26 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/generation/production/table_power_electronics_wind_units.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/meas/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/meas/table_accumulators.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/meas/table_analogs.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/meas/table_controls.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/meas/table_discretes.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/meas/table_io_points.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/meas/table_measurements.py +30 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/protection/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/protection/table_current_relays.py +22 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/scada/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/scada/table_remote_controls.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/scada/table_remote_points.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/scada/table_remote_sources.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_ac_line_segments.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_breakers.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_busbar_sections.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_clamps.py +23 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_conductors.py +21 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_connectors.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_cuts.py +23 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_disconnectors.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_earth_fault_compensators.py +22 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_energy_connections.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_energy_consumer_phases.py +37 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_energy_consumers.py +26 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_energy_source_phases.py +33 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_energy_sources.py +44 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_fuses.py +20 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_ground_disconnectors.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_grounding_impedances.py +24 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_grounds.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_jumpers.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_junctions.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_linear_shunt_compensators.py +23 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_lines.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_load_break_switches.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_per_length_impedances.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_per_length_line_parameters.py +14 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_per_length_phase_impedances.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_per_length_sequence_impedances.py +27 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_petersen_coils.py +27 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_phase_impedance_data.py +52 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_power_electronics_connection_phases.py +30 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_power_electronics_connections.py +50 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_power_transformer_ends.py +43 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_power_transformers.py +24 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_protected_switches.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_ratio_tap_changers.py +28 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_reactive_capability_curves.py +18 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_reclosers.py +15 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_regulating_cond_eq.py +19 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_regulating_controls.py +29 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_rotating_machines.py +36 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_series_compensators.py +25 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_shunt_compensators.py +22 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_static_var_compensator.py +24 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_switches.py +21 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_synchronous_machines.py +95 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_tap_changer_controls.py +28 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_tap_changers.py +25 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_transformer_ends.py +30 -0
- zepben/ewb/database/sqlite/tables/iec61970/base/wires/table_transformer_star_impedances.py +32 -0
- zepben/ewb/database/sqlite/tables/iec61970/infiec61970/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/infiec61970/feeder/__init__.py +4 -0
- zepben/ewb/database/sqlite/tables/iec61970/infiec61970/feeder/table_circuits.py +27 -0
- zepben/ewb/database/sqlite/tables/sqlite_table.py +142 -0
- zepben/ewb/database/sqlite/tables/table_metadata_data_sources.py +21 -0
- zepben/ewb/database/sqlite/tables/table_version.py +38 -0
- zepben/ewb/dataclassy/__init__.py +15 -0
- zepben/ewb/dataclassy/dataclass.py +192 -0
- zepben/ewb/dataclassy/decorator.py +35 -0
- zepben/ewb/dataclassy/functions.py +80 -0
- zepben/ewb/examples/__init__.py +6 -0
- zepben/ewb/examples/simple_test_network.py +158 -0
- zepben/ewb/exceptions.py +52 -0
- zepben/ewb/model/__init__.py +4 -0
- zepben/ewb/model/busbranch/__init__.py +4 -0
- zepben/ewb/model/busbranch/bus_branch.py +1051 -0
- zepben/ewb/model/cim/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61968/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61968/assetinfo/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61968/assetinfo/relay_info.py +128 -0
- zepben/ewb/model/cim/extensions/iec61968/metering/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61968/metering/pan_demand_reponse_function.py +112 -0
- zepben/ewb/model/cim/extensions/iec61970/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/core/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/core/site.py +37 -0
- zepben/ewb/model/cim/extensions/iec61970/base/feeder/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/feeder/loop.py +207 -0
- zepben/ewb/model/cim/extensions/iec61970/base/feeder/lv_feeder.py +258 -0
- zepben/ewb/model/cim/extensions/iec61970/base/generation/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/generation/production/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/generation/production/ev_charging_unit.py +18 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/distance_relay.py +69 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/power_direction_kind.py +35 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/protection_kind.py +113 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/protection_relay_function.py +448 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/protection_relay_scheme.py +97 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/protection_relay_system.py +97 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/relay_setting.py +35 -0
- zepben/ewb/model/cim/extensions/iec61970/base/protection/voltage_relay.py +20 -0
- zepben/ewb/model/cim/extensions/iec61970/base/wires/__init__.py +4 -0
- zepben/ewb/model/cim/extensions/iec61970/base/wires/battery_control.py +36 -0
- zepben/ewb/model/cim/extensions/iec61970/base/wires/battery_control_mode.py +82 -0
- zepben/ewb/model/cim/extensions/iec61970/base/wires/transformer_cooling_type.py +56 -0
- zepben/ewb/model/cim/extensions/iec61970/base/wires/transformer_end_rated_s.py +26 -0
- zepben/ewb/model/cim/extensions/iec61970/base/wires/vector_group.py +292 -0
- zepben/ewb/model/cim/extensions/zbex.py +17 -0
- zepben/ewb/model/cim/iec61968/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/assetinfo/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/assetinfo/cable_info.py +15 -0
- zepben/ewb/model/cim/iec61968/assetinfo/no_load_test.py +42 -0
- zepben/ewb/model/cim/iec61968/assetinfo/open_circuit_test.py +42 -0
- zepben/ewb/model/cim/iec61968/assetinfo/overhead_wire_info.py +15 -0
- zepben/ewb/model/cim/iec61968/assetinfo/power_transformer_info.py +103 -0
- zepben/ewb/model/cim/iec61968/assetinfo/short_circuit_test.py +67 -0
- zepben/ewb/model/cim/iec61968/assetinfo/shunt_compensator_info.py +26 -0
- zepben/ewb/model/cim/iec61968/assetinfo/switch_info.py +17 -0
- zepben/ewb/model/cim/iec61968/assetinfo/transformer_end_info.py +137 -0
- zepben/ewb/model/cim/iec61968/assetinfo/transformer_tank_info.py +108 -0
- zepben/ewb/model/cim/iec61968/assetinfo/transformer_test.py +26 -0
- zepben/ewb/model/cim/iec61968/assetinfo/wire_info.py +24 -0
- zepben/ewb/model/cim/iec61968/assetinfo/wire_material_kind.py +55 -0
- zepben/ewb/model/cim/iec61968/assets/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/assets/asset.py +154 -0
- zepben/ewb/model/cim/iec61968/assets/asset_container.py +16 -0
- zepben/ewb/model/cim/iec61968/assets/asset_function.py +15 -0
- zepben/ewb/model/cim/iec61968/assets/asset_info.py +19 -0
- zepben/ewb/model/cim/iec61968/assets/asset_organisation_role.py +13 -0
- zepben/ewb/model/cim/iec61968/assets/asset_owner.py +13 -0
- zepben/ewb/model/cim/iec61968/assets/streetlight.py +29 -0
- zepben/ewb/model/cim/iec61968/assets/structure.py +16 -0
- zepben/ewb/model/cim/iec61968/common/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/common/agreement.py +16 -0
- zepben/ewb/model/cim/iec61968/common/document.py +36 -0
- zepben/ewb/model/cim/iec61968/common/location.py +129 -0
- zepben/ewb/model/cim/iec61968/common/organisation.py +15 -0
- zepben/ewb/model/cim/iec61968/common/organisation_role.py +22 -0
- zepben/ewb/model/cim/iec61968/common/position_point.py +44 -0
- zepben/ewb/model/cim/iec61968/common/street_address.py +28 -0
- zepben/ewb/model/cim/iec61968/common/street_detail.py +45 -0
- zepben/ewb/model/cim/iec61968/common/town_detail.py +25 -0
- zepben/ewb/model/cim/iec61968/customers/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/customers/customer.py +93 -0
- zepben/ewb/model/cim/iec61968/customers/customer_agreement.py +107 -0
- zepben/ewb/model/cim/iec61968/customers/customer_kind.py +67 -0
- zepben/ewb/model/cim/iec61968/customers/pricing_structure.py +88 -0
- zepben/ewb/model/cim/iec61968/customers/tariff.py +18 -0
- zepben/ewb/model/cim/iec61968/infiec61968/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassetinfo/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassetinfo/current_transformer_info.py +51 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassetinfo/potential_transformer_info.py +33 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassetinfo/transformer_construction_kind.py +67 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassetinfo/transformer_function_kind.py +43 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassets/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassets/pole.py +87 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infassets/streetlight_lamp_kind.py +25 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infcommon/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/infiec61968/infcommon/ratio.py +34 -0
- zepben/ewb/model/cim/iec61968/metering/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/metering/controlled_appliance.py +150 -0
- zepben/ewb/model/cim/iec61968/metering/end_device.py +165 -0
- zepben/ewb/model/cim/iec61968/metering/end_device_function.py +17 -0
- zepben/ewb/model/cim/iec61968/metering/end_device_function_kind.py +46 -0
- zepben/ewb/model/cim/iec61968/metering/meter.py +26 -0
- zepben/ewb/model/cim/iec61968/metering/usage_point.py +186 -0
- zepben/ewb/model/cim/iec61968/operations/__init__.py +4 -0
- zepben/ewb/model/cim/iec61968/operations/operational_restriction.py +92 -0
- zepben/ewb/model/cim/iec61970/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/auxiliaryequipment/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/auxiliaryequipment/auxiliary_equipment.py +24 -0
- zepben/ewb/model/cim/iec61970/base/auxiliaryequipment/current_transformer.py +37 -0
- zepben/ewb/model/cim/iec61970/base/auxiliaryequipment/fault_indicator.py +18 -0
- zepben/ewb/model/cim/iec61970/base/auxiliaryequipment/potential_transformer.py +38 -0
- zepben/ewb/model/cim/iec61970/base/auxiliaryequipment/potential_transformer_kind.py +28 -0
- zepben/ewb/model/cim/iec61970/base/auxiliaryequipment/sensor.py +92 -0
- zepben/ewb/model/cim/iec61970/base/core/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/core/ac_dc_terminal.py +16 -0
- zepben/ewb/model/cim/iec61970/base/core/base_voltage.py +17 -0
- zepben/ewb/model/cim/iec61970/base/core/conducting_equipment.py +198 -0
- zepben/ewb/model/cim/iec61970/base/core/connectivity_node.py +105 -0
- zepben/ewb/model/cim/iec61970/base/core/connectivity_node_container.py +15 -0
- zepben/ewb/model/cim/iec61970/base/core/curve.py +124 -0
- zepben/ewb/model/cim/iec61970/base/core/curve_data.py +29 -0
- zepben/ewb/model/cim/iec61970/base/core/equipment.py +366 -0
- zepben/ewb/model/cim/iec61970/base/core/equipment_container.py +199 -0
- zepben/ewb/model/cim/iec61970/base/core/feeder.py +260 -0
- zepben/ewb/model/cim/iec61970/base/core/geographical_region.py +82 -0
- zepben/ewb/model/cim/iec61970/base/core/identified_object.py +234 -0
- zepben/ewb/model/cim/iec61970/base/core/name.py +36 -0
- zepben/ewb/model/cim/iec61970/base/core/name_type.py +203 -0
- zepben/ewb/model/cim/iec61970/base/core/phase_code.py +201 -0
- zepben/ewb/model/cim/iec61970/base/core/power_system_resource.py +106 -0
- zepben/ewb/model/cim/iec61970/base/core/sub_geographical_region.py +93 -0
- zepben/ewb/model/cim/iec61970/base/core/substation.py +277 -0
- zepben/ewb/model/cim/iec61970/base/core/terminal.py +171 -0
- zepben/ewb/model/cim/iec61970/base/diagramlayout/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/diagramlayout/diagram.py +109 -0
- zepben/ewb/model/cim/iec61970/base/diagramlayout/diagram_object.py +160 -0
- zepben/ewb/model/cim/iec61970/base/diagramlayout/diagram_object_point.py +25 -0
- zepben/ewb/model/cim/iec61970/base/diagramlayout/diagram_style.py +26 -0
- zepben/ewb/model/cim/iec61970/base/diagramlayout/orientation_kind.py +27 -0
- zepben/ewb/model/cim/iec61970/base/domain/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/domain/unit_symbol.py +492 -0
- zepben/ewb/model/cim/iec61970/base/equivalents/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/equivalents/equivalent_branch.py +113 -0
- zepben/ewb/model/cim/iec61970/base/equivalents/equivalent_equipment.py +15 -0
- zepben/ewb/model/cim/iec61970/base/generation/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/generation/production/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/generation/production/battery_state_kind.py +37 -0
- zepben/ewb/model/cim/iec61970/base/generation/production/battery_unit.py +108 -0
- zepben/ewb/model/cim/iec61970/base/generation/production/photo_voltaic_unit.py +13 -0
- zepben/ewb/model/cim/iec61970/base/generation/production/power_electronics_unit.py +28 -0
- zepben/ewb/model/cim/iec61970/base/generation/production/power_electronics_wind_unit.py +13 -0
- zepben/ewb/model/cim/iec61970/base/meas/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/meas/accumulator.py +13 -0
- zepben/ewb/model/cim/iec61970/base/meas/accumulator_value.py +20 -0
- zepben/ewb/model/cim/iec61970/base/meas/analog.py +16 -0
- zepben/ewb/model/cim/iec61970/base/meas/analog_value.py +20 -0
- zepben/ewb/model/cim/iec61970/base/meas/control.py +26 -0
- zepben/ewb/model/cim/iec61970/base/meas/discrete.py +13 -0
- zepben/ewb/model/cim/iec61970/base/meas/discrete_value.py +20 -0
- zepben/ewb/model/cim/iec61970/base/meas/iopoint.py +16 -0
- zepben/ewb/model/cim/iec61970/base/meas/measurement.py +60 -0
- zepben/ewb/model/cim/iec61970/base/meas/measurement_value.py +21 -0
- zepben/ewb/model/cim/iec61970/base/protection/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/protection/current_relay.py +23 -0
- zepben/ewb/model/cim/iec61970/base/scada/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/scada/remote_control.py +22 -0
- zepben/ewb/model/cim/iec61970/base/scada/remote_point.py +16 -0
- zepben/ewb/model/cim/iec61970/base/scada/remote_source.py +22 -0
- zepben/ewb/model/cim/iec61970/base/wires/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/base/wires/ac_line_segment.py +214 -0
- zepben/ewb/model/cim/iec61970/base/wires/breaker.py +32 -0
- zepben/ewb/model/cim/iec61970/base/wires/busbar_section.py +19 -0
- zepben/ewb/model/cim/iec61970/base/wires/clamp.py +32 -0
- zepben/ewb/model/cim/iec61970/base/wires/conductor.py +49 -0
- zepben/ewb/model/cim/iec61970/base/wires/connector.py +16 -0
- zepben/ewb/model/cim/iec61970/base/wires/cut.py +36 -0
- zepben/ewb/model/cim/iec61970/base/wires/disconnector.py +17 -0
- zepben/ewb/model/cim/iec61970/base/wires/earth_fault_compensator.py +21 -0
- zepben/ewb/model/cim/iec61970/base/wires/energy_connection.py +15 -0
- zepben/ewb/model/cim/iec61970/base/wires/energy_consumer.py +107 -0
- zepben/ewb/model/cim/iec61970/base/wires/energy_consumer_phase.py +56 -0
- zepben/ewb/model/cim/iec61970/base/wires/energy_source.py +172 -0
- zepben/ewb/model/cim/iec61970/base/wires/energy_source_phase.py +45 -0
- zepben/ewb/model/cim/iec61970/base/wires/fuse.py +23 -0
- zepben/ewb/model/cim/iec61970/base/wires/ground.py +15 -0
- zepben/ewb/model/cim/iec61970/base/wires/ground_disconnector.py +15 -0
- zepben/ewb/model/cim/iec61970/base/wires/grounding_impedance.py +19 -0
- zepben/ewb/model/cim/iec61970/base/wires/jumper.py +16 -0
- zepben/ewb/model/cim/iec61970/base/wires/junction.py +15 -0
- zepben/ewb/model/cim/iec61970/base/wires/line.py +13 -0
- zepben/ewb/model/cim/iec61970/base/wires/linear_shunt_compensator.py +26 -0
- zepben/ewb/model/cim/iec61970/base/wires/load_break_switch.py +14 -0
- zepben/ewb/model/cim/iec61970/base/wires/per_length_impedance.py +13 -0
- zepben/ewb/model/cim/iec61970/base/wires/per_length_line_parameter.py +13 -0
- zepben/ewb/model/cim/iec61970/base/wires/per_length_phase_impedance.py +99 -0
- zepben/ewb/model/cim/iec61970/base/wires/per_length_sequence_impedance.py +43 -0
- zepben/ewb/model/cim/iec61970/base/wires/petersen_coil.py +22 -0
- zepben/ewb/model/cim/iec61970/base/wires/phase_impedance_data.py +37 -0
- zepben/ewb/model/cim/iec61970/base/wires/phase_shunt_connection_kind.py +38 -0
- zepben/ewb/model/cim/iec61970/base/wires/power_electronics_connection.py +524 -0
- zepben/ewb/model/cim/iec61970/base/wires/power_electronics_connection_phase.py +34 -0
- zepben/ewb/model/cim/iec61970/base/wires/power_transformer.py +217 -0
- zepben/ewb/model/cim/iec61970/base/wires/power_transformer_end.py +208 -0
- zepben/ewb/model/cim/iec61970/base/wires/protected_switch.py +96 -0
- zepben/ewb/model/cim/iec61970/base/wires/ratio_tap_changer.py +30 -0
- zepben/ewb/model/cim/iec61970/base/wires/reactive_capability_curve.py +16 -0
- zepben/ewb/model/cim/iec61970/base/wires/recloser.py +15 -0
- zepben/ewb/model/cim/iec61970/base/wires/regulating_cond_eq.py +45 -0
- zepben/ewb/model/cim/iec61970/base/wires/regulating_control.py +173 -0
- zepben/ewb/model/cim/iec61970/base/wires/regulating_control_mode_kind.py +46 -0
- zepben/ewb/model/cim/iec61970/base/wires/rotating_machine.py +36 -0
- zepben/ewb/model/cim/iec61970/base/wires/series_compensator.py +42 -0
- zepben/ewb/model/cim/iec61970/base/wires/shunt_compensator.py +59 -0
- zepben/ewb/model/cim/iec61970/base/wires/single_phase_kind.py +105 -0
- zepben/ewb/model/cim/iec61970/base/wires/static_var_compensator.py +40 -0
- zepben/ewb/model/cim/iec61970/base/wires/svc_control_mode.py +28 -0
- zepben/ewb/model/cim/iec61970/base/wires/switch.py +119 -0
- zepben/ewb/model/cim/iec61970/base/wires/synchronous_machine.py +168 -0
- zepben/ewb/model/cim/iec61970/base/wires/synchronous_machine_kind.py +44 -0
- zepben/ewb/model/cim/iec61970/base/wires/tap_changer.py +150 -0
- zepben/ewb/model/cim/iec61970/base/wires/tap_changer_control.py +49 -0
- zepben/ewb/model/cim/iec61970/base/wires/transformer_end.py +73 -0
- zepben/ewb/model/cim/iec61970/base/wires/transformer_star_impedance.py +48 -0
- zepben/ewb/model/cim/iec61970/base/wires/winding_connection.py +43 -0
- zepben/ewb/model/cim/iec61970/infiec61970/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/infiec61970/feeder/__init__.py +4 -0
- zepben/ewb/model/cim/iec61970/infiec61970/feeder/circuit.py +144 -0
- zepben/ewb/model/phases.py +168 -0
- zepben/ewb/model/resistance_reactance.py +40 -0
- zepben/ewb/services/__init__.py +4 -0
- zepben/ewb/services/common/__init__.py +16 -0
- zepben/ewb/services/common/base_service.py +383 -0
- zepben/ewb/services/common/base_service_comparator.py +394 -0
- zepben/ewb/services/common/difference.py +47 -0
- zepben/ewb/services/common/enum_mapper.py +55 -0
- zepben/ewb/services/common/meta/__init__.py +4 -0
- zepben/ewb/services/common/meta/data_source.py +16 -0
- zepben/ewb/services/common/meta/metadata_collection.py +28 -0
- zepben/ewb/services/common/meta/metadata_translations.py +47 -0
- zepben/ewb/services/common/meta/service_info.py +22 -0
- zepben/ewb/services/common/reference_resolvers.py +374 -0
- zepben/ewb/services/common/resolver.py +597 -0
- zepben/ewb/services/common/translator/__init__.py +4 -0
- zepben/ewb/services/common/translator/base_cim2proto.py +92 -0
- zepben/ewb/services/common/translator/base_proto2cim.py +112 -0
- zepben/ewb/services/common/translator/service_differences.py +81 -0
- zepben/ewb/services/common/translator/util.py +78 -0
- zepben/ewb/services/customer/__init__.py +4 -0
- zepben/ewb/services/customer/customer_service_comparator.py +52 -0
- zepben/ewb/services/customer/customers.py +23 -0
- zepben/ewb/services/customer/translator/__init__.py +21 -0
- zepben/ewb/services/customer/translator/customer_cim2proto.py +71 -0
- zepben/ewb/services/customer/translator/customer_enum_mappers.py +18 -0
- zepben/ewb/services/customer/translator/customer_proto2cim.py +87 -0
- zepben/ewb/services/diagram/__init__.py +4 -0
- zepben/ewb/services/diagram/diagram_service_comparator.py +39 -0
- zepben/ewb/services/diagram/diagrams.py +107 -0
- zepben/ewb/services/diagram/translator/__init__.py +11 -0
- zepben/ewb/services/diagram/translator/diagram_cim2proto.py +51 -0
- zepben/ewb/services/diagram/translator/diagram_enum_mappers.py +21 -0
- zepben/ewb/services/diagram/translator/diagram_proto2cim.py +61 -0
- zepben/ewb/services/measurement/__init__.py +4 -0
- zepben/ewb/services/measurement/measurements.py +35 -0
- zepben/ewb/services/measurement/translator/__init__.py +6 -0
- zepben/ewb/services/measurement/translator/measurement_cim2proto.py +42 -0
- zepben/ewb/services/measurement/translator/measurement_proto2cim.py +52 -0
- zepben/ewb/services/network/__init__.py +4 -0
- zepben/ewb/services/network/network_extensions.py +119 -0
- zepben/ewb/services/network/network_service.py +302 -0
- zepben/ewb/services/network/network_service_comparator.py +1322 -0
- zepben/ewb/services/network/network_state.py +34 -0
- zepben/ewb/services/network/tracing/__init__.py +4 -0
- zepben/ewb/services/network/tracing/busbranch_trace.py +36 -0
- zepben/ewb/services/network/tracing/connectivity/__init__.py +4 -0
- zepben/ewb/services/network/tracing/connectivity/connectivity_result.py +105 -0
- zepben/ewb/services/network/tracing/connectivity/nominal_phase_path.py +23 -0
- zepben/ewb/services/network/tracing/connectivity/phase_paths.py +70 -0
- zepben/ewb/services/network/tracing/connectivity/terminal_connectivity_connected.py +226 -0
- zepben/ewb/services/network/tracing/connectivity/terminal_connectivity_internal.py +64 -0
- zepben/ewb/services/network/tracing/connectivity/transformer_phase_paths.py +202 -0
- zepben/ewb/services/network/tracing/connectivity/xy_candidate_phase_paths.py +235 -0
- zepben/ewb/services/network/tracing/connectivity/xy_phase_step.py +24 -0
- zepben/ewb/services/network/tracing/feeder/__init__.py +4 -0
- zepben/ewb/services/network/tracing/feeder/assign_to_feeders.py +202 -0
- zepben/ewb/services/network/tracing/feeder/assign_to_lv_feeders.py +202 -0
- zepben/ewb/services/network/tracing/feeder/clear_direction.py +80 -0
- zepben/ewb/services/network/tracing/feeder/direction_status.py +133 -0
- zepben/ewb/services/network/tracing/feeder/feeder_direction.py +107 -0
- zepben/ewb/services/network/tracing/feeder/set_direction.py +143 -0
- zepben/ewb/services/network/tracing/find_swer_equipment.py +175 -0
- zepben/ewb/services/network/tracing/networktrace/__init__.py +4 -0
- zepben/ewb/services/network/tracing/networktrace/actions/__init__.py +4 -0
- zepben/ewb/services/network/tracing/networktrace/actions/equipment_tree_builder.py +71 -0
- zepben/ewb/services/network/tracing/networktrace/actions/tree_node.py +37 -0
- zepben/ewb/services/network/tracing/networktrace/compute_data.py +60 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/__init__.py +4 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/conditions.py +73 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/direction_condition.py +63 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/equipment_step_limit_condition.py +26 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/equipment_type_step_limit_condition.py +44 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/network_trace_queue_condition.py +67 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/network_trace_stop_condition.py +65 -0
- zepben/ewb/services/network/tracing/networktrace/conditions/open_condition.py +39 -0
- zepben/ewb/services/network/tracing/networktrace/network_trace.py +450 -0
- zepben/ewb/services/network/tracing/networktrace/network_trace_action_type.py +42 -0
- zepben/ewb/services/network/tracing/networktrace/network_trace_queue_next.py +84 -0
- zepben/ewb/services/network/tracing/networktrace/network_trace_step.py +125 -0
- zepben/ewb/services/network/tracing/networktrace/network_trace_step_path_provider.py +351 -0
- zepben/ewb/services/network/tracing/networktrace/network_trace_tracker.py +39 -0
- zepben/ewb/services/network/tracing/networktrace/operators/__init__.py +14 -0
- zepben/ewb/services/network/tracing/networktrace/operators/equipment_container_state_operators.py +264 -0
- zepben/ewb/services/network/tracing/networktrace/operators/feeder_direction_state_operations.py +181 -0
- zepben/ewb/services/network/tracing/networktrace/operators/in_service_state_operators.py +76 -0
- zepben/ewb/services/network/tracing/networktrace/operators/network_state_operators.py +120 -0
- zepben/ewb/services/network/tracing/networktrace/operators/open_state_operators.py +104 -0
- zepben/ewb/services/network/tracing/networktrace/operators/phase_state_operators.py +56 -0
- zepben/ewb/services/network/tracing/networktrace/tracing.py +132 -0
- zepben/ewb/services/network/tracing/phases/__init__.py +4 -0
- zepben/ewb/services/network/tracing/phases/phase_inferrer.py +205 -0
- zepben/ewb/services/network/tracing/phases/phase_status.py +101 -0
- zepben/ewb/services/network/tracing/phases/remove_phases.py +143 -0
- zepben/ewb/services/network/tracing/phases/set_phases.py +490 -0
- zepben/ewb/services/network/tracing/traversal/__init__.py +4 -0
- zepben/ewb/services/network/tracing/traversal/context_value_computer.py +63 -0
- zepben/ewb/services/network/tracing/traversal/debug_logging.py +124 -0
- zepben/ewb/services/network/tracing/traversal/queue.py +112 -0
- zepben/ewb/services/network/tracing/traversal/queue_condition.py +75 -0
- zepben/ewb/services/network/tracing/traversal/step_action.py +83 -0
- zepben/ewb/services/network/tracing/traversal/step_context.py +59 -0
- zepben/ewb/services/network/tracing/traversal/stop_condition.py +57 -0
- zepben/ewb/services/network/tracing/traversal/traversal.py +634 -0
- zepben/ewb/services/network/tracing/traversal/traversal_condition.py +22 -0
- zepben/ewb/services/network/tracing/traversal/weighted_priority_queue.py +85 -0
- zepben/ewb/services/network/tracing/util.py +93 -0
- zepben/ewb/services/network/translator/__init__.py +392 -0
- zepben/ewb/services/network/translator/network_cim2proto.py +1782 -0
- zepben/ewb/services/network/translator/network_enum_mappers.py +78 -0
- zepben/ewb/services/network/translator/network_proto2cim.py +2147 -0
- zepben/ewb/services/services.py +48 -0
- zepben/ewb/streaming/__init__.py +4 -0
- zepben/ewb/streaming/data/__init__.py +4 -0
- zepben/ewb/streaming/data/current_state_event.py +314 -0
- zepben/ewb/streaming/data/current_state_event_batch.py +25 -0
- zepben/ewb/streaming/data/set_current_states_status.py +286 -0
- zepben/ewb/streaming/exceptions.py +14 -0
- zepben/ewb/streaming/get/__init__.py +4 -0
- zepben/ewb/streaming/get/consumer.py +209 -0
- zepben/ewb/streaming/get/customer_consumer.py +111 -0
- zepben/ewb/streaming/get/diagram_consumer.py +107 -0
- zepben/ewb/streaming/get/hierarchy/__init__.py +4 -0
- zepben/ewb/streaming/get/hierarchy/data.py +27 -0
- zepben/ewb/streaming/get/included_energized_containers.py +34 -0
- zepben/ewb/streaming/get/included_energizing_containers.py +34 -0
- zepben/ewb/streaming/get/network_consumer.py +870 -0
- zepben/ewb/streaming/get/query_network_state_client.py +64 -0
- zepben/ewb/streaming/get/query_network_state_service.py +94 -0
- zepben/ewb/streaming/grpc/__init__.py +4 -0
- zepben/ewb/streaming/grpc/auth_token_plugin.py +24 -0
- zepben/ewb/streaming/grpc/connect.py +209 -0
- zepben/ewb/streaming/grpc/grpc.py +107 -0
- zepben/ewb/streaming/grpc/grpc_channel_builder.py +185 -0
- zepben/ewb/streaming/mutations/__init__.py +4 -0
- zepben/ewb/streaming/mutations/update_network_state_client.py +80 -0
- zepben/ewb/streaming/mutations/update_network_state_service.py +61 -0
- zepben/ewb/testing/__init__.py +4 -0
- zepben/ewb/testing/test_network_builder.py +816 -0
- zepben/ewb/types.py +17 -0
- zepben/ewb/util.py +189 -0
- zepben_ewb-1.0.0b1.dist-info/METADATA +102 -0
- zepben_ewb-1.0.0b1.dist-info/RECORD +639 -0
- zepben_ewb-1.0.0b1.dist-info/WHEEL +5 -0
- zepben_ewb-1.0.0b1.dist-info/licenses/LICENSE +374 -0
- zepben_ewb-1.0.0b1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
# Copyright 2024 Zeppelin Bend Pty Ltd
|
|
2
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
3
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
__all__ = ["ae_terminal", "agreements", "at_location", "ce_base_voltage", "ce_terminals", "circuits", "cn_terminals", "conducting_equipment",
|
|
9
|
+
"connectivity_node", "containers", "control", "current_containers", "current_transformer_info", "customer", "diagram", "diagram_objects",
|
|
10
|
+
"ec_equipment", "ec_phases", "ed_usage_points", "end_devices", "end_substation", "end_terminal", "ends", "energised_end_no_load_tests",
|
|
11
|
+
"energised_end_open_circuit_tests", "energised_end_short_circuit_tests", "energy_consumer", "energy_source", "eq_usage_points", "es_phases",
|
|
12
|
+
"fuse_function", "geographical_region", "grounded_end_short_circuit_tests", "loop", "loop_circuits", "loop_energizing_substations",
|
|
13
|
+
"loop_substations", "loops", "lv_feeder_normal_head_terminal", "measurement", "normal_energized_feeders", "normal_energized_loops",
|
|
14
|
+
"normal_energized_lv_feeders", "normal_energizing_feeders", "normal_energizing_substation", "normal_head_terminal", "open_end_open_circuit_tests",
|
|
15
|
+
"operational_restrictions", "or_equipment", "organisation", "organisation_roles", "per_length_impedance",
|
|
16
|
+
"phase_power_electronics_connection", "pole", "potential_transformer_info", "power_electronics_connection_phase", "power_electronics_unit",
|
|
17
|
+
"power_transformer", "power_transformer_info", "power_transformer_info_transformer_tank_info", "prf_protected_switch", "prf_scheme",
|
|
18
|
+
"prf_sensor", "pricing_structures", "prscheme_function", "prscheme_system", "prsystem_scheme", "ps_relay_function", "psr_location",
|
|
19
|
+
"ratio_tap_changer", "rc_regulating_cond_eq", "rc_terminal", "rce_regulating_control", "relay_info", "remote_control", "remote_source",
|
|
20
|
+
"sen_relay_function", "service_location", "shunt_compensator_info", "star_impedance_transformer_end_info", "streetlights",
|
|
21
|
+
"sub_geographical_region", "sub_geographical_regions", "substations", "switch_info", "tariffs", "tc_tap_changer_control", "te_base_voltage",
|
|
22
|
+
"te_terminal", "transformer_end", "transformer_end_info", "transformer_end_transformer_star_impedance", "transformer_star_impedance",
|
|
23
|
+
"transformer_tank_info", "unit_power_electronics_connection", "up_equipment", "usage_point_location", "wire_info", "cut_ac_line_segment", "cuts",
|
|
24
|
+
"clamp_ac_line_segment", "clamps"]
|
|
25
|
+
|
|
26
|
+
from zepben.ewb import AcLineSegment, Asset, AuxiliaryEquipment, ConductingEquipment, PowerTransformer, Pole, Streetlight, ConnectivityNode, \
|
|
27
|
+
Control, Customer, CustomerAgreement, Equipment, EquipmentContainer, EnergyConsumer, EnergySource, \
|
|
28
|
+
EnergySourcePhase, Measurement, OperationalRestriction, OrganisationRole, PowerSystemResource, PricingStructure, RemoteControl, RemoteSource, Substation, \
|
|
29
|
+
Terminal, \
|
|
30
|
+
Circuit, Loop, \
|
|
31
|
+
PowerElectronicsUnit, PowerElectronicsConnection, TransformerTankInfo, TransformerEndInfo, PowerTransformerInfo, \
|
|
32
|
+
TransformerStarImpedance, ShuntCompensator, LvFeeder, PotentialTransformer, CurrentTransformer, ProtectedSwitch, Switch, RegulatingControl, \
|
|
33
|
+
ProtectionRelayFunction, ProtectionRelayScheme, ProtectionRelaySystem, Sensor, Fuse, BatteryUnit, \
|
|
34
|
+
SynchronousMachine
|
|
35
|
+
from zepben.ewb.model.cim.iec61968.metering.end_device import EndDevice
|
|
36
|
+
from zepben.ewb.model.cim.iec61968.metering.usage_point import UsagePoint
|
|
37
|
+
from zepben.ewb.model.cim.iec61970.base.core.feeder import Feeder
|
|
38
|
+
from zepben.ewb.model.cim.iec61970.base.core.geographical_region import GeographicalRegion
|
|
39
|
+
from zepben.ewb.model.cim.iec61970.base.core.sub_geographical_region import SubGeographicalRegion
|
|
40
|
+
from zepben.ewb.model.cim.iec61970.base.diagramlayout.diagram import Diagram
|
|
41
|
+
from zepben.ewb.model.cim.iec61970.base.diagramlayout.diagram_object import DiagramObject
|
|
42
|
+
from zepben.ewb.model.cim.iec61970.base.wires.clamp import Clamp
|
|
43
|
+
from zepben.ewb.model.cim.iec61970.base.wires.conductor import Conductor
|
|
44
|
+
from zepben.ewb.model.cim.iec61970.base.wires.cut import Cut
|
|
45
|
+
from zepben.ewb.model.cim.iec61970.base.wires.energy_consumer_phase import EnergyConsumerPhase
|
|
46
|
+
from zepben.ewb.model.cim.iec61970.base.wires.power_electronics_connection_phase import PowerElectronicsConnectionPhase
|
|
47
|
+
from zepben.ewb.model.cim.iec61970.base.wires.power_transformer_end import PowerTransformerEnd
|
|
48
|
+
from zepben.ewb.model.cim.iec61970.base.wires.ratio_tap_changer import RatioTapChanger
|
|
49
|
+
from zepben.ewb.model.cim.iec61970.base.wires.regulating_cond_eq import RegulatingCondEq
|
|
50
|
+
from zepben.ewb.model.cim.iec61970.base.wires.tap_changer import TapChanger
|
|
51
|
+
from zepben.ewb.model.cim.iec61970.base.wires.transformer_end import TransformerEnd
|
|
52
|
+
from zepben.ewb.services.common.reference_resolvers import *
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def ae_terminal(auxiliary_equipment: AuxiliaryEquipment) -> BoundReferenceResolver:
|
|
56
|
+
# noinspection PyArgumentList
|
|
57
|
+
return BoundReferenceResolver(auxiliary_equipment, aux_equip_to_term_resolver, None)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def agreements(c: Customer) -> BoundReferenceResolver:
|
|
61
|
+
# noinspection PyArgumentList
|
|
62
|
+
return BoundReferenceResolver(c, cust_to_custagr_resolver, custagr_to_cust_resolver)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def assets(power_system_resource: PowerSystemResource) -> BoundReferenceResolver:
|
|
66
|
+
# noinspection PyArgumentList
|
|
67
|
+
return BoundReferenceResolver(power_system_resource, psr_to_asset_resolver, asset_to_psr_resolver)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def at_location(asset: Asset) -> BoundReferenceResolver:
|
|
71
|
+
# noinspection PyArgumentList
|
|
72
|
+
return BoundReferenceResolver(asset, asset_to_location_resolver, None)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def battery_controls(bu: BatteryUnit) -> BoundReferenceResolver:
|
|
76
|
+
# noinspection PyArgumentList
|
|
77
|
+
return BoundReferenceResolver(bu, battery_unit_to_battery_control_resolver, None)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def ce_base_voltage(ce: ConductingEquipment) -> BoundReferenceResolver:
|
|
81
|
+
# noinspection PyArgumentList
|
|
82
|
+
return BoundReferenceResolver(ce, cond_equip_to_bv_resolver, None)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def ce_terminals(ce: ConductingEquipment) -> BoundReferenceResolver:
|
|
86
|
+
# noinspection PyArgumentList
|
|
87
|
+
return BoundReferenceResolver(ce, cond_equip_to_terminal_resolver, term_to_ce_resolver)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def circuits(substation: Substation) -> BoundReferenceResolver:
|
|
91
|
+
# noinspection PyArgumentList
|
|
92
|
+
return BoundReferenceResolver(substation, sub_to_circuit_resolver, circuit_to_sub_resolver)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def clamp_ac_line_segment(clamp: Clamp) -> BoundReferenceResolver:
|
|
96
|
+
# noinspection PyArgumentList
|
|
97
|
+
return BoundReferenceResolver(clamp, clamp_to_acls_resolver, None)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def clamps(acls: AcLineSegment) -> BoundReferenceResolver:
|
|
101
|
+
# noinspection PyArgumentList
|
|
102
|
+
return BoundReferenceResolver(acls, acls_to_clamp_resolver, None)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def cn_terminals(cn: ConnectivityNode) -> BoundReferenceResolver:
|
|
106
|
+
# noinspection PyArgumentList
|
|
107
|
+
return BoundReferenceResolver(cn, conn_node_to_term_resolver, term_to_cn_resolver)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def conducting_equipment(terminal: Terminal) -> BoundReferenceResolver:
|
|
111
|
+
# noinspection PyArgumentList
|
|
112
|
+
return BoundReferenceResolver(terminal, term_to_ce_resolver, cond_equip_to_terminal_resolver)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def connectivity_node(terminal: Terminal) -> BoundReferenceResolver:
|
|
116
|
+
# noinspection PyArgumentList
|
|
117
|
+
return BoundReferenceResolver(terminal, term_to_cn_resolver, conn_node_to_term_resolver)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def containers(equipment: Equipment) -> BoundReferenceResolver:
|
|
121
|
+
# noinspection PyArgumentList
|
|
122
|
+
return BoundReferenceResolver(equipment, eq_to_ec_resolver, ec_to_eq_resolver)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def control(rc: RemoteControl) -> BoundReferenceResolver:
|
|
126
|
+
# noinspection PyArgumentList
|
|
127
|
+
return BoundReferenceResolver(rc, rc_to_cont_resolver, control_to_remote_control_resolver)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def current_containers(equipment: Equipment) -> BoundReferenceResolver:
|
|
131
|
+
# noinspection PyArgumentList
|
|
132
|
+
return BoundReferenceResolver(equipment, eq_to_curcontainer_resolver, ec_to_curequipment_resolver)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def current_transformer_info(current_transformer: CurrentTransformer) -> BoundReferenceResolver:
|
|
136
|
+
# noinspection PyArgumentList
|
|
137
|
+
return BoundReferenceResolver(current_transformer, ct_to_cti_resolver, None)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def customer(customer_agreement: CustomerAgreement) -> BoundReferenceResolver:
|
|
141
|
+
# noinspection PyArgumentList
|
|
142
|
+
return BoundReferenceResolver(customer_agreement, custagr_to_cust_resolver, cust_to_custagr_resolver)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def cut_ac_line_segment(cut: Cut) -> BoundReferenceResolver:
|
|
146
|
+
# noinspection PyArgumentList
|
|
147
|
+
return BoundReferenceResolver(cut, cut_to_acls_resolver, None)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def cuts(acls: AcLineSegment) -> BoundReferenceResolver:
|
|
151
|
+
# noinspection PyArgumentList
|
|
152
|
+
return BoundReferenceResolver(acls, acls_to_cut_resolver, None)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def diagram(diagram_object: DiagramObject) -> BoundReferenceResolver:
|
|
156
|
+
# noinspection PyArgumentList
|
|
157
|
+
return BoundReferenceResolver(diagram_object, diagobj_to_diag_resolver, diag_to_diagobj_resolver)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def diagram_objects(d: Diagram) -> BoundReferenceResolver:
|
|
161
|
+
# noinspection PyArgumentList
|
|
162
|
+
return BoundReferenceResolver(d, diag_to_diagobj_resolver, diagobj_to_diag_resolver)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def ec_equipment(equipment_container: EquipmentContainer) -> BoundReferenceResolver:
|
|
166
|
+
# noinspection PyArgumentList
|
|
167
|
+
return BoundReferenceResolver(equipment_container, ec_to_eq_resolver, eq_to_ec_resolver)
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
def ec_phases(ec: EnergyConsumer) -> BoundReferenceResolver:
|
|
171
|
+
# noinspection PyArgumentList
|
|
172
|
+
return BoundReferenceResolver(ec, ec_to_ecp_resolver, ecp_to_ec_resolver)
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
def ed_usage_points(end_device: EndDevice) -> BoundReferenceResolver:
|
|
176
|
+
# noinspection PyArgumentList
|
|
177
|
+
return BoundReferenceResolver(end_device, ed_to_up_resolver, up_to_ed_resolver)
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def end_devices(usage_point: UsagePoint) -> BoundReferenceResolver:
|
|
181
|
+
# noinspection PyArgumentList
|
|
182
|
+
return BoundReferenceResolver(usage_point, up_to_ed_resolver, ed_to_up_resolver)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def end_device_functions(end_device: EndDevice) -> BoundReferenceResolver:
|
|
186
|
+
# noinspection PyArgumentList
|
|
187
|
+
return BoundReferenceResolver(end_device, ed_to_edf_resolver, None)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def end_substation(circuit: Circuit) -> BoundReferenceResolver:
|
|
191
|
+
# noinspection PyArgumentList
|
|
192
|
+
return BoundReferenceResolver(circuit, circuit_to_sub_resolver, sub_to_circuit_resolver)
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def end_terminal(circuit: Circuit) -> BoundReferenceResolver:
|
|
196
|
+
# noinspection PyArgumentList
|
|
197
|
+
return BoundReferenceResolver(circuit, circuit_to_term_resolver, None)
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
def ends(pt: PowerTransformer) -> BoundReferenceResolver:
|
|
201
|
+
# noinspection PyArgumentList
|
|
202
|
+
return BoundReferenceResolver(pt, pt_to_pte_resolver, pte_to_pt_resolver)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
def energised_end_no_load_tests(tei: TransformerEndInfo) -> BoundReferenceResolver:
|
|
206
|
+
# noinspection PyArgumentList
|
|
207
|
+
return BoundReferenceResolver(tei, tei_to_ee_nlt_resolver, None)
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
def energised_end_open_circuit_tests(tei: TransformerEndInfo) -> BoundReferenceResolver:
|
|
211
|
+
# noinspection PyArgumentList
|
|
212
|
+
return BoundReferenceResolver(tei, tei_to_ee_oct_resolver, None)
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def energised_end_short_circuit_tests(tei: TransformerEndInfo) -> BoundReferenceResolver:
|
|
216
|
+
# noinspection PyArgumentList
|
|
217
|
+
return BoundReferenceResolver(tei, tei_to_ee_sct_resolver, None)
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def energy_consumer(energy_consumer_phase: EnergyConsumerPhase) -> BoundReferenceResolver:
|
|
221
|
+
# noinspection PyArgumentList
|
|
222
|
+
return BoundReferenceResolver(energy_consumer_phase, ecp_to_ec_resolver, ec_to_ecp_resolver)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def energy_source(energy_source_phase: EnergySourcePhase) -> BoundReferenceResolver:
|
|
226
|
+
# noinspection PyArgumentList
|
|
227
|
+
return BoundReferenceResolver(energy_source_phase, esp_to_es_resolver, es_to_esp_resolver)
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def eq_usage_points(equipment: Equipment) -> BoundReferenceResolver:
|
|
231
|
+
# noinspection PyArgumentList
|
|
232
|
+
return BoundReferenceResolver(equipment, eq_to_up_resolver, up_to_eq_resolver)
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def es_phases(es: EnergySource) -> BoundReferenceResolver:
|
|
236
|
+
# noinspection PyArgumentList
|
|
237
|
+
return BoundReferenceResolver(es, es_to_esp_resolver, esp_to_es_resolver)
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def fuse_function(fuse: Fuse) -> BoundReferenceResolver:
|
|
241
|
+
# noinspection PyArgumentList
|
|
242
|
+
return BoundReferenceResolver(fuse, fuse_to_prf_resolver, None)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
def geographical_region(sgr: SubGeographicalRegion) -> BoundReferenceResolver:
|
|
246
|
+
# noinspection PyArgumentList
|
|
247
|
+
return BoundReferenceResolver(sgr, sgr_to_gr_resolver, gr_to_sgr_resolver)
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
def grounded_end_short_circuit_tests(tei: TransformerEndInfo) -> BoundReferenceResolver:
|
|
251
|
+
# noinspection PyArgumentList
|
|
252
|
+
return BoundReferenceResolver(tei, tei_to_ge_sct_resolver, None)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
def loop(circuit: Circuit) -> BoundReferenceResolver:
|
|
256
|
+
# noinspection PyArgumentList
|
|
257
|
+
return BoundReferenceResolver(circuit, circuit_to_loop_resolver, loop_to_circuit_resolver)
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
def loop_circuits(l_: Loop) -> BoundReferenceResolver:
|
|
261
|
+
# noinspection PyArgumentList
|
|
262
|
+
return BoundReferenceResolver(l_, loop_to_circuit_resolver, circuit_to_loop_resolver)
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
def loop_energizing_substations(l_: Loop) -> BoundReferenceResolver:
|
|
266
|
+
# noinspection PyArgumentList
|
|
267
|
+
return BoundReferenceResolver(l_, loop_to_esub_resolver, sub_to_eloop_resolver)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
def loop_substations(l_: Loop) -> BoundReferenceResolver:
|
|
271
|
+
# noinspection PyArgumentList
|
|
272
|
+
return BoundReferenceResolver(l_, loop_to_sub_resolver, sub_to_loop_resolver)
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def loops(substation: Substation) -> BoundReferenceResolver:
|
|
276
|
+
# noinspection PyArgumentList
|
|
277
|
+
return BoundReferenceResolver(substation, sub_to_loop_resolver, loop_to_sub_resolver)
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
def lv_feeder_normal_head_terminal(lv_feeder: LvFeeder) -> BoundReferenceResolver:
|
|
281
|
+
# noinspection PyArgumentList
|
|
282
|
+
return BoundReferenceResolver(lv_feeder, lvfeeder_to_nht_resolver, None)
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
def measurement(rs: RemoteSource) -> BoundReferenceResolver:
|
|
286
|
+
# noinspection PyArgumentList
|
|
287
|
+
return BoundReferenceResolver(rs, rs_to_meas_resolver, meas_to_rs_resolver)
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
def normal_energized_feeders(substation: Substation) -> BoundReferenceResolver:
|
|
291
|
+
# noinspection PyArgumentList
|
|
292
|
+
return BoundReferenceResolver(substation, sub_to_feeder_resolver, feeder_to_nes_resolver)
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
def normal_energized_loops(substation: Substation) -> BoundReferenceResolver:
|
|
296
|
+
# noinspection PyArgumentList
|
|
297
|
+
return BoundReferenceResolver(substation, sub_to_eloop_resolver, loop_to_esub_resolver)
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
def normal_energized_lv_feeders(feeder: Feeder) -> BoundReferenceResolver:
|
|
301
|
+
# noinspection PyArgumentList
|
|
302
|
+
return BoundReferenceResolver(feeder, feeder_to_nelvf_resolver, lvfeeder_to_nef_resolver)
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
def current_energized_lv_feeders(feeder: Feeder) -> BoundReferenceResolver:
|
|
306
|
+
# noinspection PyArgumentList
|
|
307
|
+
return BoundReferenceResolver(feeder, feeder_to_celvf_resolver, lvfeeder_to_cef_resolver)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def normal_energizing_feeders(lv_feeder: LvFeeder) -> BoundReferenceResolver:
|
|
311
|
+
# noinspection PyArgumentList
|
|
312
|
+
return BoundReferenceResolver(lv_feeder, lvfeeder_to_nef_resolver, feeder_to_nelvf_resolver)
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def current_energizing_feeders(lv_feeder: LvFeeder) -> BoundReferenceResolver:
|
|
316
|
+
# noinspection PyArgumentList
|
|
317
|
+
return BoundReferenceResolver(lv_feeder, lvfeeder_to_cef_resolver, feeder_to_celvf_resolver)
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
def normal_energizing_substation(feeder: Feeder) -> BoundReferenceResolver:
|
|
321
|
+
# noinspection PyArgumentList
|
|
322
|
+
return BoundReferenceResolver(feeder, feeder_to_nes_resolver, sub_to_feeder_resolver)
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
def normal_head_terminal(feeder: Feeder) -> BoundReferenceResolver:
|
|
326
|
+
# noinspection PyArgumentList
|
|
327
|
+
return BoundReferenceResolver(feeder, feeder_to_nht_resolver, None)
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
def open_end_open_circuit_tests(tei: TransformerEndInfo) -> BoundReferenceResolver:
|
|
331
|
+
# noinspection PyArgumentList
|
|
332
|
+
return BoundReferenceResolver(tei, tei_to_oe_oct_resolver, None)
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
def operational_restrictions(equipment: Equipment) -> BoundReferenceResolver:
|
|
336
|
+
# noinspection PyArgumentList
|
|
337
|
+
return BoundReferenceResolver(equipment, eq_to_or_resolver, or_to_eq_resolver)
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
def or_equipment(operational_restriction: OperationalRestriction) -> BoundReferenceResolver:
|
|
341
|
+
# noinspection PyArgumentList
|
|
342
|
+
return BoundReferenceResolver(operational_restriction, or_to_eq_resolver, eq_to_or_resolver)
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
def organisation(organisation_role: OrganisationRole) -> BoundReferenceResolver:
|
|
346
|
+
# noinspection PyArgumentList
|
|
347
|
+
return BoundReferenceResolver(organisation_role, orgr_to_org_resolver, None)
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
def organisation_roles(asset: Asset) -> BoundReferenceResolver:
|
|
351
|
+
# noinspection PyArgumentList
|
|
352
|
+
return BoundReferenceResolver(asset, asset_to_asset_org_role_resolver, None)
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
def per_length_impedance(ac_line_segment: AcLineSegment):
|
|
356
|
+
# noinspection PyArgumentList
|
|
357
|
+
return BoundReferenceResolver(ac_line_segment, acls_to_pli_resolver, None)
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
def phase_power_electronics_connection(pec: PowerElectronicsConnectionPhase) -> BoundReferenceResolver:
|
|
361
|
+
# noinspection PyArgumentList
|
|
362
|
+
return BoundReferenceResolver(pec, pecphase_to_pec_resolver, pec_to_pecphase_resolver)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
def pole(streetlight: Streetlight) -> BoundReferenceResolver:
|
|
366
|
+
# noinspection PyArgumentList
|
|
367
|
+
return BoundReferenceResolver(streetlight, streetlight_to_pole_resolver, pole_to_streetlight_resolver)
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
def potential_transformer_info(potential_transformer: PotentialTransformer) -> BoundReferenceResolver:
|
|
371
|
+
# noinspection PyArgumentList
|
|
372
|
+
return BoundReferenceResolver(potential_transformer, vt_to_vti_resolver, None)
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
def power_electronics_connection_phase(pec: PowerElectronicsConnection) -> BoundReferenceResolver:
|
|
376
|
+
# noinspection PyArgumentList
|
|
377
|
+
return BoundReferenceResolver(pec, pec_to_pecphase_resolver, pecphase_to_pec_resolver)
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
def power_electronics_unit(pec: PowerElectronicsConnection) -> BoundReferenceResolver:
|
|
381
|
+
# noinspection PyArgumentList
|
|
382
|
+
return BoundReferenceResolver(pec, pec_to_peu_resolver, peu_to_pec_resolver)
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
def power_transformer(power_transformer_end: PowerTransformerEnd) -> BoundReferenceResolver:
|
|
386
|
+
# noinspection PyArgumentList
|
|
387
|
+
return BoundReferenceResolver(power_transformer_end, pte_to_pt_resolver, pt_to_pte_resolver)
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
def power_transformer_info(pt: PowerTransformer) -> BoundReferenceResolver:
|
|
391
|
+
# noinspection PyArgumentList
|
|
392
|
+
return BoundReferenceResolver(pt, powertransformer_to_power_transformer_info_resolver, None)
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
def power_transformer_info_transformer_tank_info(pti: PowerTransformerInfo) -> BoundReferenceResolver:
|
|
396
|
+
# noinspection PyArgumentList
|
|
397
|
+
return BoundReferenceResolver(pti, pti_to_tti_resolver, None)
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
def power_system_resources(asset: Asset) -> BoundReferenceResolver:
|
|
401
|
+
# noinspection PyArgumentList
|
|
402
|
+
return BoundReferenceResolver(asset, asset_to_psr_resolver, psr_to_asset_resolver)
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
def prf_protected_switch(prf: ProtectionRelayFunction) -> BoundReferenceResolver:
|
|
406
|
+
# noinspection PyArgumentList
|
|
407
|
+
return BoundReferenceResolver(prf, prf_to_psw_resolver, psw_to_prf_resolver)
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
def prf_scheme(prf: ProtectionRelayFunction) -> BoundReferenceResolver:
|
|
411
|
+
# noinspection PyArgumentList
|
|
412
|
+
return BoundReferenceResolver(prf, prf_to_prscheme_resolver, prscheme_to_prf_resolver)
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
def prf_sensor(prf: ProtectionRelayFunction) -> BoundReferenceResolver:
|
|
416
|
+
# noinspection PyArgumentList
|
|
417
|
+
return BoundReferenceResolver(prf, prf_to_sen_resolver, sen_to_prf_resolver)
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
def pricing_structures(customer_agreement: CustomerAgreement) -> BoundReferenceResolver:
|
|
421
|
+
# noinspection PyArgumentList
|
|
422
|
+
return BoundReferenceResolver(customer_agreement, custagr_to_ps_resolver, None)
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
def prscheme_function(prscheme: ProtectionRelayScheme) -> BoundReferenceResolver:
|
|
426
|
+
# noinspection PyArgumentList
|
|
427
|
+
return BoundReferenceResolver(prscheme, prscheme_to_prf_resolver, prf_to_prscheme_resolver)
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
def prscheme_system(prscheme: ProtectionRelayScheme) -> BoundReferenceResolver:
|
|
431
|
+
# noinspection PyArgumentList
|
|
432
|
+
return BoundReferenceResolver(prscheme, prscheme_to_prsystem_resolver, prsystem_to_prscheme_resolver)
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
def prsystem_scheme(prsystem: ProtectionRelaySystem) -> BoundReferenceResolver:
|
|
436
|
+
# noinspection PyArgumentList
|
|
437
|
+
return BoundReferenceResolver(prsystem, prsystem_to_prscheme_resolver, prscheme_to_prsystem_resolver)
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
def ps_relay_function(ps: ProtectedSwitch) -> BoundReferenceResolver:
|
|
441
|
+
# noinspection PyArgumentList
|
|
442
|
+
return BoundReferenceResolver(ps, psw_to_prf_resolver, prf_to_psw_resolver)
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
def psr_location(power_system_resource: PowerSystemResource) -> BoundReferenceResolver:
|
|
446
|
+
# noinspection PyArgumentList
|
|
447
|
+
return BoundReferenceResolver(power_system_resource, psr_to_loc_resolver, None)
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
def ratio_tap_changer(te: TransformerEnd) -> BoundReferenceResolver:
|
|
451
|
+
# noinspection PyArgumentList
|
|
452
|
+
return BoundReferenceResolver(te, te_to_rtc_resolver, rtc_to_te_resolver)
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
def rc_regulating_cond_eq(regulating_control: RegulatingControl) -> BoundReferenceResolver:
|
|
456
|
+
# noinspection PyArgumentList
|
|
457
|
+
return BoundReferenceResolver(regulating_control, rc_to_rce_resolver, rce_to_rc_resolver)
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
def rc_terminal(rc: RegulatingControl) -> BoundReferenceResolver:
|
|
461
|
+
# noinspection PyArgumentList
|
|
462
|
+
return BoundReferenceResolver(rc, rc_to_term_resolver, None)
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
def rce_regulating_control(regulating_cond_eq: RegulatingCondEq) -> BoundReferenceResolver:
|
|
466
|
+
# noinspection PyArgumentList
|
|
467
|
+
return BoundReferenceResolver(regulating_cond_eq, rce_to_rc_resolver, rc_to_rce_resolver)
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
def reactive_capability_curve(synchronous_machine: SynchronousMachine) -> BoundReferenceResolver:
|
|
471
|
+
# noinspection PyArgumentList
|
|
472
|
+
return BoundReferenceResolver(synchronous_machine, sm_to_rcc_resolver, None)
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
def relay_info(prf: ProtectionRelayFunction) -> BoundReferenceResolver:
|
|
476
|
+
# noinspection PyArgumentList
|
|
477
|
+
return BoundReferenceResolver(prf, prf_to_relay_info_resolver, None)
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
def remote_control(c: Control) -> BoundReferenceResolver:
|
|
481
|
+
# noinspection PyArgumentList
|
|
482
|
+
return BoundReferenceResolver(c, control_to_remote_control_resolver, rc_to_cont_resolver)
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
def remote_source(m: Measurement) -> BoundReferenceResolver:
|
|
486
|
+
# noinspection PyArgumentList
|
|
487
|
+
return BoundReferenceResolver(m, meas_to_rs_resolver, rs_to_meas_resolver)
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
def sen_relay_function(sen: Sensor) -> BoundReferenceResolver:
|
|
491
|
+
# noinspection PyArgumentList
|
|
492
|
+
return BoundReferenceResolver(sen, sen_to_prf_resolver, prf_to_sen_resolver)
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
def service_location(end_device: EndDevice) -> BoundReferenceResolver:
|
|
496
|
+
# noinspection PyArgumentList
|
|
497
|
+
return BoundReferenceResolver(end_device, ed_to_loc_resolver, None)
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
def shunt_compensator_info(sc: ShuntCompensator) -> BoundReferenceResolver:
|
|
501
|
+
# noinspection PyArgumentList
|
|
502
|
+
return BoundReferenceResolver(sc, shunt_compensator_to_shunt_compensator_info_resolver, None)
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
def star_impedance_transformer_end_info(tsi: TransformerStarImpedance) -> BoundReferenceResolver:
|
|
506
|
+
# noinspection PyArgumentList
|
|
507
|
+
return BoundReferenceResolver(tsi, tsi_to_tei_resolver, tei_to_tsi_resolver)
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
def streetlights(p: Pole) -> BoundReferenceResolver:
|
|
511
|
+
# noinspection PyArgumentList
|
|
512
|
+
return BoundReferenceResolver(p, pole_to_streetlight_resolver, streetlight_to_pole_resolver)
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
def sub_geographical_region(substation: Substation) -> BoundReferenceResolver:
|
|
516
|
+
# noinspection PyArgumentList
|
|
517
|
+
return BoundReferenceResolver(substation, sub_to_sgr_resolver, sgr_to_sub_resolver)
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
def sub_geographical_regions(gr: GeographicalRegion) -> BoundReferenceResolver:
|
|
521
|
+
# noinspection PyArgumentList
|
|
522
|
+
return BoundReferenceResolver(gr, gr_to_sgr_resolver, sgr_to_gr_resolver)
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
def substations(sgr: SubGeographicalRegion) -> BoundReferenceResolver:
|
|
526
|
+
# noinspection PyArgumentList
|
|
527
|
+
return BoundReferenceResolver(sgr, sgr_to_sub_resolver, sub_to_sgr_resolver)
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
def switch_info(switch: Switch) -> BoundReferenceResolver:
|
|
531
|
+
# noinspection PyArgumentList
|
|
532
|
+
return BoundReferenceResolver(switch, switch_to_switch_info_resolver, None)
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
def tariffs(pricing_structure: PricingStructure) -> BoundReferenceResolver:
|
|
536
|
+
# noinspection PyArgumentList
|
|
537
|
+
return BoundReferenceResolver(pricing_structure, ps_to_tariff_resolver, None)
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
def tc_tap_changer_control(tap_changer: TapChanger) -> BoundReferenceResolver:
|
|
541
|
+
# noinspection PyArgumentList
|
|
542
|
+
return BoundReferenceResolver(tap_changer, tc_to_tcc_resolver, None)
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
def te_base_voltage(te: TransformerEnd) -> BoundReferenceResolver:
|
|
546
|
+
# noinspection PyArgumentList
|
|
547
|
+
return BoundReferenceResolver(te, te_to_bv_resolver, None)
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
def te_terminal(te: TransformerEnd) -> BoundReferenceResolver:
|
|
551
|
+
# noinspection PyArgumentList
|
|
552
|
+
return BoundReferenceResolver(te, te_to_term_resolver, None)
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
def transformer_end(rtt: RatioTapChanger) -> BoundReferenceResolver:
|
|
556
|
+
# noinspection PyArgumentList
|
|
557
|
+
return BoundReferenceResolver(rtt, rtc_to_te_resolver, te_to_rtc_resolver)
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
def transformer_end_info(tti: TransformerTankInfo) -> BoundReferenceResolver:
|
|
561
|
+
# noinspection PyArgumentList
|
|
562
|
+
return BoundReferenceResolver(tti, tti_to_tei_resolver, tei_to_tti_resolver)
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
def transformer_end_transformer_star_impedance(te: TransformerEnd) -> BoundReferenceResolver:
|
|
566
|
+
# noinspection PyArgumentList
|
|
567
|
+
return BoundReferenceResolver(te, te_to_tsi_resolver, None)
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
def transformer_star_impedance(tei: TransformerEndInfo) -> BoundReferenceResolver:
|
|
571
|
+
# noinspection PyArgumentList
|
|
572
|
+
return BoundReferenceResolver(tei, tei_to_tsi_resolver, tsi_to_tei_resolver)
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
def transformer_tank_info(tei: TransformerEndInfo) -> BoundReferenceResolver:
|
|
576
|
+
# noinspection PyArgumentList
|
|
577
|
+
return BoundReferenceResolver(tei, tei_to_tti_resolver, tti_to_tei_resolver)
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
def unit_power_electronics_connection(pec: PowerElectronicsUnit) -> BoundReferenceResolver:
|
|
581
|
+
# noinspection PyArgumentList
|
|
582
|
+
return BoundReferenceResolver(pec, peu_to_pec_resolver, pec_to_peu_resolver)
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
def up_equipment(usage_point: UsagePoint) -> BoundReferenceResolver:
|
|
586
|
+
# noinspection PyArgumentList
|
|
587
|
+
return BoundReferenceResolver(usage_point, up_to_eq_resolver, eq_to_up_resolver)
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
def usage_point_location(usage_point: UsagePoint) -> BoundReferenceResolver:
|
|
591
|
+
# noinspection PyArgumentList
|
|
592
|
+
return BoundReferenceResolver(usage_point, up_to_loc_resolver, None)
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
def wire_info(conductor: Conductor) -> BoundReferenceResolver:
|
|
596
|
+
# noinspection PyArgumentList
|
|
597
|
+
return BoundReferenceResolver(conductor, conductor_to_wire_info_resolver, None)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Copyright 2024 Zeppelin Bend Pty Ltd
|
|
2
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
3
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
|
|
6
|
+
__all__ = ["identified_object_to_pb", "document_to_pb", "organisation_role_to_pb", "organisation_to_pb"]
|
|
7
|
+
|
|
8
|
+
# noinspection PyPackageRequirements,PyUnresolvedReferences
|
|
9
|
+
from google.protobuf.timestamp_pb2 import Timestamp as PBTimestamp
|
|
10
|
+
from zepben.protobuf.cim.iec61968.common.Document_pb2 import Document as PBDocument
|
|
11
|
+
from zepben.protobuf.cim.iec61968.common.OrganisationRole_pb2 import OrganisationRole as PBOrganisationRole
|
|
12
|
+
from zepben.protobuf.cim.iec61968.common.Organisation_pb2 import Organisation as PBOrganisation
|
|
13
|
+
from zepben.protobuf.cim.iec61970.base.core.IdentifiedObject_pb2 import IdentifiedObject as PBIdentifiedObject
|
|
14
|
+
from zepben.protobuf.cim.iec61970.base.core.NameType_pb2 import NameType as PBNameType
|
|
15
|
+
from zepben.protobuf.cim.iec61970.base.core.Name_pb2 import Name as PBName
|
|
16
|
+
|
|
17
|
+
from zepben.ewb.model.cim.iec61968.common.document import Document
|
|
18
|
+
from zepben.ewb.model.cim.iec61968.common.organisation import Organisation
|
|
19
|
+
from zepben.ewb.model.cim.iec61968.common.organisation_role import OrganisationRole
|
|
20
|
+
from zepben.ewb.model.cim.iec61970.base.core.identified_object import IdentifiedObject
|
|
21
|
+
from zepben.ewb.model.cim.iec61970.base.core.name import Name
|
|
22
|
+
from zepben.ewb.model.cim.iec61970.base.core.name_type import NameType
|
|
23
|
+
from zepben.ewb.services.common.translator.util import mrid_or_empty
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
###################
|
|
27
|
+
# IEC61968 Common #
|
|
28
|
+
###################
|
|
29
|
+
|
|
30
|
+
def document_to_pb(cim: Document) -> PBDocument:
|
|
31
|
+
timestamp = None
|
|
32
|
+
if cim.created_date_time:
|
|
33
|
+
timestamp = PBTimestamp()
|
|
34
|
+
timestamp.FromDatetime(cim.created_date_time)
|
|
35
|
+
|
|
36
|
+
return PBDocument(
|
|
37
|
+
io=identified_object_to_pb(cim),
|
|
38
|
+
title=cim.title,
|
|
39
|
+
createdDateTime=timestamp,
|
|
40
|
+
authorName=cim.author_name,
|
|
41
|
+
type=cim.type,
|
|
42
|
+
status=cim.status,
|
|
43
|
+
comment=cim.comment
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def organisation_to_pb(cim: Organisation) -> PBOrganisation:
|
|
48
|
+
return PBOrganisation(io=identified_object_to_pb(cim))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def organisation_role_to_pb(cim: OrganisationRole) -> PBOrganisationRole:
|
|
52
|
+
return PBOrganisationRole(
|
|
53
|
+
io=identified_object_to_pb(cim),
|
|
54
|
+
organisationMRID=mrid_or_empty(cim.organisation)
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Document.to_pb = document_to_pb
|
|
59
|
+
Organisation.to_pb = organisation_to_pb
|
|
60
|
+
OrganisationRole.to_pb = organisation_role_to_pb
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
######################
|
|
64
|
+
# IEC61970 Base Core #
|
|
65
|
+
######################
|
|
66
|
+
|
|
67
|
+
def identified_object_to_pb(cim: IdentifiedObject) -> PBIdentifiedObject:
|
|
68
|
+
return PBIdentifiedObject(
|
|
69
|
+
mRID=str(cim.mrid),
|
|
70
|
+
name=cim.name,
|
|
71
|
+
description=cim.description,
|
|
72
|
+
names=[name_to_pb(name) for name in cim.names]
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def name_to_pb(cim: Name) -> PBName:
|
|
77
|
+
return PBName(
|
|
78
|
+
name=cim.name,
|
|
79
|
+
type=cim.type.name if cim.type else None
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def name_type_to_pb(cim: NameType) -> PBNameType:
|
|
84
|
+
return PBNameType(
|
|
85
|
+
name=cim.name,
|
|
86
|
+
description=cim.description
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
IdentifiedObject.to_pb = identified_object_to_pb
|
|
91
|
+
Name.to_pb = name_to_pb
|
|
92
|
+
NameType.to_pb = name_type_to_pb
|