power-grid-model-io 1.3.18__tar.gz → 1.3.20__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.18 → power_grid_model_io-1.3.20}/PKG-INFO +1 -1
- power_grid_model_io-1.3.20/PYPI_VERSION +1 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_stores/excel_file_store.py +8 -1
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io.egg-info/PKG-INFO +1 -1
- power_grid_model_io-1.3.20/tests/unit/data_stores/test_vision_excel_file_store.py +76 -0
- power_grid_model_io-1.3.18/PYPI_VERSION +0 -1
- power_grid_model_io-1.3.18/tests/unit/data_stores/test_vision_excel_file_store.py +0 -22
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/LICENSE +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/MANIFEST.in +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/README.md +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/VERSION +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/pyproject.toml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/setup.cfg +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/setup.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/examples/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/examples/multipliers.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/excel/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/excel/vision_en.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/excel/vision_en_9_7.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/excel/vision_en_9_8.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/config/excel/vision_nl.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/converters/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/converters/base_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/converters/pandapower_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/converters/pgm_json_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/converters/tabular_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/converters/vision_excel_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_stores/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_stores/base_data_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_stores/csv_dir_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_stores/json_file_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_stores/vision_excel_file_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_types/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_types/_data_types.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/data_types/tabular_data.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/functions/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/functions/_functions.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/functions/filters.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/functions/phase_to_phase.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/mappings/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/mappings/field_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/mappings/multiplier_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/mappings/tabular_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/mappings/unit_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/mappings/value_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/py.typed +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/auto_id.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/dict.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/download.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/excel_ambiguity_checker.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/json.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/modules.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/parsing.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/uuid_excel_cvtr.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/zip.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io.egg-info/SOURCES.txt +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io.egg-info/dependency_links.txt +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io.egg-info/requires.txt +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io.egg-info/top_level.txt +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/conftest.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/config/dummy_mapping.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/config/mapping.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_asym_output_data.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_asym_output_data.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_input_data.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_input_data.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_output_data.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_output_data.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_v2_net_3ph_output.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_v2_net_3ph_output.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_v2_net_3ph_output_current_loading.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_v2_net_3ph_output_current_loading.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_v2_net_output.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_v2_net_output.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_validation.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/excel_ambiguity_check_data.xlsx +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/excel_ambiguity_check_data.xlsx.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/pgm_input_data_en.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/pgm_input_data_en.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/pgm_input_data_nl.json +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/pgm_input_data_nl.json.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_9_5_en.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_9_5_nl.yaml +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_en.xlsx +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_en.xlsx.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_en_9_7.xlsx +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_en_9_7.xlsx.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_nl.xlsx +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_nl.xlsx.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_validation.vnf +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_validation.vnf.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/zip/foo-bar.zip +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/zip/foo-bar.zip.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/zip/foo.zip +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/zip/foo.zip.license +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/test_utils.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/conftest.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/converters/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/converters/test_base_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/converters/test_pandapower_converter_input.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/converters/test_pandapower_converter_output.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/converters/test_pgm_json_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/converters/test_tabular_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/converters/test_vision_excel_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_stores/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_stores/test_base_data_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_stores/test_csv_dir_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_stores/test_excel_file_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_stores/test_json_file_store.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_types/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_types/test_data_types.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_types/test_tabular_data.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/functions/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/functions/test_filters.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/functions/test_functions.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/functions/test_phase_to_phase.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/test_field_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/test_multiplier_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/test_tabular_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/test_unit_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/test_value_mapping.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_auto_id.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_dict.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_download.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_json.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_modules.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_parsing.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_uuid_excel_cvtr.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_zip.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/utils.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/conftest.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/converters/__init__.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/converters/test_pandapower_converter_input.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/converters/test_pandapower_converter_output.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/converters/test_vision_excel_converter.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/test_test_utils.py +0 -0
- {power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.20
|
|
@@ -88,11 +88,18 @@ class ExcelFileStore(BaseDataStore[TabularData]):
|
|
|
88
88
|
|
|
89
89
|
def lazy_sheet_loader(xls_file: pd.ExcelFile, xls_sheet_name: str):
|
|
90
90
|
def sheet_loader():
|
|
91
|
-
|
|
91
|
+
preview = xls_file.parse(xls_sheet_name, header=self._header_rows, nrows=0)
|
|
92
|
+
columns = list(preview.columns)
|
|
93
|
+
dtype = {}
|
|
94
|
+
for col in columns:
|
|
95
|
+
if "Name" in str(col) or (isinstance(col, tuple) and ("Name" in str(col[0]))):
|
|
96
|
+
dtype[col] = str
|
|
97
|
+
sheet_data = xls_file.parse(xls_sheet_name, header=self._header_rows, dtype=dtype)
|
|
92
98
|
sheet_data = self._remove_unnamed_column_placeholders(data=sheet_data)
|
|
93
99
|
sheet_data = self._handle_duplicate_columns(data=sheet_data, sheet_name=xls_sheet_name)
|
|
94
100
|
sheet_data = self._process_uuid_columns(data=sheet_data, sheet_name=xls_sheet_name)
|
|
95
101
|
sheet_data = self._update_column_names(data=sheet_data)
|
|
102
|
+
|
|
96
103
|
return sheet_data
|
|
97
104
|
|
|
98
105
|
return sheet_loader
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Contributors to the Power Grid Model project <powergridmodel@lfenergy.org>
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from unittest.mock import MagicMock, mock_open, patch
|
|
6
|
+
|
|
7
|
+
import pandas as pd
|
|
8
|
+
|
|
9
|
+
from power_grid_model_io.data_stores.vision_excel_file_store import VisionExcelFileStore
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@patch("power_grid_model_io.data_stores.excel_file_store.pd.ExcelFile")
|
|
13
|
+
@patch("power_grid_model_io.data_stores.excel_file_store.Path.open", mock_open())
|
|
14
|
+
def test_header_rows(mock_excel_file: MagicMock):
|
|
15
|
+
# Arrange
|
|
16
|
+
store = VisionExcelFileStore(file_path=Path("dummy.xlsx"))
|
|
17
|
+
mock_excel_file.return_value.sheet_names = ["foo"]
|
|
18
|
+
|
|
19
|
+
# Act
|
|
20
|
+
data = store.load()
|
|
21
|
+
data["foo"]
|
|
22
|
+
|
|
23
|
+
# Assert
|
|
24
|
+
assert mock_excel_file.return_value.parse.call_count == 2
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@patch("power_grid_model_io.data_stores.excel_file_store.pd.ExcelFile")
|
|
28
|
+
@patch("power_grid_model_io.data_stores.excel_file_store.Path.open", mock_open())
|
|
29
|
+
def test_name_column_dtype_conversion(mock_excel_file: MagicMock):
|
|
30
|
+
store = VisionExcelFileStore(file_path=Path("dummy.xlsx"))
|
|
31
|
+
mock_excel_file.return_value.sheet_names = ["test_sheet"]
|
|
32
|
+
|
|
33
|
+
preview_df = pd.DataFrame(columns=["Mock.Name", "Other.Column", "ID"])
|
|
34
|
+
|
|
35
|
+
def mock_parse(*args, **kwargs):
|
|
36
|
+
if kwargs.get("nrows") == 0:
|
|
37
|
+
return preview_df
|
|
38
|
+
else:
|
|
39
|
+
actual_data = {
|
|
40
|
+
"Mock.Name": [12345678900000000000, 987.654],
|
|
41
|
+
"Other.Column": ["value1", "value2"],
|
|
42
|
+
"ID": [1, 2],
|
|
43
|
+
"ratio": [0.1, 0.2],
|
|
44
|
+
}
|
|
45
|
+
df = pd.DataFrame(actual_data)
|
|
46
|
+
|
|
47
|
+
if "dtype" in kwargs:
|
|
48
|
+
for col, dtype_val in kwargs["dtype"].items():
|
|
49
|
+
if col in df.columns and dtype_val is str:
|
|
50
|
+
df[col] = df[col].apply(lambda x: str(int(x)) if float(x).is_integer() else str(x))
|
|
51
|
+
|
|
52
|
+
return df
|
|
53
|
+
|
|
54
|
+
mock_excel_file.return_value.parse.side_effect = mock_parse
|
|
55
|
+
|
|
56
|
+
data = store.load()
|
|
57
|
+
result_df = data["test_sheet"]
|
|
58
|
+
|
|
59
|
+
assert mock_excel_file.return_value.parse.call_count == 2
|
|
60
|
+
|
|
61
|
+
first_call = mock_excel_file.return_value.parse.call_args_list[0]
|
|
62
|
+
assert first_call[1]["nrows"] == 0
|
|
63
|
+
|
|
64
|
+
second_call = mock_excel_file.return_value.parse.call_args_list[1]
|
|
65
|
+
assert "dtype" in second_call[1]
|
|
66
|
+
assert "Mock.Name" in second_call[1]["dtype"]
|
|
67
|
+
assert second_call[1]["dtype"]["Mock.Name"] is str
|
|
68
|
+
|
|
69
|
+
assert result_df["Mock.Name"][0] == "12345678900000000000" # Long int as string
|
|
70
|
+
assert result_df["Mock.Name"][1] == "987.654" # Float as string
|
|
71
|
+
assert result_df["Other.Column"][0] == "value1"
|
|
72
|
+
assert result_df["Other.Column"][1] == "value2"
|
|
73
|
+
assert result_df["ID"][0] == 1
|
|
74
|
+
assert result_df["ID"][1] == 2
|
|
75
|
+
assert result_df["ratio"][0] == 0.1
|
|
76
|
+
assert result_df["ratio"][1] == 0.2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.18
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: Contributors to the Power Grid Model project <powergridmodel@lfenergy.org>
|
|
2
|
-
#
|
|
3
|
-
# SPDX-License-Identifier: MPL-2.0
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
from unittest.mock import MagicMock, mock_open, patch
|
|
6
|
-
|
|
7
|
-
from power_grid_model_io.data_stores.vision_excel_file_store import VisionExcelFileStore
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@patch("power_grid_model_io.data_stores.excel_file_store.pd.ExcelFile")
|
|
11
|
-
@patch("power_grid_model_io.data_stores.excel_file_store.Path.open", mock_open())
|
|
12
|
-
def test_header_rows(mock_excel_file: MagicMock):
|
|
13
|
-
# Arrange
|
|
14
|
-
store = VisionExcelFileStore(file_path=Path("dummy.xlsx"))
|
|
15
|
-
mock_excel_file.return_value.sheet_names = ["foo"]
|
|
16
|
-
|
|
17
|
-
# Act
|
|
18
|
-
data = store.load()
|
|
19
|
-
data["foo"]
|
|
20
|
-
|
|
21
|
-
# Assert
|
|
22
|
-
mock_excel_file.return_value.parse.assert_called_once_with("foo", header=[0, 1])
|
|
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.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/__init__.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/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
|
|
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.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/__init__.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/auto_id.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/dict.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/download.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/json.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/modules.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/parsing.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/src/power_grid_model_io/utils/zip.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.18 → power_grid_model_io-1.3.20}/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.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_input_data.json
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pgm_output_data.json
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.18 → power_grid_model_io-1.3.20}/tests/data/pandapower/pp_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/pgm_input_data_en.json
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/pgm_input_data_nl.json
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_9_5_en.yaml
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_9_5_nl.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_en.xlsx.license
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_en_9_7.xlsx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_nl.xlsx.license
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/vision/vision_validation.vnf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/data/zip/foo-bar.zip.license
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
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_stores/__init__.py
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.18 → power_grid_model_io-1.3.20}/tests/unit/data_types/test_data_types.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/data_types/test_tabular_data.py
RENAMED
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/functions/test_filters.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/functions/test_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/test_field_mapping.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/unit/mappings/test_unit_mapping.py
RENAMED
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/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.18 → power_grid_model_io-1.3.20}/tests/unit/utils/test_uuid_excel_cvtr.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/converters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power_grid_model_io-1.3.18 → power_grid_model_io-1.3.20}/tests/validation/test_test_utils.py
RENAMED
|
File without changes
|
|
File without changes
|