|
17 | 17 | from werkzeug import Response |
18 | 18 | from zepben.auth import ZepbenTokenFetcher |
19 | 19 |
|
20 | | -from zepben.eas import EasClient, Study, FeederConfig, ForecastConfig, FixedTimeLoadOverride |
21 | 20 | from zepben.eas import EasClient, Study, SolveConfig |
22 | | -from zepben.eas.client.opendss import OpenDssConfig, GetOpenDssModelsFilterInput, OpenDssModelState, GetOpenDssModelsSortCriteriaInput, \ |
| 21 | +from zepben.eas import FeederConfig, ForecastConfig, FixedTimeLoadOverride |
| 22 | +from zepben.eas.client.opendss import OpenDssConfig, GetOpenDssModelsFilterInput, OpenDssModelState, \ |
| 23 | + GetOpenDssModelsSortCriteriaInput, \ |
23 | 24 | Order |
24 | 25 | from zepben.eas.client.study import Result |
25 | | -from zepben.eas.client.work_package import WorkPackageConfig, TimePeriod, FeederConfigs, TimePeriodLoadOverride, \ |
| 26 | +from zepben.eas.client.work_package import FeederConfigs, TimePeriodLoadOverride, \ |
26 | 27 | FixedTime |
27 | 28 | from zepben.eas.client.work_package import WorkPackageConfig, TimePeriod, GeneratorConfig, ModelConfig, \ |
28 | 29 | FeederScenarioAllocationStrategy, LoadPlacement, MeterPlacementConfig, SwitchMeterPlacementConfig, SwitchClass, \ |
@@ -829,15 +830,15 @@ def run_opendss_export_request_handler(request): |
829 | 830 | "loadPlacement": "PER_USAGE_POINT", |
830 | 831 | "loadIntervalLengthHours": 0.5, |
831 | 832 | "meterPlacementConfig": { |
832 | | - "feederHead": True, |
833 | | - "distTransformers": True, |
834 | | - "switchMeterPlacementConfigs": [ |
835 | | - { |
836 | | - "meterSwitchClass": "LOAD_BREAK_SWITCH", |
837 | | - "namePattern": ".*" |
838 | | - } |
839 | | - ], |
840 | | - "energyConsumerMeterGroup": "meter group 1" |
| 833 | + "feederHead": True, |
| 834 | + "distTransformers": True, |
| 835 | + "switchMeterPlacementConfigs": [ |
| 836 | + { |
| 837 | + "meterSwitchClass": "LOAD_BREAK_SWITCH", |
| 838 | + "namePattern": ".*" |
| 839 | + } |
| 840 | + ], |
| 841 | + "energyConsumerMeterGroup": "meter group 1" |
841 | 842 | }, |
842 | 843 | "seed": 42, |
843 | 844 | "defaultLoadWatts": [100.0, 200.0, 300.0], |
@@ -875,91 +876,91 @@ def run_opendss_export_request_handler(request): |
875 | 876 |
|
876 | 877 |
|
877 | 878 | OPENDSS_CONFIG = OpenDssConfig( |
878 | | - scenario="scenario1", |
879 | | - year=2024, |
880 | | - feeder="feeder1", |
881 | | - time_zone=timezone(timedelta(hours=10)), |
882 | | - load_time=TimePeriod( |
883 | | - datetime(2022, 4, 1), |
884 | | - datetime(2023, 4, 1) |
885 | | - ), |
886 | | - model_name="TEST OPENDSS MODEL 1", |
887 | | - generator_config=GeneratorConfig( |
888 | | - ModelConfig( |
889 | | - vm_pu=1.0, |
890 | | - vmin_pu=0.80, |
891 | | - vmax_pu=1.15, |
892 | | - load_model=1, |
893 | | - collapse_swer=False, |
894 | | - calibration=False, |
895 | | - p_factor_base_exports=0.95, |
896 | | - p_factor_base_imports=0.90, |
897 | | - p_factor_forecast_pv=1.0, |
898 | | - fix_single_phase_loads=True, |
899 | | - max_single_phase_load=30000.0, |
900 | | - fix_overloading_consumers=True, |
901 | | - max_load_tx_ratio=3.0, |
902 | | - max_gen_tx_ratio=10.0, |
903 | | - fix_undersized_service_lines=True, |
904 | | - max_load_service_line_ratio=1.5, |
905 | | - max_load_lv_line_ratio=2.0, |
906 | | - collapse_lv_networks=False, |
907 | | - feeder_scenario_allocation_strategy=FeederScenarioAllocationStrategy.ADDITIVE, |
908 | | - closed_loop_v_reg_enabled=True, |
909 | | - closed_loop_v_reg_replace_all=True, |
910 | | - closed_loop_v_reg_set_point=0.985, |
911 | | - closed_loop_v_band=2.0, |
912 | | - closed_loop_time_delay=100, |
913 | | - closed_loop_v_limit=1.1, |
914 | | - default_tap_changer_time_delay=100, |
915 | | - default_tap_changer_set_point_pu=1.0, |
916 | | - default_tap_changer_band=2.0, |
917 | | - split_phase_default_load_loss_percentage=0.4, |
918 | | - split_phase_lv_kv=0.25, |
919 | | - swer_voltage_to_line_voltage= [ |
920 | | - [230, 400], |
921 | | - [240, 415], |
922 | | - [250, 433], |
923 | | - [6350, 11000], |
924 | | - [6400, 11000], |
925 | | - [12700, 22000], |
926 | | - [19100, 33000] |
927 | | - ], |
928 | | - load_placement=LoadPlacement.PER_USAGE_POINT, |
929 | | - load_interval_length_hours=0.5, |
930 | | - meter_placement_config=MeterPlacementConfig( |
931 | | - True, |
932 | | - True, |
933 | | - [SwitchMeterPlacementConfig(SwitchClass.LOAD_BREAK_SWITCH, ".*")], |
934 | | - "meter group 1"), |
935 | | - seed=42, |
936 | | - default_load_watts=[100.0, 200.0, 300.0], |
937 | | - default_gen_watts=[50.0, 150.0, 250.0], |
938 | | - default_load_var=[10.0, 20.0, 30.0], |
939 | | - default_gen_var=[5.0, 15.0, 25.0], |
940 | | - transformer_tap_settings="tap-3" |
941 | | - ), |
942 | | - SolveConfig( |
943 | | - norm_vmin_pu=0.9, |
944 | | - norm_vmax_pu=1.054, |
945 | | - emerg_vmin_pu=0.8, |
946 | | - emerg_vmax_pu=1.1, |
947 | | - base_frequency=50, |
948 | | - voltage_bases=[0.4, 0.433, 6.6, 11.0, 22.0, 33.0, 66.0, 132.0], |
949 | | - max_iter=25, |
950 | | - max_control_iter=20, |
951 | | - mode=SolveMode.YEARLY, |
952 | | - step_size_minutes=60 |
953 | | - ), |
954 | | - RawResultsConfig( |
955 | | - energy_meter_voltages_raw=True, |
956 | | - energy_meters_raw=True, |
957 | | - results_per_meter=True, |
958 | | - overloads_raw=True, |
959 | | - voltage_exceptions_raw=True |
960 | | - ) |
961 | | - ), |
962 | | - is_public=True) |
| 879 | + scenario="scenario1", |
| 880 | + year=2024, |
| 881 | + feeder="feeder1", |
| 882 | + time_zone=timezone(timedelta(hours=10)), |
| 883 | + load_time=TimePeriod( |
| 884 | + datetime(2022, 4, 1), |
| 885 | + datetime(2023, 4, 1) |
| 886 | + ), |
| 887 | + model_name="TEST OPENDSS MODEL 1", |
| 888 | + generator_config=GeneratorConfig( |
| 889 | + ModelConfig( |
| 890 | + vm_pu=1.0, |
| 891 | + vmin_pu=0.80, |
| 892 | + vmax_pu=1.15, |
| 893 | + load_model=1, |
| 894 | + collapse_swer=False, |
| 895 | + calibration=False, |
| 896 | + p_factor_base_exports=0.95, |
| 897 | + p_factor_base_imports=0.90, |
| 898 | + p_factor_forecast_pv=1.0, |
| 899 | + fix_single_phase_loads=True, |
| 900 | + max_single_phase_load=30000.0, |
| 901 | + fix_overloading_consumers=True, |
| 902 | + max_load_tx_ratio=3.0, |
| 903 | + max_gen_tx_ratio=10.0, |
| 904 | + fix_undersized_service_lines=True, |
| 905 | + max_load_service_line_ratio=1.5, |
| 906 | + max_load_lv_line_ratio=2.0, |
| 907 | + collapse_lv_networks=False, |
| 908 | + feeder_scenario_allocation_strategy=FeederScenarioAllocationStrategy.ADDITIVE, |
| 909 | + closed_loop_v_reg_enabled=True, |
| 910 | + closed_loop_v_reg_replace_all=True, |
| 911 | + closed_loop_v_reg_set_point=0.985, |
| 912 | + closed_loop_v_band=2.0, |
| 913 | + closed_loop_time_delay=100, |
| 914 | + closed_loop_v_limit=1.1, |
| 915 | + default_tap_changer_time_delay=100, |
| 916 | + default_tap_changer_set_point_pu=1.0, |
| 917 | + default_tap_changer_band=2.0, |
| 918 | + split_phase_default_load_loss_percentage=0.4, |
| 919 | + split_phase_lv_kv=0.25, |
| 920 | + swer_voltage_to_line_voltage=[ |
| 921 | + [230, 400], |
| 922 | + [240, 415], |
| 923 | + [250, 433], |
| 924 | + [6350, 11000], |
| 925 | + [6400, 11000], |
| 926 | + [12700, 22000], |
| 927 | + [19100, 33000] |
| 928 | + ], |
| 929 | + load_placement=LoadPlacement.PER_USAGE_POINT, |
| 930 | + load_interval_length_hours=0.5, |
| 931 | + meter_placement_config=MeterPlacementConfig( |
| 932 | + True, |
| 933 | + True, |
| 934 | + [SwitchMeterPlacementConfig(SwitchClass.LOAD_BREAK_SWITCH, ".*")], |
| 935 | + "meter group 1"), |
| 936 | + seed=42, |
| 937 | + default_load_watts=[100.0, 200.0, 300.0], |
| 938 | + default_gen_watts=[50.0, 150.0, 250.0], |
| 939 | + default_load_var=[10.0, 20.0, 30.0], |
| 940 | + default_gen_var=[5.0, 15.0, 25.0], |
| 941 | + transformer_tap_settings="tap-3" |
| 942 | + ), |
| 943 | + SolveConfig( |
| 944 | + norm_vmin_pu=0.9, |
| 945 | + norm_vmax_pu=1.054, |
| 946 | + emerg_vmin_pu=0.8, |
| 947 | + emerg_vmax_pu=1.1, |
| 948 | + base_frequency=50, |
| 949 | + voltage_bases=[0.4, 0.433, 6.6, 11.0, 22.0, 33.0, 66.0, 132.0], |
| 950 | + max_iter=25, |
| 951 | + max_control_iter=20, |
| 952 | + mode=SolveMode.YEARLY, |
| 953 | + step_size_minutes=60 |
| 954 | + ), |
| 955 | + RawResultsConfig( |
| 956 | + energy_meter_voltages_raw=True, |
| 957 | + energy_meters_raw=True, |
| 958 | + results_per_meter=True, |
| 959 | + overloads_raw=True, |
| 960 | + voltage_exceptions_raw=True |
| 961 | + ) |
| 962 | + ), |
| 963 | + is_public=True) |
963 | 964 |
|
964 | 965 |
|
965 | 966 | def test_run_opendss_export_no_verify_success(httpserver: HTTPServer): |
@@ -1170,7 +1171,7 @@ def get_paged_opendss_models_no_param_request_handler(request): |
1170 | 1171 | query = " ".join(actual_body['query'].split()) |
1171 | 1172 |
|
1172 | 1173 | assert query == " ".join(line.strip() for line in get_paged_opendss_models_query.strip().splitlines()) |
1173 | | - assert actual_body['variables'] == { } |
| 1174 | + assert actual_body['variables'] == {} |
1174 | 1175 |
|
1175 | 1176 | return Response(json.dumps({"result": "success"}), status=200, content_type="application/json") |
1176 | 1177 |
|
|
0 commit comments