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,265 @@
|
|
|
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__ = ["NetworkServiceReader"]
|
|
7
|
+
|
|
8
|
+
from sqlite3 import Connection
|
|
9
|
+
|
|
10
|
+
from zepben.ewb.database.sqlite.common.base_service_reader import BaseServiceReader
|
|
11
|
+
from zepben.ewb.database.sqlite.network.network_cim_reader import NetworkCimReader
|
|
12
|
+
from zepben.ewb.database.sqlite.network.network_database_tables import NetworkDatabaseTables
|
|
13
|
+
from zepben.ewb.database.sqlite.tables.associations.table_asset_organisation_roles_assets import TableAssetOrganisationRolesAssets
|
|
14
|
+
from zepben.ewb.database.sqlite.tables.associations.table_assets_power_system_resources import TableAssetsPowerSystemResources
|
|
15
|
+
from zepben.ewb.database.sqlite.tables.associations.table_battery_units_battery_controls import TableBatteryUnitsBatteryControls
|
|
16
|
+
from zepben.ewb.database.sqlite.tables.associations.table_circuits_substations import TableCircuitsSubstations
|
|
17
|
+
from zepben.ewb.database.sqlite.tables.associations.table_circuits_terminals import TableCircuitsTerminals
|
|
18
|
+
from zepben.ewb.database.sqlite.tables.associations.table_end_devices_end_device_functions import TableEndDevicesEndDeviceFunctions
|
|
19
|
+
from zepben.ewb.database.sqlite.tables.associations.table_equipment_equipment_containers import TableEquipmentEquipmentContainers
|
|
20
|
+
from zepben.ewb.database.sqlite.tables.associations.table_equipment_operational_restrictions import TableEquipmentOperationalRestrictions
|
|
21
|
+
from zepben.ewb.database.sqlite.tables.associations.table_equipment_usage_points import TableEquipmentUsagePoints
|
|
22
|
+
from zepben.ewb.database.sqlite.tables.associations.table_loops_substations import TableLoopsSubstations
|
|
23
|
+
from zepben.ewb.database.sqlite.tables.associations.table_protection_relay_functions_protected_switches import TableProtectionRelayFunctionsProtectedSwitches
|
|
24
|
+
from zepben.ewb.database.sqlite.tables.associations.table_protection_relay_functions_sensors import TableProtectionRelayFunctionsSensors
|
|
25
|
+
from zepben.ewb.database.sqlite.tables.associations.table_protection_relay_schemes_protection_relay_functions import \
|
|
26
|
+
TableProtectionRelaySchemesProtectionRelayFunctions
|
|
27
|
+
from zepben.ewb.database.sqlite.tables.associations.table_synchronous_machines_reactive_capability_curves import \
|
|
28
|
+
TableSynchronousMachinesReactiveCapabilityCurves
|
|
29
|
+
from zepben.ewb.database.sqlite.tables.associations.table_usage_points_end_devices import TableUsagePointsEndDevices
|
|
30
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61968.assetinfo.table_reclose_delays import TableRecloseDelays
|
|
31
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61968.assetinfo.table_relay_info import TableRelayInfo
|
|
32
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61968.metering.table_pan_demand_response_functions import TablePanDemandResponseFunctions
|
|
33
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.core.table_sites import TableSites
|
|
34
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.feeder.table_loops import TableLoops
|
|
35
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.feeder.table_lv_feeders import TableLvFeeders
|
|
36
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.generation.production.table_ev_charging_units import TableEvChargingUnits
|
|
37
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.protection.table_distance_relays import TableDistanceRelays
|
|
38
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.protection.table_protection_relay_function_thresholds import \
|
|
39
|
+
TableProtectionRelayFunctionThresholds
|
|
40
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.protection.table_protection_relay_function_time_limits import \
|
|
41
|
+
TableProtectionRelayFunctionTimeLimits
|
|
42
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.protection.table_protection_relay_schemes import TableProtectionRelaySchemes
|
|
43
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.protection.table_protection_relay_systems import TableProtectionRelaySystems
|
|
44
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.protection.table_voltage_relays import TableVoltageRelays
|
|
45
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.wires.table_battery_controls import TableBatteryControls
|
|
46
|
+
from zepben.ewb.database.sqlite.tables.extensions.iec61970.base.wires.table_power_transformer_end_ratings import TablePowerTransformerEndRatings
|
|
47
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_cable_info import TableCableInfo
|
|
48
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_no_load_tests import TableNoLoadTests
|
|
49
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_open_circuit_tests import TableOpenCircuitTests
|
|
50
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_overhead_wire_info import TableOverheadWireInfo
|
|
51
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_power_transformer_info import TablePowerTransformerInfo
|
|
52
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_short_circuit_tests import TableShortCircuitTests
|
|
53
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_shunt_compensator_info import TableShuntCompensatorInfo
|
|
54
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_switch_info import TableSwitchInfo
|
|
55
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_transformer_end_info import TableTransformerEndInfo
|
|
56
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assetinfo.table_transformer_tank_info import TableTransformerTankInfo
|
|
57
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assets.table_asset_owners import TableAssetOwners
|
|
58
|
+
from zepben.ewb.database.sqlite.tables.iec61968.assets.table_streetlights import TableStreetlights
|
|
59
|
+
from zepben.ewb.database.sqlite.tables.iec61968.common.table_location_street_addresses import TableLocationStreetAddresses
|
|
60
|
+
from zepben.ewb.database.sqlite.tables.iec61968.common.table_locations import TableLocations
|
|
61
|
+
from zepben.ewb.database.sqlite.tables.iec61968.common.table_organisations import TableOrganisations
|
|
62
|
+
from zepben.ewb.database.sqlite.tables.iec61968.common.table_position_points import TablePositionPoints
|
|
63
|
+
from zepben.ewb.database.sqlite.tables.iec61968.infiec61968.infassetinfo.table_current_transformer_info import TableCurrentTransformerInfo
|
|
64
|
+
from zepben.ewb.database.sqlite.tables.iec61968.infiec61968.infassetinfo.table_potential_transformer_info import TablePotentialTransformerInfo
|
|
65
|
+
from zepben.ewb.database.sqlite.tables.iec61968.infiec61968.infassets.table_poles import TablePoles
|
|
66
|
+
from zepben.ewb.database.sqlite.tables.iec61968.metering.table_meters import TableMeters
|
|
67
|
+
from zepben.ewb.database.sqlite.tables.iec61968.metering.table_usage_points import TableUsagePoints
|
|
68
|
+
from zepben.ewb.database.sqlite.tables.iec61968.operations.table_operational_restrictions import TableOperationalRestrictions
|
|
69
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.auxiliaryequipment.table_current_transformers import TableCurrentTransformers
|
|
70
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.auxiliaryequipment.table_fault_indicators import TableFaultIndicators
|
|
71
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.auxiliaryequipment.table_potential_transformers import TablePotentialTransformers
|
|
72
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_base_voltages import TableBaseVoltages
|
|
73
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_connectivity_nodes import TableConnectivityNodes
|
|
74
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_curve_data import TableCurveData
|
|
75
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_feeders import TableFeeders
|
|
76
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_geographical_regions import TableGeographicalRegions
|
|
77
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_sub_geographical_regions import TableSubGeographicalRegions
|
|
78
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_substations import TableSubstations
|
|
79
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.core.table_terminals import TableTerminals
|
|
80
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.equivalents.table_equivalent_branches import TableEquivalentBranches
|
|
81
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.generation.production.table_battery_units import TableBatteryUnits
|
|
82
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.generation.production.table_photo_voltaic_units import TablePhotoVoltaicUnits
|
|
83
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.generation.production.table_power_electronics_wind_units import TablePowerElectronicsWindUnits
|
|
84
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.meas.table_accumulators import TableAccumulators
|
|
85
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.meas.table_analogs import TableAnalogs
|
|
86
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.meas.table_controls import TableControls
|
|
87
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.meas.table_discretes import TableDiscretes
|
|
88
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.protection.table_current_relays import TableCurrentRelays
|
|
89
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.scada.table_remote_controls import TableRemoteControls
|
|
90
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.scada.table_remote_sources import TableRemoteSources
|
|
91
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_ac_line_segments import TableAcLineSegments
|
|
92
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_breakers import TableBreakers
|
|
93
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_busbar_sections import TableBusbarSections
|
|
94
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_clamps import TableClamps
|
|
95
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_cuts import TableCuts
|
|
96
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_disconnectors import TableDisconnectors
|
|
97
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_energy_consumer_phases import TableEnergyConsumerPhases
|
|
98
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_energy_consumers import TableEnergyConsumers
|
|
99
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_energy_source_phases import TableEnergySourcePhases
|
|
100
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_energy_sources import TableEnergySources
|
|
101
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_fuses import TableFuses
|
|
102
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_ground_disconnectors import TableGroundDisconnectors
|
|
103
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_grounding_impedances import TableGroundingImpedances
|
|
104
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_grounds import TableGrounds
|
|
105
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_jumpers import TableJumpers
|
|
106
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_junctions import TableJunctions
|
|
107
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_linear_shunt_compensators import TableLinearShuntCompensators
|
|
108
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_load_break_switches import TableLoadBreakSwitches
|
|
109
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_per_length_phase_impedances import TablePerLengthPhaseImpedances
|
|
110
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_per_length_sequence_impedances import TablePerLengthSequenceImpedances
|
|
111
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_petersen_coils import TablePetersenCoils
|
|
112
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_phase_impedance_data import TablePhaseImpedanceData
|
|
113
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_power_electronics_connection_phases import TablePowerElectronicsConnectionPhases
|
|
114
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_power_electronics_connections import TablePowerElectronicsConnections
|
|
115
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_power_transformer_ends import TablePowerTransformerEnds
|
|
116
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_power_transformers import TablePowerTransformers
|
|
117
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_ratio_tap_changers import TableRatioTapChangers
|
|
118
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_reactive_capability_curves import TableReactiveCapabilityCurves
|
|
119
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_reclosers import TableReclosers
|
|
120
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_series_compensators import TableSeriesCompensators
|
|
121
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_static_var_compensator import TableStaticVarCompensators
|
|
122
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_synchronous_machines import TableSynchronousMachines
|
|
123
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_tap_changer_controls import TableTapChangerControls
|
|
124
|
+
from zepben.ewb.database.sqlite.tables.iec61970.base.wires.table_transformer_star_impedances import TableTransformerStarImpedances
|
|
125
|
+
from zepben.ewb.database.sqlite.tables.iec61970.infiec61970.feeder.table_circuits import TableCircuits
|
|
126
|
+
from zepben.ewb.services.network.network_service import NetworkService
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class NetworkServiceReader(BaseServiceReader):
|
|
130
|
+
"""
|
|
131
|
+
A class for reading a `NetworkService` from the database.
|
|
132
|
+
|
|
133
|
+
:param service: The `NetworkService` to populate from the database.
|
|
134
|
+
:param database_tables: The tables available in the database.
|
|
135
|
+
:param connection: A connection to the database.
|
|
136
|
+
|
|
137
|
+
:param reader: The `NetworkCimReader` used to load the objects from the database.
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
def __init__(
|
|
141
|
+
self,
|
|
142
|
+
service: NetworkService,
|
|
143
|
+
database_tables: NetworkDatabaseTables,
|
|
144
|
+
connection: Connection,
|
|
145
|
+
reader: NetworkCimReader = None
|
|
146
|
+
):
|
|
147
|
+
reader = reader if reader else NetworkCimReader(service)
|
|
148
|
+
super().__init__(database_tables, connection, reader)
|
|
149
|
+
|
|
150
|
+
# This is not strictly necessary, it is just to update the type of the reader. It could be done with a generic
|
|
151
|
+
# on the base class which looks like it works, but that actually silently breaks code insight and completion
|
|
152
|
+
self._reader = reader
|
|
153
|
+
|
|
154
|
+
def _do_load(self) -> bool:
|
|
155
|
+
return all([
|
|
156
|
+
self._load_each(TableCableInfo, self._reader.load_cable_info),
|
|
157
|
+
self._load_each(TableOverheadWireInfo, self._reader.load_overhead_wire_info),
|
|
158
|
+
self._load_each(TablePowerTransformerInfo, self._reader.load_power_transformer_info),
|
|
159
|
+
self._load_each(TableTransformerTankInfo, self._reader.load_transformer_tank_info),
|
|
160
|
+
self._load_each(TableNoLoadTests, self._reader.load_no_load_test),
|
|
161
|
+
self._load_each(TableOpenCircuitTests, self._reader.load_open_circuit_test),
|
|
162
|
+
self._load_each(TableShortCircuitTests, self._reader.load_short_circuit_test),
|
|
163
|
+
self._load_each(TableShuntCompensatorInfo, self._reader.load_shunt_compensator_info),
|
|
164
|
+
self._load_each(TableSwitchInfo, self._reader.load_switch_info),
|
|
165
|
+
self._load_each(TableTransformerEndInfo, self._reader.load_transformer_end_info),
|
|
166
|
+
self._load_each(TableCurrentTransformerInfo, self._reader.load_current_transformer_info),
|
|
167
|
+
self._load_each(TablePotentialTransformerInfo, self._reader.load_potential_transformer_info),
|
|
168
|
+
self._load_each(TableRelayInfo, self._reader.load_relay_info),
|
|
169
|
+
self._load_each(TableRecloseDelays, self._reader.load_reclose_delay),
|
|
170
|
+
self._load_each(TableLocations, self._reader.load_location),
|
|
171
|
+
self._load_each(TableOrganisations, self._reader.load_organisations),
|
|
172
|
+
self._load_each(TableAssetOwners, self._reader.load_asset_owner),
|
|
173
|
+
self._load_each(TablePoles, self._reader.load_pole),
|
|
174
|
+
self._load_each(TableStreetlights, self._reader.load_streetlight),
|
|
175
|
+
self._load_each(TablePanDemandResponseFunctions, self._reader.load_pan_demand_response_function),
|
|
176
|
+
self._load_each(TableMeters, self._reader.load_meter),
|
|
177
|
+
self._load_each(TableEndDevicesEndDeviceFunctions, self._reader.load_end_devices_end_device_functions),
|
|
178
|
+
self._load_each(TableUsagePoints, self._reader.load_usage_point),
|
|
179
|
+
self._load_each(TableOperationalRestrictions, self._reader.load_operational_restriction),
|
|
180
|
+
self._load_each(TableBaseVoltages, self._reader.load_base_voltage),
|
|
181
|
+
self._load_each(TableConnectivityNodes, self._reader.load_connectivity_node),
|
|
182
|
+
self._load_each(TableGeographicalRegions, self._reader.load_geographical_region),
|
|
183
|
+
self._load_each(TableSubGeographicalRegions, self._reader.load_sub_geographical_region),
|
|
184
|
+
self._load_each(TableSubstations, self._reader.load_substation),
|
|
185
|
+
self._load_each(TableSites, self._reader.load_site),
|
|
186
|
+
self._load_each(TablePerLengthPhaseImpedances, self._reader.load_per_length_phase_impedance),
|
|
187
|
+
self._load_each(TablePhaseImpedanceData, self._reader.load_phase_impedance_data),
|
|
188
|
+
self._load_each(TablePerLengthSequenceImpedances, self._reader.load_per_length_sequence_impedance),
|
|
189
|
+
self._load_each(TableEquivalentBranches, self._reader.load_equivalent_branch),
|
|
190
|
+
self._load_each(TableAcLineSegments, self._reader.load_ac_line_segment),
|
|
191
|
+
self._load_each(TableBreakers, self._reader.load_breaker),
|
|
192
|
+
self._load_each(TableLoadBreakSwitches, self._reader.load_load_break_switch),
|
|
193
|
+
self._load_each(TableBusbarSections, self._reader.load_busbar_section),
|
|
194
|
+
self._load_each(TableClamps, self._reader.load_clamp),
|
|
195
|
+
self._load_each(TableCuts, self._reader.load_cut),
|
|
196
|
+
self._load_each(TableCurrentRelays, self._reader.load_current_relay),
|
|
197
|
+
self._load_each(TableDistanceRelays, self._reader.load_distance_relay),
|
|
198
|
+
self._load_each(TableVoltageRelays, self._reader.load_voltage_relay),
|
|
199
|
+
self._load_each(TableProtectionRelayFunctionThresholds, self._reader.load_protection_relay_function_threshold),
|
|
200
|
+
self._load_each(TableProtectionRelayFunctionTimeLimits, self._reader.load_protection_relay_function_time_limit),
|
|
201
|
+
self._load_each(TableProtectionRelaySystems, self._reader.load_protection_relay_system),
|
|
202
|
+
self._load_each(TableProtectionRelaySchemes, self._reader.load_protection_relay_scheme),
|
|
203
|
+
self._load_each(TableDisconnectors, self._reader.load_disconnector),
|
|
204
|
+
self._load_each(TableEnergyConsumers, self._reader.load_energy_consumer),
|
|
205
|
+
self._load_each(TableEnergyConsumerPhases, self._reader.load_energy_consumer_phase),
|
|
206
|
+
self._load_each(TableEnergySources, self._reader.load_energy_source),
|
|
207
|
+
self._load_each(TableEnergySourcePhases, self._reader.load_energy_source_phase),
|
|
208
|
+
self._load_each(TableFuses, self._reader.load_fuse),
|
|
209
|
+
self._load_each(TableJumpers, self._reader.load_jumper),
|
|
210
|
+
self._load_each(TableJunctions, self._reader.load_junction),
|
|
211
|
+
self._load_each(TableGrounds, self._reader.load_ground),
|
|
212
|
+
self._load_each(TableGroundDisconnectors, self._reader.load_ground_disconnector),
|
|
213
|
+
self._load_each(TableSeriesCompensators, self._reader.load_series_compensator),
|
|
214
|
+
self._load_each(TableStaticVarCompensators, self._reader.load_static_var_compensator),
|
|
215
|
+
self._load_each(TableLinearShuntCompensators, self._reader.load_linear_shunt_compensator),
|
|
216
|
+
self._load_each(TablePowerTransformers, self._reader.load_power_transformer),
|
|
217
|
+
self._load_each(TableReclosers, self._reader.load_recloser),
|
|
218
|
+
self._load_each(TablePowerElectronicsConnections, self._reader.load_power_electronics_connection),
|
|
219
|
+
self._load_each(TableReactiveCapabilityCurves, self._reader.load_reactive_capability_curve),
|
|
220
|
+
self._load_each(TableCurveData, self._reader.load_curve_data),
|
|
221
|
+
self._load_each(TablePetersenCoils, self._reader.load_petersen_coil),
|
|
222
|
+
self._load_each(TableGroundingImpedances, self._reader.load_grounding_impedance),
|
|
223
|
+
self._load_each(TableSynchronousMachines, self._reader.load_synchronous_machine),
|
|
224
|
+
self._load_each(TableTerminals, self._reader.load_terminal),
|
|
225
|
+
self._load_each(TableTapChangerControls, self._reader.load_tap_changer_control),
|
|
226
|
+
self._load_each(TablePowerElectronicsConnectionPhases, self._reader.load_power_electronics_connection_phase),
|
|
227
|
+
self._load_each(TableBatteryControls, self._reader.load_battery_controls),
|
|
228
|
+
self._load_each(TableBatteryUnits, self._reader.load_battery_unit),
|
|
229
|
+
self._load_each(TableBatteryUnitsBatteryControls, self._reader.load_battery_units_battery_controls),
|
|
230
|
+
self._load_each(TablePhotoVoltaicUnits, self._reader.load_photo_voltaic_unit),
|
|
231
|
+
self._load_each(TablePowerElectronicsWindUnits, self._reader.load_power_electronics_wind_unit),
|
|
232
|
+
self._load_each(TableEvChargingUnits, self._reader.load_ev_charging_unit),
|
|
233
|
+
self._load_each(TableTransformerStarImpedances, self._reader.load_transformer_star_impedance),
|
|
234
|
+
self._load_each(TablePowerTransformerEnds, self._reader.load_power_transformer_end),
|
|
235
|
+
self._load_each(TablePowerTransformerEndRatings, self._reader.load_power_transformer_end_rating),
|
|
236
|
+
self._load_each(TableRatioTapChangers, self._reader.load_ratio_tap_changer),
|
|
237
|
+
self._load_each(TableCurrentTransformers, self._reader.load_current_transformer),
|
|
238
|
+
self._load_each(TableFaultIndicators, self._reader.load_fault_indicator),
|
|
239
|
+
self._load_each(TablePotentialTransformers, self._reader.load_potential_transformer),
|
|
240
|
+
self._load_each(TableFeeders, self._reader.load_feeder),
|
|
241
|
+
self._load_each(TableLoops, self._reader.load_loop),
|
|
242
|
+
self._load_each(TableLvFeeders, self._reader.load_lv_feeder),
|
|
243
|
+
self._load_each(TableCircuits, self._reader.load_circuit),
|
|
244
|
+
self._load_each(TablePositionPoints, self._reader.load_position_point),
|
|
245
|
+
self._load_each(TableLocationStreetAddresses, self._reader.load_location_street_address),
|
|
246
|
+
self._load_each(TableAssetOrganisationRolesAssets, self._reader.load_asset_organisation_roles_asset),
|
|
247
|
+
self._load_each(TableAssetsPowerSystemResources, self._reader.load_asset_power_system_resources),
|
|
248
|
+
self._load_each(TableUsagePointsEndDevices, self._reader.load_usage_points_end_device),
|
|
249
|
+
self._load_each(TableEquipmentUsagePoints, self._reader.load_equipment_usage_point),
|
|
250
|
+
self._load_each(TableEquipmentOperationalRestrictions, self._reader.load_equipment_operational_restriction),
|
|
251
|
+
self._load_each(TableEquipmentEquipmentContainers, self._reader.load_equipment_equipment_container),
|
|
252
|
+
self._load_each(TableCircuitsSubstations, self._reader.load_circuits_substation),
|
|
253
|
+
self._load_each(TableCircuitsTerminals, self._reader.load_circuits_terminal),
|
|
254
|
+
self._load_each(TableLoopsSubstations, self._reader.load_loops_substation),
|
|
255
|
+
self._load_each(TableProtectionRelayFunctionsProtectedSwitches, self._reader.load_protection_relay_functions_protected_switch),
|
|
256
|
+
self._load_each(TableProtectionRelayFunctionsSensors, self._reader.load_protection_relay_functions_sensor),
|
|
257
|
+
self._load_each(TableProtectionRelaySchemesProtectionRelayFunctions, self._reader.load_protection_relay_schemes_protection_relay_function),
|
|
258
|
+
self._load_each(TableSynchronousMachinesReactiveCapabilityCurves, self._reader.load_synchronous_machines_reactive_capability_curve),
|
|
259
|
+
self._load_each(TableControls, self._reader.load_control),
|
|
260
|
+
self._load_each(TableRemoteControls, self._reader.load_remote_control),
|
|
261
|
+
self._load_each(TableRemoteSources, self._reader.load_remote_source),
|
|
262
|
+
self._load_each(TableAnalogs, self._reader.load_analog),
|
|
263
|
+
self._load_each(TableAccumulators, self._reader.load_accumulator),
|
|
264
|
+
self._load_each(TableDiscretes, self._reader.load_discrete),
|
|
265
|
+
])
|
|
@@ -0,0 +1,209 @@
|
|
|
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__ = ["NetworkServiceWriter"]
|
|
7
|
+
|
|
8
|
+
from zepben.ewb.database.sqlite.common.base_service_writer import BaseServiceWriter
|
|
9
|
+
from zepben.ewb.database.sqlite.network.network_cim_writer import NetworkCimWriter
|
|
10
|
+
from zepben.ewb.database.sqlite.network.network_database_tables import NetworkDatabaseTables
|
|
11
|
+
from zepben.ewb.model.cim.extensions.iec61968.assetinfo.relay_info import RelayInfo
|
|
12
|
+
from zepben.ewb.model.cim.extensions.iec61968.metering.pan_demand_reponse_function import PanDemandResponseFunction
|
|
13
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.core.site import Site
|
|
14
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.feeder.loop import Loop
|
|
15
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.feeder.lv_feeder import LvFeeder
|
|
16
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.generation.production.ev_charging_unit import EvChargingUnit
|
|
17
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.protection.distance_relay import DistanceRelay
|
|
18
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.protection.protection_relay_scheme import ProtectionRelayScheme
|
|
19
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.protection.protection_relay_system import ProtectionRelaySystem
|
|
20
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.protection.voltage_relay import VoltageRelay
|
|
21
|
+
from zepben.ewb.model.cim.extensions.iec61970.base.wires.battery_control import BatteryControl
|
|
22
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.cable_info import CableInfo
|
|
23
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.no_load_test import NoLoadTest
|
|
24
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.open_circuit_test import OpenCircuitTest
|
|
25
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.overhead_wire_info import OverheadWireInfo
|
|
26
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.power_transformer_info import PowerTransformerInfo
|
|
27
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.short_circuit_test import ShortCircuitTest
|
|
28
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.shunt_compensator_info import ShuntCompensatorInfo
|
|
29
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.switch_info import SwitchInfo
|
|
30
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.transformer_end_info import TransformerEndInfo
|
|
31
|
+
from zepben.ewb.model.cim.iec61968.assetinfo.transformer_tank_info import TransformerTankInfo
|
|
32
|
+
from zepben.ewb.model.cim.iec61968.assets.asset_owner import AssetOwner
|
|
33
|
+
from zepben.ewb.model.cim.iec61968.assets.streetlight import Streetlight
|
|
34
|
+
from zepben.ewb.model.cim.iec61968.common.location import Location
|
|
35
|
+
from zepben.ewb.model.cim.iec61968.common.organisation import Organisation
|
|
36
|
+
from zepben.ewb.model.cim.iec61968.infiec61968.infassetinfo.current_transformer_info import CurrentTransformerInfo
|
|
37
|
+
from zepben.ewb.model.cim.iec61968.infiec61968.infassetinfo.potential_transformer_info import PotentialTransformerInfo
|
|
38
|
+
from zepben.ewb.model.cim.iec61968.infiec61968.infassets.pole import Pole
|
|
39
|
+
from zepben.ewb.model.cim.iec61968.metering.meter import Meter
|
|
40
|
+
from zepben.ewb.model.cim.iec61968.metering.usage_point import UsagePoint
|
|
41
|
+
from zepben.ewb.model.cim.iec61968.operations.operational_restriction import OperationalRestriction
|
|
42
|
+
from zepben.ewb.model.cim.iec61970.base.auxiliaryequipment.current_transformer import CurrentTransformer
|
|
43
|
+
from zepben.ewb.model.cim.iec61970.base.auxiliaryequipment.fault_indicator import FaultIndicator
|
|
44
|
+
from zepben.ewb.model.cim.iec61970.base.auxiliaryequipment.potential_transformer import PotentialTransformer
|
|
45
|
+
from zepben.ewb.model.cim.iec61970.base.core.base_voltage import BaseVoltage
|
|
46
|
+
from zepben.ewb.model.cim.iec61970.base.core.connectivity_node import ConnectivityNode
|
|
47
|
+
from zepben.ewb.model.cim.iec61970.base.core.feeder import Feeder
|
|
48
|
+
from zepben.ewb.model.cim.iec61970.base.core.geographical_region import GeographicalRegion
|
|
49
|
+
from zepben.ewb.model.cim.iec61970.base.core.sub_geographical_region import SubGeographicalRegion
|
|
50
|
+
from zepben.ewb.model.cim.iec61970.base.core.substation import Substation
|
|
51
|
+
from zepben.ewb.model.cim.iec61970.base.core.terminal import Terminal
|
|
52
|
+
from zepben.ewb.model.cim.iec61970.base.equivalents.equivalent_branch import EquivalentBranch
|
|
53
|
+
from zepben.ewb.model.cim.iec61970.base.generation.production.battery_unit import BatteryUnit
|
|
54
|
+
from zepben.ewb.model.cim.iec61970.base.generation.production.photo_voltaic_unit import PhotoVoltaicUnit
|
|
55
|
+
from zepben.ewb.model.cim.iec61970.base.generation.production.power_electronics_wind_unit import PowerElectronicsWindUnit
|
|
56
|
+
from zepben.ewb.model.cim.iec61970.base.meas.accumulator import Accumulator
|
|
57
|
+
from zepben.ewb.model.cim.iec61970.base.meas.analog import Analog
|
|
58
|
+
from zepben.ewb.model.cim.iec61970.base.meas.control import Control
|
|
59
|
+
from zepben.ewb.model.cim.iec61970.base.meas.discrete import Discrete
|
|
60
|
+
from zepben.ewb.model.cim.iec61970.base.protection.current_relay import CurrentRelay
|
|
61
|
+
from zepben.ewb.model.cim.iec61970.base.scada.remote_control import RemoteControl
|
|
62
|
+
from zepben.ewb.model.cim.iec61970.base.scada.remote_source import RemoteSource
|
|
63
|
+
from zepben.ewb.model.cim.iec61970.base.wires.ac_line_segment import AcLineSegment
|
|
64
|
+
from zepben.ewb.model.cim.iec61970.base.wires.breaker import Breaker
|
|
65
|
+
from zepben.ewb.model.cim.iec61970.base.wires.busbar_section import BusbarSection
|
|
66
|
+
from zepben.ewb.model.cim.iec61970.base.wires.clamp import Clamp
|
|
67
|
+
from zepben.ewb.model.cim.iec61970.base.wires.cut import Cut
|
|
68
|
+
from zepben.ewb.model.cim.iec61970.base.wires.disconnector import Disconnector
|
|
69
|
+
from zepben.ewb.model.cim.iec61970.base.wires.energy_consumer import EnergyConsumer
|
|
70
|
+
from zepben.ewb.model.cim.iec61970.base.wires.energy_consumer_phase import EnergyConsumerPhase
|
|
71
|
+
from zepben.ewb.model.cim.iec61970.base.wires.energy_source import EnergySource
|
|
72
|
+
from zepben.ewb.model.cim.iec61970.base.wires.energy_source_phase import EnergySourcePhase
|
|
73
|
+
from zepben.ewb.model.cim.iec61970.base.wires.fuse import Fuse
|
|
74
|
+
from zepben.ewb.model.cim.iec61970.base.wires.ground import Ground
|
|
75
|
+
from zepben.ewb.model.cim.iec61970.base.wires.ground_disconnector import GroundDisconnector
|
|
76
|
+
from zepben.ewb.model.cim.iec61970.base.wires.grounding_impedance import GroundingImpedance
|
|
77
|
+
from zepben.ewb.model.cim.iec61970.base.wires.jumper import Jumper
|
|
78
|
+
from zepben.ewb.model.cim.iec61970.base.wires.junction import Junction
|
|
79
|
+
from zepben.ewb.model.cim.iec61970.base.wires.linear_shunt_compensator import LinearShuntCompensator
|
|
80
|
+
from zepben.ewb.model.cim.iec61970.base.wires.load_break_switch import LoadBreakSwitch
|
|
81
|
+
from zepben.ewb.model.cim.iec61970.base.wires.per_length_phase_impedance import PerLengthPhaseImpedance
|
|
82
|
+
from zepben.ewb.model.cim.iec61970.base.wires.per_length_sequence_impedance import PerLengthSequenceImpedance
|
|
83
|
+
from zepben.ewb.model.cim.iec61970.base.wires.petersen_coil import PetersenCoil
|
|
84
|
+
from zepben.ewb.model.cim.iec61970.base.wires.power_electronics_connection import PowerElectronicsConnection
|
|
85
|
+
from zepben.ewb.model.cim.iec61970.base.wires.power_electronics_connection_phase import PowerElectronicsConnectionPhase
|
|
86
|
+
from zepben.ewb.model.cim.iec61970.base.wires.power_transformer import PowerTransformer
|
|
87
|
+
from zepben.ewb.model.cim.iec61970.base.wires.power_transformer_end import PowerTransformerEnd
|
|
88
|
+
from zepben.ewb.model.cim.iec61970.base.wires.ratio_tap_changer import RatioTapChanger
|
|
89
|
+
from zepben.ewb.model.cim.iec61970.base.wires.reactive_capability_curve import ReactiveCapabilityCurve
|
|
90
|
+
from zepben.ewb.model.cim.iec61970.base.wires.recloser import Recloser
|
|
91
|
+
from zepben.ewb.model.cim.iec61970.base.wires.series_compensator import SeriesCompensator
|
|
92
|
+
from zepben.ewb.model.cim.iec61970.base.wires.static_var_compensator import StaticVarCompensator
|
|
93
|
+
from zepben.ewb.model.cim.iec61970.base.wires.synchronous_machine import SynchronousMachine
|
|
94
|
+
from zepben.ewb.model.cim.iec61970.base.wires.tap_changer_control import TapChangerControl
|
|
95
|
+
from zepben.ewb.model.cim.iec61970.base.wires.transformer_star_impedance import TransformerStarImpedance
|
|
96
|
+
from zepben.ewb.model.cim.iec61970.infiec61970.feeder.circuit import Circuit
|
|
97
|
+
from zepben.ewb.services.network.network_service import NetworkService
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class NetworkServiceWriter(BaseServiceWriter):
|
|
101
|
+
"""
|
|
102
|
+
A class for writing a `NetworkService` into the database.
|
|
103
|
+
|
|
104
|
+
:param service: The `NetworkService` to save to the database.
|
|
105
|
+
:param database_tables: The `NetworkDatabaseTables` to add to the database.
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
def __init__(
|
|
109
|
+
self,
|
|
110
|
+
service: NetworkService,
|
|
111
|
+
database_tables: NetworkDatabaseTables,
|
|
112
|
+
writer: NetworkCimWriter = None
|
|
113
|
+
):
|
|
114
|
+
writer = writer if writer is not None else NetworkCimWriter(database_tables)
|
|
115
|
+
super().__init__(service, writer)
|
|
116
|
+
|
|
117
|
+
# This is not strictly necessary, it is just to update the type of the writer. It could be done with a generic
|
|
118
|
+
# on the base class which looks like it works, but that actually silently breaks code insight and completion
|
|
119
|
+
self._writer = writer
|
|
120
|
+
|
|
121
|
+
def _do_save(self) -> bool:
|
|
122
|
+
return all([
|
|
123
|
+
self._save_each_object(CableInfo, self._writer.save_cable_info),
|
|
124
|
+
self._save_each_object(OverheadWireInfo, self._writer.save_overhead_wire_info),
|
|
125
|
+
self._save_each_object(PowerTransformerInfo, self._writer.save_power_transformer_info),
|
|
126
|
+
self._save_each_object(TransformerTankInfo, self._writer.save_transformer_tank_info),
|
|
127
|
+
self._save_each_object(NoLoadTest, self._writer.save_no_load_test),
|
|
128
|
+
self._save_each_object(OpenCircuitTest, self._writer.save_open_circuit_test),
|
|
129
|
+
self._save_each_object(ShortCircuitTest, self._writer.save_short_circuit_test),
|
|
130
|
+
self._save_each_object(ShuntCompensatorInfo, self._writer.save_shunt_compensator_info),
|
|
131
|
+
self._save_each_object(SwitchInfo, self._writer.save_switch_info),
|
|
132
|
+
self._save_each_object(TransformerEndInfo, self._writer.save_transformer_end_info),
|
|
133
|
+
self._save_each_object(AssetOwner, self._writer.save_asset_owner),
|
|
134
|
+
self._save_each_object(Pole, self._writer.save_pole),
|
|
135
|
+
self._save_each_object(Streetlight, self._writer.save_streetlight),
|
|
136
|
+
self._save_each_object(Location, self._writer.save_location),
|
|
137
|
+
self._save_each_object(Organisation, self._writer.save_organisation),
|
|
138
|
+
self._save_each_object(Meter, self._writer.save_meter),
|
|
139
|
+
self._save_each_object(UsagePoint, self._writer.save_usage_point),
|
|
140
|
+
self._save_each_object(OperationalRestriction, self._writer.save_operational_restriction),
|
|
141
|
+
self._save_each_object(FaultIndicator, self._writer.save_fault_indicator),
|
|
142
|
+
self._save_each_object(BaseVoltage, self._writer.save_base_voltage),
|
|
143
|
+
self._save_each_object(ConnectivityNode, self._writer.save_connectivity_node),
|
|
144
|
+
self._save_each_object(Feeder, self._writer.save_feeder),
|
|
145
|
+
self._save_each_object(GeographicalRegion, self._writer.save_geographical_region),
|
|
146
|
+
self._save_each_object(Site, self._writer.save_site),
|
|
147
|
+
self._save_each_object(SubGeographicalRegion, self._writer.save_sub_geographical_region),
|
|
148
|
+
self._save_each_object(Substation, self._writer.save_substation),
|
|
149
|
+
self._save_each_object(Terminal, self._writer.save_terminal),
|
|
150
|
+
self._save_each_object(EquivalentBranch, self._writer.save_equivalent_branch),
|
|
151
|
+
self._save_each_object(BatteryUnit, self._writer.save_battery_unit),
|
|
152
|
+
self._save_each_object(PhotoVoltaicUnit, self._writer.save_photo_voltaic_unit),
|
|
153
|
+
self._save_each_object(PowerElectronicsWindUnit, self._writer.save_power_electronics_wind_unit),
|
|
154
|
+
self._save_each_object(AcLineSegment, self._writer.save_ac_line_segment),
|
|
155
|
+
self._save_each_object(Breaker, self._writer.save_breaker),
|
|
156
|
+
self._save_each_object(LoadBreakSwitch, self._writer.save_load_break_switch),
|
|
157
|
+
self._save_each_object(BusbarSection, self._writer.save_busbar_section),
|
|
158
|
+
self._save_each_object(Clamp, self._writer.save_clamp),
|
|
159
|
+
self._save_each_object(Cut, self._writer.save_cut),
|
|
160
|
+
self._save_each_object(Disconnector, self._writer.save_disconnector),
|
|
161
|
+
self._save_each_object(EnergyConsumer, self._writer.save_energy_consumer),
|
|
162
|
+
self._save_each_object(EnergyConsumerPhase, self._writer.save_energy_consumer_phase),
|
|
163
|
+
self._save_each_object(EnergySource, self._writer.save_energy_source),
|
|
164
|
+
self._save_each_object(EnergySourcePhase, self._writer.save_energy_source_phase),
|
|
165
|
+
self._save_each_object(Fuse, self._writer.save_fuse),
|
|
166
|
+
self._save_each_object(Jumper, self._writer.save_jumper),
|
|
167
|
+
self._save_each_object(Junction, self._writer.save_junction),
|
|
168
|
+
self._save_each_object(LinearShuntCompensator, self._writer.save_linear_shunt_compensator),
|
|
169
|
+
self._save_each_object(PerLengthPhaseImpedance, self._writer.save_per_length_phase_impedance),
|
|
170
|
+
self._save_each_object(PerLengthSequenceImpedance, self._writer.save_per_length_sequence_impedance),
|
|
171
|
+
self._save_each_object(PowerElectronicsConnection, self._writer.save_power_electronics_connection),
|
|
172
|
+
self._save_each_object(PowerElectronicsConnectionPhase, self._writer.save_power_electronics_connection_phase),
|
|
173
|
+
self._save_each_object(PowerTransformer, self._writer.save_power_transformer),
|
|
174
|
+
self._save_each_object(PowerTransformerEnd, self._writer.save_power_transformer_end),
|
|
175
|
+
self._save_each_object(RatioTapChanger, self._writer.save_ratio_tap_changer),
|
|
176
|
+
self._save_each_object(Recloser, self._writer.save_recloser),
|
|
177
|
+
self._save_each_object(TransformerStarImpedance, self._writer.save_transformer_star_impedance),
|
|
178
|
+
self._save_each_object(Circuit, self._writer.save_circuit),
|
|
179
|
+
self._save_each_object(Loop, self._writer.save_loop),
|
|
180
|
+
self._save_each_object(LvFeeder, self._writer.save_lv_feeder),
|
|
181
|
+
self._save_each_object(Analog, self._writer.save_analog),
|
|
182
|
+
self._save_each_object(Accumulator, self._writer.save_accumulator),
|
|
183
|
+
self._save_each_object(Discrete, self._writer.save_discrete),
|
|
184
|
+
self._save_each_object(Control, self._writer.save_control),
|
|
185
|
+
self._save_each_object(RemoteControl, self._writer.save_remote_control),
|
|
186
|
+
self._save_each_object(RemoteSource, self._writer.save_remote_source),
|
|
187
|
+
self._save_each_object(CurrentTransformerInfo, self._writer.save_current_transformer_info),
|
|
188
|
+
self._save_each_object(PotentialTransformerInfo, self._writer.save_potential_transformer_info),
|
|
189
|
+
self._save_each_object(CurrentTransformer, self._writer.save_current_transformer),
|
|
190
|
+
self._save_each_object(PotentialTransformer, self._writer.save_potential_transformer),
|
|
191
|
+
self._save_each_object(RelayInfo, self._writer.save_relay_info),
|
|
192
|
+
self._save_each_object(CurrentRelay, self._writer.save_current_relay),
|
|
193
|
+
self._save_each_object(TapChangerControl, self._writer.save_tap_changer_control),
|
|
194
|
+
self._save_each_object(EvChargingUnit, self._writer.save_ev_charging_unit),
|
|
195
|
+
self._save_each_object(DistanceRelay, self._writer.save_distance_relay),
|
|
196
|
+
self._save_each_object(ProtectionRelayScheme, self._writer.save_protection_relay_scheme),
|
|
197
|
+
self._save_each_object(ProtectionRelaySystem, self._writer.save_protection_relay_system),
|
|
198
|
+
self._save_each_object(VoltageRelay, self._writer.save_voltage_relay),
|
|
199
|
+
self._save_each_object(Ground, self._writer.save_ground),
|
|
200
|
+
self._save_each_object(GroundDisconnector, self._writer.save_ground_disconnector),
|
|
201
|
+
self._save_each_object(SeriesCompensator, self._writer.save_series_compensator),
|
|
202
|
+
self._save_each_object(SynchronousMachine, self._writer.save_synchronous_machine),
|
|
203
|
+
self._save_each_object(PetersenCoil, self._writer.save_petersen_coil),
|
|
204
|
+
self._save_each_object(GroundingImpedance, self._writer.save_grounding_impedance),
|
|
205
|
+
self._save_each_object(ReactiveCapabilityCurve, self._writer.save_reactive_capability_curve),
|
|
206
|
+
self._save_each_object(PanDemandResponseFunction, self._writer.save_pan_demand_response_function),
|
|
207
|
+
self._save_each_object(BatteryControl, self._writer.save_battery_control),
|
|
208
|
+
self._save_each_object(StaticVarCompensator, self._writer.save_static_var_compensator),
|
|
209
|
+
])
|
|
@@ -0,0 +1,17 @@
|
|
|
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__ = ["LoopSubstationRelationship"]
|
|
7
|
+
|
|
8
|
+
from enum import Enum
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class LoopSubstationRelationship(Enum):
|
|
12
|
+
SUBSTATION_ENERGIZES_LOOP = 0
|
|
13
|
+
LOOP_ENERGIZES_SUBSTATION = 1
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def short_name(self):
|
|
17
|
+
return str(self)[27:]
|
|
@@ -0,0 +1,40 @@
|
|
|
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__ = ["TableAssetOrganisationRolesAssets"]
|
|
7
|
+
|
|
8
|
+
from typing import List, Generator
|
|
9
|
+
|
|
10
|
+
from zepben.ewb.database.sqlite.tables.column import Column, Nullable
|
|
11
|
+
from zepben.ewb.database.sqlite.tables.sqlite_table import SqliteTable
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class TableAssetOrganisationRolesAssets(SqliteTable):
|
|
15
|
+
"""
|
|
16
|
+
A class representing the association between AssetOrganisationRoles and Assets.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self):
|
|
20
|
+
super().__init__()
|
|
21
|
+
self.asset_organisation_role_mrid: Column = self._create_column("asset_organisation_role_mrid", "TEXT", Nullable.NOT_NULL)
|
|
22
|
+
"""A column storing the mRID of AssetOrganisationRoles."""
|
|
23
|
+
|
|
24
|
+
self.asset_mrid: Column = self._create_column("asset_mrid", "TEXT", Nullable.NOT_NULL)
|
|
25
|
+
"""A column storing the mRID of Assets."""
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def name(self) -> str:
|
|
29
|
+
return "asset_organisation_roles_assets"
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def unique_index_columns(self) -> Generator[List[Column], None, None]:
|
|
33
|
+
yield from super().unique_index_columns
|
|
34
|
+
yield [self.asset_organisation_role_mrid, self.asset_mrid]
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def non_unique_index_columns(self) -> Generator[List[Column], None, None]:
|
|
38
|
+
yield from super().non_unique_index_columns
|
|
39
|
+
yield [self.asset_organisation_role_mrid]
|
|
40
|
+
yield [self.asset_mrid]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Copyright 2025 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__ = ["TableAssetsPowerSystemResources"]
|
|
7
|
+
|
|
8
|
+
from typing import List, Generator
|
|
9
|
+
|
|
10
|
+
from zepben.ewb.database.sqlite.tables.column import Column, Nullable
|
|
11
|
+
from zepben.ewb.database.sqlite.tables.sqlite_table import SqliteTable
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class TableAssetsPowerSystemResources(SqliteTable):
|
|
15
|
+
"""
|
|
16
|
+
A class representing the association between AssetOrganisationRoles and Assets.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self):
|
|
20
|
+
super().__init__()
|
|
21
|
+
|
|
22
|
+
self.asset_mrid: Column = self._create_column("asset_mrid", "TEXT", Nullable.NOT_NULL)
|
|
23
|
+
"""A column storing the mRID of Assets."""
|
|
24
|
+
|
|
25
|
+
self.power_system_resource_mrid: Column = self._create_column("power_system_resource_mrid", "TEXT", Nullable.NOT_NULL)
|
|
26
|
+
"""A column storing the mRID of PowerSystemResources."""
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def name(self) -> str:
|
|
30
|
+
return "assets_power_system_resources"
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def unique_index_columns(self) -> Generator[List[Column], None, None]:
|
|
34
|
+
yield from super().unique_index_columns
|
|
35
|
+
yield [self.asset_mrid, self.power_system_resource_mrid]
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def non_unique_index_columns(self) -> Generator[List[Column], None, None]:
|
|
39
|
+
yield from super().non_unique_index_columns
|
|
40
|
+
yield [self.asset_mrid]
|
|
41
|
+
yield [self.power_system_resource_mrid]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Copyright 2025 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__ = ["TableBatteryUnitsBatteryControls"]
|
|
7
|
+
|
|
8
|
+
from typing import List, Generator
|
|
9
|
+
|
|
10
|
+
from zepben.ewb.database.sqlite.tables.column import Column, Nullable
|
|
11
|
+
from zepben.ewb.database.sqlite.tables.sqlite_table import SqliteTable
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class TableBatteryUnitsBatteryControls(SqliteTable):
|
|
15
|
+
"""
|
|
16
|
+
A class representing the association between BatteryUnits and BatteryControls.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self):
|
|
20
|
+
super().__init__()
|
|
21
|
+
self.battery_unit_mrid: Column = self._create_column("battery_unit_mrid", "TEXT", Nullable.NOT_NULL)
|
|
22
|
+
"""A column storing the mRID of BatteryUnits."""
|
|
23
|
+
|
|
24
|
+
self.battery_control_mrid: Column = self._create_column("battery_control_mrid", "TEXT", Nullable.NOT_NULL)
|
|
25
|
+
"""A column storing the mRID of BatteryControls."""
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def name(self) -> str:
|
|
29
|
+
return "battery_units_battery_controls"
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def unique_index_columns(self) -> Generator[List[Column], None, None]:
|
|
33
|
+
yield from super().unique_index_columns
|
|
34
|
+
yield [self.battery_unit_mrid, self.battery_control_mrid]
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def non_unique_index_columns(self) -> Generator[List[Column], None, None]:
|
|
38
|
+
yield from super().non_unique_index_columns
|
|
39
|
+
yield [self.battery_unit_mrid]
|
|
40
|
+
yield [self.battery_control_mrid]
|