power-grid-model-io 1.2.72a1120307003606__tar.gz → 1.2.73__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.2.72a1120307003606 → power-grid-model-io-1.2.73}/PKG-INFO +1 -1
- power-grid-model-io-1.2.73/PYPI_VERSION +1 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/converters/vision_excel_converter.py +6 -12
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_stores/base_data_store.py +0 -15
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_stores/excel_file_store.py +3 -55
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_stores/vision_excel_file_store.py +2 -9
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/uuid_excel_cvtr.py +9 -35
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io.egg-info/PKG-INFO +1 -1
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_uuid_excel_cvtr.py +1 -6
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/converters/test_vision_excel_converter.py +0 -18
- power-grid-model-io-1.2.72a1120307003606/PYPI_VERSION +0 -1
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/LICENSE +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/MANIFEST.in +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/README.md +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/VERSION +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/pyproject.toml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/setup.cfg +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/setup.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/config/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/config/examples/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/config/examples/multipliers.yaml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/config/excel/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/config/excel/vision_en.yaml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/config/excel/vision_nl.yaml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/converters/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/converters/base_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/converters/pandapower_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/converters/pgm_json_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/converters/tabular_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_stores/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_stores/csv_dir_store.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_stores/json_file_store.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_types/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_types/_data_types.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/data_types/tabular_data.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/functions/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/functions/_functions.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/functions/phase_to_phase.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/mappings/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/mappings/field_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/mappings/multiplier_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/mappings/tabular_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/mappings/unit_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/mappings/value_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/auto_id.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/dict.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/download.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/json.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/modules.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/parsing.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io/utils/zip.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io.egg-info/SOURCES.txt +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io.egg-info/dependency_links.txt +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io.egg-info/requires.txt +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/src/power_grid_model_io.egg-info/top_level.txt +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/conftest.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/config/dummy_mapping.yaml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/config/mapping.yaml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/pandapower/pgm_asym_output_data.json +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/pandapower/pgm_asym_output_data.json.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/pandapower/pgm_input_data.json +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/pandapower/pgm_input_data.json.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/pandapower/pgm_output_data.json +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/pandapower/pgm_output_data.json.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/pandapower/pp_validation.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/pgm_input_data_en.json +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/pgm_input_data_en.json.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/pgm_input_data_nl.json +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/pgm_input_data_nl.json.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_97_en.xlsx +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_97_en.xlsx.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_9_5_en.yaml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_9_5_nl.yaml +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_en.xlsx +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_en.xlsx.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_nl.xlsx +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_nl.xlsx.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_validation.vnf +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/vision/vision_validation.vnf.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/zip/foo-bar.zip +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/zip/foo-bar.zip.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/zip/foo.zip +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/zip/foo.zip.license +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/test_utils.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/conftest.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/converters/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/converters/test_base_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/converters/test_pandapower_converter_input.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/converters/test_pandapower_converter_output.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/converters/test_pgm_json_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/converters/test_tabular_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/converters/test_vision_excel_converter.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_stores/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_stores/test_base_data_store.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_stores/test_csv_dir_store.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_stores/test_excel_file_store.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_stores/test_json_file_store.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_stores/test_vision_excel_file_store.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_types/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_types/test_data_types.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/data_types/test_tabular_data.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/functions/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/functions/test_functions.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/functions/test_phase_to_phase.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/mappings/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/mappings/test_field_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/mappings/test_multiplier_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/mappings/test_tabular_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/mappings/test_unit_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/mappings/test_value_mapping.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_auto_id.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_dict.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_download.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_json.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_modules.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_parsing.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_zip.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/utils.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/conftest.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/converters/__init__.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/converters/test_pandapower_converter_input.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/converters/test_pandapower_converter_output.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/test_test_utils.py +0 -0
- {power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.2.73
|
|
@@ -11,7 +11,6 @@ from pathlib import Path
|
|
|
11
11
|
from typing import Any, Mapping, Optional, Union
|
|
12
12
|
|
|
13
13
|
from power_grid_model_io.converters.tabular_converter import TabularConverter
|
|
14
|
-
from power_grid_model_io.data_stores.base_data_store import LANGUAGE_EN
|
|
15
14
|
from power_grid_model_io.data_stores.vision_excel_file_store import VisionExcelFileStore
|
|
16
15
|
|
|
17
16
|
DEFAULT_MAPPING_FILE = Path(__file__).parent.parent / "config" / "excel" / "vision_{language:s}.yaml"
|
|
@@ -37,22 +36,17 @@ class VisionExcelConverter(TabularConverter):
|
|
|
37
36
|
def __init__(
|
|
38
37
|
self,
|
|
39
38
|
source_file: Optional[Union[Path, str]] = None,
|
|
40
|
-
language: str =
|
|
41
|
-
|
|
42
|
-
mapping_file: Optional[Union[Path, str]] = None,
|
|
39
|
+
language: str = "en",
|
|
40
|
+
mapping_file: Optional[Path] = None,
|
|
43
41
|
log_level: int = logging.INFO,
|
|
44
|
-
):
|
|
45
|
-
_mapping_file =
|
|
46
|
-
mapping_file if mapping_file is not None else str(DEFAULT_MAPPING_FILE).format(language=language)
|
|
42
|
+
):
|
|
43
|
+
_mapping_file = _mapping_file = (
|
|
44
|
+
mapping_file if mapping_file is not None else Path(str(DEFAULT_MAPPING_FILE).format(language=language))
|
|
47
45
|
)
|
|
48
46
|
if not _mapping_file.exists():
|
|
49
47
|
raise FileNotFoundError(f"No Vision Excel mapping available for language '{language}'")
|
|
50
48
|
self._id_reference: Optional[IdReferenceFields] = None
|
|
51
|
-
source = (
|
|
52
|
-
VisionExcelFileStore(file_path=Path(source_file), language=language, terms_changed=terms_changed)
|
|
53
|
-
if source_file
|
|
54
|
-
else None
|
|
55
|
-
)
|
|
49
|
+
source = VisionExcelFileStore(file_path=Path(source_file)) if source_file else None
|
|
56
50
|
super().__init__(mapping_file=_mapping_file, source=source, log_level=log_level)
|
|
57
51
|
|
|
58
52
|
def set_mapping(self, mapping: Mapping[str, Any]) -> None:
|
|
@@ -12,21 +12,6 @@ import structlog
|
|
|
12
12
|
|
|
13
13
|
T = TypeVar("T")
|
|
14
14
|
|
|
15
|
-
LANGUAGE_EN = "en"
|
|
16
|
-
LANGUAGE_NL = "nl"
|
|
17
|
-
DICT_KEY_NUMBER = "key_number"
|
|
18
|
-
DICT_KEY_SUBNUMBER = "key_subnumber"
|
|
19
|
-
VISION_EXCEL_LAN_DICT = {
|
|
20
|
-
LANGUAGE_EN: {
|
|
21
|
-
DICT_KEY_NUMBER: "Number",
|
|
22
|
-
DICT_KEY_SUBNUMBER: "Subnumber",
|
|
23
|
-
},
|
|
24
|
-
LANGUAGE_NL: {
|
|
25
|
-
DICT_KEY_NUMBER: "Nummer",
|
|
26
|
-
DICT_KEY_SUBNUMBER: "Subnummer",
|
|
27
|
-
},
|
|
28
|
-
}
|
|
29
|
-
|
|
30
15
|
|
|
31
16
|
class BaseDataStore(Generic[T], ABC):
|
|
32
17
|
"""
|
|
@@ -11,21 +11,8 @@ from typing import Dict, List, Optional, Set, Tuple, Union
|
|
|
11
11
|
|
|
12
12
|
import pandas as pd
|
|
13
13
|
|
|
14
|
-
from power_grid_model_io.data_stores.base_data_store import
|
|
15
|
-
DICT_KEY_NUMBER,
|
|
16
|
-
DICT_KEY_SUBNUMBER,
|
|
17
|
-
VISION_EXCEL_LAN_DICT,
|
|
18
|
-
BaseDataStore,
|
|
19
|
-
)
|
|
14
|
+
from power_grid_model_io.data_stores.base_data_store import BaseDataStore
|
|
20
15
|
from power_grid_model_io.data_types import LazyDataFrame, TabularData
|
|
21
|
-
from power_grid_model_io.utils.uuid_excel_cvtr import (
|
|
22
|
-
UUID2IntCvtr,
|
|
23
|
-
add_guid_values_to_cvtr,
|
|
24
|
-
get_special_key_map,
|
|
25
|
-
special_nodes_en,
|
|
26
|
-
special_nodes_nl,
|
|
27
|
-
update_column_names,
|
|
28
|
-
)
|
|
29
16
|
|
|
30
17
|
|
|
31
18
|
class ExcelFileStore(BaseDataStore[TabularData]):
|
|
@@ -41,16 +28,9 @@ class ExcelFileStore(BaseDataStore[TabularData]):
|
|
|
41
28
|
|
|
42
29
|
_unnamed_pattern: re.Pattern = re.compile(r"Unnamed: \d+_level_\d+")
|
|
43
30
|
|
|
44
|
-
def __init__(
|
|
45
|
-
self,
|
|
46
|
-
file_path: Optional[Path] = None,
|
|
47
|
-
language: str = "en",
|
|
48
|
-
terms_changed: Optional[dict] = None,
|
|
49
|
-
**extra_paths: Path,
|
|
50
|
-
):
|
|
31
|
+
def __init__(self, file_path: Optional[Path] = None, **extra_paths: Path):
|
|
51
32
|
super().__init__()
|
|
52
|
-
|
|
53
|
-
raise TypeError("Expects 1 to 2 positional arguments, at least 3 were given")
|
|
33
|
+
|
|
54
34
|
# Create a dictionary of all supplied file paths:
|
|
55
35
|
# {"": file_path, extra_name[0]: extra_path[0], extra_name[1]: extra_path[1], ...}
|
|
56
36
|
self._file_paths: Dict[str, Path] = {}
|
|
@@ -65,10 +45,6 @@ class ExcelFileStore(BaseDataStore[TabularData]):
|
|
|
65
45
|
raise ValueError(f"{name} file should be a .xls or .xlsx file, {path.suffix} provided.")
|
|
66
46
|
|
|
67
47
|
self._header_rows: List[int] = [0]
|
|
68
|
-
self._language = language
|
|
69
|
-
self._vision_excel_key_mapping = VISION_EXCEL_LAN_DICT[self._language]
|
|
70
|
-
self._terms_changed = terms_changed if terms_changed is not None else {}
|
|
71
|
-
self._uuid_cvtr = UUID2IntCvtr()
|
|
72
48
|
|
|
73
49
|
def files(self) -> Dict[str, Path]:
|
|
74
50
|
"""
|
|
@@ -92,8 +68,6 @@ class ExcelFileStore(BaseDataStore[TabularData]):
|
|
|
92
68
|
sheet_data = xls_file.parse(xls_sheet_name, header=self._header_rows)
|
|
93
69
|
sheet_data = self._remove_unnamed_column_placeholders(data=sheet_data)
|
|
94
70
|
sheet_data = self._handle_duplicate_columns(data=sheet_data, sheet_name=xls_sheet_name)
|
|
95
|
-
sheet_data = self._process_uuid_columns(data=sheet_data, sheet_name=xls_sheet_name)
|
|
96
|
-
sheet_data = self._update_column_names(data=sheet_data)
|
|
97
71
|
return sheet_data
|
|
98
72
|
|
|
99
73
|
return sheet_loader
|
|
@@ -223,32 +197,6 @@ class ExcelFileStore(BaseDataStore[TabularData]):
|
|
|
223
197
|
|
|
224
198
|
return to_rename
|
|
225
199
|
|
|
226
|
-
def _process_uuid_columns(self, data: pd.DataFrame, sheet_name: str) -> pd.DataFrame:
|
|
227
|
-
first_level = data.columns.get_level_values(0)
|
|
228
|
-
guid_columns = first_level[first_level.str.endswith("GUID")]
|
|
229
|
-
|
|
230
|
-
sheet_key_mapping = get_special_key_map(
|
|
231
|
-
sheet_name=sheet_name, nodes_en=special_nodes_en, nodes_nl=special_nodes_nl
|
|
232
|
-
)
|
|
233
|
-
|
|
234
|
-
for guid_column in guid_columns:
|
|
235
|
-
nr = VISION_EXCEL_LAN_DICT[self._language][DICT_KEY_NUMBER]
|
|
236
|
-
add_guid_values_to_cvtr(data, guid_column, self._uuid_cvtr)
|
|
237
|
-
new_column_name = guid_column.replace("GUID", nr)
|
|
238
|
-
if guid_column == "GUID" and sheet_key_mapping not in (None, {}):
|
|
239
|
-
new_column_name = guid_column.replace("GUID", sheet_key_mapping[DICT_KEY_SUBNUMBER])
|
|
240
|
-
guid_column_pos = first_level.tolist().index(guid_column)
|
|
241
|
-
try:
|
|
242
|
-
data.insert(guid_column_pos + 1, new_column_name, data[guid_column].apply(self._uuid_cvtr.query))
|
|
243
|
-
except ValueError:
|
|
244
|
-
data[new_column_name] = data[guid_column].apply(self._uuid_cvtr.query)
|
|
245
|
-
|
|
246
|
-
return data
|
|
247
|
-
|
|
248
|
-
def _update_column_names(self, data: pd.DataFrame) -> pd.DataFrame:
|
|
249
|
-
update_column_names(data, self._terms_changed)
|
|
250
|
-
return data
|
|
251
|
-
|
|
252
200
|
@staticmethod
|
|
253
201
|
def _group_columns_by_index(data: pd.DataFrame) -> Dict[Union[str, Tuple[str, ...]], Set[int]]:
|
|
254
202
|
grouped: Dict[Union[str, Tuple[str, ...]], Set[int]] = {}
|
|
@@ -5,9 +5,7 @@
|
|
|
5
5
|
Vision Excel file store
|
|
6
6
|
"""
|
|
7
7
|
from pathlib import Path
|
|
8
|
-
from typing import Optional
|
|
9
8
|
|
|
10
|
-
from power_grid_model_io.data_stores.base_data_store import LANGUAGE_EN
|
|
11
9
|
from power_grid_model_io.data_stores.excel_file_store import ExcelFileStore
|
|
12
10
|
|
|
13
11
|
|
|
@@ -19,15 +17,10 @@ class VisionExcelFileStore(ExcelFileStore):
|
|
|
19
17
|
Therefore, row 1 (which is row 2 in Excel) is added to the header_rows in the constructor.
|
|
20
18
|
"""
|
|
21
19
|
|
|
22
|
-
def __init__(
|
|
23
|
-
self,
|
|
24
|
-
file_path: Path,
|
|
25
|
-
language: str = LANGUAGE_EN,
|
|
26
|
-
terms_changed: Optional[dict] = None,
|
|
27
|
-
):
|
|
20
|
+
def __init__(self, file_path: Path):
|
|
28
21
|
"""
|
|
29
22
|
Args:
|
|
30
23
|
file_path: The main Vision Excel export file
|
|
31
24
|
"""
|
|
32
|
-
super().__init__(file_path
|
|
25
|
+
super().__init__(file_path)
|
|
33
26
|
self._header_rows.append(1) # Units are stored in the row below the column names
|
|
@@ -15,19 +15,10 @@
|
|
|
15
15
|
|
|
16
16
|
import os
|
|
17
17
|
import re
|
|
18
|
-
from
|
|
19
|
-
from typing import Optional, Union
|
|
18
|
+
from typing import Optional
|
|
20
19
|
|
|
21
20
|
import pandas as pd
|
|
22
21
|
|
|
23
|
-
from power_grid_model_io.data_stores.base_data_store import (
|
|
24
|
-
DICT_KEY_NUMBER,
|
|
25
|
-
DICT_KEY_SUBNUMBER,
|
|
26
|
-
LANGUAGE_EN,
|
|
27
|
-
LANGUAGE_NL,
|
|
28
|
-
VISION_EXCEL_LAN_DICT,
|
|
29
|
-
)
|
|
30
|
-
|
|
31
22
|
special_nodes_en = [
|
|
32
23
|
"Transformer loads",
|
|
33
24
|
"Sources",
|
|
@@ -120,7 +111,7 @@ class UUID2IntCvtr:
|
|
|
120
111
|
return self._counter
|
|
121
112
|
|
|
122
113
|
|
|
123
|
-
def load_excel_file(file_name:
|
|
114
|
+
def load_excel_file(file_name: str) -> pd.ExcelFile:
|
|
124
115
|
"""Load an excel file
|
|
125
116
|
|
|
126
117
|
Args:
|
|
@@ -156,20 +147,6 @@ def add_guid_values_to_cvtr(df: pd.DataFrame, guid_column: str, cvtr: UUID2IntCv
|
|
|
156
147
|
cvtr.add_list(df[guid_column].tolist())
|
|
157
148
|
|
|
158
149
|
|
|
159
|
-
def get_special_key_map(sheet_name: str, nodes_en: list[str], nodes_nl: list[str]) -> dict:
|
|
160
|
-
"""Get the special nodes for English and Dutch
|
|
161
|
-
|
|
162
|
-
Args:
|
|
163
|
-
sheet_name (str): the sheet name
|
|
164
|
-
mapping (dict): the mapping dictionary
|
|
165
|
-
"""
|
|
166
|
-
if sheet_name in nodes_en:
|
|
167
|
-
return VISION_EXCEL_LAN_DICT[LANGUAGE_EN]
|
|
168
|
-
if sheet_name in nodes_nl:
|
|
169
|
-
return VISION_EXCEL_LAN_DICT[LANGUAGE_NL]
|
|
170
|
-
return {}
|
|
171
|
-
|
|
172
|
-
|
|
173
150
|
def insert_or_update_number_column(
|
|
174
151
|
df: pd.DataFrame, guid_column: str, sheet_name: str, cvtr: UUID2IntCvtr, number: str
|
|
175
152
|
) -> None:
|
|
@@ -182,10 +159,11 @@ def insert_or_update_number_column(
|
|
|
182
159
|
number (str): "Number" or "Nummer" depending on the language
|
|
183
160
|
"""
|
|
184
161
|
new_column_name = guid_column.replace("GUID", number)
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
162
|
+
if guid_column == "GUID":
|
|
163
|
+
if sheet_name in special_nodes_en:
|
|
164
|
+
new_column_name = guid_column.replace("GUID", "Subnumber")
|
|
165
|
+
elif sheet_name in special_nodes_nl:
|
|
166
|
+
new_column_name = guid_column.replace("GUID", "Subnummer")
|
|
189
167
|
try:
|
|
190
168
|
df.insert(df.columns.get_loc(guid_column) + 1, new_column_name, df[guid_column].apply(cvtr.query))
|
|
191
169
|
except ValueError:
|
|
@@ -218,15 +196,11 @@ def save_df_to_excel(df: pd.DataFrame, file_name: str, sheet_name: str, i: int)
|
|
|
218
196
|
df.to_excel(writer, sheet_name=sheet_name, index=False)
|
|
219
197
|
|
|
220
198
|
|
|
221
|
-
def convert_guid_vision_excel(
|
|
222
|
-
excel_file: Union[Path, str],
|
|
223
|
-
number: str = VISION_EXCEL_LAN_DICT[LANGUAGE_EN][DICT_KEY_NUMBER],
|
|
224
|
-
terms_changed: Optional[dict] = None,
|
|
225
|
-
) -> str:
|
|
199
|
+
def convert_guid_vision_excel(excel_file: str, number: str = "Number", terms_changed: Optional[dict] = None) -> str:
|
|
226
200
|
"""Main entry function. Convert the GUID based Vision excel files to a number based format
|
|
227
201
|
|
|
228
202
|
Args:
|
|
229
|
-
excel_file (
|
|
203
|
+
excel_file (str): Vision excel file name
|
|
230
204
|
number (str): "Number" or "Nummer" depending on the language. Defaults to "Number".
|
|
231
205
|
terms_changed (dict): the dictionary containing the terms to be changed. Defaults to {}.
|
|
232
206
|
|
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
|
|
7
7
|
from power_grid_model_io.converters import VisionExcelConverter
|
|
8
|
-
from power_grid_model_io.data_stores.base_data_store import DICT_KEY_SUBNUMBER # pylint: disable=unused-import
|
|
9
|
-
from power_grid_model_io.data_stores.base_data_store import LANGUAGE_NL # pylint: disable=unused-import
|
|
10
|
-
from power_grid_model_io.data_stores.base_data_store import DICT_KEY_NUMBER, LANGUAGE_EN, VISION_EXCEL_LAN_DICT
|
|
11
8
|
from power_grid_model_io.utils.uuid_excel_cvtr import convert_guid_vision_excel
|
|
12
9
|
|
|
13
10
|
terms_chaged = {"Grounding1": "N1", "Grounding2": "N2", "Grounding3": "N3", "Load.Behaviour": "Behaviour"}
|
|
@@ -18,9 +15,7 @@ REFERENCE_FILE = DATA_DIR / "vision_en.xlsx"
|
|
|
18
15
|
|
|
19
16
|
|
|
20
17
|
def test_convert_guid_vision_excel():
|
|
21
|
-
new_file = convert_guid_vision_excel(
|
|
22
|
-
SOURCE_FILE, number=VISION_EXCEL_LAN_DICT[LANGUAGE_EN][DICT_KEY_NUMBER], terms_changed=terms_chaged
|
|
23
|
-
)
|
|
18
|
+
new_file = convert_guid_vision_excel(SOURCE_FILE, number="Number", terms_changed=terms_chaged)
|
|
24
19
|
vision_cvtr_new = VisionExcelConverter(source_file=new_file)
|
|
25
20
|
vision_cvtr_ref = VisionExcelConverter(source_file=REFERENCE_FILE)
|
|
26
21
|
|
|
@@ -13,24 +13,17 @@ import pytest
|
|
|
13
13
|
from power_grid_model.data_types import SingleDataset
|
|
14
14
|
|
|
15
15
|
from power_grid_model_io.converters import VisionExcelConverter
|
|
16
|
-
from power_grid_model_io.data_stores.base_data_store import DICT_KEY_SUBNUMBER # pylint: disable=unused-import
|
|
17
|
-
from power_grid_model_io.data_stores.base_data_store import LANGUAGE_NL # pylint: disable=unused-import
|
|
18
|
-
from power_grid_model_io.data_stores.base_data_store import DICT_KEY_NUMBER, LANGUAGE_EN, VISION_EXCEL_LAN_DICT
|
|
19
16
|
from power_grid_model_io.data_types import ExtraInfo
|
|
20
17
|
from power_grid_model_io.utils.json import JsonEncoder
|
|
21
|
-
from power_grid_model_io.utils.uuid_excel_cvtr import convert_guid_vision_excel
|
|
22
18
|
|
|
23
19
|
from ..utils import compare_extra_info, component_attributes, component_objects, load_json_single_dataset, select_values
|
|
24
20
|
|
|
25
21
|
DATA_PATH = Path(__file__).parents[2] / "data" / "vision"
|
|
26
22
|
SOURCE_FILE = DATA_PATH / "vision_{language:s}.xlsx"
|
|
27
|
-
SOURCE_FILE_97 = DATA_PATH / "vision_97_{language:s}.xlsx"
|
|
28
23
|
VALIDATION_FILE = DATA_PATH / "pgm_input_data_{language:s}.json"
|
|
29
24
|
LANGUAGES = ["en", "nl"]
|
|
30
|
-
LANGUAGES_97 = ["en"]
|
|
31
25
|
VALIDATION_EN = Path(str(VALIDATION_FILE).format(language="en"))
|
|
32
26
|
CUSTOM_MAPPING_FILE = DATA_PATH / "vision_9_5_{language:s}.yaml"
|
|
33
|
-
terms_changed = {"Grounding1": "N1", "Grounding2": "N2", "Grounding3": "N3", "Load.Behaviour": "Behaviour"}
|
|
34
27
|
|
|
35
28
|
|
|
36
29
|
@lru_cache
|
|
@@ -304,14 +297,3 @@ def test_log_levels(capsys):
|
|
|
304
297
|
cvtr5.set_log_level(logging.CRITICAL)
|
|
305
298
|
outerr = capsys.readouterr()
|
|
306
299
|
assert "debug" not in outerr.out
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
def test_uuid_excel_input():
|
|
310
|
-
source_file = Path(str(SOURCE_FILE_97).format(language=LANGUAGE_EN))
|
|
311
|
-
ref_file_97 = convert_guid_vision_excel(
|
|
312
|
-
excel_file=source_file, number=VISION_EXCEL_LAN_DICT[LANGUAGE_EN][DICT_KEY_NUMBER], terms_changed=terms_changed
|
|
313
|
-
)
|
|
314
|
-
data_native, _ = VisionExcelConverter(source_file, language="en", terms_changed=terms_changed).load_input_data()
|
|
315
|
-
data_convtd, _ = VisionExcelConverter(source_file=ref_file_97).load_input_data()
|
|
316
|
-
|
|
317
|
-
assert len(data_native) == len(data_convtd)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.2.72a1120307003606
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/zip/foo-bar.zip
RENAMED
|
File without changes
|
|
File without changes
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/data/zip/foo.zip
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/__init__.py
RENAMED
|
File without changes
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/conftest.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
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/__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.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/unit/utils/test_zip.py
RENAMED
|
File without changes
|
|
File without changes
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/__init__.py
RENAMED
|
File without changes
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/conftest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{power-grid-model-io-1.2.72a1120307003606 → power-grid-model-io-1.2.73}/tests/validation/utils.py
RENAMED
|
File without changes
|