power-grid-model-io 1.3.3__tar.gz → 1.3.5__tar.gz
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.
Potentially problematic release.
This version of power-grid-model-io might be problematic. Click here for more details.
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/PKG-INFO +1 -1
- power_grid_model_io-1.3.5/PYPI_VERSION +1 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/converters/tabular_converter.py +3 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io.egg-info/PKG-INFO +1 -1
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/test_tabular_converter.py +179 -48
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_zip.py +2 -2
- power_grid_model_io-1.3.3/PYPI_VERSION +0 -1
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/LICENSE +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/MANIFEST.in +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/README.md +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/VERSION +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/pyproject.toml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/setup.cfg +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/setup.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/examples/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/examples/multipliers.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/excel/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/excel/vision_en.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/excel/vision_en_9_7.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/excel/vision_en_9_8.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/excel/vision_nl.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/converters/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/converters/base_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/converters/pandapower_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/converters/pgm_json_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/converters/vision_excel_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_stores/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_stores/base_data_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_stores/csv_dir_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_stores/excel_file_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_stores/json_file_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_stores/vision_excel_file_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_types/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_types/_data_types.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/data_types/tabular_data.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/functions/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/functions/_functions.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/functions/filters.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/functions/phase_to_phase.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/mappings/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/mappings/field_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/mappings/multiplier_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/mappings/tabular_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/mappings/unit_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/mappings/value_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/py.typed +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/auto_id.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/dict.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/download.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/excel_ambiguity_checker.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/json.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/modules.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/parsing.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/uuid_excel_cvtr.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/zip.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io.egg-info/SOURCES.txt +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io.egg-info/dependency_links.txt +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io.egg-info/requires.txt +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io.egg-info/top_level.txt +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/conftest.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/config/dummy_mapping.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/config/mapping.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_asym_output_data.json +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_asym_output_data.json.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_input_data.json +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_input_data.json.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_output_data.json +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_output_data.json.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pp_v2_net_3ph_output.json +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pp_v2_net_3ph_output.json.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pp_v2_net_output.json +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pp_v2_net_output.json.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pp_validation.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/excel_ambiguity_check_data.xlsx +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/excel_ambiguity_check_data.xlsx.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/pgm_input_data_en.json +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/pgm_input_data_en.json.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/pgm_input_data_nl.json +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/pgm_input_data_nl.json.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_9_5_en.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_9_5_nl.yaml +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_en.xlsx +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_en.xlsx.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_en_9_7.xlsx +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_en_9_7.xlsx.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_nl.xlsx +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_nl.xlsx.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_validation.vnf +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_validation.vnf.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/zip/foo-bar.zip +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/zip/foo-bar.zip.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/zip/foo.zip +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/zip/foo.zip.license +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/test_utils.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/conftest.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/test_base_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/test_pandapower_converter_input.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/test_pandapower_converter_output.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/test_pgm_json_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/test_vision_excel_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_stores/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_stores/test_base_data_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_stores/test_csv_dir_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_stores/test_excel_file_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_stores/test_json_file_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_stores/test_vision_excel_file_store.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_types/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_types/test_data_types.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_types/test_tabular_data.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/functions/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/functions/test_filters.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/functions/test_functions.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/functions/test_phase_to_phase.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_field_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_multiplier_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_tabular_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_unit_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_value_mapping.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_auto_id.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_dict.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_download.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_json.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_modules.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_parsing.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_uuid_excel_cvtr.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/utils.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/conftest.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/converters/__init__.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/converters/test_pandapower_converter_input.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/converters/test_pandapower_converter_output.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/converters/test_vision_excel_converter.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/test_test_utils.py +0 -0
- {power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.5
|
|
@@ -265,6 +265,9 @@ class TabularConverter(BaseConverter[TabularData]):
|
|
|
265
265
|
"""
|
|
266
266
|
# To avoid mistakes, the attributes in the mapping should exist. There is one extra attribute called
|
|
267
267
|
# 'extra' in which extra information can be captured.
|
|
268
|
+
if pgm_data.dtype.names is None:
|
|
269
|
+
raise ValueError(f"pgm_data for '{component}s' has no attributes defined. (dtype.names is None)")
|
|
270
|
+
|
|
268
271
|
if attr not in pgm_data.dtype.names and attr not in ["extra", "filters"]:
|
|
269
272
|
attrs = ", ".join(pgm_data.dtype.names)
|
|
270
273
|
raise KeyError(f"Could not find attribute '{attr}' for '{component}s'. (choose from: {attrs})")
|
|
@@ -47,10 +47,14 @@ def pgm_power_sensor_empty():
|
|
|
47
47
|
@pytest.fixture
|
|
48
48
|
def tabular_data():
|
|
49
49
|
nodes = pd.DataFrame(
|
|
50
|
-
data=[[1, 10.5], [2, 0.4]],
|
|
50
|
+
data=[[1, 10.5], [2, 0.4]],
|
|
51
|
+
columns=pd.MultiIndex.from_tuples([("id_number", ""), ("u_nom", "kV")]),
|
|
51
52
|
)
|
|
52
53
|
lines = pd.DataFrame(data=[[1, 100], [2, 200]], columns=["id_number", "from_node_side"])
|
|
53
|
-
loads = pd.DataFrame(
|
|
54
|
+
loads = pd.DataFrame(
|
|
55
|
+
data=[[1, 1, 1], [2, 2, 0]],
|
|
56
|
+
columns=["id_number", "node_id", "switching_status"],
|
|
57
|
+
)
|
|
54
58
|
sources = pd.DataFrame(columns=["id_number", "node_side"])
|
|
55
59
|
return TabularData(nodes=nodes, lines=lines, loads=loads, sources=sources)
|
|
56
60
|
|
|
@@ -154,12 +158,23 @@ def test_convert_table_to_component(converter: TabularConverter, tabular_data_no
|
|
|
154
158
|
assert (pgm_node_data["u_rated"] == [10.5e3, 400]).all()
|
|
155
159
|
|
|
156
160
|
|
|
161
|
+
@patch(
|
|
162
|
+
"power_grid_model_io.converters.tabular_converter.TabularConverter._convert_col_def_to_attribute",
|
|
163
|
+
new=MagicMock(),
|
|
164
|
+
)
|
|
165
|
+
@patch(
|
|
166
|
+
"power_grid_model_io.converters.tabular_converter.TabularConverter._parse_table_filters",
|
|
167
|
+
)
|
|
157
168
|
def test_convert_table_to_component__filters(
|
|
158
|
-
|
|
169
|
+
_parse_table_filters: MagicMock,
|
|
170
|
+
converter: TabularConverter,
|
|
171
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
159
172
|
):
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
173
|
+
node_attributes_with_filter: dict[str, int | float | str | dict | list] = {
|
|
174
|
+
"id": "id_number",
|
|
175
|
+
"u_rated": "u_nom",
|
|
176
|
+
"filters": [{"test_fn": {}}],
|
|
177
|
+
}
|
|
163
178
|
converter._convert_table_to_component(
|
|
164
179
|
data=tabular_data_no_units_no_substitutions,
|
|
165
180
|
data_type="input",
|
|
@@ -168,20 +183,31 @@ def test_convert_table_to_component__filters(
|
|
|
168
183
|
attributes=node_attributes_with_filter,
|
|
169
184
|
extra_info=None,
|
|
170
185
|
)
|
|
171
|
-
|
|
186
|
+
_parse_table_filters.assert_called_once_with(
|
|
172
187
|
data=tabular_data_no_units_no_substitutions,
|
|
173
188
|
table="nodes",
|
|
174
189
|
filtering_functions=node_attributes_with_filter["filters"],
|
|
175
190
|
)
|
|
176
191
|
|
|
177
192
|
|
|
193
|
+
@patch(
|
|
194
|
+
"power_grid_model_io.converters.tabular_converter.TabularConverter._convert_col_def_to_attribute",
|
|
195
|
+
)
|
|
196
|
+
@patch(
|
|
197
|
+
"power_grid_model_io.converters.tabular_converter.TabularConverter._parse_table_filters",
|
|
198
|
+
side_effect=np.array([False, False]),
|
|
199
|
+
)
|
|
178
200
|
def test_convert_table_to_component__filters_all_false(
|
|
179
|
-
|
|
201
|
+
_parse_table_filters: MagicMock,
|
|
202
|
+
_convert_col_def_to_attribute: MagicMock,
|
|
203
|
+
converter: TabularConverter,
|
|
204
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
180
205
|
):
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
206
|
+
node_attributes_with_filter: dict[str, int | float | str | dict | list] = {
|
|
207
|
+
"id": "id_number",
|
|
208
|
+
"u_rated": "u_nom",
|
|
209
|
+
"filters": [{"test_fn": {}}],
|
|
210
|
+
}
|
|
185
211
|
actual = converter._convert_table_to_component(
|
|
186
212
|
data=tabular_data_no_units_no_substitutions,
|
|
187
213
|
data_type="input",
|
|
@@ -192,12 +218,12 @@ def test_convert_table_to_component__filters_all_false(
|
|
|
192
218
|
)
|
|
193
219
|
|
|
194
220
|
assert actual is None
|
|
195
|
-
|
|
221
|
+
_parse_table_filters.assert_called_once_with(
|
|
196
222
|
data=tabular_data_no_units_no_substitutions,
|
|
197
223
|
table="nodes",
|
|
198
224
|
filtering_functions=node_attributes_with_filter["filters"],
|
|
199
225
|
)
|
|
200
|
-
|
|
226
|
+
_convert_col_def_to_attribute.assert_not_called()
|
|
201
227
|
|
|
202
228
|
|
|
203
229
|
def test_convert_col_def_to_attribute(
|
|
@@ -206,7 +232,8 @@ def test_convert_col_def_to_attribute(
|
|
|
206
232
|
pgm_node_empty: SingleDataset,
|
|
207
233
|
):
|
|
208
234
|
with pytest.raises(
|
|
209
|
-
KeyError,
|
|
235
|
+
KeyError,
|
|
236
|
+
match=r"Could not find attribute 'incorrect_attribute' for 'nodes'. " r"\(choose from: id, u_rated\)",
|
|
210
237
|
):
|
|
211
238
|
converter._convert_col_def_to_attribute(
|
|
212
239
|
data=tabular_data_no_units_no_substitutions,
|
|
@@ -323,9 +350,15 @@ def test_merge_pgm_data(converter: TabularConverter):
|
|
|
323
350
|
|
|
324
351
|
|
|
325
352
|
def test_serialize_data(converter: TabularConverter, pgm_node_empty: SingleDataset):
|
|
326
|
-
with pytest.raises(
|
|
353
|
+
with pytest.raises(
|
|
354
|
+
NotImplementedError,
|
|
355
|
+
match=r"Extra info can not \(yet\) be stored for tabular data",
|
|
356
|
+
):
|
|
327
357
|
converter._serialize_data(data=pgm_node_empty, extra_info={})
|
|
328
|
-
with pytest.raises(
|
|
358
|
+
with pytest.raises(
|
|
359
|
+
NotImplementedError,
|
|
360
|
+
match=r"Batch data can not \(yet\) be stored for tabular data",
|
|
361
|
+
):
|
|
329
362
|
converter._serialize_data(data=[], extra_info=None) # type: ignore
|
|
330
363
|
|
|
331
364
|
pgm_node_empty["node"]["id"] = [1, 2]
|
|
@@ -358,7 +391,10 @@ def test_parse_col_def(converter: TabularConverter, tabular_data_no_units_no_sub
|
|
|
358
391
|
extra_info=None,
|
|
359
392
|
)
|
|
360
393
|
mock_parse_col_def_const.assert_called_once_with(
|
|
361
|
-
data=tabular_data_no_units_no_substitutions,
|
|
394
|
+
data=tabular_data_no_units_no_substitutions,
|
|
395
|
+
table="nodes",
|
|
396
|
+
table_mask=None,
|
|
397
|
+
col_def=50,
|
|
362
398
|
)
|
|
363
399
|
|
|
364
400
|
# type(col_def) == float
|
|
@@ -373,7 +409,10 @@ def test_parse_col_def(converter: TabularConverter, tabular_data_no_units_no_sub
|
|
|
373
409
|
extra_info=None,
|
|
374
410
|
)
|
|
375
411
|
mock_parse_col_def_const.assert_called_once_with(
|
|
376
|
-
data=tabular_data_no_units_no_substitutions,
|
|
412
|
+
data=tabular_data_no_units_no_substitutions,
|
|
413
|
+
table="nodes",
|
|
414
|
+
col_def=4.0,
|
|
415
|
+
table_mask=None,
|
|
377
416
|
)
|
|
378
417
|
|
|
379
418
|
# type(col_def) == str (regular expression)
|
|
@@ -416,7 +455,10 @@ def test_parse_col_def(converter: TabularConverter, tabular_data_no_units_no_sub
|
|
|
416
455
|
extra_info=None,
|
|
417
456
|
)
|
|
418
457
|
mock_parse_col_def_column_name.assert_called_once_with(
|
|
419
|
-
data=tabular_data_no_units_no_substitutions,
|
|
458
|
+
data=tabular_data_no_units_no_substitutions,
|
|
459
|
+
table="nodes",
|
|
460
|
+
col_def="col_name",
|
|
461
|
+
table_mask=None,
|
|
420
462
|
)
|
|
421
463
|
|
|
422
464
|
# type(col_def) == dict
|
|
@@ -450,25 +492,37 @@ def test_parse_col_def(converter: TabularConverter, tabular_data_no_units_no_sub
|
|
|
450
492
|
extra_info=None,
|
|
451
493
|
)
|
|
452
494
|
mock_parse_col_def_composite.assert_called_once_with(
|
|
453
|
-
data=tabular_data_no_units_no_substitutions,
|
|
495
|
+
data=tabular_data_no_units_no_substitutions,
|
|
496
|
+
table="nodes",
|
|
497
|
+
col_def=[],
|
|
498
|
+
table_mask=None,
|
|
454
499
|
)
|
|
455
500
|
|
|
456
501
|
|
|
457
502
|
def test_parse_col_def_const(converter: TabularConverter, tabular_data_no_units_no_substitutions: TabularData):
|
|
458
503
|
with pytest.raises(AssertionError):
|
|
459
504
|
converter._parse_col_def_const(
|
|
460
|
-
data=tabular_data_no_units_no_substitutions,
|
|
505
|
+
data=tabular_data_no_units_no_substitutions,
|
|
506
|
+
table="nodes",
|
|
507
|
+
col_def="str", # type: ignore
|
|
508
|
+
table_mask=None, # type: ignore
|
|
461
509
|
)
|
|
462
510
|
|
|
463
511
|
# type(col_def) == int
|
|
464
512
|
col_int = converter._parse_col_def_const(
|
|
465
|
-
data=tabular_data_no_units_no_substitutions,
|
|
513
|
+
data=tabular_data_no_units_no_substitutions,
|
|
514
|
+
table="nodes",
|
|
515
|
+
col_def=50,
|
|
516
|
+
table_mask=None,
|
|
466
517
|
)
|
|
467
518
|
assert_frame_equal(col_int, pd.DataFrame([50, 50]))
|
|
468
519
|
|
|
469
520
|
# type(col_def) == float
|
|
470
521
|
col_int = converter._parse_col_def_const(
|
|
471
|
-
data=tabular_data_no_units_no_substitutions,
|
|
522
|
+
data=tabular_data_no_units_no_substitutions,
|
|
523
|
+
table="nodes",
|
|
524
|
+
col_def=3.0,
|
|
525
|
+
table_mask=None,
|
|
472
526
|
)
|
|
473
527
|
assert_frame_equal(col_int, pd.DataFrame([3.0, 3.0]))
|
|
474
528
|
|
|
@@ -477,7 +531,10 @@ def test_parse_col_def_const__no_filter(
|
|
|
477
531
|
converter: TabularConverter, tabular_data_no_units_no_substitutions: TabularData
|
|
478
532
|
):
|
|
479
533
|
col_int = converter._parse_col_def_const(
|
|
480
|
-
data=tabular_data_no_units_no_substitutions,
|
|
534
|
+
data=tabular_data_no_units_no_substitutions,
|
|
535
|
+
table="nodes",
|
|
536
|
+
col_def=3.0,
|
|
537
|
+
table_mask=None,
|
|
481
538
|
)
|
|
482
539
|
assert_frame_equal(col_int, pd.DataFrame([3.0, 3.0]))
|
|
483
540
|
|
|
@@ -485,7 +542,10 @@ def test_parse_col_def_const__no_filter(
|
|
|
485
542
|
def test_parse_col_def_column_name(converter: TabularConverter, tabular_data_no_units_no_substitutions: TabularData):
|
|
486
543
|
with pytest.raises(AssertionError):
|
|
487
544
|
converter._parse_col_def_column_name(
|
|
488
|
-
data=tabular_data_no_units_no_substitutions,
|
|
545
|
+
data=tabular_data_no_units_no_substitutions,
|
|
546
|
+
table="nodes",
|
|
547
|
+
col_def=1, # type: ignore
|
|
548
|
+
table_mask=None, # type: ignore
|
|
489
549
|
)
|
|
490
550
|
|
|
491
551
|
df_multiple_columns = converter._parse_col_def_column_name(
|
|
@@ -497,7 +557,10 @@ def test_parse_col_def_column_name(converter: TabularConverter, tabular_data_no_
|
|
|
497
557
|
assert_frame_equal(df_multiple_columns, pd.DataFrame([1, 2], columns=["id_number"]))
|
|
498
558
|
|
|
499
559
|
df_inf = converter._parse_col_def_column_name(
|
|
500
|
-
data=tabular_data_no_units_no_substitutions,
|
|
560
|
+
data=tabular_data_no_units_no_substitutions,
|
|
561
|
+
table="nodes",
|
|
562
|
+
col_def="inf",
|
|
563
|
+
table_mask=None,
|
|
501
564
|
)
|
|
502
565
|
assert_frame_equal(df_inf, pd.DataFrame([np.inf, np.inf]))
|
|
503
566
|
|
|
@@ -528,12 +591,20 @@ def test_parse_col_def_filter(converter: TabularConverter):
|
|
|
528
591
|
# Act/Assert:
|
|
529
592
|
with pytest.raises(AssertionError):
|
|
530
593
|
converter._parse_col_def_filter(
|
|
531
|
-
data=tabular_data_no_units_no_substitutions,
|
|
594
|
+
data=tabular_data_no_units_no_substitutions,
|
|
595
|
+
table="",
|
|
596
|
+
col_def=[], # type: ignore
|
|
597
|
+
table_mask=None,
|
|
598
|
+
extra_info=None, # type: ignore
|
|
532
599
|
)
|
|
533
600
|
|
|
534
601
|
with pytest.raises(TypeError, match="Invalid foo definition: 123"):
|
|
535
602
|
converter._parse_col_def_filter(
|
|
536
|
-
data=MagicMock(),
|
|
603
|
+
data=MagicMock(),
|
|
604
|
+
table="",
|
|
605
|
+
col_def={"foo": 123},
|
|
606
|
+
table_mask=None,
|
|
607
|
+
extra_info=None,
|
|
537
608
|
)
|
|
538
609
|
|
|
539
610
|
|
|
@@ -573,7 +644,11 @@ def test_parse_col_def_filter__pandas_function(mock_parse_function: MagicMock, c
|
|
|
573
644
|
|
|
574
645
|
# Act
|
|
575
646
|
result = converter._parse_col_def_filter(
|
|
576
|
-
data=data,
|
|
647
|
+
data=data,
|
|
648
|
+
table="nodes",
|
|
649
|
+
col_def={"multiply": ["id_number", "u_nom"]},
|
|
650
|
+
table_mask=None,
|
|
651
|
+
extra_info=None,
|
|
577
652
|
)
|
|
578
653
|
|
|
579
654
|
# Assert
|
|
@@ -619,7 +694,11 @@ def test_parse_col_def_filter__auto_id(mock_parse_auto_id: MagicMock, converter:
|
|
|
619
694
|
# Act/Assert:
|
|
620
695
|
with pytest.raises(ValueError, match="Invalid auto_id definition: {'a': 1, 'b': 2}"):
|
|
621
696
|
converter._parse_col_def_filter(
|
|
622
|
-
data=data,
|
|
697
|
+
data=data,
|
|
698
|
+
table="",
|
|
699
|
+
col_def={"auto_id": {"a": 1, "b": 2}},
|
|
700
|
+
table_mask=None,
|
|
701
|
+
extra_info=None,
|
|
623
702
|
)
|
|
624
703
|
|
|
625
704
|
|
|
@@ -661,13 +740,19 @@ def test_parse_col_def_filter__reference(mock_parse_reference: MagicMock, conver
|
|
|
661
740
|
# Act/Assert:
|
|
662
741
|
with pytest.raises(ValueError, match="Invalid reference definition: {'a': 1, 'b': 2}"):
|
|
663
742
|
converter._parse_col_def_filter(
|
|
664
|
-
data=data,
|
|
743
|
+
data=data,
|
|
744
|
+
table="",
|
|
745
|
+
col_def={"reference": {"a": 1, "b": 2}},
|
|
746
|
+
table_mask=None,
|
|
747
|
+
extra_info=None,
|
|
665
748
|
)
|
|
666
749
|
|
|
667
750
|
|
|
668
751
|
@patch("power_grid_model_io.converters.tabular_converter.TabularConverter._get_id")
|
|
669
752
|
def test_parse_auto_id(
|
|
670
|
-
mock_get_id: MagicMock,
|
|
753
|
+
mock_get_id: MagicMock,
|
|
754
|
+
converter: TabularConverter,
|
|
755
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
671
756
|
):
|
|
672
757
|
# ref_table: None, ref_name: None, key_col_def: str, extra_info: None
|
|
673
758
|
mock_get_id.side_effect = [101, 102]
|
|
@@ -681,13 +766,18 @@ def test_parse_auto_id(
|
|
|
681
766
|
extra_info=None,
|
|
682
767
|
)
|
|
683
768
|
mock_get_id.assert_has_calls(
|
|
684
|
-
[
|
|
769
|
+
[
|
|
770
|
+
call(table="nodes", key={"id_number": 1}, name=None),
|
|
771
|
+
call(table="nodes", key={"id_number": 2}, name=None),
|
|
772
|
+
]
|
|
685
773
|
)
|
|
686
774
|
|
|
687
775
|
|
|
688
776
|
@patch("power_grid_model_io.converters.tabular_converter.TabularConverter._get_id")
|
|
689
777
|
def test_parse_auto_id__extra_info(
|
|
690
|
-
mock_get_id: MagicMock,
|
|
778
|
+
mock_get_id: MagicMock,
|
|
779
|
+
converter: TabularConverter,
|
|
780
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
691
781
|
):
|
|
692
782
|
# ref_table: None, ref_name: None, key_col_def: str, extra_info: dict
|
|
693
783
|
mock_get_id.side_effect = [101, 102]
|
|
@@ -702,7 +792,10 @@ def test_parse_auto_id__extra_info(
|
|
|
702
792
|
extra_info=extra_info,
|
|
703
793
|
)
|
|
704
794
|
mock_get_id.assert_has_calls(
|
|
705
|
-
[
|
|
795
|
+
[
|
|
796
|
+
call(table="nodes", key={"id_number": 1}, name=None),
|
|
797
|
+
call(table="nodes", key={"id_number": 2}, name=None),
|
|
798
|
+
]
|
|
706
799
|
)
|
|
707
800
|
assert extra_info[101] == {"id_reference": {"table": "nodes", "key": {"id_number": 1}}}
|
|
708
801
|
assert extra_info[102] == {"id_reference": {"table": "nodes", "key": {"id_number": 2}}}
|
|
@@ -710,7 +803,9 @@ def test_parse_auto_id__extra_info(
|
|
|
710
803
|
|
|
711
804
|
@patch("power_grid_model_io.converters.tabular_converter.TabularConverter._get_id")
|
|
712
805
|
def test_parse_auto_id__reference_column(
|
|
713
|
-
mock_get_id: MagicMock,
|
|
806
|
+
mock_get_id: MagicMock,
|
|
807
|
+
converter: TabularConverter,
|
|
808
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
714
809
|
):
|
|
715
810
|
# ref_table: str, ref_name: None, key_col_def: dict, extra_info: dict
|
|
716
811
|
mock_get_id.side_effect = [101, 102]
|
|
@@ -725,14 +820,19 @@ def test_parse_auto_id__reference_column(
|
|
|
725
820
|
extra_info=extra_info,
|
|
726
821
|
)
|
|
727
822
|
mock_get_id.assert_has_calls(
|
|
728
|
-
[
|
|
823
|
+
[
|
|
824
|
+
call(table="nodes", key={"id_number": 2}, name=None),
|
|
825
|
+
call(table="nodes", key={"id_number": 1}, name=None),
|
|
826
|
+
]
|
|
729
827
|
)
|
|
730
828
|
assert len(extra_info) == 0
|
|
731
829
|
|
|
732
830
|
|
|
733
831
|
@patch("power_grid_model_io.converters.tabular_converter.TabularConverter._get_id")
|
|
734
832
|
def test_parse_auto_id__composite_key(
|
|
735
|
-
mock_get_id: MagicMock,
|
|
833
|
+
mock_get_id: MagicMock,
|
|
834
|
+
converter: TabularConverter,
|
|
835
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
736
836
|
):
|
|
737
837
|
# ref_table: None, ref_name: None, key_col_def: list, extra_info: dict
|
|
738
838
|
mock_get_id.side_effect = [101, 102]
|
|
@@ -758,7 +858,9 @@ def test_parse_auto_id__composite_key(
|
|
|
758
858
|
|
|
759
859
|
@patch("power_grid_model_io.converters.tabular_converter.TabularConverter._get_id")
|
|
760
860
|
def test_parse_auto_id__named_objects(
|
|
761
|
-
mock_get_id: MagicMock,
|
|
861
|
+
mock_get_id: MagicMock,
|
|
862
|
+
converter: TabularConverter,
|
|
863
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
762
864
|
):
|
|
763
865
|
# ref_table: None, ref_name: str, key_col_def: str, extra_info: dict
|
|
764
866
|
mock_get_id.side_effect = [101, 102]
|
|
@@ -778,13 +880,27 @@ def test_parse_auto_id__named_objects(
|
|
|
778
880
|
call(table="nodes", key={"id_number": 2}, name="internal_node"),
|
|
779
881
|
]
|
|
780
882
|
)
|
|
781
|
-
assert extra_info[101] == {
|
|
782
|
-
|
|
883
|
+
assert extra_info[101] == {
|
|
884
|
+
"id_reference": {
|
|
885
|
+
"table": "nodes",
|
|
886
|
+
"name": "internal_node",
|
|
887
|
+
"key": {"id_number": 1},
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
assert extra_info[102] == {
|
|
891
|
+
"id_reference": {
|
|
892
|
+
"table": "nodes",
|
|
893
|
+
"name": "internal_node",
|
|
894
|
+
"key": {"id_number": 2},
|
|
895
|
+
}
|
|
896
|
+
}
|
|
783
897
|
|
|
784
898
|
|
|
785
899
|
@patch("power_grid_model_io.converters.tabular_converter.TabularConverter._get_id")
|
|
786
900
|
def test_parse_auto_id__named_keys(
|
|
787
|
-
mock_get_id: MagicMock,
|
|
901
|
+
mock_get_id: MagicMock,
|
|
902
|
+
converter: TabularConverter,
|
|
903
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
788
904
|
):
|
|
789
905
|
# name: str, key_col_def: Dict[str, str], extra_info: dict
|
|
790
906
|
mock_get_id.side_effect = [101, 102]
|
|
@@ -825,7 +941,9 @@ def test_parse_auto_id__invalid_key_definition(
|
|
|
825
941
|
|
|
826
942
|
@patch("power_grid_model_io.converters.tabular_converter.TabularConverter._get_id")
|
|
827
943
|
def test_parse_auto_id__empty_col_data(
|
|
828
|
-
mock_get_id: MagicMock,
|
|
944
|
+
mock_get_id: MagicMock,
|
|
945
|
+
converter: TabularConverter,
|
|
946
|
+
tabular_data_no_units_no_substitutions: TabularData,
|
|
829
947
|
):
|
|
830
948
|
converter._parse_auto_id(
|
|
831
949
|
data=tabular_data_no_units_no_substitutions,
|
|
@@ -902,7 +1020,13 @@ def test_parse_pandas_function__invalid(mock_parse_col_def: MagicMock, converter
|
|
|
902
1020
|
|
|
903
1021
|
# Act / Assert
|
|
904
1022
|
with pytest.raises(AssertionError):
|
|
905
|
-
converter._parse_pandas_function(
|
|
1023
|
+
converter._parse_pandas_function(
|
|
1024
|
+
data=MagicMock(),
|
|
1025
|
+
table="foo",
|
|
1026
|
+
fn_name="multiply",
|
|
1027
|
+
col_def=123, # type: ignore
|
|
1028
|
+
table_mask=None,
|
|
1029
|
+
) # type: ignore
|
|
906
1030
|
|
|
907
1031
|
# Act / Assert
|
|
908
1032
|
with pytest.raises(ValueError, match="Pandas DataFrame has no function 'bar'"):
|
|
@@ -963,7 +1087,10 @@ def test_parse_function__no_data(
|
|
|
963
1087
|
def test_parse_col_def_composite(converter: TabularConverter, tabular_data_no_units_no_substitutions: TabularData):
|
|
964
1088
|
with pytest.raises(AssertionError):
|
|
965
1089
|
converter._parse_col_def_composite(
|
|
966
|
-
data=tabular_data_no_units_no_substitutions,
|
|
1090
|
+
data=tabular_data_no_units_no_substitutions,
|
|
1091
|
+
table="nodes",
|
|
1092
|
+
col_def="wrong", # type: ignore
|
|
1093
|
+
table_mask=None, # type: ignore
|
|
967
1094
|
)
|
|
968
1095
|
|
|
969
1096
|
df = converter._parse_col_def_composite(
|
|
@@ -1130,7 +1257,11 @@ def test_lookup_id(converter: TabularConverter):
|
|
|
1130
1257
|
assert converter.lookup_id(pgm_id=1) == {"table": "node", "key": {"a": 1, "b": 3}}
|
|
1131
1258
|
assert converter.lookup_id(pgm_id=2) == {"table": "node", "key": {"a": 1, "c": 2}}
|
|
1132
1259
|
assert converter.lookup_id(pgm_id=3) == {"table": "foo", "key": {"a": 1, "b": 2}}
|
|
1133
|
-
assert converter.lookup_id(pgm_id=4) == {
|
|
1260
|
+
assert converter.lookup_id(pgm_id=4) == {
|
|
1261
|
+
"table": "node",
|
|
1262
|
+
"name": "bar",
|
|
1263
|
+
"key": {"a": 1, "b": 2},
|
|
1264
|
+
}
|
|
1134
1265
|
|
|
1135
1266
|
|
|
1136
1267
|
def test_lookup_ids(converter: TabularConverter):
|
|
@@ -1221,4 +1352,4 @@ def test_parse_table_filters(
|
|
|
1221
1352
|
|
|
1222
1353
|
def test_parse_table_filters__ndarray_data(converter: TabularConverter):
|
|
1223
1354
|
numpy_tabular_data = TabularData(numpy_table=np.ones((4, 3)))
|
|
1224
|
-
assert converter._parse_table_filters(data=numpy_tabular_data, table="numpy_table", filtering_functions=[])
|
|
1355
|
+
assert converter._parse_table_filters(data=numpy_tabular_data, table="numpy_table", filtering_functions=[]) is None
|
|
@@ -127,7 +127,7 @@ def test_extract__return_subdir_path(mock_tqdm: MagicMock, temp_dir: Path):
|
|
|
127
127
|
|
|
128
128
|
def test_get_only_item_in_dir__no_items(temp_dir):
|
|
129
129
|
# Act / Assert
|
|
130
|
-
assert _get_only_item_in_dir(temp_dir)
|
|
130
|
+
assert _get_only_item_in_dir(temp_dir) is None
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
def test_get_only_item_in_dir__one_file(temp_dir):
|
|
@@ -155,4 +155,4 @@ def test_get_only_item_in_dir__two_files(temp_dir):
|
|
|
155
155
|
pass
|
|
156
156
|
|
|
157
157
|
# Act / Assert
|
|
158
|
-
assert _get_only_item_in_dir(temp_dir)
|
|
158
|
+
assert _get_only_item_in_dir(temp_dir) is None
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/functions/filters.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/mappings/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/__init__.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/auto_id.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/dict.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/download.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/json.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/modules.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/parsing.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io/utils/zip.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/src/power_grid_model_io.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/config/dummy_mapping.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_input_data.json
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pgm_output_data.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pp_v2_net_output.json
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/pandapower/pp_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/pgm_input_data_en.json
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/pgm_input_data_nl.json
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_9_5_en.yaml
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_9_5_nl.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_en.xlsx.license
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_en_9_7.xlsx
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_en_9_7.xlsx.license
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_nl.xlsx.license
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/data/vision/vision_validation.vnf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/converters/test_base_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_stores/test_csv_dir_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_types/test_data_types.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/data_types/test_tabular_data.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/functions/test_filters.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/functions/test_functions.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/functions/test_phase_to_phase.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_field_mapping.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_tabular_mapping.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_unit_mapping.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/mappings/test_value_mapping.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/unit/utils/test_uuid_excel_cvtr.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.3 → power_grid_model_io-1.3.5}/tests/validation/converters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|