From 4a0effde50941095154500c2a4f4f897a0997bcc Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sun, 7 Dec 2025 22:43:51 +0100 Subject: [PATCH 01/34] Add draft for dynamic table creation --- open_mastr/utils/sqlalchemy_tables.py | 137 ++++++++++++++++++++++++++ open_mastr/utils/xsd_tables.py | 99 +++++++++++++++++++ 2 files changed, 236 insertions(+) create mode 100644 open_mastr/utils/sqlalchemy_tables.py create mode 100644 open_mastr/utils/xsd_tables.py diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py new file mode 100644 index 00000000..b2204022 --- /dev/null +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -0,0 +1,137 @@ +import datetime +from dataclasses import dataclass +from typing import Any, Union +from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime +from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped + +import xmlschema +from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction +from open_mastr.utils.xsd_tables import MastrColumnType, MastrTableDescription + + +MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE = { + MastrColumnType.STRING: String, + MastrColumnType.INTEGER: Integer, + MastrColumnType.FLOAT: Float, + MastrColumnType.DATE: Date, + MastrColumnType.DATETIME: DateTime(timezone=True), + MastrColumnType.BOOLEAN: Boolean, + MastrColumnType.CATALOG_VALUE: Integer, # TODO: Think about how to deal with mapping catalog values +} + +MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS = { + "AnlagenEegBiomasse": {"EegMastrNummer"}, + "AnlagenEegGeothermieGrubengasDruckentspannung": {"EegMastrNummer"}, + "AnlagenEegSolar": {"EegMastrNummer"}, + "AnlagenEegSpeicher": {"EegMastrNummer"}, + "AnlagenEegWasser": {"EegMastrNummer"}, + "AnlagenEegWind": {"EegMastrNummer"}, + "AnlagenGasSpeicher": {"MastrNummer"}, + "AnlagenKwk": {"KwkMastrNummer"}, + "AnlagenStromSpeicher": {"MastrNummer"}, + "Bilanzierungsgebiete": {"Id"}, + "EinheitenAenderungNetzbetreiberzuordnungen": {"EinheitMastrNummer"}, # TODO: Is not a primary key on its own! + "EinheitenBiomasse": {"EinheitMastrNummer"}, + "EinheitenGasErzeuger": {"EinheitMastrNummer"}, + "EinheitenGasSpeicher": {"EinheitMastrNummer"}, + "EinheitenGasverbraucher": {"EinheitMastrNummer"}, + "EinheitenGenehmigung": {"GenMastrNummer"}, + "EinheitenGeothermieGrubengasDruckentspannung": {"EinheitMastrNummer"}, + "EinheitenKernkraft": {"EinheitMastrNummer"}, + "EinheitenSolar": {"EinheitMastrNummer"}, + "EinheitenStromSpeicher": {"EinheitMastrNummer"}, + "EinheitenStromVerbraucher": {"EinheitMastrNummer"}, + "Einheitentypen": {"Id"}, + "EinheitenVerbrennung": {"EinheitMastrNummer"}, + "EinheitenWasser": {"EinheitMastrNummer"}, + "EinheitenWind": {"EinheitMastrNummer"}, + "Ertuechtigungen": {"Id"}, + "GeloeschteUndDeaktivierteEinheiten": {"EinheitMastrNummer"}, + "GeloeschteUndDeaktivierteMarktakteure": {"MarktakteurMastrNummer"}, + "Katalogkategorien": {"Id"}, + "Katalogwerte": {"Id"}, + "Lokationen": {"MastrNummer"}, + "Lokationstypen": {"Id"}, + "MarktakteureUndRollen": {"MarktakteurMastrNummer"}, + "Marktakteure": {"MastrNummer"}, + "Marktfunktionen": {"Id"}, + "Marktrollen": {"Id"}, + "Netzanschlusspunkte": {"NetzanschlusspunktMastrNummer"}, + "Netze": {"MastrNummer"}, +} + + +class Base(DeclarativeBase): + pass + + +class ParentAllTables(object): + DatenQuelle: Mapped[str] = mapped_column(String) + DatumDownload: Mapped[datetime.date] = mapped_column(Date) + + +def make_sqlalchemy_model_from_mastr_table_description( + table_description: MastrTableDescription, + base: DeclarativeBase = Base, + mixins: tuple[type, ...] = (ParentAllTables,), +): + return _make_sqlalchemy_model( + class_name=table_description.instance_name, + table_name=table_description.table_name, + column_name_to_column_type={ + column.name: MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE[column.type] + for column in table_description.columns + }, + primary_key_columns=MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS[table_description.table_name], + base=Base, + mixins=(ParentAllTables,) + ) + + +def _make_sqlalchemy_model( + class_name: str, + table_name: str, + column_name_to_column_type: dict[str, Any], + primary_key_columns: set[str], + base: DeclarativeBase, + mixins: tuple[type, ...] = tuple(), +): + namespace = { + "__tablename__": table_name, + "__annotations__": {}, + } + + for column_name, column_type in column_name_to_column_type.items(): + kwargs = {"primary_key": True} if column_name in primary_key_columns else {"nullable": True} + namespace[column_name] = mapped_column(column_type, **kwargs) + + bases = (base,) + mixins + return type(class_name, bases, namespace) + + +if __name__ == "__main__": + import os + import sys + from sqlalchemy import create_engine + import traceback + import xmlschema + + print("Parsing XSD files") + xsd_path = sys.argv[1] + for xsd_path in sys.argv[1:]: + schema = xmlschema.XMLSchema(xsd_path) + try: + table_description = MastrTableDescription.from_xml_schema(schema) + except ValueError: + traceback.print_exc() + print("Failed for ", xsd_path) + sys.exit(1) + + model = make_sqlalchemy_model_from_mastr_table_description( + table_description=table_description, + ) + + db_path = os.path.join(os.getcwd(), "test.db") + print(f"Creating SQLite database at {db_path}") + engine = create_engine(f"sqlite:///{db_path}") + Base.metadata.create_all(engine) diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py new file mode 100644 index 00000000..06e09d79 --- /dev/null +++ b/open_mastr/utils/xsd_tables.py @@ -0,0 +1,99 @@ +import re +from enum import auto, Enum +from dataclasses import dataclass +from typing import Union + +import xmlschema +from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction + +_XML_SCHEMA_PREFIX = "{http://www.w3.org/2001/XMLSchema}" + + +def normalize_column_name(original_mastr_column_name: str) -> str: + return original_mastr_column_name.replace("MaStR", "Mastr") + + +class MastrColumnType(Enum): + STRING = auto() + INTEGER = auto() + FLOAT = auto() + DATE = auto() + DATETIME = auto() + BOOLEAN = auto() + CATALOG_VALUE = auto() + + @classmethod + def from_xsd_type(cls, xsd_type: Union[XsdAtomicBuiltin, XsdAtomicRestriction]) -> "MastrColumnDescription": + xsd_type_to_mastr_column_type = { + f"{_XML_SCHEMA_PREFIX}string": cls.STRING, + f"{_XML_SCHEMA_PREFIX}decimal": cls.INTEGER, + f"{_XML_SCHEMA_PREFIX}int": cls.INTEGER, + f"{_XML_SCHEMA_PREFIX}short": cls.INTEGER, + f"{_XML_SCHEMA_PREFIX}byte": cls.INTEGER, + f"{_XML_SCHEMA_PREFIX}float": cls.FLOAT, + f"{_XML_SCHEMA_PREFIX}date": cls.DATE, + f"{_XML_SCHEMA_PREFIX}dateTime": cls.DATETIME, + } + if xsd_type.is_restriction(): + if enumeration := xsd_type.enumeration: + if set(xsd_type.enumeration) == {0, 1}: + return cls.BOOLEAN + else: + return cls.CATALOG_VALUE + # Ertuechtigungen.xsd has some normal types defined as restrictions for some reason. + # We cope with that by extracting the primitive type it's restricted to. + inner_xsd_type = xsd_type.primitive_type + if mastr_column_type := xsd_type_to_mastr_column_type.get(inner_xsd_type.name): + return mastr_column_type + + if mastr_column_type := xsd_type_to_mastr_column_type.get(xsd_type.name): + return mastr_column_type + + raise ValueError(f"Could not determine MastrColumnType from XSD type {xsd_type!r}") + + +@dataclass +class MastrColumnDescription: + name: str + type: MastrColumnType + + @classmethod + def from_xsd_element(cls, xsd_element: xmlschema.XsdElement) -> "MastrColumnDescription": + name = normalize_column_name(xsd_element.name) + return cls( + name=name, + type=MastrColumnType.from_xsd_type(xsd_element.type) + ) + + +@dataclass +class MastrTableDescription: + table_name: str + instance_name: str + columns: tuple[MastrColumnDescription] + + @classmethod + def from_xml_schema(cls, schema: xmlschema.XMLSchema) -> "MastrTableDescription": + if len(schema.root_elements) != 1: + raise ValueError( + "XML schema must have exactly one root element," + f" but has {len(schema.root_elements)} ({schema.root_elements!r})" + ) + root = schema.root_elements[0] + + try: + main_element = root.content.content[0] + column_elements = main_element.content.content + except (AttributeError, IndexError, TypeError) as e: + raise ValueError(f"Could not find columns in XML schema {schema!r}") from e + + columns = tuple( + MastrColumnDescription.from_xsd_element(element) + for element in column_elements + ) + + return cls( + table_name=root.name, + instance_name=main_element.name, + columns=columns, + ) From 7cafcf471ad15bfa391665ab15a67fb1ac1c9955 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sun, 14 Dec 2025 21:15:05 +0100 Subject: [PATCH 02/34] Continue with implementing XSD reading --- open_mastr/mastr_2.py | 262 ++++++++++++++++++ open_mastr/utils/sqlalchemy_tables.py | 10 +- open_mastr/utils/xsd_tables.py | 37 ++- .../xml_download/utils_download_bulk.py | 43 +++ pyproject.toml | 1 + 5 files changed, 348 insertions(+), 5 deletions(-) create mode 100644 open_mastr/mastr_2.py diff --git a/open_mastr/mastr_2.py b/open_mastr/mastr_2.py new file mode 100644 index 00000000..a626d8e5 --- /dev/null +++ b/open_mastr/mastr_2.py @@ -0,0 +1,262 @@ +import os +from sqlalchemy import inspect, create_engine + +# import xml dependencies +from open_mastr.xml_download.utils_download_bulk import ( + download_documentation, + download_xml_Mastr, + delete_xml_files_not_from_given_date, +) +from open_mastr.xml_download.utils_write_to_database import ( + write_mastr_xml_to_database, +) + +from open_mastr.utils.helpers import ( + validate_parameter_format_for_download_method, + validate_parameter_format_for_mastr_init, + validate_parameter_data, + transform_data_parameter, + parse_date_string, + transform_date_parameter, + data_to_include_tables, + create_db_query, + db_query_to_csv, + reverse_fill_basic_units, + delete_zip_file_if_corrupted, + create_database_engine, + rename_table, + create_translated_database_engine, +) +from open_mastr.utils.config import ( + create_data_dir, + get_data_version_dir, + get_project_home_dir, + get_output_dir, + setup_logger, +) +import open_mastr.utils.orm as orm +from open_mastr.utils.sqlalchemy_tables import ( + make_sqlalchemy_model_from_mastr_table_description, + MastrBase +) + +# constants +from open_mastr.utils.constants import TECHNOLOGIES, ADDITIONAL_TABLES + +# setup logger +log = setup_logger() + + +class Mastr: + """ + `Mastr` is used to download the MaStR database and keep it up-to-date. + + An SQL database is used to mirror the MaStR database. It is filled by + downloading and parsing the MaStR via bulk download. + + !!! example + + ```python + from open_mastr import Mastr + + db = Mastr() + db.download() + ``` + + Parameters + ---------- + engine : {'sqlite', sqlalchemy.engine.Engine}, optional + Defines the engine of the database where the MaStR is mirrored to. + Default is 'sqlite'. + connect_to_translated_db: boolean, optional + Allows connection to an existing translated database. Default is 'False'. + Only for 'sqlite'-type engines. + + + + """ + + def __init__( + self, + engine: Union[Engine, Literal["sqlite"]] = "sqlite", + mastr_table_to_db_table_name: Optional[dict[str, str]] = None, + output_dir: Optional[Union[str, Path]] = None, + home_dir: Optional[Union[str, Path]] = None, + ) -> None: + validate_parameter_format_for_mastr_init(engine) + + self.output_dir = output_dir or get_output_dir() + self.home_directory = home_dir or get_project_home_dir() + + self._sqlite_folder_path = os.path.join(self.output_dir, "data", "sqlite") + + os.makedirs(self._sqlite_folder_path, exist_ok=True) + + self.engine = create_database_engine(engine, self._sqlite_folder_path) + + log.info( + "\n==================================================\n" + "---------> open-MaStR started <---------\n" + "==================================================\n" + f"Data will be written to the following database: {self.engine.url}\n" + "If you run into problems, try to " + "delete the database and update the package by running " + "'pip install --upgrade open-mastr'\n" + ) + + def generate_data_model( + self, data: Optional[list[str]] = None + ) -> dict[MastrTableDescription, Model]: + docs_folder_path = os.path.join(self.output_dir, "data", "docs_download") + os.makedirs(docs_folder_path, exist_ok=True) + zipped_docs_file_path = os.path.join( + xml_folder_path, + "Dokumentation MaStR Gesamtdatenexport.zip" + ) + download_documentation(zipped_docs_file_path) + + mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( + zipped_docs_file_path=zipped_docs_file_path, data=data + ) + mastr_table_to_db_model: dict[MastrTableDescription, MastrBase] = {} + for mastr_table_description in mastr_table_descriptions: + sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description(mastr_table_description) + mastr_table_to_db_model[mastr_table_description] = sqlalchemy_model + + return mastr_table_description + + def download( + self, + method="bulk", + data=None, + date=None, + bulk_cleansing=True, + keep_old_downloads: bool = False, + mastr_table_to_db_model: Optional[Mapping[MastrTableDescription, Model]] = None, + **kwargs, + ) -> None: + """ + Downloads the MaStR registry and writes it to a local database. + + Parameters + ---------- + method : 'bulk', optional + Only "bulk" is a valid value. The download via the MaStR SOAP API is deprecated. + Default to 'bulk'. + data : str or list or None, optional + Specifies which tables to download. + + **Possible values:** + + - "wind" + - "solar" + - "biomass" + - "hydro" + - "gsgk" + - "combustion" + - "nuclear" + - "gas" + - "storage" + - "storage_units" + - "electricity_consumer" + - "location" + - "market" + - "grid" + - "balancing_area" + - "permit" + - "deleted_units" + - "deleted_market_actors" + - "retrofit_units" + + **Usage:** + + - If `None`, all data is downloaded. + - If a string, only the specified table is downloaded (e.g., `"wind"`). + - If a list, multiple tables are downloaded (e.g., `["wind", "solar"]`). + + date : None or `datetime.datetime` or str, optional + + | date | description | + |-----------------------|------| + | "today" | latest files are downloaded from marktstammdatenregister.de | + | "20230101" | If file from this date exists locally, it is used. Otherwise it throws an error (You can only receive todays data from the server) | + | "existing" | Deprecated since 0.16, see [#616](https://github.com/OpenEnergyPlatform/open-MaStR/issues/616#issuecomment-3089377062) | + | None | set date="today" | + + Default to `None`. + bulk_cleansing : bool, optional + If set to True, data cleansing is applied after the download (which is recommended). + In its original format, many entries in the MaStR are encoded with IDs. Columns like + `state` or `fueltype` do not contain entries such as "Hessen" or "Braunkohle", but instead + only contain IDs. Cleansing replaces these IDs with their corresponding original entries. + keep_old_downloads: bool + If set to True, prior downloaded MaStR zip files will be kept. + """ + if method == "API": + log.warning( + "Downloading the whole registry via the MaStR SOAP-API is deprecated. " + "You can still use the open_mastr.soap_api.download.MaStRAPI class " + "to construct single calls." + ) + log.warning("Attention: method='API' changed to method='bulk'.") + method = "bulk" + + if not mastr_table_to_db_model: + mastr_table_to_db_model = generate_data_model() + + validate_parameter_format_for_download_method( + method=method, + data=data, + date=date, + bulk_cleansing=bulk_cleansing, + **kwargs, + ) + data = transform_data_parameter(data, **kwargs) + + date = transform_date_parameter(self, date, **kwargs) + + # Find the name of the zipped xml folder + bulk_download_date = parse_date_string(date) + xml_folder_path = os.path.join(self.output_dir, "data", "xml_download") + os.makedirs(xml_folder_path, exist_ok=True) + zipped_xml_file_path = os.path.join( + xml_folder_path, + f"Gesamtdatenexport_{bulk_download_date}.zip", + ) + + delete_zip_file_if_corrupted(zipped_xml_file_path) + if not keep_old_downloads: + delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) + + download_xml_Mastr(zipped_xml_file_path, date, data, xml_folder_path) + + log.info( + "\nWould you like to speed up the creation of your MaStR database?\n" + "Try our new parallelized processing by setting os.environ['USE_RECOMMENDED_NUMBER_OF_PROCESSES'] = True " + "or configure your own number of processes via os.environ['NUMBER_OF_PROCESSES'] = your_number\n" + ) + + delete_zip_file_if_corrupted(zipped_xml_file_path) + delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) + + + print( + "\nWould you like to speed up the creation of your MaStR database?\n" + "Try our new parallelized processing by setting os.environ['USE_RECOMMENDED_NUMBER_OF_PROCESSES'] = True " + "or configure your own number of processes via os.environ['NUMBER_OF_PROCESSES'] = your_number\n" + ) + + write_mastr_xml_to_database( + engine=self.engine, + zipped_xml_file_path=zipped_xml_file_path, + data=data, + bulk_cleansing=bulk_cleansing, + bulk_download_date=bulk_download_date, + ) + + def to_csv( + self, tables: list = None, chunksize: int = 500000, limit: int = None + ) -> None: + pass + # TODO: Think about this. + diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index b2204022..0a6265b3 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -19,6 +19,10 @@ MastrColumnType.CATALOG_VALUE: Integer, # TODO: Think about how to deal with mapping catalog values } +# Potential hierarchy +# Id -> MastrNummer -> EinheitMastrNummer +# -> EegMastrNummer -> KwkMastrNummer -> GenMastrNummer +# -> MarktakteurMastrNummer -> NetzanschlusspunktMastrNummer MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS = { "AnlagenEegBiomasse": {"EegMastrNummer"}, "AnlagenEegGeothermieGrubengasDruckentspannung": {"EegMastrNummer"}, @@ -61,7 +65,7 @@ } -class Base(DeclarativeBase): +class MastrBase(DeclarativeBase): pass @@ -72,7 +76,7 @@ class ParentAllTables(object): def make_sqlalchemy_model_from_mastr_table_description( table_description: MastrTableDescription, - base: DeclarativeBase = Base, + base: DeclarativeBase = MastrBase, mixins: tuple[type, ...] = (ParentAllTables,), ): return _make_sqlalchemy_model( @@ -83,7 +87,7 @@ def make_sqlalchemy_model_from_mastr_table_description( for column in table_description.columns }, primary_key_columns=MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS[table_description.table_name], - base=Base, + base=MastrBase, mixins=(ParentAllTables,) ) diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index 06e09d79..b3764f80 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -52,7 +52,7 @@ def from_xsd_type(cls, xsd_type: Union[XsdAtomicBuiltin, XsdAtomicRestriction]) raise ValueError(f"Could not determine MastrColumnType from XSD type {xsd_type!r}") -@dataclass +@dataclass(frozen=True) class MastrColumnDescription: name: str type: MastrColumnType @@ -66,7 +66,7 @@ def from_xsd_element(cls, xsd_element: xmlschema.XsdElement) -> "MastrColumnDesc ) -@dataclass +@dataclass(frozen=True) class MastrTableDescription: table_name: str instance_name: str @@ -97,3 +97,36 @@ def from_xml_schema(cls, schema: xmlschema.XMLSchema) -> "MastrTableDescription" instance_name=main_element.name, columns=columns, ) + + +def read_mastr_table_descriptions_from_xsd( + zipped_docs_file_path: Union[Path, str], data: Optional[list[str]] = None +) -> set[MastrTableDescription]: + include_tables = set(data_to_include_tables(data, mapping="write_xml")) + + mastr_table_descriptions = set() + with ZipFile(zipped_docs_file_path, "r") as docs_z: + xsd_zip_entry = _find_xsd_zip_file(docs_z) + with ZipFile(docs_z.open(xsd_zip_entry)) as xsd_z: + for entry in xsd_z: + if entry.is_dir() or not entry.filename.endswith(".xsd"): + continue + + normalized_name = os.path.basename(entry.filename).removesuffix(".xsd").lower() + if normalized_name in include_tables: + with xsd_z.open(entry) as xsd_file: + mastr_table_description = MastrTableDescription.from_xml_schema(XMLSchema(xsd_file)) + mastr_table_descriptions.add(mastr_table_description) + + return mastr_table_descriptions + + +def _find_xsd_zip_entry(docs_zip_file: ZipFile) -> ZipInfo: + desired_filename = "xsd.zip" + for entry in docs_zip_file.filelist: + if os.path.basename(entry.filename) == desired_filename: + return entry + raise RuntimeError( + f"Did not find XSD files in the form of {desired_filename!r} in the documentation" + f" ZIP file {docs_zip_file.filename!r}" + ) diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index 9eedebab..a38b014d 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -1,3 +1,5 @@ +import datetime +import math import os import shutil import time @@ -362,6 +364,7 @@ def full_download_without_unzip_http( "Warning: The servers from MaStR restrict the download speed." " You may want to download it another time." ) + # TODO: Explain this number total_length = int(23000) with ( open(save_path, "wb") as zfile, @@ -549,3 +552,43 @@ def select_download_date(): else: print("Invalid choice. Please enter 1, or 2.") + + +def download_documentation( + save_path: str, xml_folder_path: str +) -> None: + """Downloads the zipped MaStR. + + Parameters + ----------- + save_path: str + Full file path where the downloaded MaStR zip file will be saved. + xml_folder_path: str + Path where the downloaded MaStR zip file will be saved. + """ + log.info("Starting the MaStR documentation download from marktstammdatenregister.de.") + url = "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" + + time_a = time.perf_counter() + r = requests.get(url, stream=True, headers={"User-Agent": USER_AGENT}) + + r.raise_for_status() + + chunk_size = 1024 * 1024 + content_length = r.headers.get("Content-Length") + expected_steps = math.ceil(content_length / chunk_size) + with ( + open(save_path, "wb") as zfile, + tqdm(desc=save_path, total=expected_steps) as bar, + ): + for chunk in r.iter_content(chunk_size=chunk_size): + if chunk: + zfile.write(chunk) + zfile.flush() + bar.update() + + time_b = time.perf_counter() + log.info( + f"MaStR documentation download is finished. It took {round(time_b - time_a)} seconds." + ) + log.info(f"MaStR was successfully downloaded to {xml_folder_path}.") diff --git a/pyproject.toml b/pyproject.toml index 074ba12e..edd4550d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ dependencies = [ "keyring", "pyyaml", "xmltodict", + "xmlschema", ] requires-python = ">=3.9, <4" From 10f957c6357856e80c91af677f47af947e500ba6 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sun, 21 Dec 2025 19:28:42 +0100 Subject: [PATCH 03/34] Continue with implementation --- open_mastr/mastr_2.py | 46 +++- open_mastr/utils/helpers.py | 17 +- open_mastr/utils/sqlalchemy_tables.py | 61 +++-- open_mastr/utils/xsd_tables.py | 14 +- open_mastr/xml_download/colums_to_replace.py | 5 +- .../xml_download/utils_cleansing_bulk.py | 30 ++- .../xml_download/utils_download_bulk.py | 38 +-- .../xml_download/utils_write_to_database.py | 240 ++++++++++-------- 8 files changed, 268 insertions(+), 183 deletions(-) diff --git a/open_mastr/mastr_2.py b/open_mastr/mastr_2.py index a626d8e5..681c8403 100644 --- a/open_mastr/mastr_2.py +++ b/open_mastr/mastr_2.py @@ -1,5 +1,9 @@ import os -from sqlalchemy import inspect, create_engine +from pathlib import Path +from sqlalchemy import inspect, create_engine, Engine +from sqlalchemy.orm import DeclarativeBase +from typing import Literal, Optional, Type, TypeVar, Union +from collections.abc import Mapping # import xml dependencies from open_mastr.xml_download.utils_download_bulk import ( @@ -10,6 +14,7 @@ from open_mastr.xml_download.utils_write_to_database import ( write_mastr_xml_to_database, ) +from open_mastr.utils.xsd_tables import MastrTableDescription, read_mastr_table_descriptions_from_xsd from open_mastr.utils.helpers import ( validate_parameter_format_for_download_method, @@ -46,6 +51,9 @@ # setup logger log = setup_logger() +# TODO: Repeating Type[DeclarativeBase_T] in function signatures is strange. There must be a better option. +DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) + class Mastr: """ @@ -105,12 +113,17 @@ def __init__( ) def generate_data_model( - self, data: Optional[list[str]] = None - ) -> dict[MastrTableDescription, Model]: + self, + data: Optional[list[str]] = None, + catalog_value_as_str: bool = True, + base: Type[DeclarativeBase_T] = MastrBase, + ) -> dict[str, Type[DeclarativeBase_T]]: + data = transform_data_parameter(data) + docs_folder_path = os.path.join(self.output_dir, "data", "docs_download") os.makedirs(docs_folder_path, exist_ok=True) zipped_docs_file_path = os.path.join( - xml_folder_path, + docs_folder_path, "Dokumentation MaStR Gesamtdatenexport.zip" ) download_documentation(zipped_docs_file_path) @@ -118,12 +131,16 @@ def generate_data_model( mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( zipped_docs_file_path=zipped_docs_file_path, data=data ) - mastr_table_to_db_model: dict[MastrTableDescription, MastrBase] = {} + mastr_table_to_db_model: dict[str, DeclarativeBase_T] = {} for mastr_table_description in mastr_table_descriptions: - sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description(mastr_table_description) - mastr_table_to_db_model[mastr_table_description] = sqlalchemy_model + sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description( + table_description=mastr_table_description, + catalog_value_as_str=catalog_value_as_str, + base=base + ) + mastr_table_to_db_model[mastr_table_description.table_name] = sqlalchemy_model - return mastr_table_description + return mastr_table_to_db_model def download( self, @@ -132,7 +149,7 @@ def download( date=None, bulk_cleansing=True, keep_old_downloads: bool = False, - mastr_table_to_db_model: Optional[Mapping[MastrTableDescription, Model]] = None, + mastr_table_to_db_model: Optional[Mapping[str, Type[DeclarativeBase_T]]] = None, **kwargs, ) -> None: """ @@ -202,7 +219,11 @@ def download( method = "bulk" if not mastr_table_to_db_model: - mastr_table_to_db_model = generate_data_model() + mastr_table_to_db_model = self.generate_data_model(data=data, catalog_value_as_str=bulk_cleansing) + log.info("Ensuring database tables for MaStR are present") + for db_model in mastr_table_to_db_model: + db_model.__table__.drop(self.engine, checkfirst=True) + db_model.__table__.create(self.engine) validate_parameter_format_for_download_method( method=method, @@ -221,14 +242,14 @@ def download( os.makedirs(xml_folder_path, exist_ok=True) zipped_xml_file_path = os.path.join( xml_folder_path, - f"Gesamtdatenexport_{bulk_download_date}.zip", + f"Gesamtdatenexport_{bulk_download_date.strftime('%Y%m%d')}.zip", ) delete_zip_file_if_corrupted(zipped_xml_file_path) if not keep_old_downloads: delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) - download_xml_Mastr(zipped_xml_file_path, date, data, xml_folder_path) + download_xml_Mastr(zipped_xml_file_path, bulk_download_date, data, xml_folder_path) log.info( "\nWould you like to speed up the creation of your MaStR database?\n" @@ -239,7 +260,6 @@ def download( delete_zip_file_if_corrupted(zipped_xml_file_path) delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) - print( "\nWould you like to speed up the creation of your MaStR database?\n" "Try our new parallelized processing by setting os.environ['USE_RECOMMENDED_NUMBER_OF_PROCESSES'] = True " diff --git a/open_mastr/utils/helpers.py b/open_mastr/utils/helpers.py index f4361a0e..e163efa5 100644 --- a/open_mastr/utils/helpers.py +++ b/open_mastr/utils/helpers.py @@ -1,9 +1,11 @@ import os import json from contextlib import contextmanager -from datetime import date +import datetime from warnings import warn +from typing import Literal, Union from zipfile import BadZipfile, ZipFile +from zoneinfo import ZoneInfo import dateutil import sqlalchemy @@ -33,6 +35,8 @@ TRANSLATIONS, ) +MASTR_TIMEZONE = ZoneInfo("Europe/Berlin") + def chunks(lst, n): """Yield successive n-sized chunks from lst. @@ -58,11 +62,14 @@ def create_database_engine(engine, sqlite_db_path) -> sqlalchemy.engine.Engine: return engine -def parse_date_string(bulk_date_string: str) -> str: +def parse_date_string(bulk_date_string: str) -> datetime.date: if bulk_date_string == "today": - return date.today().strftime("%Y%m%d") + dt = datetime.datetime.now(tz=MASTR_TIMEZONE) else: - return parse(bulk_date_string).strftime("%Y%m%d") + dt = parse(bulk_date_string) + if dt.tzinfo: + dt = dt.astimezone(MASTR_TIMEZONE) + return dt.date() def validate_parameter_format_for_mastr_init(engine) -> None: @@ -158,7 +165,7 @@ def transform_data_parameter(data, **kwargs): return data -def transform_date_parameter(self, date, **kwargs): +def transform_date_parameter(self, date: Union[datetime.date, Literal["today"]], **kwargs) -> Union[datetime.date, Literal["today"]]: date = kwargs.get("bulk_date", date) date = "today" if date is None else date if date == "existing": diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 0a6265b3..14a9f337 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -1,6 +1,6 @@ import datetime from dataclasses import dataclass -from typing import Any, Union +from typing import Any, Union, Type, TypeVar from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped @@ -9,16 +9,6 @@ from open_mastr.utils.xsd_tables import MastrColumnType, MastrTableDescription -MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE = { - MastrColumnType.STRING: String, - MastrColumnType.INTEGER: Integer, - MastrColumnType.FLOAT: Float, - MastrColumnType.DATE: Date, - MastrColumnType.DATETIME: DateTime(timezone=True), - MastrColumnType.BOOLEAN: Boolean, - MastrColumnType.CATALOG_VALUE: Integer, # TODO: Think about how to deal with mapping catalog values -} - # Potential hierarchy # Id -> MastrNummer -> EinheitMastrNummer # -> EegMastrNummer -> KwkMastrNummer -> GenMastrNummer @@ -74,20 +64,27 @@ class ParentAllTables(object): DatumDownload: Mapped[datetime.date] = mapped_column(Date) +DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) + + def make_sqlalchemy_model_from_mastr_table_description( table_description: MastrTableDescription, - base: DeclarativeBase = MastrBase, + catalog_value_as_str: bool, + base: Type[DeclarativeBase_T] = MastrBase, mixins: tuple[type, ...] = (ParentAllTables,), -): +) -> Type[DeclarativeBase_T]: return _make_sqlalchemy_model( class_name=table_description.instance_name, table_name=table_description.table_name, column_name_to_column_type={ - column.name: MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE[column.type] + column.name: _get_sqlalchemy_type_for_mastr_column_type( + mastr_column_type=column.type, + catalog_value_as_str=catalog_value_as_str, + ) for column in table_description.columns }, primary_key_columns=MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS[table_description.table_name], - base=MastrBase, + base=base, mixins=(ParentAllTables,) ) @@ -97,9 +94,9 @@ def _make_sqlalchemy_model( table_name: str, column_name_to_column_type: dict[str, Any], primary_key_columns: set[str], - base: DeclarativeBase, + base: Type[DeclarativeBase_T], mixins: tuple[type, ...] = tuple(), -): +) -> Type[DeclarativeBase_T]: # TODO: Is there a way to say that the returned model is a sub-type of DeclarativeBase_T? namespace = { "__tablename__": table_name, "__annotations__": {}, @@ -113,6 +110,36 @@ def _make_sqlalchemy_model( return type(class_name, bases, namespace) +_MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE = { + MastrColumnType.STRING: String, + MastrColumnType.INTEGER: Integer, + MastrColumnType.FLOAT: Float, + MastrColumnType.DATE: Date, + MastrColumnType.DATETIME: DateTime(timezone=True), + MastrColumnType.BOOLEAN: Boolean, +} + + +# We're creating special column types for the catalog columns here so that +# we can identify the catalog columns later when processing the XML files. +class CatalogInteger(Integer): + pass + + +class CatalogString(String): + pass + + +def _get_sqlalchemy_type_for_mastr_column_type( + mastr_column_type: MastrColumnType, catalog_value_as_str: bool, +) -> Union[Type[String], Type[Integer], Type[Float], Type[Date], Type[DateTime], Type[Boolean]]: + if mastr_column_type is MastrColumnType.CATALOG_VALUE: + return CatalogString if catalog_value_as_str else CatalogInteger + return _MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE[mastr_column_type] + + + +# TODO: Remove this or make it useful for outsiders. if __name__ == "__main__": import os import sys diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index b3764f80..a97ed158 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -1,11 +1,15 @@ +import os import re from enum import auto, Enum from dataclasses import dataclass -from typing import Union - +from pathlib import Path +from typing import Optional, Union +from zipfile import ZipFile, ZipInfo import xmlschema from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction +from open_mastr.utils.helpers import data_to_include_tables + _XML_SCHEMA_PREFIX = "{http://www.w3.org/2001/XMLSchema}" @@ -106,16 +110,16 @@ def read_mastr_table_descriptions_from_xsd( mastr_table_descriptions = set() with ZipFile(zipped_docs_file_path, "r") as docs_z: - xsd_zip_entry = _find_xsd_zip_file(docs_z) + xsd_zip_entry = _find_xsd_zip_entry(docs_z) with ZipFile(docs_z.open(xsd_zip_entry)) as xsd_z: - for entry in xsd_z: + for entry in xsd_z.filelist: if entry.is_dir() or not entry.filename.endswith(".xsd"): continue normalized_name = os.path.basename(entry.filename).removesuffix(".xsd").lower() if normalized_name in include_tables: with xsd_z.open(entry) as xsd_file: - mastr_table_description = MastrTableDescription.from_xml_schema(XMLSchema(xsd_file)) + mastr_table_description = MastrTableDescription.from_xml_schema(xmlschema.XMLSchema(xsd_file)) mastr_table_descriptions.add(mastr_table_description) return mastr_table_descriptions diff --git a/open_mastr/xml_download/colums_to_replace.py b/open_mastr/xml_download/colums_to_replace.py index 421ac44c..e7608e8a 100644 --- a/open_mastr/xml_download/colums_to_replace.py +++ b/open_mastr/xml_download/colums_to_replace.py @@ -1,6 +1,5 @@ -# system catalog is the mapping for the entries within the two columns -# Marktfunktionen und Lokationstyp (entry 1 is mapped to Stromnetzbetreiber -# in the column Marktfunktionen) +# system catalog is the mapping for the entries within the columns +# Marktfunktion, Lokationtyp and Einheittyp # The values for the system catalog can be found in the pdf of the bulk download # documentation: https://www.marktstammdatenregister.de/MaStR/Datendownload diff --git a/open_mastr/xml_download/utils_cleansing_bulk.py b/open_mastr/xml_download/utils_cleansing_bulk.py index 928f7c68..bd4ee7c6 100644 --- a/open_mastr/xml_download/utils_cleansing_bulk.py +++ b/open_mastr/xml_download/utils_cleansing_bulk.py @@ -1,24 +1,28 @@ import pandas as pd import numpy as np +from collections.abc import Collection +from zipfile import ZipFile +import io + from open_mastr.xml_download.colums_to_replace import ( system_catalog, - columns_replace_list, ) -from zipfile import ZipFile -import io -def cleanse_bulk_data(df: pd.DataFrame, zipped_xml_file_path: str) -> pd.DataFrame: - df = replace_ids_with_names(df, system_catalog) - # Katalogeintraege: int -> string value +def cleanse_bulk_data( + df: pd.DataFrame, + catalog_columns: Collection[str], + zipped_xml_file_path: str, +) -> pd.DataFrame: + df = replace_system_catalog_ids(df, system_catalog) df = replace_mastr_katalogeintraege( - zipped_xml_file_path=zipped_xml_file_path, df=df + zipped_xml_file_path=zipped_xml_file_path, df=df, catalog_columns=catalog_columns, ) return df -def replace_ids_with_names(df: pd.DataFrame, system_catalog: dict) -> pd.DataFrame: - """Replaces ids with names according to the system catalog. This is +def replace_system_catalog_ids(df: pd.DataFrame, system_catalog: dict[int, str]) -> pd.DataFrame: + """Replaces IDs with names according to the system catalog. This is necessary since the data from the bulk download encodes columns with IDs instead of the actual values.""" for column_name, name_mapping_dictionary in system_catalog.items(): @@ -30,14 +34,16 @@ def replace_ids_with_names(df: pd.DataFrame, system_catalog: dict) -> pd.DataFra def replace_mastr_katalogeintraege( zipped_xml_file_path: str, df: pd.DataFrame, + catalog_columns: Collection[str], ) -> pd.DataFrame: """Replaces the IDs from the mastr database by its mapped string values from - the table katalogwerte""" + the table Katalogwerte""" + # TODO: Create Katalogwerte dict once for whole download, not once per processed file. katalogwerte = create_katalogwerte_from_bulk_download(zipped_xml_file_path) for column_name in df.columns: - if column_name in columns_replace_list: + if column_name in catalog_columns: if df[column_name].dtype == "O": - # Handle comma seperated strings from catalog values + # Handle comma-separated strings from catalog values df[column_name] = ( df[column_name] .str.split(",", expand=True) diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index a38b014d..e280df9d 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -118,7 +118,7 @@ def gen_url( Defaults to "current". """ version = gen_version(when, use_version) - date = time.strftime("%Y%m%d", when) + date = when.strftime("%Y%m%d") if use_stichtag: url_str = f"https://download.marktstammdatenregister.de/Stichtag/Gesamtdatenexport_{date}_{version}.zip" @@ -554,9 +554,7 @@ def select_download_date(): print("Invalid choice. Please enter 1, or 2.") -def download_documentation( - save_path: str, xml_folder_path: str -) -> None: +def download_documentation(save_path: str) -> None: """Downloads the zipped MaStR. Parameters @@ -570,25 +568,27 @@ def download_documentation( url = "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" time_a = time.perf_counter() - r = requests.get(url, stream=True, headers={"User-Agent": USER_AGENT}) + r = requests.get(url, headers={"User-Agent": USER_AGENT}) r.raise_for_status() - - chunk_size = 1024 * 1024 - content_length = r.headers.get("Content-Length") - expected_steps = math.ceil(content_length / chunk_size) - with ( - open(save_path, "wb") as zfile, - tqdm(desc=save_path, total=expected_steps) as bar, - ): - for chunk in r.iter_content(chunk_size=chunk_size): - if chunk: - zfile.write(chunk) - zfile.flush() - bar.update() + with open(save_path, "wb") as zfile: + zfile.write(r.content) + + #chunk_size = 1024 * 1024 + #content_length = r.headers.get("Content-Length") + #expected_steps = math.ceil(content_length / chunk_size) + #with ( + # open(save_path, "wb") as zfile, + # tqdm(desc=save_path, total=expected_steps) as bar, + #): + # for chunk in r.iter_content(chunk_size=chunk_size): + # if chunk: + # zfile.write(chunk) + # zfile.flush() + # bar.update() time_b = time.perf_counter() log.info( f"MaStR documentation download is finished. It took {round(time_b - time_a)} seconds." ) - log.info(f"MaStR was successfully downloaded to {xml_folder_path}.") + log.info(f"MaStR was successfully downloaded to {save_path!r}.") diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index e71abc18..13e9f804 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -1,8 +1,10 @@ import os +from collections.abc import Mapping from concurrent.futures import ProcessPoolExecutor, wait from io import StringIO from multiprocessing import cpu_count from shutil import Error +from typing import Type, TypeVar from zipfile import ZipFile import re @@ -10,7 +12,8 @@ import numpy as np import pandas as pd import sqlalchemy -from sqlalchemy import select, create_engine, inspect +from sqlalchemy import Column, String, select, create_engine, inspect +from sqlalchemy.orm import DeclarativeBase from sqlalchemy.sql import text from sqlalchemy.sql.sqltypes import Date, DateTime @@ -21,6 +24,8 @@ log = setup_logger() +DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) + def write_mastr_xml_to_database( engine: sqlalchemy.engine.Engine, @@ -28,6 +33,7 @@ def write_mastr_xml_to_database( data: list, bulk_cleansing: bool, bulk_download_date: str, + mastr_table_to_db_model: Mapping[str, Type[DeclarativeBase_T]], ) -> None: """Write the Mastr in xml format into a database defined by the engine parameter.""" log.info("Starting bulk download...") @@ -44,17 +50,23 @@ def write_mastr_xml_to_database( if not is_table_relevant(xml_table_name, include_tables): continue - sql_table_name = extract_sql_table_name(xml_table_name) + db_model = mastr_table_to_db_model.get(xml_table_name) + if not db_model: + # TODO Warning or error? + log.warning(f"Skipping MaStR file {file_name!r} because no database table was found for {xml_table_name=}") + continue + threads_data.append( ( file_name, xml_table_name, - sql_table_name, + db_model, str(engine.url), engine.url.password, zipped_xml_file_path, bulk_download_date, bulk_cleansing, + mastr_table_to_db_model, ) ) @@ -101,7 +113,7 @@ def get_number_of_processes(): def process_xml_file( file_name: str, xml_table_name: str, - sql_table_name: str, + db_model: Type[DeclarativeBase_T], connection_url: str, password: str, zipped_xml_file_path: str, @@ -122,26 +134,69 @@ def process_xml_file( with ZipFile(zipped_xml_file_path, "r") as f: log.info(f"Processing file '{file_name}'...") if is_first_file(file_name): - log.info(f"Creating table '{sql_table_name}'...") - create_database_table(engine, xml_table_name) + delete_all_existing_entries(db_model) df = read_xml_file(f, file_name) + df = check_for_column_mismatch_and_try_to_solve_it( + df=df, + db_model=db_model, + ) df = process_table_before_insertion( - df, - xml_table_name, - zipped_xml_file_path, - bulk_download_date, - bulk_cleansing, + df=df, + xml_table_name=xml_table_name, + db_model=db_model, + zipped_xml_file_path=zipped_xml_file_path, + bulk_download_date=bulk_download_date, + bulk_cleansing=bulk_cleansing, ) if engine.dialect.name == "sqlite": - add_table_to_sqlite_database(df, xml_table_name, sql_table_name, engine) + add_table_to_sqlite_database( + df=df, + db_model=db_model, + engine=engine, + ) else: add_table_to_non_sqlite_database( - df, xml_table_name, sql_table_name, engine + df=df, + db_model=db_model, + engine=engine, ) except Exception as e: log.error(f"Error processing file '{file_name}': '{e}'") +def delete_all_existing_rows(engine: Engine, db_model: Type[DeclarativeBase_T]) -> None: + with engine.begin() as con: + con.execute(delete(db_model)) + + +def check_for_column_mismatch_and_try_to_solve_it(df: pd.DataFrame, db_model: Type[DeclarativeBase_T]) -> pd.DataFrame: + df_column_names = set(df.columns) + db_column_names = {column.name for column in db_model.__table__.columns} + if additional_db_column_names := db_column_names - df_column_names: + log.warning( + f"Database table {db_model.__table__.name} has some columns that weren't found in the XML file." + f" Proceeding and trying to insert anyway. Additional DB columns:" + f" {', '.join(additional_db_column_names)}" + ) + if additional_df_column_names := df_column_names - db_column_names: + # TODO: Check here if the user specified not to issue DDL statements before trying to insert. + log.warning( + f"XML file has some columns that aren't present in the database table {db_model.__table__.name}." + f" Trying to add the columns to the table. Additional XML columns:" + f" {', '.join(additional_df_column_names)}" + ) + try: + add_missing_columns_to_table( + engine=engine, + db_model=db_model, + missing_columns=missing_columns, + ) + except: + log.exception("Could not add at least some columns to the database. Ignoring the columns from the XML file instead.") + df = df.drop(columns=additional_df_column_names) + return df + + def create_efficient_engine(connection_url: str) -> sqlalchemy.engine.Engine: """Create an efficient engine for the SQLite database.""" is_sqlite = connection_url.startswith("sqlite://") @@ -254,44 +309,35 @@ def is_first_file(file_name: str) -> bool: def cast_date_columns_to_datetime( - xml_table_name: str, df: pd.DataFrame + db_model: Type[DeclarativeBase_T], df: pd.DataFrame ) -> pd.DataFrame: - sqlalchemy_columnlist = tablename_mapping[xml_table_name][ - "__class__" - ].__table__.columns.items() - for column in sqlalchemy_columnlist: - column_name = column[0] - if is_date_column(column, df): + for column in db_model.__table__.columns: + if is_date_column_and_in_df(column, df): # Convert column to datetime64, invalid string -> NaT - df[column_name] = pd.to_datetime(df[column_name], errors="coerce") + df[column.name] = pd.to_datetime(df[column.name], errors="coerce") return df -def cast_date_columns_to_string(xml_table_name: str, df: pd.DataFrame) -> pd.DataFrame: - column_list = tablename_mapping[xml_table_name][ - "__class__" - ].__table__.columns.items() - for column in column_list: - column_name = column[0] - - if not (column[0] in df.columns and is_date_column(column, df)): +def cast_date_columns_to_string(db_model: Type[DeclarativeBase_T], df: pd.DataFrame) -> pd.DataFrame: + for column in columns: + if not is_date_column_and_in_df(column, df): continue df[column_name] = pd.to_datetime(df[column_name], errors="coerce") - if type(column[1].type) is Date: + if type(column.type) is Date: df[column_name] = ( df[column_name].dt.strftime("%Y-%m-%d").replace("NaT", None) ) - elif type(column[1].type) is DateTime: + elif type(column.type) is DateTime: df[column_name] = ( df[column_name].dt.strftime("%Y-%m-%d %H:%M:%S.%f").replace("NaT", None) ) return df -def is_date_column(column, df: pd.DataFrame) -> bool: - return type(column[1].type) in [Date, DateTime] and column[0] in df.columns +def is_date_column_and_in_df(column: Column, df: pd.DataFrame) -> bool: + return type(column.type) in [Date, DateTime] and column.name in df.columns def correct_ordering_of_filelist(files_list: list) -> list: @@ -329,46 +375,27 @@ def read_xml_file(f: ZipFile, file_name: str) -> pd.DataFrame: return handle_xml_syntax_error(xml_file.read().decode("utf-16"), error) -def change_column_names_to_orm_format( - df: pd.DataFrame, xml_table_name: str -) -> pd.DataFrame: - if tablename_mapping[xml_table_name]["replace_column_names"]: - df.rename( - columns=tablename_mapping[xml_table_name]["replace_column_names"], - inplace=True, - ) - return df - - def add_table_to_non_sqlite_database( df: pd.DataFrame, - xml_table_name: str, - sql_table_name: str, + db_model: Type[DeclarativeBase_T], engine: sqlalchemy.engine.Engine, ) -> None: # get a dictionary for the data types - table_columns_list = list( - tablename_mapping[xml_table_name]["__class__"].__table__.columns - ) dtypes_for_writing_sql = { column.name: column.type - for column in table_columns_list + for column in db_model.__table__columns if column.name in df.columns } # Convert date and datetime columns into the datatype datetime. - df = cast_date_columns_to_datetime(xml_table_name, df) - - add_missing_columns_to_table( - engine, xml_table_name, column_list=df.columns.tolist() - ) + df = cast_date_columns_to_datetime(db_model, df) for _ in range(10000): try: with engine.connect() as con: with con.begin(): df.to_sql( - sql_table_name, + db_model.__table__.name, con=con, index=False, if_exists="append", @@ -382,7 +409,7 @@ def add_table_to_non_sqlite_database( except sqlalchemy.exc.IntegrityError: # error resulting from Unique constraint failed df = write_single_entries_until_not_unique_comes_up( - df, xml_table_name, engine + df, db_model, engine ) @@ -419,7 +446,7 @@ def add_zero_as_first_character_for_too_short_string(df: pd.DataFrame) -> pd.Dat def write_single_entries_until_not_unique_comes_up( - df: pd.DataFrame, xml_table_name: str, engine: sqlalchemy.engine.Engine + df: pd.DataFrame, db_model: Type[DeclarativeBase_T], engine: sqlalchemy.engine.Engine ) -> pd.DataFrame: """ Remove from dataframe these rows, which are already existing in the database table @@ -433,15 +460,14 @@ def write_single_entries_until_not_unique_comes_up( ------- Filtered dataframe """ + # TODO: Check if we need to support composite primary keys for the MaStR changes table. + # Because this here assumes single-column primary keys. + primary_key = next(c for c in db_model.__table__.columns if c.primary_key) - table = tablename_mapping[xml_table_name]["__class__"].__table__ - primary_key = next(c for c in table.columns if c.primary_key) - - with engine.connect() as con: - with con.begin(): - key_list = ( - pd.read_sql(sql=select(primary_key), con=con).values.squeeze().tolist() - ) + with engine.begin() as con: + key_list = ( + pd.read_sql(sql=select(primary_key), con=con).values.squeeze().tolist() + ) len_df_before = len(df) df = df.drop_duplicates( @@ -460,8 +486,8 @@ def write_single_entries_until_not_unique_comes_up( def add_missing_columns_to_table( engine: sqlalchemy.engine.Engine, - xml_table_name: str, - column_list: list, + db_model: Type[DeclarativeBase_T], + missing_columns: Collection[str], ) -> None: """ Some files introduce new columns for existing tables. @@ -477,36 +503,27 @@ def add_missing_columns_to_table( ------- """ - log = setup_logger() - - # get the columns name from the existing database - inspector = sqlalchemy.inspect(engine) - table_name = tablename_mapping[xml_table_name]["__class__"].__table__.name - columns = inspector.get_columns(table_name) - column_names_from_database = [column["name"] for column in columns] - - missing_columns = set(column_list) - set(column_names_from_database) - + table_name = db_model.__table__.name for column_name in missing_columns: - if not column_exists(engine, table_name, column_name): - alter_query = 'ALTER TABLE %s ADD "%s" VARCHAR NULL;' % ( - table_name, - column_name, - ) - try: - with engine.connect().execution_options(autocommit=True) as con: - with con.begin(): - con.execute( - text(alter_query).execution_options(autocommit=True) - ) - except sqlalchemy.exc.OperationalError as err: - # If the column already exists, we can ignore the error. - if "duplicate column name" not in str(err): - raise err - log.info( - "From the downloaded xml files following new attribute was " - f"introduced: {table_name}.{column_name}" - ) + alter_query = 'ALTER TABLE %s ADD "%s" VARCHAR NULL;' % ( + table_name, + column_name, + ) + try: + with engine.connect().execution_options(autocommit=True) as con: + with con.begin(): + con.execute( + text(alter_query).execution_options(autocommit=True) + ) + except sqlalchemy.exc.OperationalError as err: + # If the column already exists, we can ignore the error. + if "duplicate column name" not in str(err): + raise err + log.info( + f"Added the following columns to database table {table_name}:" + f" {', '.join(missing_columns)}" + ) + def delete_wrong_xml_entry(err: Error, df: pd.DataFrame) -> pd.DataFrame: @@ -563,52 +580,57 @@ def find_nearest_brackets(xml_string: str, position: int) -> tuple[int, int]: def process_table_before_insertion( df: pd.DataFrame, xml_table_name: str, + db_model: Type[DeclarativeBase_T], zipped_xml_file_path: str, bulk_download_date: str, bulk_cleansing: bool, ) -> pd.DataFrame: df = add_zero_as_first_character_for_too_short_string(df) - df = change_column_names_to_orm_format(df, xml_table_name) # Add Column that refers to the source of the data df["DatenQuelle"] = "bulk" df["DatumDownload"] = bulk_download_date if bulk_cleansing: - df = cleanse_bulk_data(df, zipped_xml_file_path) + catalog_columns = { + column.name + for column in db_model.__table__.columns + # TODO: Is it okay to rely so heavily on the SQLALchemy model to decide how to process the table? + if isinstance(column.type, (CatalogInteger, CatalogString)) + } + df = cleanse_bulk_data( + df=df, catalog_columns=catalog_columns, zipped_xml_file_path=zipped_xml_file_path + ) return df def add_table_to_sqlite_database( df: pd.DataFrame, - xml_table_name: str, - sql_table_name: str, + db_model: Type[DeclarativeBase_T], engine: sqlalchemy.engine.Engine, ) -> None: column_list = df.columns.tolist() - add_missing_columns_to_table(engine, xml_table_name, column_list) # Convert NaNs to None. df = df.where(pd.notnull(df), None) # Convert date columns to strings. Dates are not supported directly by SQLite. - df = cast_date_columns_to_string(xml_table_name, df) + df = cast_date_columns_to_string(db_model, df) # Create SQL statement for bulk insert. ON CONFLICT DO NOTHING prevents duplicates. - insert_stmt = f"INSERT INTO {sql_table_name} ({','.join(column_list)}) VALUES ({','.join(['?' for _ in column_list])}) ON CONFLICT DO NOTHING" + insert_stmt = f"INSERT INTO {db_model.__table__.name} ({','.join(column_list)}) VALUES ({','.join(['?' for _ in column_list])}) ON CONFLICT DO NOTHING" for _ in range(10000): try: - with engine.connect() as con: - with con.begin(): - con.connection.executemany(insert_stmt, df.to_numpy()) - break + with engine.begin() as con: + con.connection.executemany(insert_stmt, df.to_numpy()) + break except sqlalchemy.exc.DataError as err: delete_wrong_xml_entry(err, df) except sqlalchemy.exc.IntegrityError: # error resulting from Unique constraint failed df = write_single_entries_until_not_unique_comes_up( - df, xml_table_name, engine + df, db_model, engine ) except: # If any unexpected error occurs, we'll switch back to the non-SQLite method. From b954457bd3264d01b141cc0210e989325b32cf1f Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sat, 27 Dec 2025 18:06:24 +0100 Subject: [PATCH 04/34] Continue --- open_mastr/mastr_2.py | 4 +- open_mastr/utils/xsd_tables.py | 5 +- .../xml_download/utils_write_to_database.py | 64 +++++++++++-------- 3 files changed, 44 insertions(+), 29 deletions(-) diff --git a/open_mastr/mastr_2.py b/open_mastr/mastr_2.py index 681c8403..0d8bc360 100644 --- a/open_mastr/mastr_2.py +++ b/open_mastr/mastr_2.py @@ -150,6 +150,7 @@ def download( bulk_cleansing=True, keep_old_downloads: bool = False, mastr_table_to_db_model: Optional[Mapping[str, Type[DeclarativeBase_T]]] = None, + create_and_alter_database_tables: bool = True, **kwargs, ) -> None: """ @@ -221,7 +222,7 @@ def download( if not mastr_table_to_db_model: mastr_table_to_db_model = self.generate_data_model(data=data, catalog_value_as_str=bulk_cleansing) log.info("Ensuring database tables for MaStR are present") - for db_model in mastr_table_to_db_model: + for db_model in mastr_table_to_db_model.values(): db_model.__table__.drop(self.engine, checkfirst=True) db_model.__table__.create(self.engine) @@ -272,6 +273,7 @@ def download( data=data, bulk_cleansing=bulk_cleansing, bulk_download_date=bulk_download_date, + mastr_table_to_db_model=mastr_table_to_db_model, ) def to_csv( diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index a97ed158..cf3523c0 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -13,8 +13,11 @@ _XML_SCHEMA_PREFIX = "{http://www.w3.org/2001/XMLSchema}" +# TODO: Should we really mess with the original column names? +# The BNetzA "choice" to sometimes write MaStR and sometimes Mastr is certainly confusing, +# but are we the ones who should change that? def normalize_column_name(original_mastr_column_name: str) -> str: - return original_mastr_column_name.replace("MaStR", "Mastr") + return original_mastr_column_name.replace("MaStR", "Mastr").replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss").strip() class MastrColumnType(Enum): diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index 13e9f804..b6685d11 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -1,5 +1,5 @@ import os -from collections.abc import Mapping +from collections.abc import Collection, Mapping from concurrent.futures import ProcessPoolExecutor, wait from io import StringIO from multiprocessing import cpu_count @@ -12,7 +12,7 @@ import numpy as np import pandas as pd import sqlalchemy -from sqlalchemy import Column, String, select, create_engine, inspect +from sqlalchemy import Column, Engine, delete, select, create_engine, inspect from sqlalchemy.orm import DeclarativeBase from sqlalchemy.sql import text from sqlalchemy.sql.sqltypes import Date, DateTime @@ -20,6 +20,8 @@ from open_mastr.utils.config import setup_logger from open_mastr.utils.helpers import data_to_include_tables from open_mastr.utils.orm import tablename_mapping +from open_mastr.utils.xsd_tables import normalize_column_name +from open_mastr.utils.sqlalchemy_tables import CatalogInteger, CatalogString from open_mastr.xml_download.utils_cleansing_bulk import cleanse_bulk_data log = setup_logger() @@ -40,6 +42,7 @@ def write_mastr_xml_to_database( include_tables = data_to_include_tables(data, mapping="write_xml") threads_data = [] + lower_mastr_table_to_db_model = {table_name.lower(): db_model for table_name, db_model in mastr_table_to_db_model.items()} with ZipFile(zipped_xml_file_path, "r") as f: files_list = correct_ordering_of_filelist(f.namelist()) @@ -50,23 +53,20 @@ def write_mastr_xml_to_database( if not is_table_relevant(xml_table_name, include_tables): continue - db_model = mastr_table_to_db_model.get(xml_table_name) + db_model = lower_mastr_table_to_db_model.get(xml_table_name) if not db_model: - # TODO Warning or error? log.warning(f"Skipping MaStR file {file_name!r} because no database table was found for {xml_table_name=}") continue threads_data.append( ( file_name, - xml_table_name, db_model, str(engine.url), engine.url.password, zipped_xml_file_path, bulk_download_date, bulk_cleansing, - mastr_table_to_db_model, ) ) @@ -112,7 +112,6 @@ def get_number_of_processes(): def process_xml_file( file_name: str, - xml_table_name: str, db_model: Type[DeclarativeBase_T], connection_url: str, password: str, @@ -134,20 +133,20 @@ def process_xml_file( with ZipFile(zipped_xml_file_path, "r") as f: log.info(f"Processing file '{file_name}'...") if is_first_file(file_name): - delete_all_existing_entries(db_model) + delete_all_existing_rows(db_model=db_model, engine=engine) df = read_xml_file(f, file_name) - df = check_for_column_mismatch_and_try_to_solve_it( - df=df, - db_model=db_model, - ) df = process_table_before_insertion( df=df, - xml_table_name=xml_table_name, db_model=db_model, zipped_xml_file_path=zipped_xml_file_path, bulk_download_date=bulk_download_date, bulk_cleansing=bulk_cleansing, ) + df = check_for_column_mismatch_and_try_to_solve_it( + df=df, + db_model=db_model, + engine=engine, + ) if engine.dialect.name == "sqlite": add_table_to_sqlite_database( df=df, @@ -164,20 +163,24 @@ def process_xml_file( log.error(f"Error processing file '{file_name}': '{e}'") -def delete_all_existing_rows(engine: Engine, db_model: Type[DeclarativeBase_T]) -> None: +def delete_all_existing_rows(db_model: Type[DeclarativeBase_T], engine: Engine) -> None: with engine.begin() as con: con.execute(delete(db_model)) -def check_for_column_mismatch_and_try_to_solve_it(df: pd.DataFrame, db_model: Type[DeclarativeBase_T]) -> pd.DataFrame: +def check_for_column_mismatch_and_try_to_solve_it(df: pd.DataFrame, db_model: Type[DeclarativeBase_T], engine: Engine) -> pd.DataFrame: df_column_names = set(df.columns) db_column_names = {column.name for column in db_model.__table__.columns} + if additional_db_column_names := db_column_names - df_column_names: - log.warning( + # Many columns are optional and it's perfectly normal to have and XML file / a dataframe that doesn't have + # a column that is present in the database. So this is only worth a debug message. + log.debug( f"Database table {db_model.__table__.name} has some columns that weren't found in the XML file." f" Proceeding and trying to insert anyway. Additional DB columns:" f" {', '.join(additional_db_column_names)}" ) + if additional_df_column_names := df_column_names - db_column_names: # TODO: Check here if the user specified not to issue DDL statements before trying to insert. log.warning( @@ -185,15 +188,17 @@ def check_for_column_mismatch_and_try_to_solve_it(df: pd.DataFrame, db_model: Ty f" Trying to add the columns to the table. Additional XML columns:" f" {', '.join(additional_df_column_names)}" ) + # TODO: What if we can add some columns and not others? We should then return the columns for which we succeeded. try: add_missing_columns_to_table( engine=engine, db_model=db_model, - missing_columns=missing_columns, + missing_columns=additional_df_column_names, ) - except: + except Exception: log.exception("Could not add at least some columns to the database. Ignoring the columns from the XML file instead.") df = df.drop(columns=additional_df_column_names) + return df @@ -319,19 +324,19 @@ def cast_date_columns_to_datetime( def cast_date_columns_to_string(db_model: Type[DeclarativeBase_T], df: pd.DataFrame) -> pd.DataFrame: - for column in columns: + for column in db_model.__table__.columns: if not is_date_column_and_in_df(column, df): continue - df[column_name] = pd.to_datetime(df[column_name], errors="coerce") + df[column.name] = pd.to_datetime(df[column.name], errors="coerce") if type(column.type) is Date: - df[column_name] = ( - df[column_name].dt.strftime("%Y-%m-%d").replace("NaT", None) + df[column.name] = ( + df[column.name].dt.strftime("%Y-%m-%d").replace("NaT", None) ) elif type(column.type) is DateTime: - df[column_name] = ( - df[column_name].dt.strftime("%Y-%m-%d %H:%M:%S.%f").replace("NaT", None) + df[column.name] = ( + df[column.name].dt.strftime("%Y-%m-%d %H:%M:%S.%f").replace("NaT", None) ) return df @@ -579,7 +584,6 @@ def find_nearest_brackets(xml_string: str, position: int) -> tuple[int, int]: def process_table_before_insertion( df: pd.DataFrame, - xml_table_name: str, db_model: Type[DeclarativeBase_T], zipped_xml_file_path: str, bulk_download_date: str, @@ -591,6 +595,8 @@ def process_table_before_insertion( df["DatenQuelle"] = "bulk" df["DatumDownload"] = bulk_download_date + df = normalize_column_names_in_df(df) + if bulk_cleansing: catalog_columns = { column.name @@ -604,6 +610,10 @@ def process_table_before_insertion( return df +def normalize_column_names_in_df(df: pd.DataFrame) -> pd.DataFrame: + return df.rename(columns={column_name: normalize_column_name(column_name) for column_name in df.columns}) + + def add_table_to_sqlite_database( df: pd.DataFrame, db_model: Type[DeclarativeBase_T], @@ -632,9 +642,9 @@ def add_table_to_sqlite_database( df = write_single_entries_until_not_unique_comes_up( df, db_model, engine ) - except: + except Exception: # If any unexpected error occurs, we'll switch back to the non-SQLite method. - add_table_to_non_sqlite_database(df, xml_table_name, sql_table_name, engine) + add_table_to_non_sqlite_database(df, db_model, engine) break From 4704ca64583f01b3e53bba05dd0b20e36ba595d0 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sat, 27 Dec 2025 18:51:27 +0100 Subject: [PATCH 05/34] Rename mastr_2.py to mastr.py --- open_mastr/mastr.py | 247 ++++++++++-------------------------- open_mastr/mastr_2.py | 284 ------------------------------------------ 2 files changed, 67 insertions(+), 464 deletions(-) delete mode 100644 open_mastr/mastr_2.py diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index c45ad4be..d36f0725 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -1,8 +1,13 @@ import os -from sqlalchemy import inspect, create_engine +from pathlib import Path +from sqlalchemy import inspect, create_engine, Engine +from sqlalchemy.orm import DeclarativeBase +from typing import Literal, Optional, Type, TypeVar, Union +from collections.abc import Mapping # import xml dependencies from open_mastr.xml_download.utils_download_bulk import ( + download_documentation, download_xml_Mastr, select_download_date, delete_xml_files_not_from_given_date, @@ -10,6 +15,7 @@ from open_mastr.xml_download.utils_write_to_database import ( write_mastr_xml_to_database, ) +from open_mastr.utils.xsd_tables import MastrTableDescription, read_mastr_table_descriptions_from_xsd from open_mastr.utils.helpers import ( validate_parameter_format_for_download_method, @@ -35,6 +41,10 @@ setup_logger, ) import open_mastr.utils.orm as orm +from open_mastr.utils.sqlalchemy_tables import ( + make_sqlalchemy_model_from_mastr_table_description, + MastrBase +) # constants from open_mastr.utils.constants import TECHNOLOGIES, ADDITIONAL_TABLES @@ -42,6 +52,9 @@ # setup logger log = setup_logger() +# TODO: Repeating Type[DeclarativeBase_T] in function signatures is strange. There must be a better option. +DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) + class Mastr: """ @@ -72,21 +85,23 @@ class Mastr: """ - def __init__(self, engine="sqlite", connect_to_translated_db=False) -> None: + def __init__( + self, + engine: Union[Engine, Literal["sqlite"]] = "sqlite", + mastr_table_to_db_table_name: Optional[dict[str, str]] = None, + output_dir: Optional[Union[str, Path]] = None, + home_dir: Optional[Union[str, Path]] = None, + ) -> None: validate_parameter_format_for_mastr_init(engine) - self.output_dir = get_output_dir() - self.home_directory = get_project_home_dir() + self.output_dir = output_dir or get_output_dir() + self.home_directory = home_dir or get_project_home_dir() + self._sqlite_folder_path = os.path.join(self.output_dir, "data", "sqlite") + os.makedirs(self._sqlite_folder_path, exist_ok=True) - self.is_translated = connect_to_translated_db - if connect_to_translated_db: - self.engine = create_translated_database_engine( - engine, self._sqlite_folder_path - ) - else: - self.engine = create_database_engine(engine, self._sqlite_folder_path) + self.engine = create_database_engine(engine, self._sqlite_folder_path) log.info( "\n==================================================\n" @@ -98,7 +113,35 @@ def __init__(self, engine="sqlite", connect_to_translated_db=False) -> None: "'pip install --upgrade open-mastr'\n" ) - orm.Base.metadata.create_all(self.engine) + def generate_data_model( + self, + data: Optional[list[str]] = None, + catalog_value_as_str: bool = True, + base: Type[DeclarativeBase_T] = MastrBase, + ) -> dict[str, Type[DeclarativeBase_T]]: + data = transform_data_parameter(data) + + docs_folder_path = os.path.join(self.output_dir, "data", "docs_download") + os.makedirs(docs_folder_path, exist_ok=True) + zipped_docs_file_path = os.path.join( + docs_folder_path, + "Dokumentation MaStR Gesamtdatenexport.zip" + ) + download_documentation(zipped_docs_file_path) + + mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( + zipped_docs_file_path=zipped_docs_file_path, data=data + ) + mastr_table_to_db_model: dict[str, DeclarativeBase_T] = {} + for mastr_table_description in mastr_table_descriptions: + sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description( + table_description=mastr_table_description, + catalog_value_as_str=catalog_value_as_str, + base=base + ) + mastr_table_to_db_model[mastr_table_description.table_name] = sqlalchemy_model + + return mastr_table_to_db_model def download( self, @@ -108,6 +151,8 @@ def download( bulk_cleansing=True, keep_old_downloads: bool = False, select_date_interactively: bool = False, + mastr_table_to_db_model: Optional[Mapping[str, Type[DeclarativeBase_T]]] = None, + create_and_alter_database_tables: bool = True, **kwargs, ) -> None: """ @@ -172,13 +217,6 @@ def download( keep_old_downloads: bool If set to True, prior downloaded MaStR zip files will be kept. """ - - if self.is_translated: - raise TypeError( - "You are currently connected to a translated database.\n" - "A translated database cannot be further processed." - ) - if method == "API": log.warning( "Downloading the whole registry via the MaStR SOAP-API has been removed. " @@ -188,6 +226,13 @@ def download( log.warning("Attention: method='API' changed to method='bulk'.") method = "bulk" + if not mastr_table_to_db_model: + mastr_table_to_db_model = self.generate_data_model(data=data, catalog_value_as_str=bulk_cleansing) + log.info("Ensuring database tables for MaStR are present") + for db_model in mastr_table_to_db_model.values(): + db_model.__table__.drop(self.engine, checkfirst=True) + db_model.__table__.create(self.engine) + validate_parameter_format_for_download_method( method=method, data=data, @@ -254,169 +299,11 @@ def download( data=data, bulk_cleansing=bulk_cleansing, bulk_download_date=bulk_download_date, + mastr_table_to_db_model=mastr_table_to_db_model, ) def to_csv( self, tables: list = None, chunksize: int = 500000, limit: int = None ) -> None: - """ - Save the database as csv files along with the metadata file. - If 'tables=None' all possible tables will be exported. - - Parameters - ------------ - tables: None or list - For exporting selected tables choose from: - ["wind", "solar", "biomass", "hydro", "gsgk", "combustion", "nuclear", "storage", - "balancing_area", "electricity_consumer", "gas_consumer", "gas_producer", - "gas_storage", "gas_storage_extended", - "grid_connections", "grids", "market_actors", "market_roles", - "locations_extended", "permit", "deleted_units", "storage_units"] - chunksize: int - Defines the chunksize of the tables export. - Default value is 500.000 rows to include in each chunk. - limit: None or int - Limits the number of exported data rows. - """ - - if self.is_translated: - raise TypeError( - "You are currently connected to a translated database.\n" - "A translated database cannot be used for the csv export." - ) - - log.info("Starting csv-export") - - data_path = get_data_version_dir() - - create_data_dir() - - # Validate and parse tables parameter - validate_parameter_data(method="csv_export", data=tables) - data = transform_data_parameter(tables, **kwargs) - - # Determine tables to export - technologies_to_export = [] - additional_tables_to_export = [] - for table in data: - if table in TECHNOLOGIES: - technologies_to_export.append(table) - elif table in ADDITIONAL_TABLES: - additional_tables_to_export.append(table) - else: - additional_tables_to_export.extend( - data_to_include_tables([table], mapping="export_db_tables") - ) - - if technologies_to_export: - log.info(f"Technology tables: {technologies_to_export}") - if additional_tables_to_export: - log.info(f"Additional tables: {additional_tables_to_export}") - - log.info(f"Tables are saved to: {data_path}") - - reverse_fill_basic_units(technology=technologies_to_export, engine=self.engine) - - # Export technologies to csv - for tech in technologies_to_export: - db_query_to_csv( - db_query=create_db_query(tech=tech, limit=limit, engine=self.engine), - data_table=tech, - chunksize=chunksize, - ) - # Export additional tables to csv - for addit_table in additional_tables_to_export: - db_query_to_csv( - db_query=create_db_query( - additional_table=addit_table, limit=limit, engine=self.engine - ), - data_table=addit_table, - chunksize=chunksize, - ) - - # FIXME: Currently metadata is only created for technology data, Fix in #386 - # Configure and save data package metadata file along with data - # save_metadata(data=technologies_to_export, engine=self.engine) - - def translate(self) -> None: - """ - A database can be translated only once. - - Deletes translated versions of the currently connected database. - - Translates currently connected database,renames it with '-translated' - suffix and updates self.engine's path accordingly. - - !!! example - ```python - - from open_mastr import Mastr - import pandas as pd - - db = Mastr() - db.download(data='biomass') - db.translate() - - df = pd.read_sql(sql='biomass_extended', con=db.engine) - print(df.head(10)) - ``` - - """ - - if "sqlite" not in self.engine.dialect.name: - raise ValueError("engine has to be of type 'sqlite'") - if self.is_translated: - raise TypeError("The currently connected database is already translated.") - - inspector = inspect(self.engine) - old_path = r"{}".format(self.engine.url.database) - new_path = old_path[:-3] + "-translated.db" - - if os.path.exists(new_path): - try: - os.remove(new_path) - except Exception as e: - log.error( - f"An error occurred while removing old translated database: {e}" - ) - - log.info("Replacing previous version of the translated database...") - - for table in inspector.get_table_names(): - rename_table(table, inspector.get_columns(table), self.engine) - - self.engine.dispose() - - try: - os.rename(old_path, new_path) - log.info(f"Database '{old_path}' changed to '{new_path}'") - except Exception as e: - log.error(f"An error occurred while renaming database: {e}") - - self.engine = create_engine(f"sqlite:///{new_path}") - self.is_translated = True - - def browse_available_downloads(self): - """ - Browse available MaStR downloads from the website without starting the download. - - This method fetches and displays all available download dates from the MaStR website, - allowing users to see what historical data is available before deciding to download. - - Returns - ------- - list of dict - List of available downloads with date, version, and type information. - - Examples - -------- - >>> from open_mastr import Mastr - >>> db = Mastr() - >>> available_downloads = db.browse_available_downloads() - >>> # User can then choose a date and download with: - >>> # db.download(select_date_interactively=True) - """ - from open_mastr.xml_download.utils_download_bulk import list_available_downloads - - log.info("Browsing available MaStR downloads...") - return list_available_downloads() + pass + # TODO: Think about this. diff --git a/open_mastr/mastr_2.py b/open_mastr/mastr_2.py deleted file mode 100644 index 0d8bc360..00000000 --- a/open_mastr/mastr_2.py +++ /dev/null @@ -1,284 +0,0 @@ -import os -from pathlib import Path -from sqlalchemy import inspect, create_engine, Engine -from sqlalchemy.orm import DeclarativeBase -from typing import Literal, Optional, Type, TypeVar, Union -from collections.abc import Mapping - -# import xml dependencies -from open_mastr.xml_download.utils_download_bulk import ( - download_documentation, - download_xml_Mastr, - delete_xml_files_not_from_given_date, -) -from open_mastr.xml_download.utils_write_to_database import ( - write_mastr_xml_to_database, -) -from open_mastr.utils.xsd_tables import MastrTableDescription, read_mastr_table_descriptions_from_xsd - -from open_mastr.utils.helpers import ( - validate_parameter_format_for_download_method, - validate_parameter_format_for_mastr_init, - validate_parameter_data, - transform_data_parameter, - parse_date_string, - transform_date_parameter, - data_to_include_tables, - create_db_query, - db_query_to_csv, - reverse_fill_basic_units, - delete_zip_file_if_corrupted, - create_database_engine, - rename_table, - create_translated_database_engine, -) -from open_mastr.utils.config import ( - create_data_dir, - get_data_version_dir, - get_project_home_dir, - get_output_dir, - setup_logger, -) -import open_mastr.utils.orm as orm -from open_mastr.utils.sqlalchemy_tables import ( - make_sqlalchemy_model_from_mastr_table_description, - MastrBase -) - -# constants -from open_mastr.utils.constants import TECHNOLOGIES, ADDITIONAL_TABLES - -# setup logger -log = setup_logger() - -# TODO: Repeating Type[DeclarativeBase_T] in function signatures is strange. There must be a better option. -DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) - - -class Mastr: - """ - `Mastr` is used to download the MaStR database and keep it up-to-date. - - An SQL database is used to mirror the MaStR database. It is filled by - downloading and parsing the MaStR via bulk download. - - !!! example - - ```python - from open_mastr import Mastr - - db = Mastr() - db.download() - ``` - - Parameters - ---------- - engine : {'sqlite', sqlalchemy.engine.Engine}, optional - Defines the engine of the database where the MaStR is mirrored to. - Default is 'sqlite'. - connect_to_translated_db: boolean, optional - Allows connection to an existing translated database. Default is 'False'. - Only for 'sqlite'-type engines. - - - - """ - - def __init__( - self, - engine: Union[Engine, Literal["sqlite"]] = "sqlite", - mastr_table_to_db_table_name: Optional[dict[str, str]] = None, - output_dir: Optional[Union[str, Path]] = None, - home_dir: Optional[Union[str, Path]] = None, - ) -> None: - validate_parameter_format_for_mastr_init(engine) - - self.output_dir = output_dir or get_output_dir() - self.home_directory = home_dir or get_project_home_dir() - - self._sqlite_folder_path = os.path.join(self.output_dir, "data", "sqlite") - - os.makedirs(self._sqlite_folder_path, exist_ok=True) - - self.engine = create_database_engine(engine, self._sqlite_folder_path) - - log.info( - "\n==================================================\n" - "---------> open-MaStR started <---------\n" - "==================================================\n" - f"Data will be written to the following database: {self.engine.url}\n" - "If you run into problems, try to " - "delete the database and update the package by running " - "'pip install --upgrade open-mastr'\n" - ) - - def generate_data_model( - self, - data: Optional[list[str]] = None, - catalog_value_as_str: bool = True, - base: Type[DeclarativeBase_T] = MastrBase, - ) -> dict[str, Type[DeclarativeBase_T]]: - data = transform_data_parameter(data) - - docs_folder_path = os.path.join(self.output_dir, "data", "docs_download") - os.makedirs(docs_folder_path, exist_ok=True) - zipped_docs_file_path = os.path.join( - docs_folder_path, - "Dokumentation MaStR Gesamtdatenexport.zip" - ) - download_documentation(zipped_docs_file_path) - - mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( - zipped_docs_file_path=zipped_docs_file_path, data=data - ) - mastr_table_to_db_model: dict[str, DeclarativeBase_T] = {} - for mastr_table_description in mastr_table_descriptions: - sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description( - table_description=mastr_table_description, - catalog_value_as_str=catalog_value_as_str, - base=base - ) - mastr_table_to_db_model[mastr_table_description.table_name] = sqlalchemy_model - - return mastr_table_to_db_model - - def download( - self, - method="bulk", - data=None, - date=None, - bulk_cleansing=True, - keep_old_downloads: bool = False, - mastr_table_to_db_model: Optional[Mapping[str, Type[DeclarativeBase_T]]] = None, - create_and_alter_database_tables: bool = True, - **kwargs, - ) -> None: - """ - Downloads the MaStR registry and writes it to a local database. - - Parameters - ---------- - method : 'bulk', optional - Only "bulk" is a valid value. The download via the MaStR SOAP API is deprecated. - Default to 'bulk'. - data : str or list or None, optional - Specifies which tables to download. - - **Possible values:** - - - "wind" - - "solar" - - "biomass" - - "hydro" - - "gsgk" - - "combustion" - - "nuclear" - - "gas" - - "storage" - - "storage_units" - - "electricity_consumer" - - "location" - - "market" - - "grid" - - "balancing_area" - - "permit" - - "deleted_units" - - "deleted_market_actors" - - "retrofit_units" - - **Usage:** - - - If `None`, all data is downloaded. - - If a string, only the specified table is downloaded (e.g., `"wind"`). - - If a list, multiple tables are downloaded (e.g., `["wind", "solar"]`). - - date : None or `datetime.datetime` or str, optional - - | date | description | - |-----------------------|------| - | "today" | latest files are downloaded from marktstammdatenregister.de | - | "20230101" | If file from this date exists locally, it is used. Otherwise it throws an error (You can only receive todays data from the server) | - | "existing" | Deprecated since 0.16, see [#616](https://github.com/OpenEnergyPlatform/open-MaStR/issues/616#issuecomment-3089377062) | - | None | set date="today" | - - Default to `None`. - bulk_cleansing : bool, optional - If set to True, data cleansing is applied after the download (which is recommended). - In its original format, many entries in the MaStR are encoded with IDs. Columns like - `state` or `fueltype` do not contain entries such as "Hessen" or "Braunkohle", but instead - only contain IDs. Cleansing replaces these IDs with their corresponding original entries. - keep_old_downloads: bool - If set to True, prior downloaded MaStR zip files will be kept. - """ - if method == "API": - log.warning( - "Downloading the whole registry via the MaStR SOAP-API is deprecated. " - "You can still use the open_mastr.soap_api.download.MaStRAPI class " - "to construct single calls." - ) - log.warning("Attention: method='API' changed to method='bulk'.") - method = "bulk" - - if not mastr_table_to_db_model: - mastr_table_to_db_model = self.generate_data_model(data=data, catalog_value_as_str=bulk_cleansing) - log.info("Ensuring database tables for MaStR are present") - for db_model in mastr_table_to_db_model.values(): - db_model.__table__.drop(self.engine, checkfirst=True) - db_model.__table__.create(self.engine) - - validate_parameter_format_for_download_method( - method=method, - data=data, - date=date, - bulk_cleansing=bulk_cleansing, - **kwargs, - ) - data = transform_data_parameter(data, **kwargs) - - date = transform_date_parameter(self, date, **kwargs) - - # Find the name of the zipped xml folder - bulk_download_date = parse_date_string(date) - xml_folder_path = os.path.join(self.output_dir, "data", "xml_download") - os.makedirs(xml_folder_path, exist_ok=True) - zipped_xml_file_path = os.path.join( - xml_folder_path, - f"Gesamtdatenexport_{bulk_download_date.strftime('%Y%m%d')}.zip", - ) - - delete_zip_file_if_corrupted(zipped_xml_file_path) - if not keep_old_downloads: - delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) - - download_xml_Mastr(zipped_xml_file_path, bulk_download_date, data, xml_folder_path) - - log.info( - "\nWould you like to speed up the creation of your MaStR database?\n" - "Try our new parallelized processing by setting os.environ['USE_RECOMMENDED_NUMBER_OF_PROCESSES'] = True " - "or configure your own number of processes via os.environ['NUMBER_OF_PROCESSES'] = your_number\n" - ) - - delete_zip_file_if_corrupted(zipped_xml_file_path) - delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) - - print( - "\nWould you like to speed up the creation of your MaStR database?\n" - "Try our new parallelized processing by setting os.environ['USE_RECOMMENDED_NUMBER_OF_PROCESSES'] = True " - "or configure your own number of processes via os.environ['NUMBER_OF_PROCESSES'] = your_number\n" - ) - - write_mastr_xml_to_database( - engine=self.engine, - zipped_xml_file_path=zipped_xml_file_path, - data=data, - bulk_cleansing=bulk_cleansing, - bulk_download_date=bulk_download_date, - mastr_table_to_db_model=mastr_table_to_db_model, - ) - - def to_csv( - self, tables: list = None, chunksize: int = 500000, limit: int = None - ) -> None: - pass - # TODO: Think about this. - From 783f2b2e4c4da7eb336bf0b3693c7363d6d03020 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sun, 4 Jan 2026 19:28:25 +0100 Subject: [PATCH 06/34] Get to working state --- open_mastr/mastr.py | 85 ++++++++--- ...tR-Gesamtdatenexport-20251227-Fallback.zip | Bin 0 -> 38958 bytes open_mastr/utils/sqlalchemy_tables.py | 2 +- open_mastr/utils/xsd_tables.py | 5 +- open_mastr/xml_download/colums_to_replace.py | 95 ------------ open_mastr/xml_download/parse.py | 144 ++++++++++++++++++ open_mastr/xml_download/schema.py | 49 ++++++ .../xml_download/utils_cleansing_bulk.py | 3 +- .../xml_download/utils_download_bulk.py | 17 +-- .../xml_download/utils_write_to_database.py | 127 ++++++++------- open_mastr/xml_download/xsd_to_table.py | 61 ++++++++ tests/test_helpers.py | 22 +-- tests/test_mastr.py | 84 +++------- .../xml_download/test_utils_cleansing_bulk.py | 38 ++++- .../xml_download/test_utils_download_bulk.py | 21 +-- .../test_utils_write_to_database.py | 134 ++++++++-------- 16 files changed, 542 insertions(+), 345 deletions(-) create mode 100644 open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip create mode 100644 open_mastr/xml_download/parse.py create mode 100644 open_mastr/xml_download/schema.py create mode 100644 open_mastr/xml_download/xsd_to_table.py diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index d36f0725..95ed9d1e 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -1,6 +1,6 @@ import os from pathlib import Path -from sqlalchemy import inspect, create_engine, Engine +from sqlalchemy import inspect, create_engine, Engine, Table from sqlalchemy.orm import DeclarativeBase from typing import Literal, Optional, Type, TypeVar, Union from collections.abc import Mapping @@ -54,6 +54,7 @@ # TODO: Repeating Type[DeclarativeBase_T] in function signatures is strange. There must be a better option. DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) +FALLBACK_DOCS_PATH = Path(__file__).parent / "resources" / "Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip" class Mastr: @@ -117,6 +118,10 @@ def generate_data_model( self, data: Optional[list[str]] = None, catalog_value_as_str: bool = True, + # TODO: A _repeated_ call to this function with the same base and overlapping data will fail with something like: + # sqlalchemy.exc.InvalidRequestError: Table 'AnlagenEegBiomasse' is already defined for this MetaData instance. + # Specify 'extend_existing=True' to redefine options and columns on an existing Table object. + # Is this expected behavior for us? Should we re-raise with a more understandable message? base: Type[DeclarativeBase_T] = MastrBase, ) -> dict[str, Type[DeclarativeBase_T]]: data = transform_data_parameter(data) @@ -127,21 +132,25 @@ def generate_data_model( docs_folder_path, "Dokumentation MaStR Gesamtdatenexport.zip" ) - download_documentation(zipped_docs_file_path) - - mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( - zipped_docs_file_path=zipped_docs_file_path, data=data - ) - mastr_table_to_db_model: dict[str, DeclarativeBase_T] = {} - for mastr_table_description in mastr_table_descriptions: - sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description( - table_description=mastr_table_description, + try: + download_documentation(zipped_docs_file_path) + return _download_docs_and_generate_data_model( + zipped_docs_file_path=zipped_docs_file_path, + data=data, + catalog_value_as_str=catalog_value_as_str, + base=base, + ) + except Exception as e: + log.exception( + f"Encountered {e} when downloading or processing MaStR documentation." + f" Falling back to stored docs at {FALLBACK_DOCS_PATH}" + ) + return _download_docs_and_generate_data_model( + zipped_docs_file_path=FALLBACK_DOCS_PATH, + data=data, catalog_value_as_str=catalog_value_as_str, base=base ) - mastr_table_to_db_model[mastr_table_description.table_name] = sqlalchemy_model - - return mastr_table_to_db_model def download( self, @@ -151,8 +160,8 @@ def download( bulk_cleansing=True, keep_old_downloads: bool = False, select_date_interactively: bool = False, - mastr_table_to_db_model: Optional[Mapping[str, Type[DeclarativeBase_T]]] = None, - create_and_alter_database_tables: bool = True, + mastr_table_to_db_table: Optional[Mapping[str, Table]] = None, + alter_database_tables: bool = True, **kwargs, ) -> None: """ @@ -226,12 +235,22 @@ def download( log.warning("Attention: method='API' changed to method='bulk'.") method = "bulk" - if not mastr_table_to_db_model: - mastr_table_to_db_model = self.generate_data_model(data=data, catalog_value_as_str=bulk_cleansing) - log.info("Ensuring database tables for MaStR are present") - for db_model in mastr_table_to_db_model.values(): - db_model.__table__.drop(self.engine, checkfirst=True) - db_model.__table__.create(self.engine) + if not mastr_table_to_db_table: + class TemporaryBase(DeclarativeBase): + pass + mastr_table_to_db_model = self.generate_data_model( + data=data, + catalog_value_as_str=bulk_cleansing, + base=TemporaryBase, + ) + mastr_table_to_db_table = { + mastr_table: db_model.__table__ + for mastr_table, db_model in mastr_table_to_db_model.items() + } + log.info("Ensuring database tables for MaStR are present: Dropping old tables if existing and creating new ones.") + for db_table in mastr_table_to_db_table.values(): + db_table.drop(self.engine, checkfirst=True) + db_table.create(self.engine) validate_parameter_format_for_download_method( method=method, @@ -299,7 +318,8 @@ def download( data=data, bulk_cleansing=bulk_cleansing, bulk_download_date=bulk_download_date, - mastr_table_to_db_model=mastr_table_to_db_model, + mastr_table_to_db_table=mastr_table_to_db_table, + alter_database_tables=alter_database_tables, ) def to_csv( @@ -307,3 +327,24 @@ def to_csv( ) -> None: pass # TODO: Think about this. + + +def _download_docs_and_generate_data_model( + zipped_docs_file_path: Path, + data: list[str], + catalog_value_as_str: bool = True, + base: Type[DeclarativeBase_T] = MastrBase, +): + mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( + zipped_docs_file_path=zipped_docs_file_path, data=data + ) + mastr_table_to_db_model: dict[str, DeclarativeBase_T] = {} + for mastr_table_description in mastr_table_descriptions: + sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description( + table_description=mastr_table_description, + catalog_value_as_str=catalog_value_as_str, + base=base + ) + mastr_table_to_db_model[mastr_table_description.table_name] = sqlalchemy_model + + return mastr_table_to_db_model diff --git a/open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip b/open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip new file mode 100644 index 0000000000000000000000000000000000000000..242b39ca9daf5b1d1b6970bb87f74ecaa277b1dc GIT binary patch literal 38958 zcma%iW0+&>wsqOItGaC4wr!hTw(aV&jV`;(wr#V^Hoxk9&%Jw}d+v`f&q}hACs`}W zobMQ8jyWSQ1q=cO@aLj!m#OvF&cAL*0dN3>?W~+_Ol+MDoGk2Y31keEoD>PfOdJht zoQw^eOl(cuzS}uC(Wxjy0szNRC|CecDp)wXK?4AS903CW{Bw~+we*3qt0rK_i*8%AMe2_n{fB*<~ zFjB^q{`oQv1OU*C1OR~buU81zS{s;|*ov5#30m0M7&tnb(0;w~Tz$-TjUJ&L{fG~u zm8}jNg(iSqAb{A$uaM@3JVF;rQdc5qAgPbUXh?6X$XdgPH2&2O`pHyjePtu<8^y_$ z+fT+zMCK73E+5b815ZDN&7@SPx7W5vHvG4}f~9J>P$zx`C`q?o3>qP;ZNjA!7()Z5 zxoa9;^&cbZf+>iM@_weaz2io*;ZF30F*#Usd=LRW`Za9JTVu{h?KX|8J&&j5YlLZ2 zr94w4Is6{vC{Az4};A0aifv0(9KX^z& z^zw%-9c)5c2C7a4C8));K2UC2u(B(STk!g7adW_1d;Rz*F2Rr_r~%9)A+M3k(Ig>H z0yiaCKzSYI)$~QdWIYDMMfQkg0Ho-PFOh`4JBN@ff{Nrh|Iqf$Z0c=AYdSovSAn`S z#X#<=31otO=Wxa3%sgUj%7k_uZ(tsPGY7X8=kc*F(7MKq(ZyAu71NbP0wL0; z(1WdZ>R&P2pPoA7cD5uV{VL_r4~)9t;ki;M;@&m|4eU^~PwI(!jQ}LB(EC#-YIr@U zj{~K;dVVkY$y_Aj0O>a^jX{hEj*_$L+qW1Kp)~V($c`5;Uxw?XLq>3pR;A0+tIt(4F|sr+2XqSuV^s((T!Jfg*Ogb$&6h%f^zj>ZV1RMGV zJ*hw#9;-49Or2>jD58gDv(cr9`CD*3I?ddf1fp@=LPC2;t@eSAFhzc0Oa$eJ`dunrl-9z~ytGt6O%ukC~)d zl^smPPfHHYHc>6;wc5p5(epg^X9W>%_fO~Bshd9UYxKXKIZHWRwyRhoA3@0ueWs# z&aR)!e#c*!jnKwrw>jRPcCV{Fk#tv_8!cWlkWL1B2pBRVuRm|d_tJzvxx8@j>Wc2@ zXxoc{^4Q#{2{PGhlfM8P)tvBa0Ed^8c0jy44uP1Qzs+HLfVD-~k(Z4IO^b`;@qNYG zg^`O#!fD^vnmPTW+O{Nx!)Sl?R`EAzVW_r1q)x#;qCR%ME@8`L>;ZV6unh6|s~qyM zD*7oH94xG}5{lrQx7y=VCf>>1JdDZ#` zI$JFKTJj%l?PmBFS&F%?Mku7N!!yzi(0fs%enauSt-lSV^)sl{O5?;&o2a*niLey& z^NO;sfovTvdXNtanM;vG#1yW^%}0xf%1LieF;T)R@E+APY@jCeVr{&;qz|nkR2qn3 zAq_2I#3i4)5Cr_W!1~P?u>5J!oEG77t)7?RZ`fo%Blr02ql|lLv|Ng6wI$OT&^Y-y zsu(OKS(HNwOapgb8=xH^5`+^H)P{GeQ-|_GMRjE!y}%} z$n3GDZ7)!@q+cozhOQ55>95@Z1E;9Qr<-oi)=r&Hyc(i$3H`znmfywM5_$hsRLdAS z1{PF}K)g7;0%56QJ7!H=mJ&M+OnXT8+*HVrY-|;i`%;o~lKgpB@oV7sDw*YrXxg`AvHNBiILl^ovC@dq*kIZk>ZZjs& z>QrLFm-}>@1uE$egxKD5);`tFRKK<;^i9bQN-`2g$Ylc}6&%A1*k59p_k~W)^=#+k zCST>KI7W=1Whh#KuntU@kt9cd*v3-O)ZWmYG6V=rSX=-oy)r1;h%&rY<0vjVY9ynR zFJl6$eoeF(>5~+q>b+XFt%-c_XT$H7U8=9_6&%K6IDp({BJRKeDJnBLWMrE(&K8`> z`CSv1Y!8bp^@ZYnM>2I}?$>xjsuoM8i5fV~w1wS_ST!s+si6h3Cq6J1LZbeFY~894 zt#J@C&;TY3Gfsvix1TY`&@G}o9QN4bvHnA~_NOyaXB6E?qQIU55SjH5&*Hrji`rt! zO@_{HQ%+kIiMf+T6}Au?EAs)1aY%RUr6`&*grJ1^5?)#_GP&<-RW>TkS=DNtbRz!s znAjdRy8ZXF?#v||s`0G?4b0%32r?Y^Lhwn?C6EEY0m)tGmU>nnwsvj57Z9d2R5*;I zKbIfLellndhk|8;#_(fwM@t1+Ssr*i;;NE0K6(}|a2^8`6c=|Lh~0nu1GR9tjFkft zl^;OAPzwbD0084ZP)qHP8vHBT6G?x;R>)=23qJK$WZqB9pzrz062!!_l92DsDppLa zR4zltu4v*u-a}wUhQI?H2S+PeW`|ksHt^Mpn(k8cs-_q(9kNT00DIPy46yGx32k!d z9}5RV@O_QA%WhzrZUMu?!-(r9qFelgnfcSMPy0df;XxG0DCYbg&IXsMQu(+QHb+xo zXn_Rkm8w}PT?uK-PwVFo0ep{pL;0ywMLcwLogyCO%t0S4ls|wr1z)t(p-mm_9GNEX z1baMg+WiPM2WhxDl2t)t1F5P?242K)xQrab6%N0rQ%xg{nJ;Yt$~k|pi#28IZ^@hT zFD1BYn&9E5q=Cne>YKj_pKDYNxXnW@b=}UuVFB~_)|{=>N!~^=3#Q)d=0+4naLFXd zFelIKK})eT~L;r7LFvR3qVM%Ep@7byBJwxUGf+=m^MN$GXI4qDpt;8Rd%Uu=#rR8ws|5qI$^@r~|)lPhC zyuO5z0ue~KVz79rxEA7zJlz5o*dL+v02rjV#W0Am=SLq$3cjW9@;hUQjcIdZa6uZ% z3`p`8A;b2*Vwcmeqh^Z1yp^xD37>YoeC+WOi%DmximGoTW zlX==UFr2p_0s)|mY2PYiny^mJaWNOOsrF<0v6BaDWmYid6|X9#%H^Z?tAW8d$y^LF zrk)_@FfsFn6$&+gwZK)R5#J{2?vR-a({FblUP6g8@CsEj=Bi0PIGPq`CH zHooSW5b;5(IMoG|ZOVI=?!Gre;hK}gv>DiXkrggPb8&xQ9frAP?d<(S=&?gfKx=s7 zn*JeJl^AKh$WV<405ZMgBJK-<`ymmwB>BE33gU`P?Zryqu~(yF04I!*1||`I=4}ta zykaieGtoSZZ=1~-GTE$h*Au}CuqSTDfcHW)9n+>tV?smcmjm5I5)~x2+Ek?2#-3!q{PS!+Gx4PXY_-~ zX$OSNCYo|7iz-Ag!o$+D;I2PmkpqhB{aL4LDCi5B`1u52F(CrAn-UeMr{}ezcmY9{ z0kJIn9K+DyEb8BT#w6T#fi$GNS?3rKf9oyF_t+=e4$-W8;_9d|2byUPC9rUCyX9!YOc7Smqj9YR;EgxwIm$0jIs z(M>E`6)}jG3uf8;PB9&YofmxF%^$gk&UiQAp@yR>HlJlTolk-olfjC&R>DwFkH zMt6kv6Y%e>b>lNu9`y7HDfuEek^dw(F$2ec5?oTEj$AK2O30uljzXM&m0W%87mY#_ zG;Yl|h0TZeW2eJrXA_)BK zx2>^_00LO0Syl@$v)U@9>6NQfcAU2!%X;g?Hww zxcl-r{<1*+WpGHjTK!eIB`Mgg(jyGzq%~Y3JbQzL6sv?aoXo4HgJsRvS*&Ix;Dn2u z$-k}_zTa^rgun>O=h1mfO}ciyZs|;>X(uw?;t62?DEEVX1wQnTxKaN}tlxFWmNU6L z@H_;cFdHS47_g5gHc!|9!Pb(jRxO#@eArW|a69-W&A7lI9>kow6vhTpyIN(SnFXg z9-t(WdoSF(VJ2wVKws_d8Y2B&yYf}F^e(Nn3-`Hxr4VH{jmpr5Im=Jy{#2sz;GlH( zftgW?ZKmD>q>UF0z;sd%&Q4KZwQq4g5U6q_{j@V{d9HB~Cz3@o?SQSr4lyjw*#XJD z8$3;DIZU}IWKH_eURgazjYMsgIWB>o9lDRf*Oey)4C43ct~DwJbVF4O=59{?D>I0C zTbCCfU>(Y6s?b4Jd5Q=SmV=kqRju|aLrsf?TOHdO35&5ieuu23fin@sOD~sRAMk&t z$s@n9a*br5N6lB7sD7aU&cCOLl9Pj-&A;QoKZUO1GzM%QRo^yawdYdNXn@_k=pjnDY&i{3Au+zBB+)gi8+!}NlG>11$E=eK zqbMjKy%na`V5oLE7moh~J5q8dwXp-S{SgEvC9y7*xKdea{;l0N1GQC`<0S{fSYFP&rV|6$ms7#Ua z<{rA!!ScYhozpXZf#-N)Rct=XOf9SziNr$6RWzw1T6C@sX5892(O$KB7cxZXNV)0X zOJ?PX^=KF17(hlOz5~i01eQ{z_L${xJurou`4{a^i0-3qw<8~erZF4n?4u6b5f9ex zSb>9KzgBejedeG;^!l*NV(QFPVK> z`R^QpvEAO=pp9@gKIflE?~z<=vq)%Rz&5^WcoSCp`~&Ze1dNq6MtU|qz9PN)Wr+TF zqy;Uk4QxFuOdP(<97i(~Lkkn9zdX+@FAK!xHCl4WqDkJK6Ef8Mj`|aFesSjO^Rj7wPfvkCe+-PMTsrv zIp*^sHJ)!qkF&R4kEaLEMjJ3Ii!ljobQHKTm>@^~^5beCg*&wo29o?j3R=pc0VF7O zBX&Ti=BR2l^e*k3ZiE~T7?Yd5)8a|7oTwpU&%{wzlqY$x#|)@qjm)SPk+AZ*Jm`uA ziaSa{>&OP0s|gj~xA=Q?W;Wb3aXdgfde^HUSR_e8K977^DBZTcfwdyxXf8{-^@+rL zw%0aS3JX^8&b#zwQK$~^2iYmHI@|a0@3NSNm(~(&jq%~P;OciS0UmCx>$n7L=;Hgq zuIq5EayviDY)mbcsFI$}f2b~{4cf5xE*W!n&+xBpoupxX{3B-2Usg)w)3?g{ub2sf z0RS-mYjuiP*qWPIe3|b8Cbq_ZMNZbl$-~gZ$-%_J(8R&R+0McEk2z;z`v>G3RW@Yn zzwEis_)Fa3O)dEX2ALUVh3W=UO=LTCjJ4=9>y50&qdBg5#Z|%ZMYoZ+Oh?m0fWSz> z-#yssB`|}#HR$00^ekz;64ZD@OWiC(0>HDPJ(}qhGxyNwkrXo(_#wB??QDD(m|T#t`A76#tsU;_agfDu0r6gt zn7Q)^kyOD-@*wOWWGn5zG3%AqG zS8R!d({;^KN_ILeN&RlLQ|x6m5u%0z^CXo@`bwnscGRPmo$#m2^WIb(+&7wms5`vu zY=SgisYh;uo^_LJr-%vb?g`)*IjV3vcj&0cuKfDz;=q8e?j)0 zBR1XMqjkB~Nh3uig`Ai_(km1N42ga44VfMRmu?r@Va*DQ#XjP^V$Fvq#YJaCa_k~G&+8|MICIO;!-mmT#_idF zdph%E_cHrjX!d8}0SiBTy+TES(B;^1`B2{D?sGxt)a1DmS0;ZM)+h%uyaRYOV**~E z`aw9?ox?kongn-@K@bFFVXn?`FdyDt+$t|mQ|M-Y%gUUoBX1608n_%IGK)z00b7@^ z+m;^8;m&llD8mz~u~0b*Tt`Z6Hvbv_<1V$zV(-nsL3tl_7Rh%X4~D>j>hdj`w^4hW zQ+!tfy**Y%=MQ`K@o1Vw_F)Ge%H+5~k9(`JHn4S;z^vQl%xIw%p=!4^%!XjK>`m}s zzMOpvs6neuII}{W%t4BZxR|7|xyNlK0}Xa|2nm~9OJ=C zflo%JtUbbc!4qi`j)-tuEf1MG=?qHb2F^9(Y?d+TmkiZ(wgrdVXU)qdCg&bpyOeM= zW5N|r=;#=ye8TA^VCt~R;yKSEG3RX=aZ{Nlk)*4(Zz}uSev~`-P9ub0Z6?C25yB`1 zubWO3@C_{MF_I?FV6wXKS+;fs+@}kv9BVkeUm!xH`onQ6!HjqBl3D@!==&BYOlN1a@iRkt$49bpa-m+LAQ97@ZfN$ zGQ@(%La2GUG-t@c^%P4*NZl>Waq2S78b+n4t}+16r2XP2D;>DLQr&*-bP#RLEeY<- z<|TUC^~6p+be87t{CDzqM8%!2*U_VuhatmOJ2@}bcEyzAPD-_}S@JCrO(wBKI9s}h zsx4Bpy2}BNGwgWd>?4U@x5VsF#IzP{wGCvA{@lDF}at!#1aICZEdhucvZTm)tG1uHS-8PAa_T2A-DXsZs7J}_7v;VAxKHE7;&CzHiFWjv3YK73ga?AWl=-^(? z*RQZcIsK~rsAt)Yc*9yzdmn?OrUL5K#>WY^rj<8kz}~~1mNsg~pRyZ%GDtyn4DvZZ z%p?@8EvUi%vCuw?IPvseO;Cc}~vHTDwaKl!tF zq8c*_s3hrs7!Kf8*MJ7zr{atQVDn(?WWzipm-jko&3kHhp+RtvTP%on4DhDzP^cQ4 zk2b%m(2yN+L5%E73ScbqcWJ%$q-)VO+iFg%cl!<6{D>a9uTRxq??#BXpNq5)gfuz& zk$i`V7$;X;85iIsTLANXC4ec)N`Rrzs(-~#??!;ZjR1oO0R|5e2o4ws9`%~asDDN9 z*XFmW%8v;Ke^d$j?HCp&(cp@o(TxC;I}Qd<91NZ~5InvIcx2n(_=CVLRpDzz z+(n&W>k!m2+}DHhxQi;m)~1^^0bJQ>8xq2>X1!6HQ-_I?Hbi`Gw;GVuw|zKgz(W|H zeMDo^!kug-XHnE3+Yinap8~m$&{;dXQdi4jTBDNgm5!c|`W{xNsWa)%y~TY6O|M93 zw@>-UNGt9YKDu1mrOuE1=DYpFlwmHEy6^^2BO$EMwinj7XS;u=6tgu*2Es2Dh)M9b z68s-k@m2eaICz*ioBfyFd9I=H$F=gQp8xcF+YE@t7FW>(CCN*QZ=gKBR;6*PQL9*T zisgU0&tfTQ>9^&-5h@~9w4P$CXWF{JdEJ>KHc28wh&OFNc($|B1$E<#B#+hFj2&8I zlewH5TB_!i-uGOQBOpP|Pt4`1+-5~SW`PMaEjzIIP(v04McUEC@^Az2!flO@A6fFzgSJpz9b=9i7gQWYm$TYL zx{X5wmsw#I&$Aw5(xdW6ypBNIMD}{iokO9izzao21dU}52AyS5;OqcqQTfiIOe!27 zFwM=2R%5=b!%7U5<|Nm8@;Y9Zp90r6sem_~jYkgH0B%Uk3^ScuC8%`JJEpZ+IJhLG zcKIUgSKDYeUVayrnUP~GSjq3IKFC5Fu&*c=WPt)ryA`avpm~^8Dc!NSOm>^6sXa|w zt<1Jj_v~}=AWK^Ac9}PWYDNs!sr;RL<~K7jHzlxA`XYBr#fs!pij3Be zNN6p{&)r$gLeol;pRbFAaGGAHSs2>d$@)Z-%^R#OVvN0PH*%Oy7onZb>~A$_?8Ec8 z#uZ;w^6<(~p>gTK*HFSRs(y=Mf(6I8_{Am5Ip}$p+g4ltT%EwKUZJTka9+1kN!REa z?nx@4sc}VGikI735oSwcg|(0ZY7&s+u)noPQTtZiC6UB}s*phLbMhy9L=YMJM~_kT zo1~#{sggoI;(jk6H3899T>3vCFZlaQu)VdH7C%;WGtMpJqaJLi<%B1%H>znue(uP9 z_Bln++i*U7%CfgaKHhsHo}?(zgr{qs2lKe;1#_x??`F(bO@nib;tLSAHAR_T1-hM( znqI`dyhKpa-nSMfBAT;r>-Oq7T+O{>mrx8_$9{C4hKs79Qy`cM$d*I5bwjbzj~JX* zNn`-4b$nR|vMaFT_)Obj2M&c}Anq<;`uQ9zB)^{E5$9RLbDN0jVgR-5oeZU@k$$bd zTvIjD7vd~|w>qUN__{ONCMq8=SBG%Hp||f2bP?xwvS{=3J+)+$Tma*NIE~eEXi_}h z%RDWXa)WHEc)lB${9EzjQ}3mPb&SV2-WYZ)lJL3*c2di}zNO>p8CLH**$2z;1CTe& zJ4lQa&v#B95i*|bEjT37E;uG<@O^9U*5+07Trodp@asCMd@*hODRnd@b~~Ai zc;F2G`@ChC3S>>Dnrtjq;8Q^TuboepK*sSgSG7GhDI})uEXVjdTd@w$r1V$i?$IBv zG9L6etBds=7YmhFFBz3<`@oaSqN{rS_(`AJzO_n`@9flpno{+?PTeUrajtQ<(B!!}u zL<0{TTwF|CO%n^RCgYTk1jI6KL)W@(vY=1IkmT@OlTB?IYId2Am%5$Jnxjn)NCMK7 z!W05SnmsavyH=@46Usv~Z%w38vJ@c0-2`A&Q25pzgCs3pZHc&Kik2V0GaIhkJ$0aWBn+%y$Qt}bDwI}z1vqK8|BYEvb*P1oxCMhO=?s7*@+Pkf2A1Py!9-gHweY~a_SiW~Pw`P`CQ3R^r zdyW?$sNwY?{z1|w4jFKYUQmsTY8w%TxhVOYpv^$D@Uv)^KJB_fb62!K_#L*kO~E_0 z_&6kot0f8_1>+FycKdq^*)h?Kg9!ojt95tR(|f(a8BBfosF@vKpkl1EBVZLBek1Y8 z%C^t_@<};J95;RU#D3RHvae=A0TDS&hL= zVFvZNJA)XWARu?YsjnZACMJgWieSDQ1=gUD+z3YSRJloPQ^>~QgQv#;7!E=(%n$ri zKMkKfu|J`>B+bQxN(R#&z1X1uyp$jrovHmsYw*5)i;*_R`<5fjju*nB!4e$-82V86 zHS&!OtVx{8c`td!i}6sC zsKW1>!WACu=m(gZ2l#WVW_IwUCNwvALYPvKx@af~+iz%cy({#oUU-zzBWWA`u8{q8 zu^qnHP4_qo-%qVypT~p8@67rKQ(_h#azvAz3y+VjEhbw&^{!mLf`G5mV(bsoPgY+t z;Xj;jpZQHa#4iXkzy|>M+WvCB|0!==OdJdy44nVFeSfZD^T!7N;I;S!Ja`oavY=2| zQSM)rq1<3@O|eV(a>0Z5=(|uxtG77#EpiFY6vE+?RwZR_xLrHBUUj{$?bGX5c_1X9 zH?IR8JJo>k&>;^jhFpwQe~HE9$a z1@RXOfmc!DbGt_qws7Z+#-vcN@K!I8C5*gE+^C5rzh3l9G2=^v1H$%F3jPi zit!XUy8u~~zH=xJD*RD68!0tq%Q6gvPtS1YEgy<(`!SYnIX3Tq7=mL`SJO)?>(GL)=ws-*{*tO$l!Kq(S0L}2FaPBHyy%APJ84N4-Fc@gSqwWC%F=Na)$J?ShqIsE#p5a4^9n z5fbfGlCAYn5Q!=Z-~?O-8tA(eEyBdwE3%qV?M=L!m?!61U}Rc%LS<=Z0)fWX4Sm^h zE@fY&8}_RP&Y|8yx4Jk7Cm2qPy`mq0F`TvRQgXdG=Hh>*skGbeyi(40c7LM^(>$Qt zrucw}XWwZ9x(&houmFC?Rg8d6gV!=P*M>oSR!VZ(PVaND<=7B?pJ&bN&mNP z{x_O@jX;~*SeX557V=zG#_>?rOeHcUhGdHJZo8MjR`Be zN2;r%7?#=XD;q*_9E4XNU2-1J^RG=tjm&@*YlYnkmyVIZgK|KmgYcd^Q#-KZ$0D2T z21~Ih_<&?_Bgj`2iN=veN^0^sMPtqFODx7!VSxG&fWiHf{AL>^DCWsk@WK(6h?X{N zo3hT`$$sQ{E}lQE>)n=T=r9^8a>*up$sI$C_7LTyh53C8qaz^LrJg4oH@Y?F+d0LU z9eBrbDH&)9;Ii4rg~uKqn};hoX4_g)G?Dx=tprGem=rQyM*Qnb!v+;kK=XP$h$C6I z*5_-hrxRIA4v)$Yaft2L>_Jcrde~8@l_Jvh0C@?dZ5ga$4GE&xO?!Df2y5fC69yS~ zz&B!p#fMRz&9#41m##)e#Y0(i0OdvNwhGypSHM~?`^sr+4TEcmcbP?EJb?d-tMBQ? zn!8*j40+F^*?%jb=@oY`qcLh){TSlj&rUzO`#2hWSgc;|JRev7eSs_tISh~;$|?l5 z3z)iMo!`o}dXr=_POM}uqSX72mhs8cKIREBw$k`udr9J6wz{69Oc96l2BFfKTTmJy~ab9G5d-gJs3Xj=FCGmp~kBmEihM%7%s8UYSIi=(6GbX`54 z#>(bYMnD!s5{oj3omJ&yK+5RxF3+L8l;=AZuVL0PWDM5o8#P`wy6^vL(^8(va>sx5 z-tw6M0GR)Stp5K-aL=_)?dJGlKEIq_p`^>{!x+3iZg^&wK>?IjhF?!=}B03u8v`5?ki+eWqmCNrz?o&0=nUWk9|l zK@x%+6u96Ez}U2PbWW_@a)*BQCGPB-REO{guf(2#l>-RUf?In?J{DR}2DhQYQ|XoA zl>rMBi*M1U9>Is+^;g^nw=>C(JZeebrQ{L_qy5I++$o@1F4;{-%taC#+J6~^^pSB+ z39wJxKi#DT)H8>2lz10A`GA~A_FTwg7L1{QP@3q3nDoR%d{a8g7^*1ett44VyZ|9N z@<)n$;ExIl0gRYdA+{q)FW*#9Sh0&5+Nk zmnKSEvH+J&ke(}^eX2aCOjnz@39y}$bkv|3n?m={n`$1^%50Nnw#VmETRFgt^w+D` z-byp88g%P|>qLy_DVWPwY|e_4tZNi0`rgE89FOLXHsv}(j8@;g-|^eV*|O%oxU<6y zDR>;?)28m}_TvJKb_K_F`i9!v3mU7=^&6}=9~jL|l`C*7HWBPf><`nmfDj!0xDY%# zpe4bjs^H6Jw9Y-v<@v@dwkA~$pX?-b4d*aOja8C+A+L19vsQeTWZIvU6yNIiZfoNx zg}l55kfh*rNKz9Y#`F!tj(*~_pQqv)Yo_XzG7Agw_K0QnH#g)bFiX~uVx@xgv1Q46 zq(FtO1mVG*w7G6F&^*5YxLm)$`{)8I#Sv+ggB7c*9u)Z6@t3NgYT^G*QPX5}HbEbk z4c1Kg9)~JTQ-{QAdnH!WiTa-1ZOvcMrSakuz&;QxjZIW1SL$w8=N>yywKKa%J<^jt zQF!Px_F5YvUBuv|l5T?8zX)j-{ESzXa!Ut__N<;d6bEq0*UhX~+Yz=|4UX)6Cgber zyBSK~J1XJdF0w^@QKYN&s7N_%Vxy_p!-|OtzGf_sGu?&_*wHbw`Cy4~FL{{lUf_ih zs6~vFqYd%0A3sTk9^(@|w}3Ypvk+yRAi5X*kS~Ie+6@I02FcXC%flyYlmJIxGX8de zXl=dh(Uzupfv}cd!wGyIxSrvNFO;Z1K*84E8idKpCZ{1m_Jj`I2E^h3x>{%oiR`P5 zZJPA#9n4HP(nwG)2760)4p6Z0u1uKP!t6r2QWS6i-UDU{V@S^7jZIVgQ|0_cZPgo$ zon7z@r2se(qrceM0+@y;vZ@%}X?T0K{)p2P4c9m^I?9kI^5U1-Oz8u4>wUI}>smd# z%r&(v2X`bgbVDpC>^n24-2QRvMFWjjgHQ@hF8(#)gbQr1y2_Xcm5Q++LD=_iIglD@>naSu^WD&#`}+| zep$c;NhKwj9;jz9ecW_)Kn70l7h?^;jO5nf#ubZj!}685aSCc&1i%^7WYr{hBUX^d z=QGny>d=^cA$PRaM+t0B7}G|UYt{A$PxN?IzQN5B$6_d3Zh-J)ldDlmy&%**(!%MlkeTJc>RNLv#Vp%8vz6YW-$ zcG817StaeiPT^^*a;OK@_~z7AhP-OtY$QNqQ7zwGKUyYE_5PL+e>@RG7}!X;FN`Po zYT^F(e~tb}LP(i7*jhOlm^%G6Bly+B`%{awOT5C9Z?TDsyQd8n=U1K1C(9Oi&U8wX z;z$VZ(y#gd>hk#wP(%T{r_E`Ctf*BgadG|JQhzxxlHsamubdVTXVA-){9b0N;^#R+ zzwa~j;^6*PXVT&My8E0#^{nXu*k93`h_pkX@;x)`2||=QT6swFxjIo~hdk&Tp)dll zS_}Ba`rx+~FK-eq)!g}g=SI$q3Ehd4YNQ>tEX|23A3nZQvp@}Yr=omtJ$_a8$ULJC zcz1w2ARnlJSWxWJ=Y(6c4&rR#@6PT#{%0pQtwDMevbN6lz;{s1NcH8=Q&Pe6^*F>7 z_$Lzm-}H1VHJZXQl$U=Fw{k+6a3%YE*&-oHOP85D2fA281QjPP>_Wxcj8O*RPW{SQ zIsUB*-`Q1HxfwxzIQVLHw;P&`q*C1FJ1(l_{7yg6ScPfhKhEO?mIvwu3=0=G2!gst zEu&1KuCB$jtgoPDrmK7hx#z-quv98wXS= z*0n+#X)iq_yF;K_cx_nk>e}_@QnK2rWlbY@BxM@n*hjqe-x4&fvN_{7i-I59rl6_I zX|Pg;Y}?3>V8;5opCOH$A1+{b&Y(7=kC4#~mo3l<2xfmguZrPeGBQT>a$i`Z-S}$Woeh!CF~@zgqbC>IqSIdUvs&wRwFcg*g|)WC ze#+1(3+sxSDgVhictt%S_y*pNy}NnOZb8i-_l4Sweb0&Fs0J5aeLzA%ok-G>w-)pa zgWBPV3n+fLVx`kvibdPe?#VRvNZ)NmJEo!M!7+{j`do2k!Iq%HW`a6#6ZOx>F?kG1 zGuQSk0viC!_hm*XzLoPmH-IRApu@H5-E$E%>IZfrSgvJxqmW2f64HFf_XWYm8gT^` zWlw+G*!^I7`X+0<2@x+Osp5-%NR)hwWzwyI5Xd0CsNyyi>I3xy%KNCCK7#NnI`9a~ z4gL4n^AgA!#J_BJ!?1;%%u>T|_NUBLv5&BVv4u;L)_VSD9-!u`v4Y_v66R+aj^;USGcvU~!Lpo& za;aikf7GiFgwsvQ(Ke5+JESP?MPh0uMh3T&7)kotGma7t)WLxEx~6B}MdQ6LyLATt0(L zBI#qz>3!Tvn3?h?73z`s2^5w?%a9(j-q{iIIrhOm?6a0a0x&n>APyV5nx=JHYBm1L znFgo3__;Vui=%~8{eaixs*zNAIjKsCCmxnxwcC{CiCMe_;6Uza?p3 z+J22ue2M8x`2#Lyi8fLZn0ZTU0(AitjDL(#Xyt^m?F_J&d?r_!a8wKZ_}L(170<=x z`up|vwuMetXF%ZqDF_DH$C_ixx*VuI2SyMNM@x@4hxfixjV_1V$DSl->;uA3)j%@5 zCWVq+M%W8TC|UGmS@L=63x?@~03E`<+-V2+_2y_Hhvzp*JT0Ok(y8)=W2YBuP0!@8 z+>_N`O7AWoof)vEJJU%KcwRkqy&5n>i>Gn11j^lQ68-&erO%Gb2z>_n(52dZ?dDy7gXmkdAD%YEUO>beVTm%VFZkT(I-W@d%p#Za;j z1&O?zs?Wo37&_Nkb}$2#$ZJe`(40Pul0PNi*6&6bvs%kEOOrQH%C z8ckbGOt}Xv>Z4BLMJVE1CJI_rNak=9EG&ODMIMTemLx!D{!Ez$+hGnZeeHMX34MElwar5Lcl)oyUT~ z8(UQ$JoRQ##s;W!~RNYbKbt1l!zBfo5)NX-)c3yG)kZ>jlqi3eNQPJ-Tl za0ceV(R*#}6uMUWVaOa^X+=ru^BZ;X-b27W`d))(GF!+3;&0#GGSD7<`3H+5y{N~5F#z$oyXny(5cBU#`lRvB zTdXgpUSUYpIVj?^_GNan#i0IzVzBr!&;5$#iysNQoVXi5=XRorrfB?^#!5X6qHhdP zY!SpQ_XXqN8s>*Z^e3qNcU?d-SY!T(XUu6gU|r_#KpL9dn z>qA9{Y9TA4p%Usv3_lscn$(5TQEbg_qNicj80G_;tgbljTV$|K08*MjnNWSuI39F~ zhPw|s!h^)EW&*Bds&_R2%|e2_A){mEz4YuDT=FFdb{R!j?f#ufL(i^!+osxOWKf_{ z1a7{oK7!wJ6Sa(@)Dpmg)2WPu!!cIwWEEgQlp~Q@Z53eaITpb}6`1djQLR;MKh6Hiu3Jow`j&)%fhi%ySP%>ohPt^M3N+7H*wgsOuW$y;C{FN zZGd*NH|WZPeW!Rid8D_685TuQZw5}3BV#98M9ue|EsZTEk zI-6iHsf%?GEqk~Y&Bvf)nzdWwI8piW6=-K5!qeT%K5i5FU%tX}jp?v~i5YN{FJk*J zjize{0%luu)G`kQ2;FAz2ourFvT{}4fiXXcI3dpFl-#yxg?uI9qGP8E_^Fas>&@?d zcLL#pFgICXpE2^ivHb-0$vZ%x43sJ5Fwn&I9ng5m}E& z>;rY3J)F7@X1J)ai^!FlGG6*x5s~{Ij{#EThGx7t+Yjat(R1L4UtHXyiUQB!+ns!V zSmTLGC0AGhlbLP%V978BsjZ67nkSRZj7oQ``^@wk{ctwit(C@Mb$3r1r7N~%rRxRB z?MUq56Lb6`-Me50Y_B zX=I6c;iK`%$??gtdL`ZV)|i4pR0vGcw+0IyD>m$Iu@UzD9*f(xfwdB{iT@%W>T{FZd%fy zMVdkX)*uW>-mulG#Lt-oUon)?Zk?Hqtkz&dGap$h(*kF4Xzlu+e_dDixL0 ziz1>Z?zuWIN9C_-acJ_^f3@d>HAHS;#m8$@yiFKo&{sP2RjmYSQo8XdtxA7YD>wRj zA?`hs37ASpGC9lq-a23EY1a0a6|Hxo8H6N1I|u_hg|vLGzo5c_=oqL?h~`pL*^18j7TlE4a}Q(Yx(zqj9^zD$ua+&J z@2Z!tX_~LHjw#`cW`rwk{n5I&VW8c1=)*W0%UP3{_)9%@vctM_HcAu~7m!JXb9svD zS+r?|GP(mU)L%qNiT13$nq>R8!`T0t&JNcSa1mL7APdRySqCC z3+_<3O9&p^f=eJkfFKF(?(XguAXsny8T=Z`za9rqhwQPe2izrAFyz4n~X znse>^iz30zf<5gQPMRufykQP#7NY|p+$%T7xpie=jU&4l?iZrx;XnalBnAoLNUUPx zOv}Dz7aGtN3xbse&P9r9;Z0M|$lNEcwi6mjoErZb?i;pt2{m$htCtGlNf;T}d!^EmC+5}Lmt$|o2-I8V>l z#&pjFI+&B>nD$bOSVULT#5sT;-e^oht2ubtpYC6+uP)?dGtdzP9(mS5k1(0;S2T6E zVb2pk;am@lM}py8H<>uH)T@pucML2voFab-9r=TRG8uyc`%A8jIt9^19>Z|YljDKC zTPZ|Of6v1m?GGXa)Y^4CAV*5Nbv3;nOUM3HsUUsnpeo8lQLMTW(cM7tq5uuaM31u2 zW~2v}k(+mdtFL&BrF5Xz$PuK9J9xR8$NP4J1L!@OHf$*kZ*;3HOk$JGG>`{eybf>9 zOUKrh=8bR|5&}4i>h9==@^Zvs^|`&6Q0X}^f-1x)o49c8j#+5Rdh6F8=b)?LDxbgs z@#e3lp{p1xTL$1}yIu!+@A@f2IqJCZLJ;kZ8ar&Ok4PvNe!nKfkEM;5o2FQTtsf;~9o)Mp&*N=Nf(z;rmXhv`hx~9L3HTafyXc zxmhrHRN1v_w2RZk;IVJ8R~t~&s&7|D>{T_2MH(8`Sj7W&Cbsk<6lGk@WInbPOn%th zO^xbH8|;xRItjG{tQI<|iWWOL)(zG*)HYTBQj!I(h! zPTO9i)w@*3&q{@>zg@Ov*9nh#C!7y(%qjBpKto1JI|!-Nu~rW8TgATWkthL5aErcQ zcPynKN3l28nYFuT*|zu)S>0G$urTs-XRprg>yVhM$p9$d*RKhxH*a2X9K-67TuL7(=LsfKfV%kGF9ck%YChkpZb&q|U{+o{`6%ee1U+P5O2$axAt zg!3W4Ex%`gixMW=1^mLkvL=W7Q!(Ov(x)vhN;i4W+Nb%Ww#;jR&x1M7_{YFd883C zhApx(QKu8LfFq{NAVCV4R5qx~=A+X(^MI)4L{Ya*$%>#IUhJIjiwLl5<(67nQX-m3 zr4{ZF=*e#R@wo-AHqWW>x>4>s*Cf9P_{9z+(N`pauJu)}js~EQ+{Qk8K!*Oz`zX>p zR6;0=n}baXd)(T_N5tjU-ak3$YtvZnX4!A_GwA24Ol+2J| z%4eensZ6QHn!DJb3FCba zhc5~a<%edY6+iJ3MKUxXX4YD#lH3vt?(yZ#MExoCnqv00oA;XOokG%2U7mbFWsxU9Qm`PGQo?oi3aNtx?`&#(+>_P7AS*LKaTf=ekvx{DASsMnM(&Ws14=2G?@?1-s<^fLWJufz>%X5g# z^xs?0;A*cUy6D_LgeWohHGioW2GSF3UNatsxikBS;q!zs$1tZba8t5&6`Mq!&w?JXjmIMRh|~ADTW#2!flw5(f#CG6edO@ugM=71rjt8sc+)q+jFa zPNzts_*mYq3VhdR+8dD2beu4Z-cT{K`a?iabsq?+`tm2fNQ03;;IK-2XlD1-+ zyz2dh-KD*h(TbyJw4#2;*V+D^KI~Z6k915`9!4s#1l=L9pv7N)AoanoumXSCs~p{I z|5)G^9wRI7_h(Ue3p9*yiNs9a+-=Y;*BVV{HHHy_()pAYq4GwR10 z7gC@3PD*AgCk~P7eRNQkXpmiTYN)LZ*jW8eYOeF`J8HaMtH+D7Wjo_fwQb=r@$w{J zbx`8xC1|?e3kA&HXPlsoWwx|2>9o0YLLa!i9$V`pL7+_jOjloJ zq)92WqPv5dLs43yNK_T!QKRS-u$O${i!{GNH?05sW(YG8b2B>V6Pn{lyt)!H z%NzPCv&d)=h(Y=#@&pQ0JJ`ncdw#Nu_1Bu=j7j}Z}~ zv3emLm>4)9^{v7LmT8j|7r5O6P`F2?vzbNXH>{L zLS;bNAa5kDYRFYY%WEI3-7DEjt=zRFXwVY$Red8XZI5-mzvXecN-;DTTWt@W6rtp# z;zT%6h@sF>PLzN6@#=CcG)VAtX6)&CM(S=?ExW&n+6Ts$;{%BG5@qX<&`gm7imdAV z4mjd|Fjw6qfsk=8-SoEE8kM%Ywyr*Mv6$RctEI>QA_3vz=9rTr4g2Gb4IXn;x@sNj z>eOc&%)RI~h}bYO#gwoV<0~hVb*Ms$C(D zjVI$p(wh!Wzst-eIge?d?uo=m43tb3s`FGK8tm;egu4rv)bknn%|{kETYSX8-`>Gr zl&tqmrhqk?n6>e|8g0&_^ySP$GylF$np5*(i5L5gD7y!Nk?=|G%;y8 zNsi9P52A%HV8+>!0BELb72RLa$Y$>Yv)z=m(uSRs@{2-^Z+{5w*HKMn<+#Vbg}XS+ z998>_AgJ?so}i!kqvQlV1RFRLlcp1Oz!=;|vH?JRt9fNNnbUVIkv5W8hQ-yWsdTeS zsnV0&X}-z`p)RG{$(J`?_1wk6YC&t0P=2{BnIzfp=3jS5K-1)gwNd>r79;%U;X|1u zc-SA_&%saWchBnUb=}{;j_WTEP{l`Pcx(iy6TBCm08FiCJ%*XMP6BtU7 z#P;UW9O)5I8ekXj<6QRYV`|juo|cAo`Ft$%qjoLOz}k4SDe^YU(9BOk~d1@ z3HK4@&iKnv7XRSzyRokcXj73WVjR)tFNM#kaCVterV2%10U`uDvagH4(kR5_$ z(S^E1?C^!Vov}a>d+Zveyd)V#yUMxzNk0A{ave~oIU{jC79@#W%eS%_x+V`}JYdW$ ziDnPEmdg3$@E(z@mIaD@ilVE$SRTn-$KAR$2aAH|Ra~=4(MOL!v0GF0L0bq!d#Ooc z3U5SvxGBodWt^Q=hICoRiU4hDB&INdXXu%N_)>Tn^=b!M!?h46RLu4GLIJ#%B?Kv_ zS9IzDbG*Z_U)MO#VNU`R>34WP>xST*ou{jkq^-)!^eM%4ldn&*T2dZXJ0w>09=s6Y z9j(SR3PLbideJO(N;Zn!udTrwd-5e=1Y8LiCV7qsFonD5w6KK8*1@QQsOC4+!8?;d<+jxDJa8(q(W(<2=l9XxzZ79Hs8 z2Y`5b5-78Bg@Av7fIrM$3TgNh-W;3b5a-by2Akv0J8sUAY?(CxLh%NbcYMQ)kmcK) z^a5?d-GohnanvpClssyzo})Wl!ieJF*EliUKt(%ju?~G~48cIMQHHR$de|5(wsdcN zAzGS!^_B$~Y>BZsP!RB0usQTR&sW&6Im{SrhxL|UFJ}6(fc8gA++P|9C5Q`+r2T*2 zkwT7082QLLgW4~mu$M;KT^l|$CXW)lB6lcN7QJO*ojt4WVdy80^H_4MdEs_inO@ox z>^|9Q)rG~p_1#OG2AB4Gj5CkB#md-oqYOe~ZbDw)qwUL3dE|UA_x1fTv}YNFRo5q_ z3wfqMKHgy$o(O~PACq}`(0sgwC)+*#^85qsc|^&p9*!g)j!`2HE=$=ZjFF9%3Qhg5p*cW2`)mUc@8GqJNM8#XGgInc z?>BKo$0mQ}^tAk%gWW4>4(wf*em=LP zU1!;4O;LYc2UZn6(wPEn>N6wL;r$q-G0n|UDowV%AYoj7#V<|n!t%I`)7E4+AwoG=J-UVW=lE{IG;DpIYZZ}d3dFM@GFV_P~#8U0kUjBM&~m!R#U zfrJO|MRF2eQd4QU6OP~4*Db+tm08;KsT6UBxvBMffC^==Jv|lHwf4=K%X`}_^)o_K=*vFon`M%oIskL2?S*LdKAaIpg zz#i(gXXTLhPhlKhKn)%WQ?T2D-7EA|{6pP&YhzU>$psKDS=@qMoe62N+I$0w)WD3mfTOp?p~ZOo!@KVhG61$nQBm6 zvEeIB+#`*&v!|`ZoZ5uKjdb@utgrX5P^csuy#ErpsmfQAd0if}q}F$KT(LNYGvyk3 z92H`6zt#kikckN7!*e&)t;SuurMVD`|Atcm9^YD|noqXD6yHia)lCNVokn+rJXWKB zHRe2Bz1Uc9cfhO895ny|2Xqp=*TB8g{=zx0)KZp7r8ykc06Lvte^wzraIX?^G5kPs z%{Zz;W7hoyi}gm`;;; zI223)+l;4swuenRYYd*$LC`$Rb^Ta^SNcUo;@qzO55+)MQ( zNCBrzo0L2oP$K<)6cwp8G2dzP$^KfTp4W@3+~#2U>?Il?zc10U(B=U0Ox}1!iq)c_ zpk=iqC!Uzzz$SWU@DGe`h@+H=ZJ^uI6iPvJPy}2n10>N@@+XE*N$iR~sXif}8DDqQ zBMUFziYIR3;)PbHoap67ZfdiWEruXzZpl#x8=2tB=D^|XzN0q!sFih2BXyG7A=%L< zkSd+%u|ogd4#6gx>+SmYh($iC80k6#a)`jWSlwg}?n%m+f!QEDS>aG(1_)H_FM<8U zA?G)whqBXH)y_K;oVVa26s#Xi4v9P!eT>N!rxvxdML6nv7ORzjiigJ z&y;=rl#1NF#?e%!kQx5{t~ko3~r*Y_O8eT5CmqWk)k=1g8S5kSkZR zgMqPz(bF_e+4QrZ!VYTTby+q0w=kTo?#$T8Vqa+GJT^m0^(3g8|TxFT4{+$brPb>dnxGZv9TS}(yYjclXSARyLu4a3B8 zy$ys2G?UoOinPfg;_WMvpM>x8Zm(~bSo13E6~o1=yw4+1fp5Rr-|SWx^bmZ>U>m;( zC>nhNjE`t3VEryvJQ}UYibia@Pmbjpt2dcDW0r&eqytFpG~%U-;-3e8;aEOjEnYF3 z&q|(bYsFG!{_qUSTMS654c@x`3pmWA}# z9AQ}$dXaHvsJ(H)EyhyI3%uO@3*pkOt(iJOU(5PaSr6B53TsV$L)E%>kdKG=nP@nu z6OcDbL<$THQIpcBm%3@>B_tR6--boYswh%r?1q9a4-Y^i-b}jh`9w_*oE%MKH;e_wYm) zdu&Kl<9(J+8sX*X^`9nk$F@Vw*F>q?l3$g0R2*asx?k$4;@2uM`q8VXK}s)|UcC#2 zsfM=e>9GCr{;~_&oGD}lorRjspr_PCOJP1iDZA%pYYU_E*GresE`NgGs?)Gye#6C8HzHmUWTP%O=CzSH_bG~ zjp&@k7PX5?f*~p><@j9Y*w1n`NHIC~YLodzR=LiekTllT*i%~Hb3r*H=;x^l@@py+ zs2i*-H7!?|JJ)=qE&Wb{IjCGSM zdzLJhM!n)Rs}ijiO1)CSWfaZjhTgOiElMMH)NQw2#f9X*F<%ua3s7Q2bNLbt|6?DD za0Xvj;hfe87n2F(e!_9*fp)SV_jvNBV9r60L|9i3q@&Y?Ooy5TEje=q$(&zKkCz>? z59Qx9^^X*O;_5v4B!T1R_r=9EVNFUcm(EH7MJ$JyPIz}qWgFXaA1735B&f{DK1@^@ zr&n%GCizavlmR=mUIEpZa^JisE-NXAcxJ;-qRB5>QrV!2s=z1PH}U;f>9D$^i*#eD z>37{PR)|(DfVoWlj#$%PWN}DGx%+m(YlSa!6Vsy&^!*wg^7qEWR^zr+8zG;q^7jOi zn{mHO3?_4E^LWY1qOul;T^i5#wu4O@6S>KDgtCBlHZR z4R|>uih~L^El+B`AR~1LcnO%AfpdwD@f;FpaD$c;x@OOYx6qC%`px&Vbr;d3=~|Q% zFw6&%IfZ2#isx#`rSU~D3`k>WqdYgUh(}&ULzcB~_H?KlTYViF1u?V{Lq2J2x0u2_ z4Eu2{=Zp%0^jjEh$~o&q09;nR-CJU(BZ|s+DpDrD{tqTl4nE~$F0h^g$x~7YbsxMS z<8YrqPoNc-Ce{dYk6{NPQu9l(jVebOUN>G8zin73+H0ibfP6QNul^L8r2EU~aw=Lc zc#}zFuJzT?D!oB3cuY{Vi(&&W_`t;~y*aN?f~QMw-k;Mt`+J6_;Vv0WLG2lm2roTr zMSJS_iCY$)Xm5B6bGRyBakJUi*b0px);z5fdlvsZMEno>3nfWJg3Zu-DQHoTt~g2f`q{V(>R6D&C1>zb^RocL>##{ z3KZgGhRg%4Hwp~^dZ89aavq}_>n${IIVvBV9Tq?|d@WRBK7!?}8Q%0_ekk6Vb(S{k zd1-J&GbtB%=vSETkrfxDZtTpbwWVY3T0lFyxo=HRLlz|P(WI+t4x!vjB-U8gg-3Gxt>Y5W!QX9826h$j{e`JmSjOg?=EG8XS!qQ`kjvQCmG;fuf$I(+$_sV&Oi z>2iKJn`Nzh86CM$?0u)M93~r;zYuvPG4gp@!QB+zLjIH_j@ZP*-3IG*=n~37(kp{> zGVLT6O^n6vlYVq?P0pvhoNYC2CA`>I@R$WRnG1xsY1zPc=jH(MLBU&K5hIrCH{<>J z!6&!C%M-2QRL3nJ_zlA1iR6Q1hw|5#^t!Cy-x!9a)VZmDUV2B1wXoKoI+qZYK|6bG zP1U`)2826x%|WtqyI z+`8Mx}tc_9ZMM?8( zHd=u%!6dlp9R4q?*P+4^(Xi3-bP3Qr+ewaLz{x06xfx>5;(E`d@nXU4=JOnxk{kiz z1lIQM(|c!M#|D-gNuQ^4y#>F-GWw9{pQw%N7=_vGkY}$jW;o`T|IYBq#-SI2YI%f~ ztJC63v>S{Bk(hWF^PMonAE5r;0S=!QTljZ=us?8{F$jEb0$;LJ$w@I(EWD#7l=1PrzzYG|58_EtMHxTnCO0o=b9-&Nm&&zsU>`lw!9_H(Zl*^2G+#dmX8otmweOI zYivPc@fmJExqbZc^R9v{b^tyk;t3FnSIFhV0>m<=uuBU%E?i#a{6h4wm8r?z$br{k zlRJ1i8fpg|?1b*D4f2la1(Ee(et^@Gk>*f4Ts_+;GIo*0-An%2yo|r6L@|c48cmnb zg8iVj-U7v^rv7tEByMa4Gk%+OrrK7nsD43t4@n4t1KjVD9dlq6yot8X@TE|_nd7O99x(LM+wTo#iC%gcwPl01Zm#n7ou^q=by zek||y-|6`F*`vaxe^AcFWj4n=sT?`R179(;om3k`(|I{*4&TsZqHv?e6*DSY2niLP zPUpf=hAQ4X9$@0tF4%W2o~>wz&I-41eC|hll3@cR1oU9%oYhlb%8V*&3-uS1(7(PR z<|+6DaRb$%@LH@Iy#N_p5F|WL!L*MOo*_WiLrv>KtkWz`) z^9|&w5((&cfr!xdHB?`2#|YN;^-^CR#(+t?#)U3!_kDrlt?DxOD*dCA;daU3#?Ga| zU{ezWvY{U_;;3$NhA#9NJqwpjo8Xw+JEWAm;zBF|DiX$~u_;YC(5NpiqQKc!04XUpI zi~TlAXNcl+4R|cW?o>XGXMGj^7*4^0zMV162`MhVuZ&8p=_^R)NcTNbGvx9nw?D@x zBKnwBao-qnC8dSWEN>YE#^6C}Qo_uO!ZxLA0d?* z=L>ZFQ4=KHp-zjBzY!IWTkd_#f}!lN(F;yKdQNHIY4VH~El>TWfYi=v`G9?-SXzOd zu2VWSY7CE25&|MGejg4m45Q-q02Ng3>L9T4lS|@z0aM_64~e9fSJPfC0??Qw0~)31 zmF>yWysw=hsRn1Wg9$=1YIQpAK6ub=U)6u}6773Y-MGwrp+5OsN?aDK2}RdAaiBKG z+?MQPmySmK5-a~FWI=*L@3}~}CeFEd=yKX0$IEzsAKMW^rYgFwq8IR>b_@l1`hLau zlh$|Cw*s14g3>IR0`1NJboMFrfJSnZhUZ7flk@q?)tQtw^dC_TxE08XZJ1Obg8 zTzI6ikqC?zU`cy317p)@wa9xYG%3PN7&6EO6t;3vYK;ynb#)e6?d{y6E9jiu0^XwS zH(;dv;p?MC9%Y7c$Errx@)cEy`lxWt58u=|qEuJzgg||;8#kJ3ZZa^?KOLh>(UaQ9 z&)c{^K&**2nsgo`;t+s9SiLnGM>KC}{z7|N&^NX>Ta*xr z^| z;*)5{M8y~(Rz;XjO)!#Jy5@AD9{M1pRSKvEC#X6$FhMog397;SBu}8om-K(upv(P$ zcs~w?Kdd}Sr9UeVyxo_yy0(Yq^E&ydQ0vlKIqZAL*>swwq^kbunXLFXo|&JuU%-`7 zK6yhu1*J|NFg5Xg2NUzSFZ5GI{=kd4ForFJR~|vqpykpwiC7VD)U}2nmp~e+Hv%EO z1S~g{Po<5=CY3&>7LIY)Bm*pLNUeJ>xFk)E?j5Cr2ya+P(%k4J(PJf6d^rJ*GnsbP z2Qw}knv>vj6Q<$Zj?J_-Uf7n9^1=>T$<0;MjOW=nxsuw; zN-$vRNLSkDQ0-gMpO{w`pcl2U*R4!)gpXH9TYYob@b6%vI+`eOU&P9W<&4w@;Qy;P7;Tu=hDqBG>KOu`&6c!(j2)Aj`s0{{RvE4WN&C2NKEnpeL~;p7tOZ=?LKq~FMh~ZjlIG`)1E#4vZ^J8oD(SExSB+! zhEUxzz3%^6j#T1lA>`x;kB$C*b-vdjZq8x341en|PKpz27(oQnh^9UvZ79K5#i%+I zx-p6&M2l}U88#)NLE$Izo^7OI`j)vcCcGl>HCubq-aDd(jUz^9>BV@@ea@nmdGX;j zAbdYqD^-D&D1*y)fLoXFvSv*e6us)^$>3K9DrlwODQAf?^c_`G$y%Uw@ZKl?%qJ&Dd1eb}@AE;al?`~oU_5-l&| z2&en8<)Mn;SBpA4P!Y7;4=f@F5;uMoF01Htlv1 z*s}mb6Bm<3YB{W;f@y9|its@_%#LOStlT*Fl$K+6Hz)Ye%MH=l+I9?Xl{c`YFC65n zS=1I*#4g@49l9TglCz`sMJc=&l3l`V3=__AmfU5Uel`KSB|9cEAZzsP-K(ynuqM7w z=@G^#1vtCC*Alq_tq5wHvI@k`jvo~>D&;%^?qvjAU&Wn<3HH4>tkCb?Lgk8FYoIUI z?$^${>Np=t?FfdiFz;#Kz6_?4`iev;*p2Kz9J`Rve79w9)YgRONpEJpDsw6S&W@=@ zA3xl>fk*a=+;9~sqs=4v;re_iEmIX$guu>cNT8_6tA7tH|2&iKEocGPM6f%Lc1e#2 z3g(568;eb~MFcl!p1{A^AhwB0k<%&+QTEj9^L9_Qk!IJCI`*l=iasQ_?v%Wl-oH9$ zSVQJ-)a-Y;labY;-E9kL;7|LO>t4x|zf;!MBR|yST9W8_Gg5cp={n&(JUBR(HBVbt zoF8#b=k?hNGb3m0ONL8OY~zn?`mG7`c)38@{xQ;tg;{vr>(j$`PS-7}9vqwpwSCBE zXS(&SM?XTp-5NVoZjI&d-Cpgn^XoRv7`g5)EKH;E2tZ)omBoZqvkj)?EeNY8#&{gn;dZi@5iL_~s@*O#mH(1J!# zp#JYeorLb^9!ydFs=WkKr@neSj?komS z)Hv}852dCdc;ltyj`zjv#_31?J~w`ZzM{l$BP2(@Bt-i~KIJ~w-X7;o z%ePBQd!G@{HZ6lz6&F6lmV5hKwGo~fNS&8rbp~+|+M|FIW!K9`!y2Ad9T9_kJm!sF zU5T=J7sPm-%h^`gYg#CMx6;=soVWE>YW!OA7Gt}&ep+5?gM%3sWv^5Q4tISPX0IyQ zc=+V6uM8@ds#a}3bYV2+F2nco5k!qWxzNPj2D?ePdW}@N&6c*Hy0DN=%l~1+F2t$Wq*C4_j){^~JZjtvn*WyR#$M>d2vH zFHgArH3wUw41dla%IRzHHWAE2cAK1oJY7j!9LM;k>1+KCscy|lPaiyRHd(@Q9KU8p z<~R;!j{J`g4mM9x!7m87n)vB$H=zdWo0G6Oj=@cJm-~@zH=lAGL!@3l8N2~A^?uFF z-<(AB=i3g-JkWVI%J_A%cKd7{EpzA;KxO;}S-Uf~j+ME%JRpzP+BTm2lIvCH7<+o- z(MfpTP#+R=dgJj)THXPV*VZ<-{F2+%;F!xFZ)F^vFsFNWjt#k9;mGr^ZJYAkhUNWy z^9P^2Pe$HQ&tUZojyU(4g=y+uSY4W3H8Y({=Qb#yAx;LVO+zO`P{)XOmL47;z)bY7kL zL)E98ReW2MTk}_`S{V+z4mMtcMME|J|NJJ@F51}_*t!}2TdURxHhuY&(n8tUDezBl zV-&K9{N{Ai1;CE_&ZnDYH&KHHi1*b?bYy7veh=snBlQ^t>&g^78#!o5xrwV zv?SF=z)CxFoi?HU5yF|AvpKfWW1?P@f)%M=L&0C}t@+7jG!P=2h)#*34L(S8ovxUl zrzXkU@r9u+kZ2x)Lcf5BH)P+m$$3{RZ-wsK%Jt=vXH4Ky-r7J65t}wc9+x+N7jVn9iDJ5g@>jelJIy9y8hgZe1^l~pI`a(>njJpzT)}wD{?;fq?YZ-KYnQA z_2&<@mj3+VO(snQ}>?Gjr4jXvr-0eB&++&cc zJV#=uus&*}#Ik}O~GHB^6ba%@q0jtfZ$0S=L(BbPB4@K4mNp5a>`MR@> zP?a15DX-iUQz_qE7Bi`UTt_phklb=JsqowrGpXoY z7IUe1fTKAe&Kyu~4j4BFoR|a9EdVSQ02K>>qXi(&0#I%N7`FhNSOCy10W6jP6-$7l zB_PfcP;Lnrw*;J60?@4hELH#&D}bXFAkGR(0-RU@(5(S1)&Lc2fTJ}a&Kgi| z4H&luoLB?UZ2&Ab02Ld6qYWU=22gGT7`FkO*Z|Oh02UxX1qg5i0^)#xav)$F2si-( z&}{)Mwg44dfTJxS&K6K^3mCTroY(@;?Eoxx02Mocqa7g54p43f7`FqQ*a6V(0W9{y zRi%gqXRj(xjmKW;+H|~;Pd`@R*?R9vck-b|A#PJhIr$iM$U%42ZBUwL$Sq`xlm3Wj zi#&a+zWq2g!8QHYhtX3G5%uW~>!+#DOSbUcc(=NDImLB{IKR6O{@0Hn#C4HDU$EolE=c{_VKMDehl($xT+hY>Cv8%jRx z4TV?>+W-6ZA9eB>h3EeV_im(0&(-CTqr+ED6HapsF2iwK@>Ix~O6dYQJa44jpyR)z zP;XGF^csGQ+ftxH&QeMj$>Dh`<%Svmoq>A8T%~sn^noH3@&~1Ki5#973s=Czq&7c) zVY1`MZBlZF1#9cXtiRVnPOjWmTWI>#&ZW;wsP7ZSw`2o_j_wW1YeRikDdP>=ds}O{ z-%PjK2npYr>dQ7^R zL&^nFa)Y!WeV{^kr>i21qD*~~HTP=ZKDvwP`>WkF+DSOt;P&jU!LF3^tK6{`^Y>+X z(47VN&qsD0MZpr+^IPr62*nbfcCDTm`2ZEB8)bC``UFsMFu33J&3}b=eMgrq!Qtt| zq&x(tB-SkeF{;#3#S$qpM{h-@8=QN~kUF%LcBx3gzIIqTw-*rEwtH=#xI7}b9ONSe zP01=^Ksn&Q?%#~#+I&Jc#MCT$l*Q9?%Hn5m!WO`!*+E;+HL3p8N1&uxG}G8Fg=|ox zgmsW0SNE-&hG^X?ydzp@xOQ?_u*dV2!k$u!EJ-^`PN%hU=;y6_rAm?vO1RYJ@RD+` zAR5q8WxMf=F|fPV-a*>HH_13X^`_MfchRr<;cyTy`i`PYd$XU@me3%SJpYyXJlqki z>0ZjnG#Ds0x+U+d6oM-w?9moZ`zYN>2N06g1YXNgM);j9a}p;6gNzaonP&)H5U1AgKi+G$z!@np2C5eJOE^l{NFI!r; zlDxbh1A0@+1wpb4R-!I~@1DWC#A;Vtu@WdkE#}!TXR6axRaV5*cKg#y9!);m(wIe` zrk~=zD3{X56lqr2s70}eZQXTub3hKgJXIZ?o!-=nOSL0?&LmzvF2<+Vqa#YiQQ=aL zn$z6+LWNRsBr*VK2+X&dpGB_}al#Lj9fKUu$s7RGhiARKXmoeyO!loZ`NVucp0tXp ztYKG{J(^E&IsH-2GOt6sueR0M>*G-{Qguhe@qpOjD;>R zt9UH`cl8;&kZ7G*mH0meRi8Jg`an4~e_C^YR-gS}$H^mO?q8O0RE(!@mv_jcUCd*A(j8p8)PbmUhB(7l$7?u3~SEL)`P!p&HU@zCtpdjZ$(TEz_dTt&wu-6iLh zApZxVGOKS8KxQk|;~;g6dyFt+5Osw&Ym_IRcXH8^5!pBusRsXax~XL&QrOx3`|aG3 z4AHi07_6&a*lIMZYf`~F_(2QYn4ub<2FgwPS`;=UfKt}DwQvqyX(u~r|MO?Yndk%g zys-xJ(u9KOrX`Dt+q>J{I#TTH;q-*3KJQP+$fgb1%{GatNc1ZPKc!-8%jn2NjFF*n z;PDu1guPqCC8ANS!kv#uaf9vu(f(PLi=IWQ2!GRwO#59nZRNTreTa*4K7|p?oZ+Qa zwgk$VNuXCI4m+Eq0^^+n<&a$j523U)X!)@Xo*oSJQ=S&4cGds}*T8b;w-Qx3`I~NO za?Mey*S4lM{3;AO^a_YkQtLHk#*%v~)~qkys$OO0vJWkkvb5z=!5yQorFMr3(0_?Y zm$C#xzb`L`R(MS)s38Oe@*3h-gU=SfzGVmN@~+sI4c#g!S-iT9$DhMl(fyz&MRcOy ziH33!DxF3$MfueLH^uw;dC~;Yvaandw2q?!gjvDikaH?wUN47cF`lyy?FeF<4wGmF z_lctANIlVsplmlHTWAd-NlxXUp;rv%JdH6v`R)ZbWf@V>re-b)2QiAf?jmOB-(e;!_0=>JF4fzLn{tcy z$8~{AJr#o|(Bg=)K7A!f6hnWH4EGCiqg6@yn?NH&Fz8&0_@IaX(Wg~gZ010&3FK*h z>{@#J%085KS}ybjeQOspwr|vPpPs8^DTi3hd)|JX4#BGHna!fKXQ665zYrN28|zK} z`XqIV9ALonRunQZzNVA(S(6D?M&sMD*hr$>_>2oHBsI~u-PtTA$;G=`SKBF=r-b$Au{UMlWR0(|>W|zh)wL;zzYoBi%oZQL)Xfgz%tZwi) z@4rL^TV`Ug^Z?T0o%J)5dFk{B7TS5|pYG?u?+c?vt4<8jzzodScj{#GxSHdt+IpdiPwyRQ#0Q-PK+XHt4HAs(&*z|_?dR>@ z!v_aO{PXz}P{!^eVC}ndqKz} zk_aJvF#UgT#oyC=KP1^8{6_jyoBW6~_l`X5UpT)fWPZpY12x=(68$4R^CK210#f+D zut)}Oh8A2POcXW@{Z|Mw&9_tdh#828`PjC8=h7MAY-_!oDWT%g4HPl)EM*BT6=R;aIXsPx+?Jo(||CFZl(LR*8 z-uC{>VSV3*k26F5+K2l#?8E-YKKx$;Sy11|zc%GP>T$-fhbTf&hK)zX{YU<=hXpg{ zp7@_=k8=n;q`5!;o%S%J&_i0*)c;0%oG#=c?Uv$qn)Bm$9}j`pDU<(Nyx%hl`~uz| z7t%EU1U}9$@Q?=fW=?9{>%R~F_f7XW!2B=TeJ?4X`;7*4G&8ohHa8ZxcQP=xG1Yev zv3D}GG`4Ycu+{%-x%|Vuz^WYm*D~Ml#p4jj5BDMh6!rd52YM6``5`Op1t{|Tzl=Ng ztjBRaAF?pG{=xc>XS=ksq5p~VIAq#G4wK+NIsZ(h{jglq;N$-j?{P4ihdc?1|HS(l z<>2o;HxH37GX5R;dkBhO$osC^A@dL9Us95X9Iz+&JAMB$c;7eK<7f@PIQN|tT<#y7 zpQZXccEdwjg~0#T86PhmeMnnT{Rizo&m5k@{BOhN<7G?_LCv7q?W11*Yf;m~@=V7J z|7*wiT?YOObKgo^27h9H7ll6rfmPx`cmK;7=XVYAL(rJfAE5tDk^G3g+GAp>JNsYf zd%tU4AF{Vh{)PR}*m^Gne1wPPV3+=vVf1&2=0kjm*&p~n<%S@w+ylYpBb2Uz?Jnbg zpKt!IWqgP_GJk~nOWF8{lDFdXZ}mVZ!wsl@&;Og~~cGwz=MOG$p$p8aCn zAJ*{Jj~Ra}(H?T>g{-u={^gqPcahdF&iw%(W%CE;zjgr}a9k*+|K2XY+wp%;$C|{z&*AoKLjCO#I^og?fq_TeF$puc>wy`_WBSa z!cE8WZSz9s z@fHfS78MMP0`!*zvOly1+`qavED%C~t~Eh7ZD8sna|Hlokoe<<0=5U541iX$0xg}a zK@+K;N?KxBePu@_VsT>!eQQS}(12lM>}m_NccfQUfdYewqEa+>a)k$b0{InWCHVR9 zkfjP@Rfsiu*}nq=yZ@*CivMNCD2AW6F?7O F{~trdUgrP+ literal 0 HcmV?d00001 diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 14a9f337..cc2e20f2 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -24,7 +24,7 @@ "AnlagenKwk": {"KwkMastrNummer"}, "AnlagenStromSpeicher": {"MastrNummer"}, "Bilanzierungsgebiete": {"Id"}, - "EinheitenAenderungNetzbetreiberzuordnungen": {"EinheitMastrNummer"}, # TODO: Is not a primary key on its own! + "EinheitenAenderungNetzbetreiberzuordnungen": {"EinheitMastrNummer"}, # TODO: May not be a primary key on its own. Check this. "EinheitenBiomasse": {"EinheitMastrNummer"}, "EinheitenGasErzeuger": {"EinheitMastrNummer"}, "EinheitenGasSpeicher": {"EinheitMastrNummer"}, diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index cf3523c0..8d76739c 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -17,6 +17,8 @@ # The BNetzA "choice" to sometimes write MaStR and sometimes Mastr is certainly confusing, # but are we the ones who should change that? def normalize_column_name(original_mastr_column_name: str) -> str: + # BNethA sometimes has MaStR, other times MaStR. We normalize that. + # Also, in case the column names in the XSD contain äöüß, we replace them. This is probably a BNetzA oversight, but has happened at least once. return original_mastr_column_name.replace("MaStR", "Mastr").replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss").strip() @@ -107,8 +109,9 @@ def from_xml_schema(cls, schema: xmlschema.XMLSchema) -> "MastrTableDescription" def read_mastr_table_descriptions_from_xsd( - zipped_docs_file_path: Union[Path, str], data: Optional[list[str]] = None + zipped_docs_file_path: Union[Path, str], data: list[str] ) -> set[MastrTableDescription]: + print(data) include_tables = set(data_to_include_tables(data, mapping="write_xml")) mastr_table_descriptions = set() diff --git a/open_mastr/xml_download/colums_to_replace.py b/open_mastr/xml_download/colums_to_replace.py index e7608e8a..fde8d5e7 100644 --- a/open_mastr/xml_download/colums_to_replace.py +++ b/open_mastr/xml_download/colums_to_replace.py @@ -37,98 +37,3 @@ 12: "Gasspeichereinheit", }, } - -# columns to replace lists all columns where the entries have -# to be replaced according to the tables katalogwerte and katalogeinträge -# from the bulk download of the MaStR - -columns_replace_list = [ - # anlageneegsolar - "AnlageBetriebsstatus", - # anlageneegspeicher - # anlagenstromspeicher - # einheitensolar - "Land", - "Bundesland", - "EinheitSystemstatus", - "EinheitBetriebsstatus", - "Energietraeger", - "Einspeisungsart", - "GemeinsamerWechselrichterMitSpeicher", - "Lage", - "Leistungsbegrenzung", - "Hauptausrichtung", - "HauptausrichtungNeigungswinkel", - "Nutzungsbereich", - "Nebenausrichtung", - "NebenausrichtungNeigungswinkel", - "ArtDerFlaecheIds", - # einheitenstromspeicher - "AcDcKoppelung", - "Batterietechnologie", - "Technologie", - "Pumpspeichertechnologie", - "Einsatzort", - # geloeschteunddeaktivierteEinheiten - # geloeschteunddeaktivierteMarktAkteure - "MarktakteurStatus", - # lokationen - # marktakteure - "Personenart", - "Rechtsform", - "HauptwirtdschaftszweigAbteilung", - "HauptwirtdschaftszweigGruppe", - "HauptwirtdschaftszweigAbschnitt", - "Registergericht", - "LandAnZustelladresse", - # netzanschlusspunkte - "Gasqualitaet", - "Spannungsebene", - # anlageneegbiomasse - # anlageneeggeosolarthermiegrubenklaerschlammdruckentspannung - # anlageneegwasser - # anlageneegwind - # anlagengasspeicher - # anlagenkwk - # bilanzierungsgebiete - # einheitenaenderungnetzbetreiberzuordnungen - "ArtDerAenderung", - # einheitenbiomasse - "Hauptbrennstoff", - "Biomasseart", - # einheitengaserzeuger - # einheitengasspeicher - "Speicherart", - # einheitengasverbraucher - # einheitengenehmigung - "Art", - # einheitengeosolarthermiegrubenklaerschlammdruckentspannung - # einheitenkernkraft - # einheitenstromverbraucher - "ArtAbschaltbareLast", - # einheitentypen - # einheitenverbrennung - "WeitererHauptbrennstoff", - "WeitereBrennstoffe", - "ArtDerStilllegung", - # einheitenwasser - "ArtDesZuflusses", - "ArtDerWasserkraftanlage", - # marktrollen - # netze - "Sparte", - # einheitenwind - "Lage", - "Hersteller", - "Seelage", - "ClusterNordsee", - "ClusterOstsee", - # various tables - "NetzbetreiberpruefungStatus", - "WindAnLandOderAufSee", - "TechnologieFlugwindenergieanlage", - "Flughoehe", - "Flugradius", - "ArtDerSolaranlage", - "SpeicherAmGleichenOrt", -] diff --git a/open_mastr/xml_download/parse.py b/open_mastr/xml_download/parse.py new file mode 100644 index 00000000..6573d1ee --- /dev/null +++ b/open_mastr/xml_download/parse.py @@ -0,0 +1,144 @@ +import xmlschema +from xmlschema.validators import XsdComplexType, XsdSimpleType, XsdElement +from typing import Dict, List, Optional + +# ---------------------------------------------- +# 1. Mapping XSD builtin types → SQLAlchemy types +# ---------------------------------------------- +XSD_TO_SQLA = { + "string": "String", + "integer": "Integer", + "int": "Integer", + "short": "Integer", + "long": "BigInteger", + "decimal": "Float", + "float": "Float", + "double": "Float", + "boolean": "Boolean", + "date": "Date", + "dateTime": "DateTime", + "time": "Time", +} + + +def map_xsd_type(xsd_type: XsdSimpleType) -> str: + """Map XSD builtin type to SQLAlchemy column type.""" + if xsd_type.is_simple() and xsd_type.primitive_type: + name = xsd_type.primitive_type.local_name + return XSD_TO_SQLA.get(name, "String") # default fallback + return "String" + + +# ---------------------------------------------- +# 2. Main model generation +# ---------------------------------------------- +def generate_sqlalchemy_models(xsd_file: str) -> str: + schema = xmlschema.XMLSchema(xsd_file) + output = [] + + output.append("from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime, BigInteger, ForeignKey") + output.append("from sqlalchemy.orm import declarative_base, relationship") + output.append("\nBase = declarative_base()\n") + + processed_types = {} + + # Iterate over all global elements (entry points) + for element_name, element in schema.elements.items(): + output.append(generate_class_from_element(element, processed_types)) + + return "\n".join(output) + + +# ---------------------------------------------- +# 3. Generate a class for an element +# ---------------------------------------------- +def generate_class_from_element( + element: XsdElement, + processed_types: Dict[str, str] +) -> str: + """Generate a SQLAlchemy class for the top-level element.""" + cls_name = to_class_name(element.name) + + # If it is a complexType element → + if isinstance(element.type, XsdComplexType): + return generate_class_from_complex_type(cls_name, element.type, processed_types) + + return f"# Skipped simple element {element.name}\n" + + +# ---------------------------------------------- +# 4. Generate class for a complex type +# ---------------------------------------------- +def generate_class_from_complex_type( + cls_name: str, + complex_type: XsdComplexType, + processed_types: Dict[str, str] +) -> str: + + if cls_name in processed_types: + return "" # already generated + + processed_types[cls_name] = cls_name + + lines = [] + lines.append(f"class {cls_name}(Base):") + lines.append(f" __tablename__ = '{camel_to_snake(cls_name)}'") + lines.append(" id = Column(Integer, primary_key=True)\n") + + # Iterate through child elements (sequence, choice, etc.) + for child in complex_type.content.iter_elements(): + + child_name = child.name + col_name = camel_to_snake(child_name) + + if isinstance(child.type, XsdComplexType): + # Nested complex type → child table with relationship + child_class_name = to_class_name(child_name) + lines.append( + f" {col_name}_id = Column(Integer, ForeignKey('{camel_to_snake(child_class_name)}.id'))" + ) + lines.append( + f" {col_name} = relationship('{child_class_name}')" + ) + # Generate nested class too + nested = generate_class_from_complex_type(child_class_name, child.type, processed_types) + lines.append("\n" + nested) + + else: + # Simple child element + sqlalchemy_type = map_xsd_type(child.type) + + nullable = "True" if child.min_occurs == 0 else "False" + lines.append( + f" {col_name} = Column({sqlalchemy_type}, nullable={nullable})" + ) + + lines.append("") + return "\n".join(lines) + + +# ---------------------------------------------- +# 5. Helpers +# ---------------------------------------------- +def to_class_name(name: str) -> str: + return "".join(part.capitalize() for part in name.split("_")) + + +def camel_to_snake(name: str) -> str: + out = "" + for i, ch in enumerate(name): + if ch.isupper() and i > 0: + out += "_" + out += ch.lower() + return out + + +# ---------------------------------------------- +# 6. Run example +# ---------------------------------------------- +if __name__ == "__main__": + import sys + xsd_path = sys.argv[1] + models = generate_sqlalchemy_models(xsd_path) + print(models) + diff --git a/open_mastr/xml_download/schema.py b/open_mastr/xml_download/schema.py new file mode 100644 index 00000000..2b223d7d --- /dev/null +++ b/open_mastr/xml_download/schema.py @@ -0,0 +1,49 @@ +from pathlib import Path +import glob +from xml.etree import ElementTree + +import xmlschema + + +def check_if_files_valid_under_schema(xsd_file, xml_files): + schema = xmlschema.XMLSchema(xsd_file) + for xml_file in xml_files: + xml_resource = xmlschema.XMLResource(xml_file, lazy=True) + errors = schema.iter_errors(xml_resource) + error_count = 0 + for error in errors: + error_count += 1 + breakpoint() + print(" -", error) + if error_count == 0: + print(f"{xml_file}\tValid.") + + +def check_if_files_valid_under_schema_et(xsd_file, xml_files): + schema = xmlschema.XMLSchema(xsd_file) + for xml_file in xml_files: + xt = ElementTree.parse(xml_file) + errors = schema.iter_errors(xt) + error_count = 0 + for error in errors: + error_count += 1 + breakpoint() + print(" -", error) + if error_count == 0: + print(f"{xml_file}\tValid.") + + + +def main(): + xsd_root = Path("/home/gorgor/.open-MaStR/data/xml_download/Dokumentation MaStR Gesamtdatenexport/xsd") + xml_root = Path("/home/gorgor/.open-MaStR/data/xml_download/Gesamtdatenexport_20251129") + xsd_file = xsd_root / "EinheitenWind.xsd" + xml_files = [xml_root / basename for basename in glob.glob("EinheitenWind*.xml", root_dir=xml_root)] + xml_files =["/home/gorgor/.open-MaStR/data/xml_download/EinheitenWind_formatted.xml"] + print(xsd_file) + print(xml_files) + check_if_files_valid_under_schema_et(xsd_file=xsd_file, xml_files=xml_files) + + +if __name__ == "__main__": + main() diff --git a/open_mastr/xml_download/utils_cleansing_bulk.py b/open_mastr/xml_download/utils_cleansing_bulk.py index bd4ee7c6..6f4592db 100644 --- a/open_mastr/xml_download/utils_cleansing_bulk.py +++ b/open_mastr/xml_download/utils_cleansing_bulk.py @@ -15,6 +15,7 @@ def cleanse_bulk_data( zipped_xml_file_path: str, ) -> pd.DataFrame: df = replace_system_catalog_ids(df, system_catalog) + catalog_columns = set(catalog_columns) - system_catalog.keys() df = replace_mastr_katalogeintraege( zipped_xml_file_path=zipped_xml_file_path, df=df, catalog_columns=catalog_columns, ) @@ -32,9 +33,9 @@ def replace_system_catalog_ids(df: pd.DataFrame, system_catalog: dict[int, str]) def replace_mastr_katalogeintraege( - zipped_xml_file_path: str, df: pd.DataFrame, catalog_columns: Collection[str], + zipped_xml_file_path: str, ) -> pd.DataFrame: """Replaces the IDs from the mastr database by its mapped string values from the table Katalogwerte""" diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index e280df9d..710e10e2 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -560,9 +560,7 @@ def download_documentation(save_path: str) -> None: Parameters ----------- save_path: str - Full file path where the downloaded MaStR zip file will be saved. - xml_folder_path: str - Path where the downloaded MaStR zip file will be saved. + Full file path where the downloaded MaStR documentation zip file will be saved. """ log.info("Starting the MaStR documentation download from marktstammdatenregister.de.") url = "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" @@ -574,19 +572,6 @@ def download_documentation(save_path: str) -> None: with open(save_path, "wb") as zfile: zfile.write(r.content) - #chunk_size = 1024 * 1024 - #content_length = r.headers.get("Content-Length") - #expected_steps = math.ceil(content_length / chunk_size) - #with ( - # open(save_path, "wb") as zfile, - # tqdm(desc=save_path, total=expected_steps) as bar, - #): - # for chunk in r.iter_content(chunk_size=chunk_size): - # if chunk: - # zfile.write(chunk) - # zfile.flush() - # bar.update() - time_b = time.perf_counter() log.info( f"MaStR documentation download is finished. It took {round(time_b - time_a)} seconds." diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index b6685d11..3b2769b8 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -12,7 +12,7 @@ import numpy as np import pandas as pd import sqlalchemy -from sqlalchemy import Column, Engine, delete, select, create_engine, inspect +from sqlalchemy import Column, Engine, Table, delete, select, create_engine, inspect from sqlalchemy.orm import DeclarativeBase from sqlalchemy.sql import text from sqlalchemy.sql.sqltypes import Date, DateTime @@ -35,14 +35,15 @@ def write_mastr_xml_to_database( data: list, bulk_cleansing: bool, bulk_download_date: str, - mastr_table_to_db_model: Mapping[str, Type[DeclarativeBase_T]], + mastr_table_to_db_table: Mapping[str, Table], + alter_database_tables: bool, ) -> None: """Write the Mastr in xml format into a database defined by the engine parameter.""" log.info("Starting bulk download...") include_tables = data_to_include_tables(data, mapping="write_xml") threads_data = [] - lower_mastr_table_to_db_model = {table_name.lower(): db_model for table_name, db_model in mastr_table_to_db_model.items()} + lower_mastr_table_to_db_table = {table_name.lower(): db_table for table_name, db_table in mastr_table_to_db_table.items()} with ZipFile(zipped_xml_file_path, "r") as f: files_list = correct_ordering_of_filelist(f.namelist()) @@ -53,20 +54,21 @@ def write_mastr_xml_to_database( if not is_table_relevant(xml_table_name, include_tables): continue - db_model = lower_mastr_table_to_db_model.get(xml_table_name) - if not db_model: + db_table = lower_mastr_table_to_db_table.get(xml_table_name) + if db_table is None: log.warning(f"Skipping MaStR file {file_name!r} because no database table was found for {xml_table_name=}") continue threads_data.append( ( file_name, - db_model, + db_table, str(engine.url), engine.url.password, zipped_xml_file_path, bulk_download_date, bulk_cleansing, + alter_database_tables, ) ) @@ -112,12 +114,13 @@ def get_number_of_processes(): def process_xml_file( file_name: str, - db_model: Type[DeclarativeBase_T], + db_table: Table, connection_url: str, password: str, zipped_xml_file_path: str, bulk_download_date: str, bulk_cleansing: bool, + alter_database_tables: bool, ) -> None: """Process a single xml file and write it to the database.""" try: @@ -133,70 +136,84 @@ def process_xml_file( with ZipFile(zipped_xml_file_path, "r") as f: log.info(f"Processing file '{file_name}'...") if is_first_file(file_name): - delete_all_existing_rows(db_model=db_model, engine=engine) + delete_all_existing_rows(db_table=db_table, engine=engine) df = read_xml_file(f, file_name) df = process_table_before_insertion( df=df, - db_model=db_model, + db_table=db_table, zipped_xml_file_path=zipped_xml_file_path, bulk_download_date=bulk_download_date, bulk_cleansing=bulk_cleansing, ) df = check_for_column_mismatch_and_try_to_solve_it( df=df, - db_model=db_model, + db_table=db_table, engine=engine, + alter_database_tables=alter_database_tables, ) if engine.dialect.name == "sqlite": add_table_to_sqlite_database( df=df, - db_model=db_model, + db_table=db_table, engine=engine, ) else: add_table_to_non_sqlite_database( df=df, - db_model=db_model, + db_table=db_table, engine=engine, ) except Exception as e: log.error(f"Error processing file '{file_name}': '{e}'") -def delete_all_existing_rows(db_model: Type[DeclarativeBase_T], engine: Engine) -> None: +def delete_all_existing_rows(db_table: Table, engine: Engine) -> None: with engine.begin() as con: - con.execute(delete(db_model)) + con.execute(delete(db_table)) -def check_for_column_mismatch_and_try_to_solve_it(df: pd.DataFrame, db_model: Type[DeclarativeBase_T], engine: Engine) -> pd.DataFrame: +def check_for_column_mismatch_and_try_to_solve_it( + df: pd.DataFrame, + db_table: Table, + engine: Engine, + alter_database_tables: bool, +) -> pd.DataFrame: df_column_names = set(df.columns) - db_column_names = {column.name for column in db_model.__table__.columns} + db_column_names = {column.name for column in db_table.columns} if additional_db_column_names := db_column_names - df_column_names: # Many columns are optional and it's perfectly normal to have and XML file / a dataframe that doesn't have # a column that is present in the database. So this is only worth a debug message. log.debug( - f"Database table {db_model.__table__.name} has some columns that weren't found in the XML file." + f"Database table {db_table.name} has some columns that weren't found in the XML file." f" Proceeding and trying to insert anyway. Additional DB columns:" f" {', '.join(additional_db_column_names)}" ) if additional_df_column_names := df_column_names - db_column_names: - # TODO: Check here if the user specified not to issue DDL statements before trying to insert. - log.warning( - f"XML file has some columns that aren't present in the database table {db_model.__table__.name}." - f" Trying to add the columns to the table. Additional XML columns:" - f" {', '.join(additional_df_column_names)}" - ) - # TODO: What if we can add some columns and not others? We should then return the columns for which we succeeded. - try: - add_missing_columns_to_table( - engine=engine, - db_model=db_model, - missing_columns=additional_df_column_names, + if alter_database_tables: + # TODO: Check here if the user specified not to issue DDL statements before trying to insert. + log.warning( + f"XML file has some columns that aren't present in the database table {db_table.name}." + f" Trying to add the columns to the table. Additional XML columns:" + f" {', '.join(additional_df_column_names)}" + ) + # TODO: What if we can add some columns and not others? We should then return the columns for which we succeeded. + try: + add_missing_columns_to_table( + engine=engine, + db_table=db_table, + missing_columns=additional_df_column_names, + ) + except Exception: + log.exception("Could not add at least some columns to the database. Ignoring the columns from the XML file instead.") + df = df.drop(columns=additional_df_column_names) + else: + log.warning( + f"XML file has some columns that aren't present in the database table {db_table.name}." + f" Ignoring those columns since you asked not to alter tables. Additional XML columns:" + f" {', '.join(additional_df_column_names)}" ) - except Exception: - log.exception("Could not add at least some columns to the database. Ignoring the columns from the XML file instead.") df = df.drop(columns=additional_df_column_names) return df @@ -314,18 +331,18 @@ def is_first_file(file_name: str) -> bool: def cast_date_columns_to_datetime( - db_model: Type[DeclarativeBase_T], df: pd.DataFrame + db_table: Table, df: pd.DataFrame ) -> pd.DataFrame: - for column in db_model.__table__.columns: - if is_date_column_and_in_df(column, df): + for column in db_table.columns: + if is_date_column(column) and column.name in df.columns: # Convert column to datetime64, invalid string -> NaT df[column.name] = pd.to_datetime(df[column.name], errors="coerce") return df -def cast_date_columns_to_string(db_model: Type[DeclarativeBase_T], df: pd.DataFrame) -> pd.DataFrame: - for column in db_model.__table__.columns: - if not is_date_column_and_in_df(column, df): +def cast_date_columns_to_string(db_table: Table, df: pd.DataFrame) -> pd.DataFrame: + for column in db_table.columns: + if not is_date_column(column) or column.name not in df.columns: continue df[column.name] = pd.to_datetime(df[column.name], errors="coerce") @@ -341,8 +358,8 @@ def cast_date_columns_to_string(db_model: Type[DeclarativeBase_T], df: pd.DataFr return df -def is_date_column_and_in_df(column: Column, df: pd.DataFrame) -> bool: - return type(column.type) in [Date, DateTime] and column.name in df.columns +def is_date_column(column: Column) -> bool: + return type(column.type) in [Date, DateTime] def correct_ordering_of_filelist(files_list: list) -> list: @@ -382,25 +399,25 @@ def read_xml_file(f: ZipFile, file_name: str) -> pd.DataFrame: def add_table_to_non_sqlite_database( df: pd.DataFrame, - db_model: Type[DeclarativeBase_T], + db_table: Table, engine: sqlalchemy.engine.Engine, ) -> None: # get a dictionary for the data types dtypes_for_writing_sql = { column.name: column.type - for column in db_model.__table__columns + for column in db_table.columns if column.name in df.columns } # Convert date and datetime columns into the datatype datetime. - df = cast_date_columns_to_datetime(db_model, df) + df = cast_date_columns_to_datetime(db_table, df) for _ in range(10000): try: with engine.connect() as con: with con.begin(): df.to_sql( - db_model.__table__.name, + db_table.name, con=con, index=False, if_exists="append", @@ -414,7 +431,7 @@ def add_table_to_non_sqlite_database( except sqlalchemy.exc.IntegrityError: # error resulting from Unique constraint failed df = write_single_entries_until_not_unique_comes_up( - df, db_model, engine + df, db_table, engine ) @@ -451,7 +468,7 @@ def add_zero_as_first_character_for_too_short_string(df: pd.DataFrame) -> pd.Dat def write_single_entries_until_not_unique_comes_up( - df: pd.DataFrame, db_model: Type[DeclarativeBase_T], engine: sqlalchemy.engine.Engine + df: pd.DataFrame, db_table: Table, engine: sqlalchemy.engine.Engine ) -> pd.DataFrame: """ Remove from dataframe these rows, which are already existing in the database table @@ -467,7 +484,7 @@ def write_single_entries_until_not_unique_comes_up( """ # TODO: Check if we need to support composite primary keys for the MaStR changes table. # Because this here assumes single-column primary keys. - primary_key = next(c for c in db_model.__table__.columns if c.primary_key) + primary_key = next(c for c in db_table.columns if c.primary_key) with engine.begin() as con: key_list = ( @@ -491,7 +508,7 @@ def write_single_entries_until_not_unique_comes_up( def add_missing_columns_to_table( engine: sqlalchemy.engine.Engine, - db_model: Type[DeclarativeBase_T], + db_table: Table, missing_columns: Collection[str], ) -> None: """ @@ -508,7 +525,7 @@ def add_missing_columns_to_table( ------- """ - table_name = db_model.__table__.name + table_name = db_table.name for column_name in missing_columns: alter_query = 'ALTER TABLE %s ADD "%s" VARCHAR NULL;' % ( table_name, @@ -584,7 +601,7 @@ def find_nearest_brackets(xml_string: str, position: int) -> tuple[int, int]: def process_table_before_insertion( df: pd.DataFrame, - db_model: Type[DeclarativeBase_T], + db_table: Table, zipped_xml_file_path: str, bulk_download_date: str, bulk_cleansing: bool, @@ -600,7 +617,7 @@ def process_table_before_insertion( if bulk_cleansing: catalog_columns = { column.name - for column in db_model.__table__.columns + for column in db_table.columns # TODO: Is it okay to rely so heavily on the SQLALchemy model to decide how to process the table? if isinstance(column.type, (CatalogInteger, CatalogString)) } @@ -616,7 +633,7 @@ def normalize_column_names_in_df(df: pd.DataFrame) -> pd.DataFrame: def add_table_to_sqlite_database( df: pd.DataFrame, - db_model: Type[DeclarativeBase_T], + db_table: Table, engine: sqlalchemy.engine.Engine, ) -> None: column_list = df.columns.tolist() @@ -625,10 +642,10 @@ def add_table_to_sqlite_database( df = df.where(pd.notnull(df), None) # Convert date columns to strings. Dates are not supported directly by SQLite. - df = cast_date_columns_to_string(db_model, df) + df = cast_date_columns_to_string(db_table, df) # Create SQL statement for bulk insert. ON CONFLICT DO NOTHING prevents duplicates. - insert_stmt = f"INSERT INTO {db_model.__table__.name} ({','.join(column_list)}) VALUES ({','.join(['?' for _ in column_list])}) ON CONFLICT DO NOTHING" + insert_stmt = f"INSERT INTO {db_table.name} ({','.join(column_list)}) VALUES ({','.join(['?' for _ in column_list])}) ON CONFLICT DO NOTHING" for _ in range(10000): try: @@ -640,11 +657,11 @@ def add_table_to_sqlite_database( except sqlalchemy.exc.IntegrityError: # error resulting from Unique constraint failed df = write_single_entries_until_not_unique_comes_up( - df, db_model, engine + df, db_table, engine ) except Exception: # If any unexpected error occurs, we'll switch back to the non-SQLite method. - add_table_to_non_sqlite_database(df, db_model, engine) + add_table_to_non_sqlite_database(df, db_table, engine) break diff --git a/open_mastr/xml_download/xsd_to_table.py b/open_mastr/xml_download/xsd_to_table.py new file mode 100644 index 00000000..49fb63f7 --- /dev/null +++ b/open_mastr/xml_download/xsd_to_table.py @@ -0,0 +1,61 @@ + + +class SqlalchemyMastrModelMaker: + MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE = { + MastrColumnType.STRING: String, + MastrColumnType.INTEGER: Integer, + MastrColumnType.FLOAT: Float, + MastrColumnType.DATE: Date, + MastrColumnType.DATETIME: DateTime(timezone=True), + MastrColumnType.BOOLEAN: Boolean, + MastrColumnType.CATALOG_VALUE: Integer, + } + + @classmethod + def make_sqlalchemy_mastr_model( + cls, + table: MastrTableDescription, + primary_key_columns: set[str], + base: DeclarativeBase, + mixins: tuple[type, ...] = tuple(), + ): + namespace = { + "__tablename__": table.table_name, + "__annotations__": {}, + } + + for col in table.columns: + sa_type = cls.MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE[col.type] + kwargs = {"primary_key": True} if col.name in primary_key_columns else {"nullable": True} + namespace[col.name] = mapped_column(sa_type, **kwargs) + + bases = (base,) + mixins + return type(table.instance_name, bases, namespace) + + +class Base(DeclarativeBase): + pass + + +class ParentAllTables(object): + DatenQuelle = Column(String) + DatumDownload = Column(Date) + + +def generate_sqlalchemy_models(xsd_file: str) -> str: + schema = xmlschema.XMLSchema(xsd_file) + table = MastrTableDescription.from_xml_schema(schema) + + model = SqlalchemyMastrModelMaker.make_sqlalchemy_mastr_model( + table=table, + primary_key_columns={"EinheitMastrNummer"}, + base=Base, + mixins=(ParentAllTables,) + ) + + +if __name__ == "__main__": + import sys + xsd_path = sys.argv[1] + generate_sqlalchemy_models(xsd_path) + diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 5f8cfa81..f635b387 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -1,6 +1,7 @@ import pytest import os from os.path import expanduser +from pathlib import Path import itertools import random @@ -26,21 +27,10 @@ ) -# Check if db is empty -_db_exists = False -_db_folder_path = os.path.join( - expanduser("~"), ".open-MaStR", "data", "sqlite" -) # FIXME: use path in tmpdir when implemented -if os.path.isdir(_db_folder_path): - for entry in os.scandir(path=_db_folder_path): - _db_path = os.path.join(_db_folder_path, "open-mastr.db") - if os.path.getsize(_db_path) > 1000000: # empty db = 327.7kB < 1 MB - _db_exists = True - - @pytest.fixture -def db(): - return Mastr() +def mastr(tmp_path: Path): + output_dir = tmp_path / "output_dir" + return Mastr(output_dir=output_dir) def test_Mastr_validate_working_parameter(): @@ -119,8 +109,8 @@ def test_Mastr_validate_not_working_parameter(): ) -def test_validate_parameter_format_for_mastr_init(db): - engine_list_working = ["sqlite", db.engine] +def test_validate_parameter_format_for_mastr_init(mastr): + engine_list_working = ["sqlite", mastr.engine] engine_list_failing = ["HI", 12] for engine in engine_list_working: diff --git a/tests/test_mastr.py b/tests/test_mastr.py index ce7cd6fa..c2355f49 100644 --- a/tests/test_mastr.py +++ b/tests/test_mastr.py @@ -1,4 +1,5 @@ import shutil +from pathlib import Path from open_mastr.mastr import Mastr import os @@ -14,97 +15,58 @@ _xml_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "xml_download") if os.path.isdir(_xml_folder_path): for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name: + if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): _xml_file_exists = True @pytest.fixture(scope="module") -def zipped_xml_file_path(): +def zipped_xml_file_path() -> str: zipped_xml_file_path = None for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name: + if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): zipped_xml_file_path = os.path.join(_xml_folder_path, entry.name) return zipped_xml_file_path @pytest.fixture -def db_path(): - return os.path.join( - os.path.expanduser("~"), ".open-MaStR", "data", "sqlite", "mastr-test.db" - ) +def mastr(tmp_path: Path) -> Mastr: + output_dir = tmp_path / "output_dir" + return Mastr(output_dir=output_dir) -@pytest.fixture -def db(db_path): - return Mastr(engine=sqlalchemy.create_engine(f"sqlite:///{db_path}")) - - -@pytest.fixture -def db_translated(db_path): - engine = sqlalchemy.create_engine(f"sqlite:///{db_path}") - db_api = Mastr(engine=engine) - - db_api.download(date="existing", data=["wind", "hydro", "biomass", "combustion"]) - db_api.translate() - - return db_api - - -def test_Mastr_init(db): +def test_mastr_init(mastr: Mastr) -> None: # test if folder structure exists - assert os.path.exists(db.home_directory) - assert os.path.exists(db._sqlite_folder_path) + assert os.path.exists(mastr.home_directory) + assert os.path.exists(mastr._sqlite_folder_path) # test if engine and connection were created - assert type(db.engine) == sqlalchemy.engine.Engine - - -@pytest.mark.skipif( - not _xml_file_exists, reason="The zipped xml file could not be found." -) -def test_Mastr_translate(db_translated, db_path): - # test if database was renamed correctly - transl_path = db_path[:-3] + "-translated.db" - assert os.path.exists(transl_path) - - # test if columns got translated - inspector = sqlalchemy.inspect(db_translated.engine) - table_names = inspector.get_table_names() - - for table in table_names: - for column in inspector.get_columns(table): - column = column["name"] - assert column in TRANSLATIONS.values() or column not in TRANSLATIONS.keys() - - # test if new translated version replaces previous one - db_translated.engine.dispose() - engine = sqlalchemy.create_engine(f"sqlite:///{db_path}") - db_empty = Mastr(engine=engine) - db_empty.translate() - - for table in table_names: - assert pd.read_sql(sql=table, con=db_empty.engine).shape[0] == 0 + assert type(mastr.engine) == sqlalchemy.engine.Engine @pytest.mark.dependency(name="bulk_downloaded") -def test_mastr_download(db): - db.download(data="wind") - df_wind = pd.read_sql("wind_extended", con=db.engine) +def test_mastr_download(mastr: Mastr) -> None: + mastr.download(data="wind") + df_wind = pd.read_sql("EinheitenWind", con=mastr.engine) + assert len(df_wind) > 10000 + + mastr.download(data="biomass") + df_biomass = pd.read_sql("EinheitenBiomasse", con=mastr.engine) assert len(df_wind) > 10000 + assert len(df_biomass) > 10000 - db.download(data="biomass") - df_biomass = pd.read_sql("biomass_extended", con=db.engine) + mastr.download(data=["wind", "nuclear"]) + df_biomass = pd.read_sql("EinheitenBiomasse", con=mastr.engine) assert len(df_wind) > 10000 assert len(df_biomass) > 10000 @pytest.mark.dependency(depends=["bulk_downloaded"]) -def test_mastr_download_keep_old_files(db, zipped_xml_file_path): +def test_mastr_download_keep_old_files(mastr: Mastr, zipped_xml_file_path: str) -> None: file_today = zipped_xml_file_path yesterday = (date.today() - timedelta(days=1)).strftime("%Y%m%d") file_old = re.sub(r"\d{8}", yesterday, os.path.basename(file_today)) file_old = os.path.join(os.path.dirname(zipped_xml_file_path), file_old) shutil.copy(file_today, file_old) - db.download(data="gsgk", keep_old_files=True) + mastr.download(data="gsgk", keep_old_files=True) assert os.path.exists(file_old) diff --git a/tests/xml_download/test_utils_cleansing_bulk.py b/tests/xml_download/test_utils_cleansing_bulk.py index 9a29ad76..f3c01abc 100644 --- a/tests/xml_download/test_utils_cleansing_bulk.py +++ b/tests/xml_download/test_utils_cleansing_bulk.py @@ -7,6 +7,7 @@ import pytest from open_mastr.xml_download.utils_cleansing_bulk import ( + cleanse_bulk_data, create_katalogwerte_from_bulk_download, replace_mastr_katalogeintraege, ) @@ -16,7 +17,7 @@ _xml_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "xml_download") if os.path.isdir(_xml_folder_path): for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name: + if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): _xml_file_exists = True _sqlite_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "sqlite") @@ -42,12 +43,40 @@ def con(): def zipped_xml_file_path(): zipped_xml_file_path = None for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name: + if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): zipped_xml_file_path = os.path.join(_xml_folder_path, entry.name) return zipped_xml_file_path + +@pytest.mark.skipif( + not _xml_file_exists, reason="The zipped xml file could not be found." +) +def test_cleanse_bulk_data(zipped_xml_file_path): + df_raw = pd.DataFrame( + { + "ID": [0, 1, 2], + "Bundesland": [335, 335, 336], + "Einheittyp": [1, 8, 5], + } + ) + df_replaced = pd.DataFrame( + { + "ID": [0, 1, 2], + "Bundesland": ["Bayern", "Bayern", "Bremen"], + "Einheittyp": ["Solareinheit", "Stromspeichereinheit", "Geothermie"], + } + ) + + pd.testing.assert_frame_equal( + cleanse_bulk_data( + df=df_raw, zipped_xml_file_path=zipped_xml_file_path, catalog_columns={"Bundesland", "Einheittyp"}, + ), + df_replaced, + ) + + @pytest.mark.skipif( not _xml_file_exists, reason="The zipped xml file could not be found." ) @@ -57,7 +86,10 @@ def test_replace_mastr_katalogeintraege(zipped_xml_file_path): {"ID": [0, 1, 2], "Bundesland": ["Bayern", "Bayern", "Bremen"]} ) pd.testing.assert_frame_equal( - df_replaced, replace_mastr_katalogeintraege(zipped_xml_file_path, df_raw) + replace_mastr_katalogeintraege( + zipped_xml_file_path=zipped_xml_file_path, df=df_raw, catalog_columns={"Bundesland", "Einheittyp"}, + ), + df_replaced, ) diff --git a/tests/xml_download/test_utils_download_bulk.py b/tests/xml_download/test_utils_download_bulk.py index 8f650933..4557dbe8 100644 --- a/tests/xml_download/test_utils_download_bulk.py +++ b/tests/xml_download/test_utils_download_bulk.py @@ -1,3 +1,4 @@ +from datetime import date import time from open_mastr.xml_download.utils_download_bulk import ( gen_url, @@ -8,7 +9,7 @@ def test_gen_url(): - when = time.strptime("2024-01-01", "%Y-%m-%d") + when = date(2024, 1, 1) url = gen_url(when) assert type(url) == str assert ( @@ -16,7 +17,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240101_23.2.zip" ) - when = time.strptime("2024-04-01", "%Y-%m-%d") + when = date(2024, 4, 1) url = gen_url(when) assert type(url) == str assert ( @@ -24,7 +25,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240401_23.2.zip" ) - when = time.strptime("2024-04-02", "%Y-%m-%d") + when = date(2024, 4, 2) url = gen_url(when) assert type(url) == str assert ( @@ -32,7 +33,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240402_24.1.zip" ) - when = time.strptime("2024-10-01", "%Y-%m-%d") + when = date(2024, 10, 1) url = gen_url(when) assert type(url) == str assert ( @@ -40,7 +41,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241001_24.1.zip" ) - when = time.strptime("2024-10-02", "%Y-%m-%d") + when = date(2024, 10, 2) url = gen_url(when) assert type(url) == str assert ( @@ -48,7 +49,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241002_24.2.zip" ) - when = time.strptime("2024-12-31", "%Y-%m-%d") + when = date(2024, 12, 31) url = gen_url(when) assert type(url) == str assert ( @@ -58,7 +59,7 @@ def test_gen_url(): # Tests for use_version parameter - when = time.strptime("2024-12-31", "%Y-%m-%d") + when = date(2024, 12, 31) url = gen_url(when, use_version="before") assert type(url) == str assert ( @@ -66,7 +67,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241231_24.1.zip" ) - when = time.strptime("2024-12-31", "%Y-%m-%d") + when = date(2024, 12, 31) url = gen_url(when, use_version="after") assert type(url) == str assert ( @@ -74,7 +75,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241231_25.1.zip" ) - when = time.strptime("2024-04-02", "%Y-%m-%d") + when = date(2024, 4, 2) url = gen_url(when, use_version="before") assert type(url) == str assert ( @@ -82,7 +83,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240402_23.2.zip" ) - when = time.strptime("2024-04-02", "%Y-%m-%d") + when = date(2024, 4, 2) url = gen_url(when, use_version="after") assert type(url) == str assert ( diff --git a/tests/xml_download/test_utils_write_to_database.py b/tests/xml_download/test_utils_write_to_database.py index bf54f16d..3b26ef42 100644 --- a/tests/xml_download/test_utils_write_to_database.py +++ b/tests/xml_download/test_utils_write_to_database.py @@ -8,7 +8,20 @@ import numpy as np import pandas as pd import pytest -from sqlalchemy import create_engine, inspect +from sqlalchemy import ( + Boolean, + Column, + create_engine, + Date, + DateTime, + Double, + inspect, + Integer, + MetaData, + String, + Table, +) + from sqlalchemy.sql import text from open_mastr.utils import orm @@ -17,7 +30,6 @@ add_missing_columns_to_table, add_zero_as_first_character_for_too_short_string, cast_date_columns_to_string, - change_column_names_to_orm_format, correct_ordering_of_filelist, create_database_table, extract_sql_table_name, @@ -37,7 +49,7 @@ _xml_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "xml_download") if os.path.isdir(_xml_folder_path): for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name: + if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): _xml_file_exists = True @@ -51,9 +63,11 @@ def capture_wrap(): @pytest.fixture(scope="module") def zipped_xml_file_path(): + # TODO: Remove this + return "/home/gorgor/.open-MaStR/data/Gesamtdatenexport_20251228.zip" zipped_xml_file_path = None for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name: + if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): zipped_xml_file_path = os.path.join(_xml_folder_path, entry.name) return zipped_xml_file_path @@ -97,16 +111,6 @@ def test_is_table_relevant(): assert is_table_relevant("netzanschlusspunkte", include_tables) is False -def test_create_database_table(engine_testdb): - orm.Base.metadata.create_all(engine_testdb) - xml_table_name = "einheitenkernkraft" - sql_table_name = "nuclear_extended" - - create_database_table(engine_testdb, xml_table_name) - - assert inspect(engine_testdb).has_table(sql_table_name) is True - - def test_is_first_file(): assert is_first_file("EinheitenKernkraft.xml") is True assert is_first_file("EinheitenKernkraft_1.xml") is True @@ -114,9 +118,16 @@ def test_is_first_file(): def test_cast_date_columns_to_string(): + table = Table( + "anlageneegwasser", + MetaData(), + Column("EegMastrNummer", String, primary_key=True), + Column("Registrierungsdatum", Date), + Column("DatumLetzteAktualisierung", DateTime), + ) initial_df = pd.DataFrame( { - "EegMastrNummer": [1, 2, 3], + "EegMastrNummer": ["1", "2", "3"], "Registrierungsdatum": [ datetime(2024, 3, 11).date(), datetime(1999, 2, 1).date(), @@ -131,7 +142,7 @@ def test_cast_date_columns_to_string(): ) expected_df = pd.DataFrame( { - "EegMastrNummer": [1, 2, 3], + "EegMastrNummer": ["1", "2", "3"], "Registrierungsdatum": ["2024-03-11", "1999-02-01", np.nan], "DatumLetzteAktualisierung": [ "2022-03-22 00:00:00.000000", @@ -142,32 +153,14 @@ def test_cast_date_columns_to_string(): ) pd.testing.assert_frame_equal( - expected_df, cast_date_columns_to_string("anlageneegwasser", initial_df) + expected_df, cast_date_columns_to_string(table, initial_df) ) def test_is_date_column(): - columns = RetrofitUnits.__table__.columns.items() - df = pd.DataFrame( - { - "Id": [1], - "DatumLetzteAktualisierung": [datetime(2022, 3, 22)], - "WiederinbetriebnahmeDatum": [datetime(2024, 3, 11).date()], - } - ) - - date_column = list(filter(lambda col: col[0] == "Id", columns))[0] - assert is_date_column(date_column, df) is False - - datetime_column = list( - filter(lambda col: col[0] == "DatumLetzteAktualisierung", columns) - )[0] - assert is_date_column(datetime_column, df) is True - - date_column = list( - filter(lambda col: col[0] == "WiederinbetriebnahmeDatum", columns) - )[0] - assert is_date_column(date_column, df) is True + assert is_date_column(Column("Id", Integer, primary_key=True)) is False + assert is_date_column(Column("DatumLetzteAktualisierung", DateTime)) is True + assert is_date_column(Column("WiederinbetriebnahmeDatum", Date)) is True def test_correct_ordering_of_filelist(): @@ -226,15 +219,6 @@ def test_read_xml_file(zipped_xml_file_path): assert df.shape[0] > 0 - # Since the file is from the latest download, its content can vary over time. To make sure that the table is - # correctly created, we check that all of its columns are associated are included in our mapping. - for column in df.columns: - if column in tablename_mapping[file_name.lower()]["replace_column_names"]: - column = tablename_mapping[file_name.lower()]["replace_column_names"][ - column - ] - assert column in ElectricityConsumer.__table__.columns.keys() - def test_add_zero_as_first_character_for_too_short_string(): # Prepare @@ -251,6 +235,8 @@ def test_add_zero_as_first_character_for_too_short_string(): pd.testing.assert_frame_equal(df_edited, df_correct) +# TODO: Do we want to keep this kind of renaming? +@pytest.mark.skip def test_change_column_names_to_orm_format(): initial_df = pd.DataFrame( { @@ -307,12 +293,17 @@ def test_process_table_before_insertion(zipped_xml_file_path): def test_add_missing_columns_to_table(engine_testdb): + table = Table( + "einheitengasverbraucher", + MetaData(), + Column("EinheitMastrNummer", String, primary_key=True), + Column("DatumLetzteAktualisierung", DateTime), + ) + # We must recreate the table to be sure that the new column is not present. + table.drop(engine_testdb, checkfirst=True) + table.create(engine_testdb) with engine_testdb.connect() as con: with con.begin(): - # We must recreate the table to be sure that the new colum is not present. - con.execute(text("DROP TABLE IF EXISTS gas_consumer")) - create_database_table(engine_testdb, "einheitengasverbraucher") - initial_data_in_db = pd.DataFrame( { "EinheitMastrNummer": ["id1"], @@ -320,11 +311,11 @@ def test_add_missing_columns_to_table(engine_testdb): } ) initial_data_in_db.to_sql( - "gas_consumer", con=con, if_exists="append", index=False + table.name, con=con, if_exists="append", index=False ) add_missing_columns_to_table( - engine_testdb, "einheitengasverbraucher", ["NewColumn"] + engine_testdb, table, ["NewColumn"] ) expected_df = pd.DataFrame( @@ -336,7 +327,7 @@ def test_add_missing_columns_to_table(engine_testdb): ) with engine_testdb.connect() as con: with con.begin(): - actual_df = pd.read_sql_table("gas_consumer", con=con) + actual_df = pd.read_sql_table(table.name, con=con) # The actual_df will contain more columns than the expected_df, so we can't use assert_frame_equal. assert expected_df.index.isin(actual_df.index).all() @@ -346,13 +337,28 @@ def test_add_missing_columns_to_table(engine_testdb): [add_table_to_sqlite_database, add_table_to_non_sqlite_database], ) def test_add_table_to_sqlite_database(engine_testdb, add_table_to_database_function): - with engine_testdb.connect() as con: - with con.begin(): - # We must recreate the table to be sure that no other data is present. - con.execute(text("DROP TABLE IF EXISTS gsgk_eeg")) - create_database_table( - engine_testdb, "anlageneeggeothermiegrubengasdruckentspannung" - ) + table = Table( + "anlageneeggeothermiegrubengasdruckentspannung", + MetaData(), + Column("EegMastrNummer", String, primary_key=True), + Column("InstallierteLeistung", Double), + Column("AnlageBetriebsstatus", String), + Column("Registrierungsdatum", Date), + Column("Meldedatum", DateTime), + Column("DatumLetzteAktualisierung", DateTime), + Column("EegInbetriebnahmedatum", DateTime), + Column("VerknuepfteEinheit", String), + Column("AnlagenschluesselEeg", String), + Column("AusschreibungZuschlag", Boolean), + Column("AnlagenkennzifferAnlagenregister", String), + Column("AnlagenkennzifferAnlagenregister_nv", String), + Column("Netzbetreiberzuordnungen", String), + Column("DatenQuelle", String), + Column("DatumDownload", DateTime), + ) + # We must recreate the table to be sure that no other data is present. + table.drop(engine_testdb, checkfirst=True) + table.create(engine_testdb) df = pd.DataFrame( { @@ -369,10 +375,10 @@ def test_add_table_to_sqlite_database(engine_testdb, add_table_to_database_funct ) expected_df = pd.DataFrame( { + "EegMastrNummer": ["id1", "id2"], "InstallierteLeistung": [1.0, 100.4], "AnlageBetriebsstatus": [None, None], "Registrierungsdatum": [datetime(2022, 2, 2), datetime(2024, 3, 20)], - "EegMastrNummer": ["id1", "id2"], "Meldedatum": [np.datetime64("NaT"), np.datetime64("NaT")], "DatumLetzteAktualisierung": [ datetime(2022, 12, 2, 10, 10, 10, 300), @@ -391,12 +397,12 @@ def test_add_table_to_sqlite_database(engine_testdb, add_table_to_database_funct ) add_table_to_database_function( - df, "anlageneeggeothermiegrubengasdruckentspannung", "gsgk_eeg", engine_testdb + df, table, engine_testdb ) with engine_testdb.connect() as con: with con.begin(): pd.testing.assert_frame_equal( - expected_df, pd.read_sql_table("gsgk_eeg", con=con) + expected_df, pd.read_sql_table(table.name, con=con) ) From 0aa833543e544f0cc7aa80a214f7c2660d2245da Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sun, 4 Jan 2026 19:59:23 +0100 Subject: [PATCH 07/34] Make a couple small adjustments --- open_mastr/mastr.py | 44 +++++++++++++------ open_mastr/utils/sqlalchemy_tables.py | 6 +-- open_mastr/utils/xsd_tables.py | 2 + .../xml_download/utils_write_to_database.py | 1 - 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 95ed9d1e..fa2001de 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -11,6 +11,7 @@ download_xml_Mastr, select_download_date, delete_xml_files_not_from_given_date, + list_available_downloads, ) from open_mastr.xml_download.utils_write_to_database import ( write_mastr_xml_to_database, @@ -41,10 +42,7 @@ setup_logger, ) import open_mastr.utils.orm as orm -from open_mastr.utils.sqlalchemy_tables import ( - make_sqlalchemy_model_from_mastr_table_description, - MastrBase -) +from open_mastr.utils.sqlalchemy_tables import make_sqlalchemy_model_from_mastr_table_description # constants from open_mastr.utils.constants import TECHNOLOGIES, ADDITIONAL_TABLES @@ -118,11 +116,7 @@ def generate_data_model( self, data: Optional[list[str]] = None, catalog_value_as_str: bool = True, - # TODO: A _repeated_ call to this function with the same base and overlapping data will fail with something like: - # sqlalchemy.exc.InvalidRequestError: Table 'AnlagenEegBiomasse' is already defined for this MetaData instance. - # Specify 'extend_existing=True' to redefine options and columns on an existing Table object. - # Is this expected behavior for us? Should we re-raise with a more understandable message? - base: Type[DeclarativeBase_T] = MastrBase, + base: Optional[Type[DeclarativeBase_T]] = None, ) -> dict[str, Type[DeclarativeBase_T]]: data = transform_data_parameter(data) @@ -236,12 +230,9 @@ def download( method = "bulk" if not mastr_table_to_db_table: - class TemporaryBase(DeclarativeBase): - pass mastr_table_to_db_model = self.generate_data_model( data=data, catalog_value_as_str=bulk_cleansing, - base=TemporaryBase, ) mastr_table_to_db_table = { mastr_table: db_model.__table__ @@ -328,13 +319,40 @@ def to_csv( pass # TODO: Think about this. + def browse_available_downloads(self): + """ + Browse available MaStR downloads from the website without starting the download. + This method fetches and displays all available download dates from the MaStR website, + allowing users to see what historical data is available before deciding to download. + Returns + ------- + list of dict + List of available downloads with date, version, and type information. + Examples + -------- + >>> from open_mastr import Mastr + >>> db = Mastr() + >>> available_downloads = db.browse_available_downloads() + >>> # User can then choose a date and download with: + >>> # db.download(select_date_interactively=True) + """ + log.info("Browsing available MaStR downloads...") + return list_available_downloads() + def _download_docs_and_generate_data_model( zipped_docs_file_path: Path, data: list[str], catalog_value_as_str: bool = True, - base: Type[DeclarativeBase_T] = MastrBase, + base: Optional[Type[DeclarativeBase_T]] = None, ): + if base is None: + + class MastrBase(DeclarativeBase): + pass + + base = MastrBase + mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( zipped_docs_file_path=zipped_docs_file_path, data=data ) diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index cc2e20f2..4f671deb 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -55,10 +55,6 @@ } -class MastrBase(DeclarativeBase): - pass - - class ParentAllTables(object): DatenQuelle: Mapped[str] = mapped_column(String) DatumDownload: Mapped[datetime.date] = mapped_column(Date) @@ -70,7 +66,7 @@ class ParentAllTables(object): def make_sqlalchemy_model_from_mastr_table_description( table_description: MastrTableDescription, catalog_value_as_str: bool, - base: Type[DeclarativeBase_T] = MastrBase, + base: Type[DeclarativeBase_T], mixins: tuple[type, ...] = (ParentAllTables,), ) -> Type[DeclarativeBase_T]: return _make_sqlalchemy_model( diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index 8d76739c..57bdf0b0 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -16,6 +16,8 @@ # TODO: Should we really mess with the original column names? # The BNetzA "choice" to sometimes write MaStR and sometimes Mastr is certainly confusing, # but are we the ones who should change that? +# Also TODO: Should we also apply the more opinionated normalization/renaming that is currently stored in orm.py? +# E.g. "VerknuepfteEinheitenMaStRNummern" -> "VerknuepfteEinheiten", "NetzanschlusspunkteMaStRNummern" -> "Netzanschlusspunkte", etc. def normalize_column_name(original_mastr_column_name: str) -> str: # BNethA sometimes has MaStR, other times MaStR. We normalize that. # Also, in case the column names in the XSD contain äöüß, we replace them. This is probably a BNetzA oversight, but has happened at least once. diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index 3b2769b8..d45945cd 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -192,7 +192,6 @@ def check_for_column_mismatch_and_try_to_solve_it( if additional_df_column_names := df_column_names - db_column_names: if alter_database_tables: - # TODO: Check here if the user specified not to issue DDL statements before trying to insert. log.warning( f"XML file has some columns that aren't present in the database table {db_table.name}." f" Trying to add the columns to the table. Additional XML columns:" From fc5bfec3bd683c42fb510c1c0ee915b234636ecf Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sat, 24 Jan 2026 16:36:52 +0100 Subject: [PATCH 08/34] Implement date-based docs download --- open_mastr/mastr.py | 72 ++++---- open_mastr/utils/helpers.py | 15 +- .../xml_download/utils_download_bulk.py | 157 ++++++++++++------ tests/test_interactive_download.py | 86 ++++++---- .../xml_download/test_utils_download_bulk.py | 20 +-- 5 files changed, 219 insertions(+), 131 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index fa2001de..929f2a0c 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -12,6 +12,7 @@ select_download_date, delete_xml_files_not_from_given_date, list_available_downloads, + get_date_from_docs_url, ) from open_mastr.xml_download.utils_write_to_database import ( write_mastr_xml_to_database, @@ -115,20 +116,29 @@ def __init__( def generate_data_model( self, data: Optional[list[str]] = None, + date: Optional[str] = None, catalog_value_as_str: bool = True, + url: Optional[str] = None, base: Optional[Type[DeclarativeBase_T]] = None, ) -> dict[str, Type[DeclarativeBase_T]]: data = transform_data_parameter(data) + date = parse_date_string(transform_date_parameter(date)) + if url: + # This is awkward. We want to give the option to call this function with just a URL. + # But in our download file path, we want to have the date. So we need to get the date + # from the URL now. + if parsed_date := get_date_from_docs_url(url): + date = parsed_date docs_folder_path = os.path.join(self.output_dir, "data", "docs_download") os.makedirs(docs_folder_path, exist_ok=True) zipped_docs_file_path = os.path.join( docs_folder_path, - "Dokumentation MaStR Gesamtdatenexport.zip" + f"Dokumentation MaStR Gesamtdatenexport_{date}.zip" ) try: - download_documentation(zipped_docs_file_path) - return _download_docs_and_generate_data_model( + download_documentation(zipped_docs_file_path, bulk_date_string=date, url=url) + return _generate_data_model_from_downloaded_docs( zipped_docs_file_path=zipped_docs_file_path, data=data, catalog_value_as_str=catalog_value_as_str, @@ -139,7 +149,7 @@ def generate_data_model( f"Encountered {e} when downloading or processing MaStR documentation." f" Falling back to stored docs at {FALLBACK_DOCS_PATH}" ) - return _download_docs_and_generate_data_model( + return _generate_data_model_from_downloaded_docs( zipped_docs_file_path=FALLBACK_DOCS_PATH, data=data, catalog_value_as_str=catalog_value_as_str, @@ -229,20 +239,6 @@ def download( log.warning("Attention: method='API' changed to method='bulk'.") method = "bulk" - if not mastr_table_to_db_table: - mastr_table_to_db_model = self.generate_data_model( - data=data, - catalog_value_as_str=bulk_cleansing, - ) - mastr_table_to_db_table = { - mastr_table: db_model.__table__ - for mastr_table, db_model in mastr_table_to_db_model.items() - } - log.info("Ensuring database tables for MaStR are present: Dropping old tables if existing and creating new ones.") - for db_table in mastr_table_to_db_table.values(): - db_table.drop(self.engine, checkfirst=True) - db_table.create(self.engine) - validate_parameter_format_for_download_method( method=method, data=data, @@ -250,29 +246,47 @@ def download( bulk_cleansing=bulk_cleansing, **kwargs, ) - data = transform_data_parameter(data, **kwargs) - date = transform_date_parameter(self, date, **kwargs) + date = transform_date_parameter(date, **kwargs) # Handle interactive date selection if requested if select_date_interactively: log.info( "Interactive date selection enabled. Fetching available downloads..." ) - selected_date, selected_url = select_download_date() + selected_link = select_download_date() - if selected_date is None: - log.info("Download cancelled by user.") + if selected_link is None: + log.info("Download cancelled by user or no download links found.") return # Update the date and use the selected URL - date = selected_date - bulk_download_date = selected_date - custom_url = selected_url + bulk_download_date = selected_link["date"] + custom_xml_url = selected_link["url"] + custom_docs_url = selected_link["docs_url"] else: # Find the name of the zipped xml folder bulk_download_date = parse_date_string(date) - custom_url = None + custom_xml_url = None + custom_docs_url = None + + if not mastr_table_to_db_table: + mastr_table_to_db_model = self.generate_data_model( + data=data, + date=bulk_download_date, + catalog_value_as_str=bulk_cleansing, + url=custom_docs_url, + ) + mastr_table_to_db_table = { + mastr_table: db_model.__table__ + for mastr_table, db_model in mastr_table_to_db_model.items() + } + log.info("Ensuring database tables for MaStR are present: Dropping old tables if existing and creating new ones.") + for db_table in mastr_table_to_db_table.values(): + db_table.drop(self.engine, checkfirst=True) + db_table.create(self.engine) + + data = transform_data_parameter(data, **kwargs) xml_folder_path = os.path.join(self.output_dir, "data", "xml_download") os.makedirs(xml_folder_path, exist_ok=True) @@ -286,7 +300,7 @@ def download( delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) download_xml_Mastr( - zipped_xml_file_path, bulk_download_date, data, xml_folder_path, custom_url + zipped_xml_file_path, bulk_download_date, data, xml_folder_path, custom_xml_url ) log.info( "\nWould you like to speed up the creation of your MaStR database?\n" @@ -340,7 +354,7 @@ def browse_available_downloads(self): return list_available_downloads() -def _download_docs_and_generate_data_model( +def _generate_data_model_from_downloaded_docs( zipped_docs_file_path: Path, data: list[str], catalog_value_as_str: bool = True, diff --git a/open_mastr/utils/helpers.py b/open_mastr/utils/helpers.py index e163efa5..f9ad5ba9 100644 --- a/open_mastr/utils/helpers.py +++ b/open_mastr/utils/helpers.py @@ -3,7 +3,7 @@ from contextlib import contextmanager import datetime from warnings import warn -from typing import Literal, Union +from typing import Literal, Optional, Union from zipfile import BadZipfile, ZipFile from zoneinfo import ZoneInfo @@ -62,14 +62,11 @@ def create_database_engine(engine, sqlite_db_path) -> sqlalchemy.engine.Engine: return engine -def parse_date_string(bulk_date_string: str) -> datetime.date: +def parse_date_string(bulk_date_string: str) -> str: if bulk_date_string == "today": - dt = datetime.datetime.now(tz=MASTR_TIMEZONE) + return datetime.datetime.now(tz=MASTR_TIMEZONE).strftime("%Y%m%d") else: - dt = parse(bulk_date_string) - if dt.tzinfo: - dt = dt.astimezone(MASTR_TIMEZONE) - return dt.date() + return parse(bulk_date_string).strftime("%Y%m%d") def validate_parameter_format_for_mastr_init(engine) -> None: @@ -165,13 +162,13 @@ def transform_data_parameter(data, **kwargs): return data -def transform_date_parameter(self, date: Union[datetime.date, Literal["today"]], **kwargs) -> Union[datetime.date, Literal["today"]]: +def transform_date_parameter(date: Union[datetime.date, Literal["today"]], **kwargs: Optional[str]) -> str: date = kwargs.get("bulk_date", date) date = "today" if date is None else date if date == "existing": log.warning( """ - The date parameter 'existing' is deprecated and will be removed in the future. + The date parameter 'existing' is deprecated and will be removed in the future. The date parameter is set to `today`. If this change causes problems for you, please comment in this issue on github: diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index 710e10e2..9bb8e02b 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -1,15 +1,15 @@ -import datetime import math import os import shutil import time -from datetime import datetime as dt +from collections import defaultdict from importlib.metadata import PackageNotFoundError, version from zipfile import ZipFile from pathlib import Path import urllib.request import re -from datetime import datetime +from datetime import date, datetime +from typing import Optional import numpy as np import requests @@ -118,7 +118,7 @@ def gen_url( Defaults to "current". """ version = gen_version(when, use_version) - date = when.strftime("%Y%m%d") + date = time.strftime("%Y%m%d", when) if use_stichtag: url_str = f"https://download.marktstammdatenregister.de/Stichtag/Gesamtdatenexport_{date}_{version}.zip" @@ -157,7 +157,7 @@ def _parse_date_string(date_str): """Convert YYYYMMDD string to time.struct_time object.""" try: # Use datetime.strptime for robust date parsing - parsed_date = dt.strptime(date_str, "%Y%m%d") + parsed_date = datetime.strptime(date_str, "%Y%m%d") # Convert to time.struct_time using timetuple() return parsed_date.timetuple() except (ValueError, IndexError) as e: @@ -404,7 +404,8 @@ def get_available_download_links( list of dict A list of dictionaries containing information about available downloads. Each dictionary contains: - - 'url': The download URL + - 'url': The download URL of the XML containing the MaStR data + - 'docs_url': The download URL of the docs describing the MaStR data format - 'date': The date of the export (YYYYMMDD format) - 'version': The MaStR version (e.g., '24.1', '24.2') - 'type': 'current' for current exports, 'stichtag' for historical exports @@ -430,45 +431,82 @@ def get_available_download_links( log.error(f"Failed to fetch download page: {e}") return [] - # Pattern for current exports - pattern_current = re.compile( - r"https://download\.marktstammdatenregister\.de/Gesamtdatenexport_([0-9]{8})_([0-9]{2}\.[0-9])\.zip" - ) - # Pattern for historical exports (Stichtag) - pattern_stichtag = re.compile( - r"https://download\.marktstammdatenregister\.de/Stichtag/Gesamtdatenexport_([0-9]{8})_([0-9]{2}\.[0-9])\.zip" - ) + # We have in principle two ways of finding the URLs in the HTML of the MaStR Datendownload page: + # 1. Depend on some parts of the HTML structure, identify the tags and get the href attributes and somehow the date. + # 2. Depend on the URL structure and search for them using regex. Pull the date from the URL. + # We guess that the URL structure is more stable than the HTML structure, so we implement approach 2. - # Find all current export links - current_matches = pattern_current.findall(html) - current_links = [ - { - "url": f"https://download.marktstammdatenregister.de/Gesamtdatenexport_{date}_{version}.zip", - "date": date, - "version": version, - "type": "current", - } - for date, version in current_matches - ] + current_link = _find_current_download_link(html) + stichtag_links = _find_stichtag_download_links(html) - # Find all historical export links - stichtag_matches = pattern_stichtag.findall(html) - stichtag_links = [ - { - "url": f"https://download.marktstammdatenregister.de/Stichtag/Gesamtdatenexport_{date}_{version}.zip", + # Combine and sort by date (newest first) + all_links = [current_link] + stichtag_links + all_links.sort(key=lambda x: (x["date"], x["version"]), reverse=True) + + log.info(f"Found {len(all_links)} available download links") + return all_links + + +def _find_current_download_link(html: str) -> dict[str, Optional[str]]: + pattern_current_xml = r"https://download\.marktstammdatenregister\.de/Gesamtdatenexport_(?P[0-9]{8})_(?P[0-9]{2}\.[0-9])\.zip" + match_xml = re.search(pattern_current_xml, html) + if not match_xml: + log.error("Found no link for the current XML download in MaStR download list HTML") + return {} + link = { + "url": match_xml.group(), + "docs_url": None, + "date": match_xml.group("date"), + "version": match_xml.group("version"), + "type": "current", + } + + mastr_origin = "https://www.marktstammdatenregister.de" + # The URL origin is actually omitted in the HTML. We make it work with and without it in case BNetzA adds the origin in the link. + pattern_current_docs = rf"(?P{re.escape(mastr_origin)})?/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" + if match_docs := re.search(pattern_current_docs, html): + matched_string = match_docs.group() + link["docs_url"] = matched_string if match_docs.group("origin") else mastr_origin + matched_string + else: + log.error("Found no link for the current docs download in MaStR download list HTML") + + return link + + +def _find_stichtag_download_links(html: str) -> list[dict[str, Optional[str]]]: + pattern_stichtag_xml = r"https://download\.marktstammdatenregister\.de/Stichtag/Gesamtdatenexport_(?P[0-9]{8})_(?P[0-9]{2}\.[0-9])\.zip" + date_to_links = defaultdict(list) + for match_xml in re.finditer(pattern_stichtag_xml, html): + date = match_xml.group("date") + link = { + "url": match_xml.group(), + "docs_url": None, "date": date, - "version": version, + "version": match_xml.group("version"), "type": "stichtag", } - for date, version in stichtag_matches - ] + date_to_links[date].append(link) - # Combine and sort by date (newest first) - all_links = current_links + stichtag_links - all_links.sort(key=lambda x: x["date"], reverse=True) + pattern_stichtag_docs = ( + r"https://download\.marktstammdatenregister\.de/Stichtag/" + r"Dokumentation(?:%20| )MaStR(?:%20| )Gesamtdatenexport(?:%20| )" + r"(?P[0-9]{2})-(?P[0-9]{2})-(?P[0-9]{4}).zip" + ) + for match_docs in re.finditer(pattern_stichtag_docs, html): + # When there are two XML downloads with different versions for the same day, + # there is still (strangely) only one docs download. So we assign it to multiple links. + date = match_docs.group("year") + match_docs.group("month") + match_docs.group("day") + if links := date_to_links.get(date): + for link in links: + link["docs_url"] = match_docs.group() + else: + log.error( + f"Found a docs download link for {date} in MaStR download list HTML" + ", but not a corresponding XML download link" + ) - log.info(f"Found {len(all_links)} available download links") - return all_links + links = [link for links in date_to_links.values() for link in links] + return links def list_available_downloads(): @@ -486,17 +524,20 @@ def list_available_downloads(): print("No download links found. Please check your internet connection.") return [] + url_pad = max(len(link["url"]) for link in links) + 2 + print("\n" + "=" * 80) print("AVAILABLE MAStR DOWNLOADS") print("=" * 80) - print(f"{'#':<4} {'Date':<12} {'Version':<10} {'Type':<12} {'URL'}") + print(f"{'#':<4} {'Date':<12} {'Version':<10} {'Type':<12} {'XML URL':<{url_pad}} Docs URL") print("-" * 80) for i, link in enumerate(links, 1): # Format date for better readability date_formatted = f"{link['date'][:4]}-{link['date'][4:6]}-{link['date'][6:]}" print( - f"{i:<4} {date_formatted:<12} {link['version']:<10} {link['type']:<12} {link['url']}" + f"{i:<4} {date_formatted:<12} {link['version']:<10}" + f" {link['type']:<12} {link['url']:<{url_pad}} {link['docs_url']}" ) print("=" * 80) @@ -506,7 +547,7 @@ def list_available_downloads(): return links -def select_download_date(): +def select_download_date() -> Optional[dict[str, Optional[str]]]: """ Interactive function to let the user select a download date. @@ -514,14 +555,13 @@ def select_download_date(): Returns ------- - tuple - (date_string, url) where date_string is in YYYYMMDD format and url is the download URL - Returns (None, None) if user cancels or no valid selection is made + list of dict + List of available downloads with formatted dates and versions. """ links = list_available_downloads() if not links: - return None, None + return None print("\nOptions:") print("1. Select from the list above (enter the number)") @@ -540,7 +580,7 @@ def select_download_date(): print( f"\nSelected: {selected['date']} (Version {selected['version']}, Type: {selected['type']})" ) - return selected["date"], selected["url"] + return selected else: print(f"Please enter a number between 1 and {len(links)}") except ValueError: @@ -548,13 +588,23 @@ def select_download_date(): elif choice == "2": print("Download selection cancelled.") - return None, None + return None else: print("Invalid choice. Please enter 1, or 2.") -def download_documentation(save_path: str) -> None: +def get_date_from_docs_url(url: str) -> Optional[str]: + if m := re.search(r"(?P[0-9]{2})-(?P[0-9]{2})-(?P[0-9]{4})", url): + return f"{m.group('year')}{m.group('month')}{m.group('day')}" + return None + + +def download_documentation( + save_path: str, + bulk_date_string: Optional[str] = None, + url: Optional[str] = None, +) -> None: """Downloads the zipped MaStR. Parameters @@ -563,7 +613,16 @@ def download_documentation(save_path: str) -> None: Full file path where the downloaded MaStR documentation zip file will be saved. """ log.info("Starting the MaStR documentation download from marktstammdatenregister.de.") - url = "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" + if not url: + if bulk_date_string: + dt = datetime.strptime(bulk_date_string, "%Y%m%d") + url = ( + "https://download.markstammdatenregister.de/Stichtag/" + "Dokumentation%20MaStR%20Gesamdatenexport%20" + f"{dt.day:0>2}-{dt.month:0>2}-{dt.year:0>4}.zip" + ) + else: + url = "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" time_a = time.perf_counter() r = requests.get(url, headers={"User-Agent": USER_AGENT}) diff --git a/tests/test_interactive_download.py b/tests/test_interactive_download.py index 0fd6b2e0..cdeaee5c 100644 --- a/tests/test_interactive_download.py +++ b/tests/test_interactive_download.py @@ -11,9 +11,14 @@ SAMPLE_HTML = """ - - - + + + + + + + + """ @@ -21,21 +26,31 @@ # Sample download links for mocking SAMPLE_LINKS = [ { - "url": "https://download.marktstammdatenregister.de/Gesamtdatenexport_20250103_24.2.zip", - "date": "20250103", - "version": "24.2", + "url": "https://download.marktstammdatenregister.de/Gesamtdatenexport_20260103_25.2.zip", + "docs_url": "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip", + "date": "20260103", + "version": "25.2", "type": "current", }, { - "url": "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241231_24.2.zip", - "date": "20241231", - "version": "24.2", - "type": "current", + "url": "https://download.marktstammdatenregister.de/Stichtag/Gesamtdatenexport_20260101_25.2.zip", + "docs_url": "https://download.marktstammdatenregister.de/Stichtag/Dokumentation%20MaStR%20Gesamtdatenexport%2001-01-2026.zip", + "date": "20260101", + "version": "25.2", + "type": "stichtag", + }, + { + "url": "https://download.marktstammdatenregister.de/Stichtag/Gesamtdatenexport_20251001_25.2.zip", + "docs_url": "https://download.marktstammdatenregister.de/Stichtag/Dokumentation%20MaStR%20Gesamtdatenexport%2001-10-2025.zip", + "date": "20251001", + "version": "25.2", + "type": "stichtag", }, { - "url": "https://download.marktstammdatenregister.de/Stichtag/Gesamtdatenexport_20241130_24.1.zip", - "date": "20241130", - "version": "24.1", + "url": "https://download.marktstammdatenregister.de/Stichtag/Gesamtdatenexport_20251001_25.1.zip", + "docs_url": "https://download.marktstammdatenregister.de/Stichtag/Dokumentation%20MaStR%20Gesamtdatenexport%2001-10-2025.zip", + "date": "20251001", + "version": "25.1", "type": "stichtag", }, ] @@ -50,14 +65,7 @@ def test_get_available_download_links(mock_urlopen): mock_urlopen.return_value = mock_response links = get_available_download_links() - - assert len(links) == 3 - assert links[0]["date"] == "20250103" - assert links[0]["version"] == "24.2" - assert links[0]["type"] == "current" - assert links[2]["date"] == "20241130" - assert links[2]["version"] == "24.1" - assert links[2]["type"] == "stichtag" + assert links == SAMPLE_LINKS @patch("open_mastr.xml_download.utils_download_bulk.get_available_download_links") @@ -84,9 +92,8 @@ def test_select_download_date_valid_selection(mock_list_downloads): # Simulate user choosing option 1, then selecting the 2nd item with patch("builtins.input", side_effect=["1", "2"]): - date, url = select_download_date() - assert date == "20241231" - assert url == SAMPLE_LINKS[1]["url"] + link = select_download_date() + assert link == SAMPLE_LINKS[1] @patch("open_mastr.xml_download.utils_download_bulk.list_available_downloads") @@ -96,35 +103,46 @@ def test_select_download_date_cancel(mock_list_downloads): # Simulate user choosing option 2 (Cancel) with patch("builtins.input", side_effect=["2"]): - date, url = select_download_date() - assert date is None - assert url is None + link = select_download_date() + assert link is None +@patch("open_mastr.mastr.Mastr.generate_data_model") @patch("open_mastr.mastr.write_mastr_xml_to_database") @patch("open_mastr.mastr.select_download_date") @patch("open_mastr.mastr.download_xml_Mastr") -def test_mastr_download_interactive(mock_download, mock_select_date, mock_write_db): +def test_mastr_download_interactive( + mock_download, + mock_select_date, + mock_write_db, + mock_generate_data_model, +): """Test the main download method with interactive selection.""" - mock_select_date.return_value = ("20241231", "http://example.com/file.zip") + link = SAMPLE_LINKS[0] + mock_select_date.return_value = link db = Mastr() db.download(select_date_interactively=True) # Assert that select_download_date was called mock_select_date.assert_called_once() + # Assert that generate_data_model was called with the correct URL + mock_generate_data_model.assert_called_once() + _, kwargs = mock_generate_data_model.call_args + assert kwargs["url"] == link["docs_url"] + # Assert that download_xml_Mastr was called with the correct URL mock_download.assert_called_once() - args, kwargs = mock_download.call_args - assert args[4] == "http://example.com/file.zip" - assert args[1] == "20241231" # date argument + args, _ = mock_download.call_args + assert args[4] == link["url"] + assert args[1] == link["date"] @patch("open_mastr.mastr.select_download_date") @patch("open_mastr.mastr.download_xml_Mastr") def test_mastr_download_interactive_cancel(mock_download, mock_select_date): """Test the main download method when interactive selection is cancelled.""" - mock_select_date.return_value = (None, None) + mock_select_date.return_value = None db = Mastr() db.download(select_date_interactively=True) @@ -135,7 +153,7 @@ def test_mastr_download_interactive_cancel(mock_download, mock_select_date): mock_download.assert_not_called() -@patch("open_mastr.xml_download.utils_download_bulk.list_available_downloads") +@patch("open_mastr.mastr.list_available_downloads") def test_mastr_browse_available_downloads(mock_list_downloads): """Test the browse_available_downloads method.""" mock_list_downloads.return_value = SAMPLE_LINKS diff --git a/tests/xml_download/test_utils_download_bulk.py b/tests/xml_download/test_utils_download_bulk.py index 4557dbe8..2a320bf0 100644 --- a/tests/xml_download/test_utils_download_bulk.py +++ b/tests/xml_download/test_utils_download_bulk.py @@ -9,7 +9,7 @@ def test_gen_url(): - when = date(2024, 1, 1) + when = time.strptime("2024-01-01", "%Y-%m-%d") url = gen_url(when) assert type(url) == str assert ( @@ -17,7 +17,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240101_23.2.zip" ) - when = date(2024, 4, 1) + when = time.strptime("2024-04-01", "%Y-%m-%d") url = gen_url(when) assert type(url) == str assert ( @@ -25,7 +25,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240401_23.2.zip" ) - when = date(2024, 4, 2) + when = time.strptime("2024-04-02", "%Y-%m-%d") url = gen_url(when) assert type(url) == str assert ( @@ -33,7 +33,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240402_24.1.zip" ) - when = date(2024, 10, 1) + when = time.strptime("2024-10-01", "%Y-%m-%d") url = gen_url(when) assert type(url) == str assert ( @@ -41,7 +41,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241001_24.1.zip" ) - when = date(2024, 10, 2) + when = time.strptime("2024-10-02", "%Y-%m-%d") url = gen_url(when) assert type(url) == str assert ( @@ -49,7 +49,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241002_24.2.zip" ) - when = date(2024, 12, 31) + when = time.strptime("2024-12-31", "%Y-%m-%d") url = gen_url(when) assert type(url) == str assert ( @@ -59,7 +59,7 @@ def test_gen_url(): # Tests for use_version parameter - when = date(2024, 12, 31) + when = time.strptime("2024-12-31", "%Y-%m-%d") url = gen_url(when, use_version="before") assert type(url) == str assert ( @@ -67,7 +67,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241231_24.1.zip" ) - when = date(2024, 12, 31) + when = time.strptime("2024-12-31", "%Y-%m-%d") url = gen_url(when, use_version="after") assert type(url) == str assert ( @@ -75,7 +75,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20241231_25.1.zip" ) - when = date(2024, 4, 2) + when = time.strptime("2024-04-02", "%Y-%m-%d") url = gen_url(when, use_version="before") assert type(url) == str assert ( @@ -83,7 +83,7 @@ def test_gen_url(): == "https://download.marktstammdatenregister.de/Gesamtdatenexport_20240402_23.2.zip" ) - when = date(2024, 4, 2) + when = time.strptime("2024-04-02", "%Y-%m-%d") url = gen_url(when, use_version="after") assert type(url) == str assert ( From 49b07e0492b7046c89a452385dec7f93acd0d0a0 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 2 Feb 2026 12:50:09 +0100 Subject: [PATCH 09/34] Make wrong XML schema a bit easier to see --- open_mastr/mastr.py | 2 +- open_mastr/utils/xsd_tables.py | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 929f2a0c..b718340b 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -146,7 +146,7 @@ def generate_data_model( ) except Exception as e: log.exception( - f"Encountered {e} when downloading or processing MaStR documentation." + f"Encountered {e!r} when downloading or processing MaStR documentation." f" Falling back to stored docs at {FALLBACK_DOCS_PATH}" ) return _generate_data_model_from_downloaded_docs( diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index 57bdf0b0..d8ce3795 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -7,6 +7,7 @@ from zipfile import ZipFile, ZipInfo import xmlschema from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction +from xmlschema.validators.exceptions import XMLSchemaModelError from open_mastr.utils.helpers import data_to_include_tables @@ -110,6 +111,10 @@ def from_xml_schema(cls, schema: xmlschema.XMLSchema) -> "MastrTableDescription" ) +class InvalidXmlSchemaError(Exception): + pass + + def read_mastr_table_descriptions_from_xsd( zipped_docs_file_path: Union[Path, str], data: list[str] ) -> set[MastrTableDescription]: @@ -127,7 +132,13 @@ def read_mastr_table_descriptions_from_xsd( normalized_name = os.path.basename(entry.filename).removesuffix(".xsd").lower() if normalized_name in include_tables: with xsd_z.open(entry) as xsd_file: - mastr_table_description = MastrTableDescription.from_xml_schema(xmlschema.XMLSchema(xsd_file)) + try: + schema = xmlschema.XMLSchema(xsd_file) + except XMLSchemaModelError as e: + raise InvalidXmlSchemaError( + f"Invalid XML Schema in {os.path.basename(entry.filename)}" + ) from e + mastr_table_description = MastrTableDescription.from_xml_schema(schema) mastr_table_descriptions.add(mastr_table_description) return mastr_table_descriptions From 1f6a67022a36e879a0c5f32024c3e0ae2058f1b8 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 2 Feb 2026 14:20:36 +0100 Subject: [PATCH 10/34] Implement adding a custom primary key column --- open_mastr/utils/sqlalchemy_tables.py | 73 +++++++++++++-------------- 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 4f671deb..66b27c67 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -1,4 +1,5 @@ import datetime +import logging from dataclasses import dataclass from typing import Any, Union, Type, TypeVar from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime @@ -8,11 +9,13 @@ from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction from open_mastr.utils.xsd_tables import MastrColumnType, MastrTableDescription +log = logging.getLogger("open-MaStR") # Potential hierarchy # Id -> MastrNummer -> EinheitMastrNummer # -> EegMastrNummer -> KwkMastrNummer -> GenMastrNummer # -> MarktakteurMastrNummer -> NetzanschlusspunktMastrNummer +# in case we want to auto-detect the primary key. MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS = { "AnlagenEegBiomasse": {"EegMastrNummer"}, "AnlagenEegGeothermieGrubengasDruckentspannung": {"EegMastrNummer"}, @@ -24,8 +27,15 @@ "AnlagenKwk": {"KwkMastrNummer"}, "AnlagenStromSpeicher": {"MastrNummer"}, "Bilanzierungsgebiete": {"Id"}, - "EinheitenAenderungNetzbetreiberzuordnungen": {"EinheitMastrNummer"}, # TODO: May not be a primary key on its own. Check this. - "EinheitenBiomasse": {"EinheitMastrNummer"}, + + # There is no unique key for this table. So we will have to insert one. + # Check for example the entries for SEE990510388975. We could use + # EinheitMastrNummer + RegistrierungsdatumNetzbetreiberzuordnungsaenderung, + # but the MaStR docs say that RegistrierungsdatumNetzbetreiberzuordnungsaenderung + # can be NULL. + "EinheitenAenderungNetzbetreiberzuordnungen": None, + + "EnheitenBiomasse": {"EinheitMastrNummer"}, "EinheitenGasErzeuger": {"EinheitMastrNummer"}, "EinheitenGasSpeicher": {"EinheitMastrNummer"}, "EinheitenGasverbraucher": {"EinheitMastrNummer"}, @@ -69,17 +79,31 @@ def make_sqlalchemy_model_from_mastr_table_description( base: Type[DeclarativeBase_T], mixins: tuple[type, ...] = (ParentAllTables,), ) -> Type[DeclarativeBase_T]: + column_name_to_column_type = { + column.name: _get_sqlalchemy_type_for_mastr_column_type( + mastr_column_type=column.type, + catalog_value_as_str=catalog_value_as_str, + ) + for column in table_description.columns + } + primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS.get(table_description.table_name) + if not primary_key_columns or any( + column not in column_name_to_column_type + for column in primary_key_columns + ): + id_col_name = "OpenMastrId" + log.info( + f"Found no primary key column for table {table_description.table_name}." + f" Inserting custom ID column {id_col_name!r}" + ) + column_name_to_column_type[id_col_name] = Integer(autoincrement=True) + primary_key_columns = {id_col_name} + return _make_sqlalchemy_model( class_name=table_description.instance_name, table_name=table_description.table_name, - column_name_to_column_type={ - column.name: _get_sqlalchemy_type_for_mastr_column_type( - mastr_column_type=column.type, - catalog_value_as_str=catalog_value_as_str, - ) - for column in table_description.columns - }, - primary_key_columns=MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS[table_description.table_name], + column_name_to_column_type=column_name_to_column_type, + primary_key_columns=primary_key_columns, base=base, mixins=(ParentAllTables,) ) @@ -133,32 +157,3 @@ def _get_sqlalchemy_type_for_mastr_column_type( return CatalogString if catalog_value_as_str else CatalogInteger return _MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE[mastr_column_type] - - -# TODO: Remove this or make it useful for outsiders. -if __name__ == "__main__": - import os - import sys - from sqlalchemy import create_engine - import traceback - import xmlschema - - print("Parsing XSD files") - xsd_path = sys.argv[1] - for xsd_path in sys.argv[1:]: - schema = xmlschema.XMLSchema(xsd_path) - try: - table_description = MastrTableDescription.from_xml_schema(schema) - except ValueError: - traceback.print_exc() - print("Failed for ", xsd_path) - sys.exit(1) - - model = make_sqlalchemy_model_from_mastr_table_description( - table_description=table_description, - ) - - db_path = os.path.join(os.getcwd(), "test.db") - print(f"Creating SQLite database at {db_path}") - engine = create_engine(f"sqlite:///{db_path}") - Base.metadata.create_all(engine) From 774b7add9091122e761aac4711fdffbbb7e844fd Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 2 Feb 2026 21:10:01 +0100 Subject: [PATCH 11/34] Add basic CSV export --- open_mastr/mastr.py | 38 +++++++++++++++---- open_mastr/utils/config.py | 11 ------ open_mastr/utils/constants.py | 2 +- open_mastr/utils/helpers.py | 14 +++---- open_mastr/utils/sqlalchemy_tables.py | 5 ++- .../xml_download/utils_write_to_database.py | 23 +---------- 6 files changed, 43 insertions(+), 50 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index b718340b..e2bef513 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -3,7 +3,9 @@ from sqlalchemy import inspect, create_engine, Engine, Table from sqlalchemy.orm import DeclarativeBase from typing import Literal, Optional, Type, TypeVar, Union -from collections.abc import Mapping +from collections.abc import Iterable, Mapping + +import pandas as pd # import xml dependencies from open_mastr.xml_download.utils_download_bulk import ( @@ -36,7 +38,6 @@ create_translated_database_engine, ) from open_mastr.utils.config import ( - create_data_dir, get_data_version_dir, get_project_home_dir, get_output_dir, @@ -328,10 +329,34 @@ def download( ) def to_csv( - self, tables: list = None, chunksize: int = 500000, limit: int = None + self, + db_table_names: Iterable[str] = None, + chunksize: int = 500000, + limit: int = None, ) -> None: - pass - # TODO: Think about this. + log.info(f"Exporting the following database tables to CSV: {', '.join(db_table_names)}") + data_path = get_data_version_dir() + os.makedirs(data_path, exist_ok=True) + + inspector = inspect(self.engine) + existing_table_names = set(inspector.get_table_names()) + if db_table_names is None: + db_table_names = existing_table_names + + with self.engine.connect() as conn: + for requested_table_name in db_table_names: + if requested_table_name not in existing_table_names: + log.warning(f"Table {requested_table_name} does not exist. Skipping.") + continue + csv_path = os.path.join(data_path, f"{requested_table_name}.csv") + if os.path.exists(csv_path): + log.info(f"Deleting existing file {csv_path}") + os.unlink(csv_path) + for i, chunk in enumerate( + pd.read_sql_table(requested_table_name, conn, chunksize=chunksize) + ): + chunk.to_csv(csv_path, mode="a", index=False, header=i == 0) + def browse_available_downloads(self): """ @@ -356,8 +381,7 @@ def browse_available_downloads(self): def _generate_data_model_from_downloaded_docs( zipped_docs_file_path: Path, - data: list[str], - catalog_value_as_str: bool = True, + data: list[str], catalog_value_as_str: bool = True, base: Optional[Type[DeclarativeBase_T]] = None, ): if base is None: diff --git a/open_mastr/utils/config.py b/open_mastr/utils/config.py index 40f67ec8..77367d98 100644 --- a/open_mastr/utils/config.py +++ b/open_mastr/utils/config.py @@ -151,17 +151,6 @@ def create_project_home_dir(): ) -def create_data_dir(): - """ - Create direct for current data version - - The directory that is created for this fata version can - be returned by :func:`~.get_data_version_dir`. - """ - - os.makedirs(get_data_version_dir(), exist_ok=True) - - def _filenames_generator(): """Write default file names .yml to project home dir""" diff --git a/open_mastr/utils/constants.py b/open_mastr/utils/constants.py index 210d438d..429164ca 100644 --- a/open_mastr/utils/constants.py +++ b/open_mastr/utils/constants.py @@ -87,7 +87,7 @@ ], "electricity_consumer": ["einheitenstromverbraucher"], "location": ["lokationen"], - "market": ["marktakteure", "marktrollen"], + "market": ["marktakteure", "marktrollen", "marktakteureundrollen", "marktfunktionen"], "grid": ["netzanschlusspunkte", "netze"], "balancing_area": ["bilanzierungsgebiete"], "permit": ["einheitengenehmigung"], diff --git a/open_mastr/utils/helpers.py b/open_mastr/utils/helpers.py index f9ad5ba9..f5bff5ad 100644 --- a/open_mastr/utils/helpers.py +++ b/open_mastr/utils/helpers.py @@ -196,7 +196,7 @@ def session_scope(engine): session.close() -def data_to_include_tables(data: list, mapping: str = None) -> list: +def data_to_include_tables(data: list, mapping: str = None) -> set[str]: """ Convert user input 'data' to the list 'include_tables'. It contains file names from zipped bulk download, if mapping="write_xml". @@ -209,25 +209,25 @@ def data_to_include_tables(data: list, mapping: str = None) -> list: Specify the mapping dict for the function and thus the list output. Returns ------- - list - List of file names | List of database table names + set + Set of file names | Set of database table names ------- """ if mapping == "write_xml": # Map data selection to include tables in xml - include_tables = [ + include_tables = { table for tech in data for table in BULK_INCLUDE_TABLES_MAP[tech] - ] + } return include_tables if mapping == "export_db_tables": # Map data selection to include tables for csv export - include_tables = [ + include_tables = { table for possible_data_bulk in data for table in BULK_ADDITIONAL_TABLES_CSV_EXPORT_MAP[possible_data_bulk] - ] + } return include_tables raise NotImplementedError( diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 66b27c67..2405d764 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -56,7 +56,7 @@ "Katalogwerte": {"Id"}, "Lokationen": {"MastrNummer"}, "Lokationstypen": {"Id"}, - "MarktakteureUndRollen": {"MarktakteurMastrNummer"}, + "MarktakteureUndRollen": {"MastrNummer"}, "Marktakteure": {"MastrNummer"}, "Marktfunktionen": {"Id"}, "Marktrollen": {"Id"}, @@ -96,7 +96,8 @@ def make_sqlalchemy_model_from_mastr_table_description( f"Found no primary key column for table {table_description.table_name}." f" Inserting custom ID column {id_col_name!r}" ) - column_name_to_column_type[id_col_name] = Integer(autoincrement=True) + # The integer column will be autoincrement by default since we make it a primary key. + column_name_to_column_type[id_col_name] = Integer primary_key_columns = {id_col_name} return _make_sqlalchemy_model( diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index d45945cd..cfc3ac64 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -51,7 +51,7 @@ def write_mastr_xml_to_database( for file_name in files_list: xml_table_name = extract_xml_table_name(file_name) - if not is_table_relevant(xml_table_name, include_tables): + if xml_table_name not in include_tables: continue db_table = lower_mastr_table_to_db_table.get(xml_table_name) @@ -292,27 +292,6 @@ def extract_sql_table_name(xml_table_name: str) -> str: return tablename_mapping[xml_table_name]["__name__"] -def is_table_relevant(xml_table_name: str, include_tables: list) -> bool: - """Checks if the table contains relevant data and if the user wants to - have it in the database.""" - # few tables are only needed for data cleansing of the xml files and contain no - # information of relevance - try: - boolean_write_table_to_sql_database = ( - tablename_mapping[xml_table_name]["__class__"] is not None - ) - except KeyError: - log.warning( - f"Table '{xml_table_name}' is not supported by your open-mastr version and " - f"will be skipped." - ) - return False - # check if the table should be written to sql database (depends on user input) - include_count = include_tables.count(xml_table_name) - - return include_count == 1 and boolean_write_table_to_sql_database - - def create_database_table( engine: sqlalchemy.engine.Engine, xml_table_name: str ) -> None: From f31622ce7ffb09161f58ef3398dbb4b8b0288888 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Tue, 3 Feb 2026 12:37:32 +0100 Subject: [PATCH 12/34] Implement translation feature --- open_mastr/mastr.py | 21 +++-- open_mastr/utils/constants.py | 47 +++++++++- open_mastr/utils/helpers.py | 49 ---------- open_mastr/utils/sqlalchemy_tables.py | 92 ++++++++++++++++--- open_mastr/utils/xsd_tables.py | 43 +++++++-- .../xml_download/utils_write_to_database.py | 31 +++++-- 6 files changed, 199 insertions(+), 84 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index e2bef513..5aef2685 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -34,8 +34,6 @@ reverse_fill_basic_units, delete_zip_file_if_corrupted, create_database_engine, - rename_table, - create_translated_database_engine, ) from open_mastr.utils.config import ( get_data_version_dir, @@ -89,7 +87,6 @@ class Mastr: def __init__( self, engine: Union[Engine, Literal["sqlite"]] = "sqlite", - mastr_table_to_db_table_name: Optional[dict[str, str]] = None, output_dir: Optional[Union[str, Path]] = None, home_dir: Optional[Union[str, Path]] = None, ) -> None: @@ -121,6 +118,7 @@ def generate_data_model( catalog_value_as_str: bool = True, url: Optional[str] = None, base: Optional[Type[DeclarativeBase_T]] = None, + english: bool = False, ) -> dict[str, Type[DeclarativeBase_T]]: data = transform_data_parameter(data) date = parse_date_string(transform_date_parameter(date)) @@ -144,6 +142,7 @@ def generate_data_model( data=data, catalog_value_as_str=catalog_value_as_str, base=base, + english=english, ) except Exception as e: log.exception( @@ -154,7 +153,8 @@ def generate_data_model( zipped_docs_file_path=FALLBACK_DOCS_PATH, data=data, catalog_value_as_str=catalog_value_as_str, - base=base + base=base, + english=english, ) def download( @@ -167,6 +167,7 @@ def download( select_date_interactively: bool = False, mastr_table_to_db_table: Optional[Mapping[str, Table]] = None, alter_database_tables: bool = True, + english: bool = False, **kwargs, ) -> None: """ @@ -277,12 +278,16 @@ def download( date=bulk_download_date, catalog_value_as_str=bulk_cleansing, url=custom_docs_url, + english=english, ) mastr_table_to_db_table = { mastr_table: db_model.__table__ for mastr_table, db_model in mastr_table_to_db_model.items() } - log.info("Ensuring database tables for MaStR are present: Dropping old tables if existing and creating new ones.") + log.info( + "Ensuring database tables for MaStR are present:" + " Dropping old tables if existing and creating new ones." + ) for db_table in mastr_table_to_db_table.values(): db_table.drop(self.engine, checkfirst=True) db_table.create(self.engine) @@ -383,6 +388,7 @@ def _generate_data_model_from_downloaded_docs( zipped_docs_file_path: Path, data: list[str], catalog_value_as_str: bool = True, base: Optional[Type[DeclarativeBase_T]] = None, + english: bool = False, ): if base is None: @@ -399,8 +405,9 @@ class MastrBase(DeclarativeBase): sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description( table_description=mastr_table_description, catalog_value_as_str=catalog_value_as_str, - base=base + base=base, + english=english, ) - mastr_table_to_db_model[mastr_table_description.table_name] = sqlalchemy_model + mastr_table_to_db_model[mastr_table_description.original_table_name] = sqlalchemy_model return mastr_table_to_db_model diff --git a/open_mastr/utils/constants.py b/open_mastr/utils/constants.py index 429164ca..2962bf0d 100644 --- a/open_mastr/utils/constants.py +++ b/open_mastr/utils/constants.py @@ -195,7 +195,52 @@ "Gasverbrauchslokation": "location_gas_consumption", } -TRANSLATIONS = { +# TODO: Should we keep the names like they were? Some choices are hard to understand: +# - gas_storage (Anlage) & gas_storage_extended(Einheit) +# - storage_units (Anlage) & storage_extended (Einheit) +# - Inconsistent singular vs plural, e.g. storage_units, but balancing_area +TABLE_TRANSLATIONS = { + "AnlagenEegBiomasse": "biomass_eeg", + "AnlagenEegGeothermieGrubengasDruckentspannung": "gsgk_eeg", + "AnlagenEegSolar": "solar_eeg", + "AnlagenEegSpeicher": "storage_eeg", + "AnlagenEegWasser": "hydro_eeg", + "AnlagenEegWind": "wind_eeg", + "AnlagenGasSpeicher": "gas_storage", + "AnlagenKwk": "kwk", + "AnlagenStromSpeicher": "storage_units", + "Bilanzierungsgebiete": "balancing_area", + "EinheitenAenderungNetzbetreiberzuordnungen": "changed_dso_assignment", + "EinheitenBiomasse": "biomass_extended", + "EinheitenGasErzeuger": "gas_producer", + "EinheitenGasSpeicher": "gas_storage_extended", + "EinheitenGasverbraucher": "gas_consumer", + "EinheitenGenehmigung": "permit", + "EinheitenGeothermieGrubengasDruckentspannung": "gsgk_extended", + "EinheitenKernkraft": "nuclear_extended", + "EinheitenSolar": "solar_extended", + "EinheitenStromSpeicher": "storage_extended", + "EinheitenStromVerbraucher": "electricity_consumer", + "Einheitentypen": "unit_types", + "EinheitenVerbrennung": "combustion_extended", + "EinheitenWasser": "hydro_extended", + "EinheitenWind": "wind_extended", + "Ertuechtigungen": "retrofit_units", + "GeloeschteUndDeaktivierteEinheiten": "deleted_units", + "GeloeschteUndDeaktivierteMarktakteure": "deleted_market_actors", + "Katalogkategorien": "catalog_categories", + "Katalogwerte": "catalog_values", + "Lokationen": "locations", + "Lokationstypen": "location_types", + "Marktakteure": "market_actors", + "MarktakteureUndRollen": "market_actors_and_roles", + "Marktfunktionen": "market_functions", + "Marktrollen": "market_roles", + "Netzanschlusspunkte": "grid_connections", + "Netze": "grids", +} + +COLUMN_TRANSLATIONS = { "RegisternummerAusland": "foreignRegisterNumber", "PumpbetriebKontinuierlichRegelbar": "continuousControlOfPumpOperation", "AuflagenAbschaltungSonstige": "requirementShutdownOther", diff --git a/open_mastr/utils/helpers.py b/open_mastr/utils/helpers.py index f5bff5ad..710a621e 100644 --- a/open_mastr/utils/helpers.py +++ b/open_mastr/utils/helpers.py @@ -32,7 +32,6 @@ ORM_MAP, UNIT_TYPE_MAP, ADDITIONAL_TABLES, - TRANSLATIONS, ) MASTR_TIMEZONE = ZoneInfo("Europe/Berlin") @@ -571,54 +570,6 @@ def db_query_to_csv(db_query, data_table: str, chunksize: int) -> None: ) -def rename_table(table, columns, engine) -> None: - """ - Rename table based on translation dictionary. - """ - alter_statements = [] - - for column in columns: - column = column["name"] - - if column in TRANSLATIONS: - alter_statement = text( - f"ALTER TABLE {table} RENAME COLUMN {column} TO {TRANSLATIONS[column]}" - ) - alter_statements.append(alter_statement) - - with engine.connect() as connection: - for statement in alter_statements: - try: - connection.execute(statement) - except sqlalchemy.exc.OperationalError: - continue - - -def create_translated_database_engine(engine, folder_path) -> sqlalchemy.engine.Engine: - """ - Check if translated version of the database, as defined with engine parameter, exists. - Return sqlite engine connected with the translated database. - """ - - if engine == "sqlite": - db_path = os.path.join(folder_path, "open-mastr-translated.db") - else: - if "sqlite" not in engine.dialect.name: - raise ValueError("engine has to be of type 'sqlite'") - - prev_path = r"{}".format(engine.url.database) - engine.dispose() - db_path = prev_path[:-3] + "-translated.db" - - if not os.path.exists(db_path): - raise FileNotFoundError( - f"no database at {db_path} found.\n" - "make sure the database has been translated before with translate()" - ) - - return create_engine(f"sqlite:///{db_path}") - - def delete_zip_file_if_corrupted(save_path: str): """ Check if existing zip file is corrupted and if yes, delete it, if no, zipfile exists. diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 2405d764..5abeb6f1 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -1,13 +1,13 @@ import datetime import logging from dataclasses import dataclass -from typing import Any, Union, Type, TypeVar +from typing import Any, Optional, Type, TypeVar, Union from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped import xmlschema from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction -from open_mastr.utils.xsd_tables import MastrColumnType, MastrTableDescription +from open_mastr.utils.xsd_tables import MastrColumnType, MastrTableDescription, translate_mastr_column_name log = logging.getLogger("open-MaStR") @@ -65,11 +65,6 @@ } -class ParentAllTables(object): - DatenQuelle: Mapped[str] = mapped_column(String) - DatumDownload: Mapped[datetime.date] = mapped_column(Date) - - DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) @@ -77,36 +72,97 @@ def make_sqlalchemy_model_from_mastr_table_description( table_description: MastrTableDescription, catalog_value_as_str: bool, base: Type[DeclarativeBase_T], - mixins: tuple[type, ...] = (ParentAllTables,), + english: bool = False, + mixins: tuple[type, ...] = tuple(), + include_download_metadata: bool = True, ) -> Type[DeclarativeBase_T]: + if english: + if table_description.english_table_name: + table_name = table_description.english_table_name + else: + table_name = table_description.original_table_name + english = False + log.warning( + f"English table name not available for {table_name}." + " Using German for the whole table." + ) + else: + table_name = table_description.original_table_name + column_name_to_column_type = { - column.name: _get_sqlalchemy_type_for_mastr_column_type( + ( + column.english_name or column.normalized_name + if english + else column.normalized_name + ): _get_sqlalchemy_type_for_mastr_column_type( mastr_column_type=column.type, catalog_value_as_str=catalog_value_as_str, ) for column in table_description.columns } - primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS.get(table_description.table_name) + column_kwargs = { + ( + column.english_name or column.normalized_name + if english + else column.normalized_name + ): { + "info": { + "original_name": column.original_name, + "normalized_name": column.normalized_name, + "english_name": column.english_name, + } + } + for column in table_description.columns + } + + primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS.get( + table_description.original_table_name + ) + if primary_key_columns and english: + primary_key_columns = [translate_mastr_column_name(column) for column in primary_key_columns] if not primary_key_columns or any( column not in column_name_to_column_type for column in primary_key_columns ): id_col_name = "OpenMastrId" log.info( - f"Found no primary key column for table {table_description.table_name}." + f"Found no primary key column for table {table_description.original_table_name}." f" Inserting custom ID column {id_col_name!r}" ) # The integer column will be autoincrement by default since we make it a primary key. column_name_to_column_type[id_col_name] = Integer primary_key_columns = {id_col_name} + if include_download_metadata: + data_source_col_info = { + "normalized_name": "DatenQuelle", + "english_name": "dataSource", + } + data_source_col_name = data_source_col_info["english_name" if english else "normalized_name"] + column_kwargs[data_source_col_name] = {"info": data_source_col_info} + column_name_to_column_type[data_source_col_name] = String + download_date_col_info = { + "normalized_name": "DatumDownload", + "english_name": "downloadDate", + } + download_date_col_name = download_date_col_info["english_name" if english else "normalized_name"] + column_kwargs[download_date_col_name] = {"info": download_date_col_info} + column_name_to_column_type[download_date_col_name] = String + return _make_sqlalchemy_model( class_name=table_description.instance_name, - table_name=table_description.table_name, + table_name=table_name, column_name_to_column_type=column_name_to_column_type, primary_key_columns=primary_key_columns, base=base, - mixins=(ParentAllTables,) + mixins=mixins, + table_kwargs={ + "info": { + "original_name": table_description.original_table_name, + "english_name": table_description.english_table_name, + } + }, + column_kwargs=column_kwargs, ) @@ -117,14 +173,22 @@ def _make_sqlalchemy_model( primary_key_columns: set[str], base: Type[DeclarativeBase_T], mixins: tuple[type, ...] = tuple(), + table_kwargs: Optional[dict[str, Any]] = None, + column_kwargs: Optional[dict[str, dict[str, Any]]] = None, ) -> Type[DeclarativeBase_T]: # TODO: Is there a way to say that the returned model is a sub-type of DeclarativeBase_T? namespace = { "__tablename__": table_name, "__annotations__": {}, } + if table_kwargs: + namespace["__table_args__"] = table_kwargs for column_name, column_type in column_name_to_column_type.items(): - kwargs = {"primary_key": True} if column_name in primary_key_columns else {"nullable": True} + kwargs = column_kwargs.get(column_name, {}) if column_kwargs else {} + if column_name in primary_key_columns: + kwargs.setdefault("primary_key", True) + else: + kwargs.setdefault("nullable", True) namespace[column_name] = mapped_column(column_type, **kwargs) bases = (base,) + mixins diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index d8ce3795..33ecfa9c 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -1,3 +1,4 @@ +import logging import os import re from enum import auto, Enum @@ -10,19 +11,35 @@ from xmlschema.validators.exceptions import XMLSchemaModelError from open_mastr.utils.helpers import data_to_include_tables +from open_mastr.utils.constants import COLUMN_TRANSLATIONS, TABLE_TRANSLATIONS _XML_SCHEMA_PREFIX = "{http://www.w3.org/2001/XMLSchema}" +log = logging.getLogger("open-MaStR") # TODO: Should we really mess with the original column names? # The BNetzA "choice" to sometimes write MaStR and sometimes Mastr is certainly confusing, # but are we the ones who should change that? # Also TODO: Should we also apply the more opinionated normalization/renaming that is currently stored in orm.py? # E.g. "VerknuepfteEinheitenMaStRNummern" -> "VerknuepfteEinheiten", "NetzanschlusspunkteMaStRNummern" -> "Netzanschlusspunkte", etc. -def normalize_column_name(original_mastr_column_name: str) -> str: +def normalize_mastr_name(original_mastr_name: str) -> str: # BNethA sometimes has MaStR, other times MaStR. We normalize that. # Also, in case the column names in the XSD contain äöüß, we replace them. This is probably a BNetzA oversight, but has happened at least once. - return original_mastr_column_name.replace("MaStR", "Mastr").replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss").strip() + return original_mastr_name.replace("MaStR", "Mastr").replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss").strip() + + +def translate_mastr_column_name(normalized_mastr_column_name: str) -> Optional[str]: + translated = COLUMN_TRANSLATIONS.get(normalized_mastr_column_name) + if not translated: + log.warning(f"No translation available for column {normalized_mastr_column_name!r}") + return translated + + +def translate_mastr_table_name(normalized_mastr_table_name: str) -> Optional[str]: + translated = TABLE_TRANSLATIONS.get(normalized_mastr_table_name) + if not translated: + log.warning(f"No translation available for column {normalized_mastr_table_name!r}") + return translated class MastrColumnType(Enum): @@ -66,21 +83,26 @@ def from_xsd_type(cls, xsd_type: Union[XsdAtomicBuiltin, XsdAtomicRestriction]) @dataclass(frozen=True) class MastrColumnDescription: - name: str + original_name: str + normalized_name: str + english_name: Optional[str] type: MastrColumnType @classmethod def from_xsd_element(cls, xsd_element: xmlschema.XsdElement) -> "MastrColumnDescription": - name = normalize_column_name(xsd_element.name) + normalized_name = normalize_mastr_name(xsd_element.name) return cls( - name=name, + original_name=xsd_element.name, + normalized_name=normalized_name, + english_name=translate_mastr_column_name(normalized_name), type=MastrColumnType.from_xsd_type(xsd_element.type) ) @dataclass(frozen=True) class MastrTableDescription: - table_name: str + original_table_name: str + english_table_name: Optional[str] instance_name: str columns: tuple[MastrColumnDescription] @@ -104,8 +126,15 @@ def from_xml_schema(cls, schema: xmlschema.XMLSchema) -> "MastrTableDescription" for element in column_elements ) + # We don't normalize the table name because + # - it would introduce too much complexity to have two German table names + # - the normalization would leave the table name as is (at least as of Feb 2026) + original_table_name = root.name + english_table_name = translate_mastr_table_name(original_table_name) + return cls( - table_name=root.name, + original_table_name=original_table_name, + english_table_name=english_table_name, instance_name=main_element.name, columns=columns, ) diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index cfc3ac64..560022cc 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -20,7 +20,7 @@ from open_mastr.utils.config import setup_logger from open_mastr.utils.helpers import data_to_include_tables from open_mastr.utils.orm import tablename_mapping -from open_mastr.utils.xsd_tables import normalize_column_name +from open_mastr.utils.xsd_tables import normalize_mastr_name, translate_mastr_column_name from open_mastr.utils.sqlalchemy_tables import CatalogInteger, CatalogString from open_mastr.xml_download.utils_cleansing_bulk import cleanse_bulk_data @@ -43,7 +43,11 @@ def write_mastr_xml_to_database( include_tables = data_to_include_tables(data, mapping="write_xml") threads_data = [] - lower_mastr_table_to_db_table = {table_name.lower(): db_table for table_name, db_table in mastr_table_to_db_table.items()} + lower_mastr_table_to_db_table = { + db_table.info.get("original_name", mastr_table_name).lower(): db_table + for mastr_table_name, db_table + in mastr_table_to_db_table.items() + } with ZipFile(zipped_xml_file_path, "r") as f: files_list = correct_ordering_of_filelist(f.namelist()) @@ -590,13 +594,12 @@ def process_table_before_insertion( df["DatenQuelle"] = "bulk" df["DatumDownload"] = bulk_download_date - df = normalize_column_names_in_df(df) + df = align_df_column_names_to_db_column_names(df=df, db_table=db_table) if bulk_cleansing: catalog_columns = { column.name for column in db_table.columns - # TODO: Is it okay to rely so heavily on the SQLALchemy model to decide how to process the table? if isinstance(column.type, (CatalogInteger, CatalogString)) } df = cleanse_bulk_data( @@ -605,8 +608,24 @@ def process_table_before_insertion( return df -def normalize_column_names_in_df(df: pd.DataFrame) -> pd.DataFrame: - return df.rename(columns={column_name: normalize_column_name(column_name) for column_name in df.columns}) +def align_df_column_names_to_db_column_names( + df: pd.DataFrame, + db_table: Table, +) -> pd.DataFrame: + old_column_name_to_new_column_name = { + column_name: normalize_mastr_name(column_name) + for column_name in df.columns + } + if db_table.name == db_table.info.get("english_name"): + # Database is in English. We must translate the df columns + english_updates = {} + for old_column_name, normalized_column_name in old_column_name_to_new_column_name.items(): + if english_column_name := translate_mastr_column_name(normalized_column_name): + english_updates[old_column_name] = english_column_name + old_column_name_to_new_column_name.update(english_updates) + + renamed_df = df.rename(columns=old_column_name_to_new_column_name) + return renamed_df def add_table_to_sqlite_database( From f743960e1bfaaf00cfe709e4692e369feec380b8 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Wed, 4 Feb 2026 09:36:30 +0100 Subject: [PATCH 13/34] Generate SQLAlchemy core tables, not ORM models --- open_mastr/mastr.py | 43 +++---- open_mastr/utils/sqlalchemy_tables.py | 172 +++++++++++++------------- 2 files changed, 101 insertions(+), 114 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 5aef2685..4703e39e 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -1,11 +1,10 @@ import os from pathlib import Path -from sqlalchemy import inspect, create_engine, Engine, Table -from sqlalchemy.orm import DeclarativeBase from typing import Literal, Optional, Type, TypeVar, Union from collections.abc import Iterable, Mapping import pandas as pd +from sqlalchemy import inspect, create_engine, Engine, Table, MetaData # import xml dependencies from open_mastr.xml_download.utils_download_bulk import ( @@ -42,7 +41,7 @@ setup_logger, ) import open_mastr.utils.orm as orm -from open_mastr.utils.sqlalchemy_tables import make_sqlalchemy_model_from_mastr_table_description +from open_mastr.utils.sqlalchemy_tables import make_sqlalchemy_table_from_mastr_table_description # constants from open_mastr.utils.constants import TECHNOLOGIES, ADDITIONAL_TABLES @@ -50,8 +49,6 @@ # setup logger log = setup_logger() -# TODO: Repeating Type[DeclarativeBase_T] in function signatures is strange. There must be a better option. -DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) FALLBACK_DOCS_PATH = Path(__file__).parent / "resources" / "Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip" @@ -117,9 +114,9 @@ def generate_data_model( date: Optional[str] = None, catalog_value_as_str: bool = True, url: Optional[str] = None, - base: Optional[Type[DeclarativeBase_T]] = None, + metadata: Optional[MetaData] = None, english: bool = False, - ) -> dict[str, Type[DeclarativeBase_T]]: + ) -> dict[str, Table]: data = transform_data_parameter(data) date = parse_date_string(transform_date_parameter(date)) if url: @@ -141,7 +138,7 @@ def generate_data_model( zipped_docs_file_path=zipped_docs_file_path, data=data, catalog_value_as_str=catalog_value_as_str, - base=base, + metadata=metadata, english=english, ) except Exception as e: @@ -153,7 +150,7 @@ def generate_data_model( zipped_docs_file_path=FALLBACK_DOCS_PATH, data=data, catalog_value_as_str=catalog_value_as_str, - base=base, + metadata=metadata, english=english, ) @@ -273,17 +270,13 @@ def download( custom_docs_url = None if not mastr_table_to_db_table: - mastr_table_to_db_model = self.generate_data_model( + mastr_table_to_db_table = self.generate_data_model( data=data, date=bulk_download_date, catalog_value_as_str=bulk_cleansing, url=custom_docs_url, english=english, ) - mastr_table_to_db_table = { - mastr_table: db_model.__table__ - for mastr_table, db_model in mastr_table_to_db_model.items() - } log.info( "Ensuring database tables for MaStR are present:" " Dropping old tables if existing and creating new ones." @@ -387,27 +380,23 @@ def browse_available_downloads(self): def _generate_data_model_from_downloaded_docs( zipped_docs_file_path: Path, data: list[str], catalog_value_as_str: bool = True, - base: Optional[Type[DeclarativeBase_T]] = None, + metadata: Optional[MetaData] = None, english: bool = False, -): - if base is None: - - class MastrBase(DeclarativeBase): - pass - - base = MastrBase +) -> dict[str, Table]: + if metadata is None: + metadata = MetaData() mastr_table_descriptions = read_mastr_table_descriptions_from_xsd( zipped_docs_file_path=zipped_docs_file_path, data=data ) - mastr_table_to_db_model: dict[str, DeclarativeBase_T] = {} + mastr_table_to_db_table = {} for mastr_table_description in mastr_table_descriptions: - sqlalchemy_model = make_sqlalchemy_model_from_mastr_table_description( + sqlalchemy_model = make_sqlalchemy_table_from_mastr_table_description( table_description=mastr_table_description, catalog_value_as_str=catalog_value_as_str, - base=base, + metadata=metadata, english=english, ) - mastr_table_to_db_model[mastr_table_description.original_table_name] = sqlalchemy_model + mastr_table_to_db_table[mastr_table_description.original_table_name] = sqlalchemy_model - return mastr_table_to_db_model + return mastr_table_to_db_table diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 5abeb6f1..d648e3af 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -2,8 +2,7 @@ import logging from dataclasses import dataclass from typing import Any, Optional, Type, TypeVar, Union -from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime -from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped +from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime, Table, MetaData import xmlschema from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction @@ -65,17 +64,14 @@ } -DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) - - -def make_sqlalchemy_model_from_mastr_table_description( +def make_sqlalchemy_table_from_mastr_table_description( table_description: MastrTableDescription, catalog_value_as_str: bool, - base: Type[DeclarativeBase_T], + metadata: MetaData, english: bool = False, mixins: tuple[type, ...] = tuple(), include_download_metadata: bool = True, -) -> Type[DeclarativeBase_T]: +) -> Table: if english: if table_description.english_table_name: table_name = table_description.english_table_name @@ -89,49 +85,46 @@ def make_sqlalchemy_model_from_mastr_table_description( else: table_name = table_description.original_table_name - column_name_to_column_type = { - ( - column.english_name or column.normalized_name + primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS.get( + table_description.original_table_name, set() + ) + if primary_key_columns and english: + primary_key_columns = {translate_mastr_column_name(column) for column in primary_key_columns} + + db_column_kwargs = [] + for mastr_column in table_description.columns: + column_name = ( + mastr_column.english_name or mastr_column.normalized_name if english - else column.normalized_name - ): _get_sqlalchemy_type_for_mastr_column_type( - mastr_column_type=column.type, + else mastr_column.normalized_name + + ) + column_type = _get_sqlalchemy_type_for_mastr_column_type( + mastr_column_type=mastr_column.type, catalog_value_as_str=catalog_value_as_str, ) - for column in table_description.columns - } - column_kwargs = { - ( - column.english_name or column.normalized_name - if english - else column.normalized_name - ): { - "info": { - "original_name": column.original_name, - "normalized_name": column.normalized_name, - "english_name": column.english_name, + kwargs = ( + {"primary_key": True} + if column_name in primary_key_columns + else {"nullable": True} + ) + db_column_kwargs.append( + { + "name": column_name, + "type_": column_type, + "info": { + "original_name": mastr_column.original_name, + "normalized_name": mastr_column.normalized_name, + "english_name": mastr_column.english_name, + }, + **kwargs, } - } - for column in table_description.columns - } - - primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS.get( - table_description.original_table_name - ) - if primary_key_columns and english: - primary_key_columns = [translate_mastr_column_name(column) for column in primary_key_columns] - if not primary_key_columns or any( - column not in column_name_to_column_type - for column in primary_key_columns - ): - id_col_name = "OpenMastrId" - log.info( - f"Found no primary key column for table {table_description.original_table_name}." - f" Inserting custom ID column {id_col_name!r}" ) - # The integer column will be autoincrement by default since we make it a primary key. - column_name_to_column_type[id_col_name] = Integer - primary_key_columns = {id_col_name} + db_column_kwargs = _prepend_open_mastr_id_if_missing_primary_key( + expected_primary_key_columns=primary_key_columns, + db_column_kwargs=db_column_kwargs, + table_name=table_description.original_table_name, + ) if include_download_metadata: data_source_col_info = { @@ -139,60 +132,65 @@ def make_sqlalchemy_model_from_mastr_table_description( "english_name": "dataSource", } data_source_col_name = data_source_col_info["english_name" if english else "normalized_name"] - column_kwargs[data_source_col_name] = {"info": data_source_col_info} - column_name_to_column_type[data_source_col_name] = String + db_column_kwargs.append( + { + "name": data_source_col_name, + "type_": String, + "info": data_source_col_info, + } + ) download_date_col_info = { "normalized_name": "DatumDownload", "english_name": "downloadDate", } download_date_col_name = download_date_col_info["english_name" if english else "normalized_name"] - column_kwargs[download_date_col_name] = {"info": download_date_col_info} - column_name_to_column_type[download_date_col_name] = String - - return _make_sqlalchemy_model( - class_name=table_description.instance_name, - table_name=table_name, - column_name_to_column_type=column_name_to_column_type, - primary_key_columns=primary_key_columns, - base=base, - mixins=mixins, - table_kwargs={ - "info": { - "original_name": table_description.original_table_name, - "english_name": table_description.english_table_name, + db_column_kwargs.append( + { + "name": download_date_col_name, + "type_": String, + "info": download_date_col_info, } + ) + + db_columns = [Column(**kwargs) for kwargs in db_column_kwargs] + + return Table( + table_name, + metadata, + *db_columns, + info={ + "original_name": table_description.original_table_name, + "english_name": table_description.english_table_name, }, - column_kwargs=column_kwargs, ) -def _make_sqlalchemy_model( - class_name: str, +def _prepend_open_mastr_id_if_missing_primary_key( + expected_primary_key_columns: set[str], + db_column_kwargs: list[dict[str, Any]], table_name: str, - column_name_to_column_type: dict[str, Any], - primary_key_columns: set[str], - base: Type[DeclarativeBase_T], - mixins: tuple[type, ...] = tuple(), - table_kwargs: Optional[dict[str, Any]] = None, - column_kwargs: Optional[dict[str, dict[str, Any]]] = None, -) -> Type[DeclarativeBase_T]: # TODO: Is there a way to say that the returned model is a sub-type of DeclarativeBase_T? - namespace = { - "__tablename__": table_name, - "__annotations__": {}, +) -> list[dict[str, Any]]: + realized_primary_key_columns = { + kwargs["name"] + for kwargs in db_column_kwargs + if kwargs["name"] in expected_primary_key_columns } - if table_kwargs: - namespace["__table_args__"] = table_kwargs - - for column_name, column_type in column_name_to_column_type.items(): - kwargs = column_kwargs.get(column_name, {}) if column_kwargs else {} - if column_name in primary_key_columns: - kwargs.setdefault("primary_key", True) - else: - kwargs.setdefault("nullable", True) - namespace[column_name] = mapped_column(column_type, **kwargs) + if expected_primary_key_columns and ( + realized_primary_key_columns == expected_primary_key_columns + ): + return db_column_kwargs.copy() - bases = (base,) + mixins - return type(class_name, bases, namespace) + id_column_name = "OpenMastrId" + log.info( + f"Missing primary key column for table {table_name}." + f" Inserting custom ID column {id_column_name!r}" + ) + return [ + {"name": id_column_name, "type_": Integer, "primary_key": True, "autoincrement": True} + ] + [ + kwargs | {"primary_key": False, "nullable": True} + for kwargs in db_column_kwargs + ] _MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE = { From 4e248bfa061854cd15584cd98f3d2f0ab004ae33 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Wed, 4 Feb 2026 10:01:56 +0100 Subject: [PATCH 14/34] Add functions for formatting SQLAlchemy tables --- open_mastr/utils/sqlalchemy_tables.py | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index d648e3af..af2bac3d 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -220,3 +220,63 @@ def _get_sqlalchemy_type_for_mastr_column_type( return CatalogString if catalog_value_as_str else CatalogInteger return _MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE[mastr_column_type] + +def format_sqlalchemy_column(column: Column) -> str: + """Format SQLAlchemy column + + This is an almost exact copy of sqlalchemy.Column.__repr__ with the difference + that "info" is also formatted. + """ + kwarg = [] + if column.key != column.name: + kwarg.append("key") + if column.primary_key: + kwarg.append("primary_key") + if not column.nullable: + kwarg.append("nullable") + if column.onupdate: + kwarg.append("onupdate") + if column.default: + kwarg.append("default") + if column.server_default: + kwarg.append("server_default") + if column.comment: + kwarg.append("comment") + if column.info: + kwarg.append("info") + return "Column(%s)" % ", ".join( + [repr(column.name)] + + [repr(column.type)] + + [repr(x) for x in column.foreign_keys if x is not None] + + [repr(x) for x in column.constraints] + + [ + ( + column.table is not None + and "table=<%s>" % column.table.description + or "table=None" + ) + ] + + ["%s=%s" % (k, repr(getattr(column, k))) for k in kwarg] + ) + + +def format_sqlalchemy_table(table: Table) -> str: + """Format SQLAlchemy column + + This is an almost exact copy of sqlalchemy.Table.__repr__ with two differences: + - "info" is also formatted + - more whitespace (especially linebreaks) to make it more easily readable + """ + return "Table(\n %s\n)" % ",\n ".join( + [repr(table.name)] + + [repr(table.metadata)] + + [format_sqlalchemy_column(x) for x in table.columns] + + ["%s=%s" % (k, repr(getattr(table, k))) for k in ["info", "schema"]] + ) + + +def format_mastr_table_to_db_table(mastr_table_to_db_table: dict[str, Table]) -> str: + parts = [] + for mastr_table, db_table in mastr_table_to_db_table.items(): + parts.append(f"{mastr_table}: {format_sqlalchemy_table(db_table)}") + return "\n\n".join(parts) From 26899b8b6ec2dcb458c4ab394af8254486ee4e4f Mon Sep 17 00:00:00 2001 From: Simon Will Date: Wed, 4 Feb 2026 17:59:16 +0100 Subject: [PATCH 15/34] Fix bug where docs download failed for non-given URL (due to typo) --- .../xml_download/utils_download_bulk.py | 67 +++++++++++++------ 1 file changed, 47 insertions(+), 20 deletions(-) diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index 9bb8e02b..02551722 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -90,7 +90,7 @@ def gen_version( return f"{year}.{release}" -def gen_url( +def gen_xml_download_url( when: time.struct_time = time.localtime(), use_version="current", use_stichtag=False ) -> str: """Generates the download URL for the specified date. @@ -170,7 +170,7 @@ def _parse_date_string(date_str): # Determine the URL to use if url is None: # Generate URL from date string if no custom URL provided - url = gen_url(url_time) + url = gen_xml_download_url(url_time) # else: custom URL is already provided, use it as-is time_a = time.perf_counter() @@ -182,23 +182,23 @@ def _parse_date_string(date_str): now = time.localtime( time.mktime(url_time) - (24 * 60 * 60) ) # subtract 1 day from the date - url = gen_url(now) + url = gen_xml_download_url(now) r = requests.get(url, stream=True, headers={"User-Agent": USER_AGENT}) if r.status_code == 404: - url = gen_url(url_time, use_version="before") # Use lower MaStR Version + url = gen_xml_download_url(url_time, use_version="before") # Use lower MaStR Version log.warning( f"Download file was not found. Assuming that the version of MaStR has changed and retrying with download link: {url}" ) r = requests.get(url, stream=True, headers={"User-Agent": USER_AGENT}) if r.status_code == 404: - url = gen_url(url_time, use_version="after") # Use higher MaStR Version + url = gen_xml_download_url(url_time, use_version="after") # Use higher MaStR Version log.warning( f"Download file was not found. Assuming that the version of MaStR has changed and retrying with download link: {url}" ) r = requests.get(url, stream=True, headers={"User-Agent": USER_AGENT}) if r.status_code == 404: - url = gen_url( + url = gen_xml_download_url( url_time, use_stichtag=True ) # Use different url-structure for older downloads log.warning( @@ -600,6 +600,35 @@ def get_date_from_docs_url(url: str) -> Optional[str]: return None +def gen_docs_download_urls( + bulk_date_string: Optional[str] = None, + url: Optional[str] = None +) -> tuple[str, Optional[str]]: + newest_url = "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" + if url: + preferred_url = url + fallback_url = None + else: + if bulk_date_string: + dt = datetime.strptime(bulk_date_string, "%Y%m%d") + stichtag_url = ( + "https://download.marktstammdatenregister.de/Stichtag/" + "Dokumentation%20MaStR%20Gesamdatenexport%20" + f"{dt.day:0>2}-{dt.month:0>2}-{dt.year:0>4}.zip" + ) + if dt.date() == date.today(): + preferred_url = newest_url + fallback_url = stichtag_url + else: + preferred_url = stichtag_url + fallback_url = newest_url + else: + preferred_url = newest_url + fallback_url = None + + return preferred_url, fallback_url + + def download_documentation( save_path: str, bulk_date_string: Optional[str] = None, @@ -612,20 +641,18 @@ def download_documentation( save_path: str Full file path where the downloaded MaStR documentation zip file will be saved. """ - log.info("Starting the MaStR documentation download from marktstammdatenregister.de.") - if not url: - if bulk_date_string: - dt = datetime.strptime(bulk_date_string, "%Y%m%d") - url = ( - "https://download.markstammdatenregister.de/Stichtag/" - "Dokumentation%20MaStR%20Gesamdatenexport%20" - f"{dt.day:0>2}-{dt.month:0>2}-{dt.year:0>4}.zip" - ) - else: - url = "https://www.marktstammdatenregister.de/MaStRHilfe/files/gesamtdatenexport/Dokumentation%20MaStR%20Gesamtdatenexport.zip" + log.info("Starting MaStR documentation download from marktstammdatenregister.de.") + preferred_url, fallback_url = gen_docs_download_urls(bulk_date_string, url) time_a = time.perf_counter() - r = requests.get(url, headers={"User-Agent": USER_AGENT}) + log.info(f"Downloading MaStR documentation from {preferred_url}") + r = requests.get(preferred_url, headers={"User-Agent": USER_AGENT}) + if r.status_code == 404: + log.warning( + "MaStR documentation download file was not found." + f" Trying to download from {fallback_url}" + ) + r = requests.get(fallback_url, headers={"User-Agent": USER_AGENT}) r.raise_for_status() with open(save_path, "wb") as zfile: @@ -633,6 +660,6 @@ def download_documentation( time_b = time.perf_counter() log.info( - f"MaStR documentation download is finished. It took {round(time_b - time_a)} seconds." + f"MaStR documentation was successfully downloaded to {save_path!r}." + f" It took {round(time_b - time_a)} seconds." ) - log.info(f"MaStR was successfully downloaded to {save_path!r}.") From 661d9803d45dc39ee05616f85a8d5f8be2db645d Mon Sep 17 00:00:00 2001 From: Simon Will Date: Wed, 4 Feb 2026 18:35:48 +0100 Subject: [PATCH 16/34] Start fixing tests --- tests/test_helpers.py | 26 +++++++------------ tests/test_interactive_download.py | 4 ++- tests/test_mastr.py | 12 ++++++--- .../xml_download/test_utils_download_bulk.py | 24 ++++++++--------- .../test_utils_write_to_database.py | 7 ----- 5 files changed, 34 insertions(+), 39 deletions(-) diff --git a/tests/test_helpers.py b/tests/test_helpers.py index f635b387..11f7dc62 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -11,18 +11,12 @@ from open_mastr import Mastr from zipfile import ZipFile -from open_mastr.utils import orm -from open_mastr.utils.constants import TECHNOLOGIES, ADDITIONAL_TABLES, BULK_DATA -from open_mastr.utils.config import get_data_version_dir, create_data_dir +from open_mastr.utils.constants import BULK_DATA from open_mastr.utils.helpers import ( validate_parameter_format_for_download_method, validate_parameter_format_for_mastr_init, transform_data_parameter, data_to_include_tables, - session_scope, - create_db_query, - db_query_to_csv, - reverse_unit_type_map, delete_zip_file_if_corrupted, ) @@ -135,29 +129,29 @@ def test_transform_data_parameter(): def test_data_to_include_tables(): # Prepare - include_tables_list = [ + include_tables_list = { "anlageneegwind", "einheitenwind", "anlageneegwasser", "einheitenwasser", - ] - include_tables_str = ["einheitenstromverbraucher"] + } + include_tables_str = {"einheitenstromverbraucher"} - map_to_db_table_list = ["market_actors", "market_roles"] - map_to_db_table_str = ["locations_extended"] + map_to_db_table_list = {"market_actors", "market_roles"} + map_to_db_table_str = {"locations_extended"} # Assert assert include_tables_list == data_to_include_tables( - data=["wind", "hydro"], mapping="write_xml" + data={"wind", "hydro"}, mapping="write_xml" ) assert include_tables_str == data_to_include_tables( - data=["electricity_consumer"], mapping="write_xml" + data={"electricity_consumer"}, mapping="write_xml" ) assert map_to_db_table_list == data_to_include_tables( - data=["market"], mapping="export_db_tables" + data={"market"}, mapping="export_db_tables" ) assert map_to_db_table_str == data_to_include_tables( - data=["location"], mapping="export_db_tables" + data={"location"}, mapping="export_db_tables" ) diff --git a/tests/test_interactive_download.py b/tests/test_interactive_download.py index cdeaee5c..b9b8ba85 100644 --- a/tests/test_interactive_download.py +++ b/tests/test_interactive_download.py @@ -81,8 +81,10 @@ def test_list_available_downloads(mock_print, mock_get_links): mock_print.assert_any_call("=" * 80) mock_print.assert_any_call("AVAILABLE MAStR DOWNLOADS") mock_print.assert_any_call( - f"{'#':<4} {'Date':<12} {'Version':<10} {'Type':<12} {'URL'}" + "# Date Version Type XML URL" + " Docs URL" ) + mock_print.assert_any_call("Total: 4 downloads available") @patch("open_mastr.xml_download.utils_download_bulk.list_available_downloads") diff --git a/tests/test_mastr.py b/tests/test_mastr.py index c2355f49..3afba66f 100644 --- a/tests/test_mastr.py +++ b/tests/test_mastr.py @@ -1,5 +1,6 @@ import shutil from pathlib import Path +from typing import Optional from open_mastr.mastr import Mastr import os @@ -8,7 +9,6 @@ import pytest from os.path import expanduser import pandas as pd -from open_mastr.utils.constants import TRANSLATIONS from datetime import date, timedelta _xml_file_exists = False @@ -20,7 +20,7 @@ @pytest.fixture(scope="module") -def zipped_xml_file_path() -> str: +def zipped_xml_file_path() -> Optional[str]: zipped_xml_file_path = None for entry in os.scandir(path=_xml_folder_path): if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): @@ -44,6 +44,9 @@ def test_mastr_init(mastr: Mastr) -> None: @pytest.mark.dependency(name="bulk_downloaded") +@pytest.mark.skipif( + not _xml_file_exists, reason="The zipped xml file could not be found." +) def test_mastr_download(mastr: Mastr) -> None: mastr.download(data="wind") df_wind = pd.read_sql("EinheitenWind", con=mastr.engine) @@ -55,13 +58,16 @@ def test_mastr_download(mastr: Mastr) -> None: assert len(df_biomass) > 10000 mastr.download(data=["wind", "nuclear"]) + df_wind = pd.read_sql("EinheitenWind", con=mastr.engine) df_biomass = pd.read_sql("EinheitenBiomasse", con=mastr.engine) + df_nuclear = pd.read_sql("EinheitenKernkraft", con=mastr.engine) assert len(df_wind) > 10000 assert len(df_biomass) > 10000 + assert len(df_nuclear) > 1 @pytest.mark.dependency(depends=["bulk_downloaded"]) -def test_mastr_download_keep_old_files(mastr: Mastr, zipped_xml_file_path: str) -> None: +def test_mastr_download_keep_old_files(mastr: Mastr, zipped_xml_file_path: Optional[str]) -> None: file_today = zipped_xml_file_path yesterday = (date.today() - timedelta(days=1)).strftime("%Y%m%d") file_old = re.sub(r"\d{8}", yesterday, os.path.basename(file_today)) diff --git a/tests/xml_download/test_utils_download_bulk.py b/tests/xml_download/test_utils_download_bulk.py index 2a320bf0..db202b00 100644 --- a/tests/xml_download/test_utils_download_bulk.py +++ b/tests/xml_download/test_utils_download_bulk.py @@ -1,16 +1,16 @@ from datetime import date import time from open_mastr.xml_download.utils_download_bulk import ( - gen_url, + gen_xml_download_url, delete_xml_files_not_from_given_date, ) import os import shutil -def test_gen_url(): +def test_gen_xml_download_url(): when = time.strptime("2024-01-01", "%Y-%m-%d") - url = gen_url(when) + url = gen_xml_download_url(when) assert type(url) == str assert ( url @@ -18,7 +18,7 @@ def test_gen_url(): ) when = time.strptime("2024-04-01", "%Y-%m-%d") - url = gen_url(when) + url = gen_xml_download_url(when) assert type(url) == str assert ( url @@ -26,7 +26,7 @@ def test_gen_url(): ) when = time.strptime("2024-04-02", "%Y-%m-%d") - url = gen_url(when) + url = gen_xml_download_url(when) assert type(url) == str assert ( url @@ -34,7 +34,7 @@ def test_gen_url(): ) when = time.strptime("2024-10-01", "%Y-%m-%d") - url = gen_url(when) + url = gen_xml_download_url(when) assert type(url) == str assert ( url @@ -42,7 +42,7 @@ def test_gen_url(): ) when = time.strptime("2024-10-02", "%Y-%m-%d") - url = gen_url(when) + url = gen_xml_download_url(when) assert type(url) == str assert ( url @@ -50,7 +50,7 @@ def test_gen_url(): ) when = time.strptime("2024-12-31", "%Y-%m-%d") - url = gen_url(when) + url = gen_xml_download_url(when) assert type(url) == str assert ( url @@ -60,7 +60,7 @@ def test_gen_url(): # Tests for use_version parameter when = time.strptime("2024-12-31", "%Y-%m-%d") - url = gen_url(when, use_version="before") + url = gen_xml_download_url(when, use_version="before") assert type(url) == str assert ( url @@ -68,7 +68,7 @@ def test_gen_url(): ) when = time.strptime("2024-12-31", "%Y-%m-%d") - url = gen_url(when, use_version="after") + url = gen_xml_download_url(when, use_version="after") assert type(url) == str assert ( url @@ -76,7 +76,7 @@ def test_gen_url(): ) when = time.strptime("2024-04-02", "%Y-%m-%d") - url = gen_url(when, use_version="before") + url = gen_xml_download_url(when, use_version="before") assert type(url) == str assert ( url @@ -84,7 +84,7 @@ def test_gen_url(): ) when = time.strptime("2024-04-02", "%Y-%m-%d") - url = gen_url(when, use_version="after") + url = gen_xml_download_url(when, use_version="after") assert type(url) == str assert ( url diff --git a/tests/xml_download/test_utils_write_to_database.py b/tests/xml_download/test_utils_write_to_database.py index 3b26ef42..d1eb7dfc 100644 --- a/tests/xml_download/test_utils_write_to_database.py +++ b/tests/xml_download/test_utils_write_to_database.py @@ -36,7 +36,6 @@ extract_xml_table_name, is_date_column, is_first_file, - is_table_relevant, process_table_before_insertion, read_xml_file, add_table_to_non_sqlite_database, @@ -105,12 +104,6 @@ def text_extract_sql_table_name(): assert extract_sql_table_name(xml_table_name) == "network_connection_points" -def test_is_table_relevant(): - include_tables = ["anlagengasspeicher", "marktakteure"] - assert is_table_relevant("anlagengasspeicher", include_tables) is True - assert is_table_relevant("netzanschlusspunkte", include_tables) is False - - def test_is_first_file(): assert is_first_file("EinheitenKernkraft.xml") is True assert is_first_file("EinheitenKernkraft_1.xml") is True From 9e1aeccfc66f0159bba0df3c7b11f86d9f55b77b Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 5 Feb 2026 09:47:55 +0100 Subject: [PATCH 17/34] Add docstrings --- open_mastr/mastr.py | 144 ++++++++++++++++++++------ open_mastr/utils/sqlalchemy_tables.py | 11 ++ 2 files changed, 121 insertions(+), 34 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 4703e39e..5569d5c5 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -1,6 +1,6 @@ import os from pathlib import Path -from typing import Literal, Optional, Type, TypeVar, Union +from typing import Any, Literal, Optional, Type, TypeVar, Union from collections.abc import Iterable, Mapping import pandas as pd @@ -53,8 +53,7 @@ class Mastr: - """ - `Mastr` is used to download the MaStR database and keep it up-to-date. + """`Mastr` is used to download the MaStR database. An SQL database is used to mirror the MaStR database. It is filled by downloading and parsing the MaStR via bulk download. @@ -73,24 +72,18 @@ class Mastr: engine : {'sqlite', sqlalchemy.engine.Engine}, optional Defines the engine of the database where the MaStR is mirrored to. Default is 'sqlite'. - connect_to_translated_db: boolean, optional - Allows connection to an existing translated database. Default is 'False'. - Only for 'sqlite'-type engines. - - - + output_dir : Top-level directory of produced output (downloaded files, created database) + Default is the content of env var OUTPUT_PATH, else ~/.open-MaStR """ def __init__( self, engine: Union[Engine, Literal["sqlite"]] = "sqlite", output_dir: Optional[Union[str, Path]] = None, - home_dir: Optional[Union[str, Path]] = None, ) -> None: validate_parameter_format_for_mastr_init(engine) self.output_dir = output_dir or get_output_dir() - self.home_directory = home_dir or get_project_home_dir() self._sqlite_folder_path = os.path.join(self.output_dir, "data", "sqlite") @@ -112,11 +105,55 @@ def generate_data_model( self, data: Optional[list[str]] = None, date: Optional[str] = None, - catalog_value_as_str: bool = True, url: Optional[str] = None, metadata: Optional[MetaData] = None, + catalog_value_as_str: bool = True, english: bool = False, ) -> dict[str, Table]: + """Generate data model from MaStR documentation. + + Download the MaStR documentation, extract the XSD files that describe the format of the + MaStR XML files, and generate SQLAlchemy tables from those XSD files. The tables are not + created in the database. + + Parameters + ---------- + data : str or list or None, optional + Specifies which tables to generate. See the `download` method for details. + + date : None or `datetime.datetime` or str, optional + Specifies date for the docs download. See the `download` method for details. + + url : str or None, optional + The URL to download the MaStR documentation from. If this is given, the `date` parameter + is not used. + + metadata : SQLAlchemy MetaData or None, optional + SQLAlchemy MetaData object to use for the tables. If not given, a new MetaData object + is created. + + catalog_value_as_str : bool, optional + If set to True, columns which contain values from the MaStR catalog (Katalogwerte) are + generated as string/VARCHAR columns. If set to False, they are generated as int columns. + This should usually be set to True if you want to use the `bulk_cleansing` option of + the `download` method to convert the catalog IDs to their values. + Defaults to True. + + english: bool, optional + If set to True, table and column names are translated from their MaStR name to an + English name if open-mastr already has a translation stored for that table/column. + + The English name and original MaStR name are always stored in the table's/column's + `info` attribute. + + Defaults to False. + + Returns + ------- + dict from str to SQLAlchemy Table + Dict mapping original MaStR table name to SQLAlchemy table + Example: {"EinheitenWind": Table(...), "EinheitenSolar": Table(...), ...} + """ data = transform_data_parameter(data) date = parse_date_string(transform_date_parameter(date)) if url: @@ -156,19 +193,18 @@ def generate_data_model( def download( self, - method="bulk", + method: Literal["bulk"] = "bulk", data=None, date=None, - bulk_cleansing=True, - keep_old_downloads: bool = False, select_date_interactively: bool = False, + bulk_cleansing: bool = True, + keep_old_downloads: bool = False, mastr_table_to_db_table: Optional[Mapping[str, Table]] = None, alter_database_tables: bool = True, english: bool = False, - **kwargs, + **kwargs: Any, ) -> None: - """ - Downloads the MaStR registry and writes it to a local database. + """Download the MaStR registry and write it to a local database. Parameters ---------- @@ -208,26 +244,56 @@ def download( date : None or `datetime.datetime` or str, optional - | date | description | - |-----------------------|------| - | "today" | latest files are downloaded from marktstammdatenregister.de | - | "20230101" | If file from this date exists locally, it is used. Otherwise it throws an error (You can only receive todays data from the server) | - | "existing" | Deprecated since 0.16, see [#616](https://github.com/OpenEnergyPlatform/open-MaStR/issues/616#issuecomment-3089377062) | - | None | set date="today" | + | date | description | + |------------|-------------| + | "20230101" | If file from this date exists locally, it is used. Otherwise, it tries to get it from markstammdatenregister.de | + | "today" | Shorthand for specify today's date in YYYYMMDD format | + | None | set date="today" | + | "existing" | Deprecated since 0.16, see [#616](https://github.com/OpenEnergyPlatform/open-MaStR/issues/616#issuecomment-3089377062) | + + Defaults to `None`. - Default to `None`. select_date_interactively : bool, optional If set to True, the user will be presented with a list of available download dates from the MaStR website and can interactively select which date to download. This allows downloading historical data instead of just the latest available data. When True, the `date` parameter is ignored. Defaults to False. + bulk_cleansing : bool, optional If set to True, data cleansing is applied after the download (which is recommended). In its original format, many entries in the MaStR are encoded with IDs. Columns like `state` or `fueltype` do not contain entries such as "Hessen" or "Braunkohle", but instead only contain IDs. Cleansing replaces these IDs with their corresponding original entries. - keep_old_downloads: bool - If set to True, prior downloaded MaStR zip files will be kept. + Defaults to True. + + keep_old_downloads : bool, optional + If set to True, prior downloaded MaStR zip files will be kept. Defaults to False. + + mastr_table_to_db_table : Mapping from MaStR table name (str) to SQLALchemy Table, or None, optional + If given, downloaded data from a MaStR file will be stored in the SQLAlchemy table + associated with that file. The tables must exist already; they are not created. + Example: {"EinheitenWind": Table(...), "EinheitenSolar": Table(...), ...} + + If None / not given, the mapping will be generated by calling + `Mastr.generate_data_model` (and thus downloading the MaStR documentation). In this + case, the tables will be created. + + Defaults to None. + + alter_database_tables : bool, optional + If set to True, ALTER statememts to add database columns will be issued if there are + fields in the downloaded XML that are not yet present in the database tables that have + been generated or given. If set to False and such unexpected fields are found, those + fields are not imported. + + Defaults to True. + + english : bool = False, optional, + If set to True and no `mastr_table_to_db_table` mapping is given, the generated tables + will have English names and English columns. (Some untranslated German names may remain + if they haven't been added to open-mastr's translation info yet.) + + Defaults to False. """ if method == "API": log.warning( @@ -330,9 +396,19 @@ def to_csv( self, db_table_names: Iterable[str] = None, chunksize: int = 500000, - limit: int = None, ) -> None: - log.info(f"Exporting the following database tables to CSV: {', '.join(db_table_names)}") + """Export tables from existing database to CSV. + + Parameters + ---------- + db_table_names : Iterable of str or None, optional + The names of the database tables to export. If None, all tables in the database will be + exported. Defaults to None. + + chunksize : int, optional + Number of rows to retrieve from the database before dumping them to the CSV file. + Defaults to 500000. + """ data_path = get_data_version_dir() os.makedirs(data_path, exist_ok=True) @@ -341,6 +417,7 @@ def to_csv( if db_table_names is None: db_table_names = existing_table_names + log.info(f"Exporting the following database tables to CSV: {', '.join(db_table_names)}") with self.engine.connect() as conn: for requested_table_name in db_table_names: if requested_table_name not in existing_table_names: @@ -355,23 +432,22 @@ def to_csv( ): chunk.to_csv(csv_path, mode="a", index=False, header=i == 0) + def browse_available_downloads(self) -> list[dict[str, Optional[str]]]: + """Browse available MaStR downloads from the website without starting the download. - def browse_available_downloads(self): - """ - Browse available MaStR downloads from the website without starting the download. This method fetches and displays all available download dates from the MaStR website, allowing users to see what historical data is available before deciding to download. + Returns ------- list of dict List of available downloads with date, version, and type information. + Examples -------- >>> from open_mastr import Mastr >>> db = Mastr() >>> available_downloads = db.browse_available_downloads() - >>> # User can then choose a date and download with: - >>> # db.download(select_date_interactively=True) """ log.info("Browsing available MaStR downloads...") return list_available_downloads() diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index af2bac3d..9d4e960f 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -276,6 +276,17 @@ def format_sqlalchemy_table(table: Table) -> str: def format_mastr_table_to_db_table(mastr_table_to_db_table: dict[str, Table]) -> str: + """Format mapping from MaStR table to SQLAlchemy table. + + Parameters + ---------- + mastr_table_to_db_table : Mapping from MaStR table name (str) to SQLALchemy Table + + Returns + ------- + str + The formatted mapping as a string. + """ parts = [] for mastr_table, db_table in mastr_table_to_db_table.items(): parts.append(f"{mastr_table}: {format_sqlalchemy_table(db_table)}") From 5c7e5be9af5e2a5b489971232810e35184ffc05f Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 5 Feb 2026 10:21:21 +0100 Subject: [PATCH 18/34] Remove unused code --- open_mastr/__init__.py | 2 + open_mastr/mastr.py | 10 +- open_mastr/utils/helpers.py | 386 +------ open_mastr/utils/orm.py | 1026 ----------------- open_mastr/utils/sqlalchemy_tables.py | 6 +- open_mastr/utils/xsd_tables.py | 2 +- open_mastr/xml_download/parse.py | 144 --- open_mastr/xml_download/schema.py | 49 - .../xml_download/utils_write_to_database.py | 29 +- open_mastr/xml_download/xsd_to_table.py | 61 - tests/conftest.py | 47 - 11 files changed, 28 insertions(+), 1734 deletions(-) delete mode 100644 open_mastr/utils/orm.py delete mode 100644 open_mastr/xml_download/parse.py delete mode 100644 open_mastr/xml_download/schema.py delete mode 100644 open_mastr/xml_download/xsd_to_table.py delete mode 100644 tests/conftest.py diff --git a/open_mastr/__init__.py b/open_mastr/__init__.py index 819ebc17..65b8517b 100644 --- a/open_mastr/__init__.py +++ b/open_mastr/__init__.py @@ -3,4 +3,6 @@ setup_project_home() # This import should be called after the setup project home, since .open_mastr folder must be defined first +# TODO: Why must we create the folder before importing?? from .mastr import Mastr # noqa: E402 ignore import order warning of flake8 +from .utils.sqlalchemy_tables import format_mastr_table_to_db_table # noqa: E402 diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 5569d5c5..3fad53b6 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -18,7 +18,10 @@ from open_mastr.xml_download.utils_write_to_database import ( write_mastr_xml_to_database, ) -from open_mastr.utils.xsd_tables import MastrTableDescription, read_mastr_table_descriptions_from_xsd +from open_mastr.utils.xsd_tables import ( + MastrTableDescription, + read_mastr_table_descriptions_from_xsd, +) from open_mastr.utils.helpers import ( validate_parameter_format_for_download_method, @@ -27,16 +30,11 @@ transform_data_parameter, parse_date_string, transform_date_parameter, - data_to_include_tables, - create_db_query, - db_query_to_csv, - reverse_fill_basic_units, delete_zip_file_if_corrupted, create_database_engine, ) from open_mastr.utils.config import ( get_data_version_dir, - get_project_home_dir, get_output_dir, setup_logger, ) diff --git a/open_mastr/utils/helpers.py b/open_mastr/utils/helpers.py index 710a621e..ab6a4e57 100644 --- a/open_mastr/utils/helpers.py +++ b/open_mastr/utils/helpers.py @@ -37,17 +37,6 @@ MASTR_TIMEZONE = ZoneInfo("Europe/Berlin") -def chunks(lst, n): - """Yield successive n-sized chunks from lst. - - `Credits - `_ - """ - length = lst.count() if isinstance(lst, Query) else len(lst) - for i in range(0, length, n): - yield lst[i : i + n] - - def create_database_engine(engine, sqlite_db_path) -> sqlalchemy.engine.Engine: if engine == "sqlite": sqlite_database_path = os.environ.get( @@ -156,6 +145,8 @@ def transform_data_parameter(data, **kwargs): if isinstance(data, str): data = [data] elif data is None: + # TODO: This should be adapted so that all tables are downloaded if no data is given. + # Right now, it would skip new tables. data = BULK_DATA return data @@ -195,379 +186,24 @@ def session_scope(engine): session.close() -def data_to_include_tables(data: list, mapping: str = None) -> set[str]: +def data_to_include_tables(data: list[str]) -> set[str]: """ - Convert user input 'data' to the list 'include_tables'. - It contains file names from zipped bulk download, if mapping="write_xml". - It contains database table names, if mapping="export_db_tables". + Convert user input 'data' to the set 'include_tables'. + It contains file names from zipped bulk download. Parameters ---------- data: list The user input for data selection - mapping: str - Specify the mapping dict for the function and thus the list output. Returns ------- set - Set of file names | Set of database table names - ------- - - """ - if mapping == "write_xml": - # Map data selection to include tables in xml - include_tables = { - table for tech in data for table in BULK_INCLUDE_TABLES_MAP[tech] - } - return include_tables - - if mapping == "export_db_tables": - # Map data selection to include tables for csv export - include_tables = { - table - for possible_data_bulk in data - for table in BULK_ADDITIONAL_TABLES_CSV_EXPORT_MAP[possible_data_bulk] - } - return include_tables - - raise NotImplementedError( - "This function is only implemented for 'write_xml' and 'export_db_tables', " - "please specify when calling the function." - ) - - -def reverse_unit_type_map(): - return {v: k for k, v in UNIT_TYPE_MAP.items()} - - -# EXPORT RELEVANT FUNCTIONS - - -def create_db_query( - tech=None, - additional_table=None, - additional_data=["unit_data", "eeg_data", "kwk_data", "permit_data"], - limit=None, - engine=None, -): + Set of file names """ - Create a database query to export a snapshot MaStR data from database to CSV. - - For technologies, during the query creation, additional available data is joined on - list of basic units. A query for a single technology is created separately because - of multiple non-overlapping columns. Duplicate columns for a single technology - (a results on data from different sources) are suffixed. - - The data in the database probably has duplicates because - of the history how data was collected in the - Marktstammdatenregister. - - Along with the data, metadata is saved in the file `datapackage.json`. - - Parameters - ---------- - technology: `list` of `str` - See list of available technologies in - `open_mastr.utils.constants.TECHNOLOGIES` - additional_table: `list` of `str` - See list of available technologies or additional tables in - `open_mastr.utils.constants.ADDITIONAL_TABLES` - engine: - User-defined database engine. - limit: int - Limit number of rows. - additional_data: `list` - Defaults to "export all available additional data" which is: - `["unit_data", "eeg_data", "kwk_data", "permit_data"]`. - chunksize: int or None - Defines the chunksize of the tables export. Default to 500.000 which is roughly 2.5 GB. - """ - - renaming = column_renaming() - - unit_type_map_reversed = reverse_unit_type_map() - - with session_scope(engine=engine) as session: - if tech: - # Select orm tables for specified additional_data. - orm_tables = { - f"{dat}": getattr(orm, ORM_MAP[tech].get(dat, "KeyNotAvailable"), None) - for dat in additional_data - } - - # Filter for possible orm-additional_data combinations (not None) - orm_tables = {k: v for k, v in orm_tables.items() if v is not None} - - # Build query based on available tables for tech and user input; always use basic units - subtables = partially_suffixed_columns( - orm.BasicUnit, - renaming["basic_data"]["columns"], - renaming["basic_data"]["suffix"], - ) - - # Extend table with columns from selected additional_data orm - for addit_data_type, addit_data_orm in orm_tables.items(): - subtables.extend( - partially_suffixed_columns( - addit_data_orm, - renaming[addit_data_type]["columns"], - renaming[addit_data_type]["suffix"], - ) - ) - - query_tech = Query(subtables, session=session) - - # Define joins based on available tables for data and user input - if "unit_data" in orm_tables: - query_tech = query_tech.join( - orm_tables["unit_data"], - orm.BasicUnit.EinheitMastrNummer - == orm_tables["unit_data"].EinheitMastrNummer, - isouter=True, - ) - if "eeg_data" in orm_tables: - query_tech = query_tech.join( - orm_tables["eeg_data"], - orm.BasicUnit.EegMastrNummer - == orm_tables["eeg_data"].EegMastrNummer, - isouter=True, - ) - if "kwk_data" in orm_tables: - query_tech = query_tech.join( - orm_tables["kwk_data"], - orm.BasicUnit.KwkMastrNummer - == orm_tables["kwk_data"].KwkMastrNummer, - isouter=True, - ) - if "permit_data" in orm_tables: - query_tech = query_tech.join( - orm_tables["permit_data"], - orm.BasicUnit.GenMastrNummer - == orm_tables["permit_data"].GenMastrNummer, - isouter=True, - ) - - # Restricted to technology - query_tech = query_tech.filter( - orm.BasicUnit.Einheittyp == unit_type_map_reversed[tech] - ) - - # Limit returned rows of query - if limit: - query_tech = query_tech.limit(limit) - - return query_tech - - if additional_table: - orm_table = getattr(orm, ORM_MAP[additional_table], None) - - query_additional_tables = Query(orm_table, session=session) - - # Limit returned rows of query - if limit: - query_additional_tables = query_additional_tables.limit(limit) - - return query_additional_tables - - -# At the time of commenting this, the call of this function in mastr.py was already -# commented out for more than a year - -# def save_metadata(data: list = None, engine=None) -> None: -# """ -# Save metadata during csv export. -# -# Parameters -# ---------- -# data: list -# List of exported technologies for which metadata is needed. -# engine: -# User-defined database engine. -# -# Returns -# ------- -# -# """ -# data_path = get_data_version_dir() -# filenames = get_filenames() -# metadata_file = os.path.join(data_path, filenames["metadata"]) -# unit_type_map_reversed = reverse_unit_type_map() -# -# with session_scope(engine=engine) as session: -# # check for latest db entry for exported technologies -# mastr_technologies = [unit_type_map_reversed[tech] for tech in data] -# newest_date = ( -# session.query(orm.BasicUnit.DatumLetzteAktualisierung) -# .filter(orm.BasicUnit.Einheittyp.in_(mastr_technologies)) -# .order_by(orm.BasicUnit.DatumLetzteAktualisierung.desc()) -# .first()[0] -# ) -# -# metadata = create_datapackage_meta_json(newest_date, data, json_serialize=False) -# -# with open(metadata_file, "w", encoding="utf-8") as f: -# json.dump(metadata, f, ensure_ascii=False, indent=4) -# -# log.info("Saved metadata") - - -def reverse_fill_basic_units(technology=None, engine=None): - """ - The basic_units table is empty after bulk download. - To enable csv export, the table is filled from extended - tables reversely. - - .. warning:: - The basic_units table will be dropped and then recreated. - Returns ------- - - Parameters - ---------- - technology: list of str - Available technologies are in open_mastr.Mastr.to_csv() - """ - - with session_scope(engine=engine) as session: - # Empty the basic_units table, because it will be filled entirely from extended tables - session.query(getattr(orm, "BasicUnit", None)).delete() - - for tech in tqdm(technology, desc="Performing reverse fill of basic units: "): - # Get the class of extended table - unit_data_orm = getattr(orm, ORM_MAP[tech]["unit_data"], None) - basic_unit_column_names = [ - column.name - for column in getattr(orm, "BasicUnit", None).__mapper__.columns - ] - - unit_columns_to_reverse_fill = [ - column - for column in unit_data_orm.__mapper__.columns - if column.name in basic_unit_column_names - ] - unit_column_names_to_reverse_fill = [ - column.name for column in unit_columns_to_reverse_fill - ] - - unit_type_map_reversed = reverse_unit_type_map() - - # Add Einheittyp artificially - unit_typ = "'" + unit_type_map_reversed.get(tech, None) + "'" - unit_columns_to_reverse_fill.append( - literal_column(unit_typ).label("Einheittyp") - ) - unit_column_names_to_reverse_fill.append("Einheittyp") - - # Build query - query = Query(unit_columns_to_reverse_fill, session=session) - insert_query = insert(orm.BasicUnit).from_select( - unit_column_names_to_reverse_fill, query - ) - - session.execute(insert_query) - - -def partially_suffixed_columns(mapper, column_names, suffix): - """ - Add a suffix to a subset of ORM map tables for a query - - Parameters - ---------- - mapper: - SQLAlchemy ORM table mapper - column_names: list - Names of columns to be suffixed - suffix: str - Suffix that is append like + "_" + suffix - - Returns - ------- - list - List of ORM table mapper instance - """ - columns = list(mapper.__mapper__.columns) - return [ - _.label(f"{_.name}_{suffix}") if _.name in column_names else _ for _ in columns - ] - - -def db_query_to_csv(db_query, data_table: str, chunksize: int) -> None: - """ - Export database query to CSV file - - Save CSV files to the respective data version directory, see - :meth:`open_mastr.utils.config.get_data_version_dir`. - - Parameters - ---------- - db_query: - QueryORM-level SQL construction object that holds tables for export. - data_table: str - See list of available technologies or additional tables in - `open_mastr.utils.constants.TECHNOLOGIES` and - `open_mastr.utils.constants.ADDITIONAL_TABLES` - chunksize: int - Defines the size of the chunks that are saved to csv. - Useful when export fails due to memory issues. - """ - data_path = get_data_version_dir() - filenames = get_filenames() - - # Set export settings per table type - if data_table in TECHNOLOGIES: - index = True - index_col = "EinheitMastrNummer" - index_label = "EinheitMastrNummer" - csv_file = os.path.join(data_path, filenames["raw"][data_table]["joined"]) - if data_table in ADDITIONAL_TABLES: - index = False - index_col = None - index_label = None - csv_file = os.path.join( - data_path, filenames["raw"]["additional_table"][data_table] - ) - - with db_query.session.bind.connect() as con: - with con.begin(): - # Read data into pandas.DataFrame in chunks of max. 500000 rows of ~2.5 GB RAM - for chunk_number, chunk_df in enumerate( - pd.read_sql( - sql=db_query.statement, - con=con, - index_col=index_col, - chunksize=chunksize, - ) - ): - # For debugging purposes, check RAM usage of chunk_df - # chunk_df.info(memory_usage='deep') - - # Make sure no duplicate column names exist - assert not any(chunk_df.columns.duplicated()) - - # Remove newline statements from certain strings - if data_table in TECHNOLOGIES: - for col in ["Aktenzeichen", "Behoerde"]: - chunk_df[col] = chunk_df[col].str.replace("\r", "") - - if not chunk_df.empty: - if chunk_number == 0: - chunk_df.to_csv( - csv_file, - index=index, - index_label=index_label, - encoding="utf-8", - ) - log.info(f"Created csv: {csv_file.split('/')[-1:]} ") - else: - chunk_df.to_csv( - csv_file, - mode="a", - header=False, - index=index, - index_label=index_label, - encoding="utf-8", - ) - log.info( - f"Appended {len(chunk_df)} rows to: {csv_file.split('/')[-1:]}" - ) + # Map data selection to include tables in xml + include_tables = { + table for tech in data for table in BULK_INCLUDE_TABLES_MAP[tech] + } + return include_tables def delete_zip_file_if_corrupted(save_path: str): diff --git a/open_mastr/utils/orm.py b/open_mastr/utils/orm.py deleted file mode 100644 index 70890ecb..00000000 --- a/open_mastr/utils/orm.py +++ /dev/null @@ -1,1026 +0,0 @@ -from sqlalchemy.orm import DeclarativeBase -from sqlalchemy import ( - Column, - Integer, - String, - Float, - Sequence, - DateTime, - Boolean, - func, - Date, - JSON, -) - - -class Base(DeclarativeBase): - pass - - -class ParentAllTables(object): - DatenQuelle = Column(String) - DatumDownload = Column(Date) - - -class BasicUnit(Base): - __tablename__ = "basic_units" - - EinheitMastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - Name = Column(String) - Einheitart = Column(String) - Einheittyp = Column(String) - Standort = Column(String) - Bruttoleistung = Column(Float) - Erzeugungsleistung = Column(Float) - EinheitBetriebsstatus = Column(String) - Anlagenbetreiber = Column(String) - EegMastrNummer = Column(String) - KwkMastrNummer = Column(String) - SpeMastrNummer = Column(String) - GenMastrNummer = Column(String) - BestandsanlageMastrNummer = Column(String) - NichtVorhandenInMigriertenEinheiten = Column(String) - EinheitSystemstatus = Column(String) - - -class Extended(object): - NetzbetreiberMastrNummer = Column(String) - Registrierungsdatum = Column(Date) - EinheitMastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - LokationMastrNummer = Column(String) - NetzbetreiberpruefungStatus = Column(String) - NetzbetreiberpruefungDatum = Column(Date) - AnlagenbetreiberMastrNummer = Column(String) - Land = Column(String) - Bundesland = Column(String) - Landkreis = Column(String) - Gemeinde = Column(String) - Gemeindeschluessel = Column(String) - Postleitzahl = Column(String) - Gemarkung = Column(String) - FlurFlurstuecknummern = Column(String) - Strasse = Column(String) - StrasseNichtGefunden = Column(Boolean) - Hausnummer = Column(String) - HausnummerNichtGefunden = Column(Boolean) - Adresszusatz = Column(String) - Ort = Column(String) - Laengengrad = Column(Float) - Breitengrad = Column(Float) - UtmZonenwert = Column(String) - UtmEast = Column(Float) - UtmNorth = Column(Float) - GaussKruegerHoch = Column(Float) - GaussKruegerRechts = Column(Float) - Meldedatum = Column(Date) - GeplantesInbetriebnahmedatum = Column(Date) - Inbetriebnahmedatum = Column(Date) - DatumEndgueltigeStilllegung = Column(Date) - DatumBeginnVoruebergehendeStilllegung = Column(Date) - DatumBeendigungVorlaeufigenStilllegung = Column(Date) - DatumWiederaufnahmeBetrieb = Column(Date) - EinheitSystemstatus = Column(String) - EinheitBetriebsstatus = Column(String) - BestandsanlageMastrNummer = Column(String) - NichtVorhandenInMigriertenEinheiten = Column(Boolean) - AltAnlagenbetreiberMastrNummer = Column(String) - DatumDesBetreiberwechsels = Column(Date) - DatumRegistrierungDesBetreiberwechsels = Column(Date) - NameStromerzeugungseinheit = Column(String) - Weic = Column(String) - WeicDisplayName = Column(String) - Kraftwerksnummer = Column(String) - Energietraeger = Column(String) - Bruttoleistung = Column(Float) - Nettonennleistung = Column(Float) - AnschlussAnHoechstOderHochSpannung = Column(Boolean) - Schwarzstartfaehigkeit = Column(Boolean) - Inselbetriebsfaehigkeit = Column(Boolean) - Einsatzverantwortlicher = Column(String) - FernsteuerbarkeitNb = Column(Boolean) - FernsteuerbarkeitDv = Column(Boolean) - FernsteuerbarkeitDr = Column(Boolean) - Einspeisungsart = Column(String) - PraequalifiziertFuerRegelenergie = Column(Boolean) - GenMastrNummer = Column(String) - Netzbetreiberzuordnungen = Column(String) - ReserveartNachDemEnWG = Column(String) - DatumUeberfuehrungInReserve = Column(Date) - # from bulk download - Hausnummer_nv = Column(Boolean) - Weic_nv = Column(Boolean) - Kraftwerksnummer_nv = Column(Boolean) - - -class WindExtended(Extended, ParentAllTables, Base): - __tablename__ = "wind_extended" - - # wind specific attributes - NameWindpark = Column(String) - Lage = Column(String) - Seelage = Column(String) - ClusterOstsee = Column(String) - ClusterNordsee = Column(String) - Hersteller = Column(String) - HerstellerId = Column(String) - Technologie = Column(String) - Typenbezeichnung = Column(String) - Nabenhoehe = Column(Float) - Rotordurchmesser = Column(Float) - Rotorblattenteisungssystem = Column(Boolean) - AuflageAbschaltungLeistungsbegrenzung = Column(Boolean) - AuflagenAbschaltungSchallimmissionsschutzNachts = Column(Boolean) - AuflagenAbschaltungSchallimmissionsschutzTagsueber = Column(Boolean) - AuflagenAbschaltungSchattenwurf = Column(Boolean) - AuflagenAbschaltungTierschutz = Column(Boolean) - AuflagenAbschaltungEiswurf = Column(Boolean) - AuflagenAbschaltungSonstige = Column(Boolean) - Wassertiefe = Column(Float) - Kuestenentfernung = Column(Float) - Buergerenergie = Column(Boolean) - Nachtkennzeichen = Column(Boolean) - EegMastrNummer = Column(String) - WindAnLandOderAufSee = Column(String) - TechnologieFlugwind = Column(String) - Flughoehe = Column(Float) - Flugradius = Column(Float) - - -class SolarExtended(Extended, ParentAllTables, Base): - __tablename__ = "solar_extended" - - ZugeordneteWirkleistungWechselrichter = Column(Float) - GemeinsamerWechselrichterMitSpeicher = Column(String) - AnzahlModule = Column(Integer) - Lage = Column(String) - Leistungsbegrenzung = Column(String) - EinheitlicheAusrichtungUndNeigungswinkel = Column(Boolean) - Hauptausrichtung = Column(String) - HauptausrichtungNeigungswinkel = Column(String) - Nebenausrichtung = Column(String) - NebenausrichtungNeigungswinkel = Column(String) - InAnspruchGenommeneFlaeche = Column(Float) - ArtDerFlaeche = Column(String) - InAnspruchGenommeneLandwirtschaftlichGenutzteFlaeche = Column(Float) - Nutzungsbereich = Column(String) - Buergerenergie = Column(Boolean) - EegMastrNummer = Column(String) - ArtDerFlaecheIds = Column(String) - ArtDerSolaranlage = Column(String) - Zaehlernummer = Column(String) - InAnspruchGenommeneAckerflaeche = Column(Float) - SpeicherAmGleichenOrt = Column(String) - - -class BiomassExtended(Extended, ParentAllTables, Base): - __tablename__ = "biomass_extended" - - Hauptbrennstoff = Column(String) - Biomasseart = Column(String) - Technologie = Column(String) - EegMastrNummer = Column(String) - KwkMastrNummer = Column(String) - - -class CombustionExtended(Extended, ParentAllTables, Base): - __tablename__ = "combustion_extended" - - NameKraftwerk = Column(String) - NameKraftwerksblock = Column(String) - DatumBaubeginn = Column(Date) - SteigerungNettonennleistungKombibetrieb = Column(Float) - AnlageIstImKombibetrieb = Column(Boolean) - MastrNummernKombibetrieb = Column(String) - NetzreserveAbDatum = Column(Date) - SicherheitsbereitschaftAbDatum = Column(Date) - Hauptbrennstoff = Column(String) - WeitererHauptbrennstoff = Column(String) - WeitereBrennstoffe = Column(String) - VerknuepfteErzeugungseinheiten = Column(String) - BestandteilGrenzkraftwerk = Column(Boolean) - NettonennleistungDeutschland = Column(Float) - AnteiligNutzungsberechtigte = Column(String) - Notstromaggregat = Column(Boolean) - Einsatzort = Column(String) - KwkMastrNummer = Column(String) - Technologie = Column(String) - AusschliesslicheVerwendungImKombibetrieb = Column(Boolean) - - -class GsgkExtended(Extended, ParentAllTables, Base): - __tablename__ = "gsgk_extended" - - Technologie = Column(String) - KwkMastrNummer = Column(String) - EegMastrNummer = Column(String) - - -class HydroExtended(Extended, ParentAllTables, Base): - __tablename__ = "hydro_extended" - - NameKraftwerk = Column(String) - ArtDerWasserkraftanlage = Column(String) - MinderungStromerzeugung = Column(Boolean) - BestandteilGrenzkraftwerk = Column(Boolean) - NettonennleistungDeutschland = Column(Float) - ArtDesZuflusses = Column(String) - EegMastrNummer = Column(String) - - -class NuclearExtended(Extended, ParentAllTables, Base): - __tablename__ = "nuclear_extended" - - NameKraftwerk = Column(String) - NameKraftwerksblock = Column(String) - Technologie = Column(String) - - -class StorageExtended(Extended, ParentAllTables, Base): - __tablename__ = "storage_extended" - - Einsatzort = Column(String) - AcDcKoppelung = Column(String) - Batterietechnologie = Column(String) - PumpbetriebLeistungsaufnahme = Column(Float) - PumpbetriebKontinuierlichRegelbar = Column(Boolean) - Pumpspeichertechnologie = Column(String) - Notstromaggregat = Column(Boolean) - BestandteilGrenzkraftwerk = Column(Boolean) - NettonennleistungDeutschland = Column(Float) - ZugeordneteWirkleistungWechselrichter = Column(Float) - NutzbareSpeicherkapazitaet = Column(Float) - SpeMastrNummer = Column(String) - EegMastrNummer = Column(String) - EegAnlagentyp = Column(String) - Technologie = Column(String) - LeistungsaufnahmeBeimEinspeichern = Column(Float) - GemeinsamRegistrierteSolareinheitMastrNummer = Column(String) - - -class Eeg(object): - Registrierungsdatum = Column(Date) - EegMastrNummer = Column(String, primary_key=True) - Meldedatum = Column(Date) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - EegInbetriebnahmedatum = Column(Date) - VerknuepfteEinheit = Column(String) - AnlagenschluesselEeg = Column(String) - AusschreibungZuschlag = Column(Boolean) - AnlagenkennzifferAnlagenregister = Column(String) - AnlagenkennzifferAnlagenregister_nv = Column(Boolean) - Netzbetreiberzuordnungen = Column(String) - - -class WindEeg(Eeg, ParentAllTables, Base): - __tablename__ = "wind_eeg" - - PrototypAnlage = Column(Boolean) - PilotAnlage = Column(Boolean) - InstallierteLeistung = Column(Float) - VerhaeltnisErtragsschaetzungReferenzertrag = Column(Float) - VerhaeltnisReferenzertragErtrag5Jahre = Column(Float) - VerhaeltnisReferenzertragErtrag10Jahre = Column(Float) - VerhaeltnisReferenzertragErtrag15Jahre = Column(Float) - Zuschlagsnummer = Column(String) - AnlageBetriebsstatus = Column(String) - VerhaeltnisErtragsschaetzungReferenzertrag_nv = Column(Boolean) - VerhaeltnisReferenzertragErtrag5Jahre_nv = Column(Boolean) - VerhaeltnisReferenzertragErtrag10Jahre_nv = Column(Boolean) - VerhaeltnisReferenzertragErtrag15Jahre_nv = Column(Boolean) - - -class SolarEeg(Eeg, ParentAllTables, Base): - __tablename__ = "solar_eeg" - - InanspruchnahmeZahlungNachEeg = Column(Boolean) - InstallierteLeistung = Column(Float) - RegistrierungsnummerPvMeldeportal = Column(String) - MieterstromRegistrierungsdatum = Column(Date) - MieterstromZugeordnet = Column(Boolean) - MieterstromMeldedatum = Column(Date) - MieterstromErsteZuordnungZuschlag = Column(Date) - ZugeordneteGebotsmenge = Column(Float) - Zuschlagsnummer = Column(String) - AnlageBetriebsstatus = Column(String) - RegistrierungsnummerPvMeldeportal_nv = Column(Boolean) - - -class BiomassEeg(Eeg, ParentAllTables, Base): - __tablename__ = "biomass_eeg" - - InstallierteLeistung = Column(Float) - AusschliesslicheVerwendungBiomasse = Column(Boolean) - Zuschlagsnummer = Column(String) - BiogasInanspruchnahmeFlexiPraemie = Column(Boolean) - BiogasDatumInanspruchnahmeFlexiPraemie = Column(Date) - BiogasLeistungserhoehung = Column(Boolean) - BiogasDatumLeistungserhoehung = Column(Date) - BiogasUmfangLeistungserhoehung = Column(Float) - BiogasGaserzeugungskapazitaet = Column(Float) - Hoechstbemessungsleistung = Column(Float) - BiomethanErstmaligerEinsatz = Column(Date) - AnlageBetriebsstatus = Column(String) - BiogasGaserzeugungskapazitaet_nv = Column(Boolean) - BiomethanErstmaligerEinsatz_nv = Column(Boolean) - - -class GsgkEeg(Eeg, ParentAllTables, Base): - __tablename__ = "gsgk_eeg" - - InstallierteLeistung = Column(Float) - AnlageBetriebsstatus = Column(String) - - -class HydroEeg(Eeg, ParentAllTables, Base): - __tablename__ = "hydro_eeg" - - InstallierteLeistung = Column(Float) - AnlageBetriebsstatus = Column(String) - Ertuechtigung = Column(JSON) - ErtuechtigungIds = Column(String) - - -class StorageEeg(Eeg, ParentAllTables, Base): - __tablename__ = "storage_eeg" - - eegAnlagenschluessel = Column(String) - eegZuschlagsnummer = Column(String) - eegAusschreibungZuschlag = Column(Boolean) - - -class Kwk(ParentAllTables, Base): - __tablename__ = "kwk" - - Registrierungsdatum = Column(Date) - KwkMastrNummer = Column(String, primary_key=True) - Zuschlagnummer = Column(String) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - Inbetriebnahmedatum = Column(Date) - Meldedatum = Column(Date) - ThermischeNutzleistung = Column(Float) - ElektrischeKwkLeistung = Column(Float) - VerknuepfteEinheiten = Column(String) - AnlageBetriebsstatus = Column(String) - AusschreibungZuschlag = Column(Boolean) - Netzbetreiberzuordnungen = Column(String) - - -class Permit(ParentAllTables, Base): - __tablename__ = "permit" - - Registrierungsdatum = Column(Date) - GenMastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - Art = Column(String) - Datum = Column(Date) - Behoerde = Column(String) - Aktenzeichen = Column(String) - Frist = Column(Date) - WasserrechtsNummer = Column(String) - WasserrechtAblaufdatum = Column(Date) - Meldedatum = Column(Date) - VerknuepfteEinheiten = Column(String) - Frist_nv = Column(Boolean) - WasserrechtAblaufdatum_nv = Column(Boolean) - Netzbetreiberzuordnungen = Column(String) - DatumAntragstellung = Column(Date) - - -class LocationBasic(Base): - __tablename__ = "locations_basic" - - LokationMastrNummer = Column(String, primary_key=True) - NameDerTechnischenLokation = Column(String) - Lokationtyp = Column(String) - AnzahlNetzanschlusspunkte = Column(Integer) - - -class LocationExtended(ParentAllTables, Base): - __tablename__ = "locations_extended" - - MastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - NameDerTechnischenLokation = Column(String) - VerknuepfteEinheiten = Column(String) - Netzanschlusspunkte = Column(String) - Lokationtyp = Column(String) - - -class GasStorage(ParentAllTables, Base): - __tablename__ = "gas_storage" - - MastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - Speichername = Column(String) - Registrierungsdatum = Column(Date) - AnlageBetriebsstatus = Column(String) - VerknuepfteEinheit = Column(String) - - -class GasStorageExtended(ParentAllTables, Base): - __tablename__ = "gas_storage_extended" - EinheitMastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - LokationMastrNummer = Column(String) - NetzbetreiberpruefungStatus = Column(String) - NetzbetreiberpruefungDatum = Column(Date) - AnlagenbetreiberMastrNummer = Column(String) - Land = Column(String) - Bundesland = Column(String) - Landkreis = Column(String) - Gemeinde = Column(String) - Gemeindeschluessel = Column(String) - Postleitzahl = Column(String) - Ort = Column(String) - Strasse = Column(String) - StrasseNichtGefunden = Column(Integer) - Hausnummer = Column(String) - Hausnummer_nv = Column(Integer) - HausnummerNichtGefunden = Column(Integer) - Laengengrad = Column(Float) - Breitengrad = Column(Float) - Registrierungsdatum = Column(String) - Inbetriebnahmedatum = Column(String) - EinheitSystemstatus = Column(String) - EinheitBetriebsstatus = Column(String) - NichtVorhandenInMigriertenEinheiten = Column(Integer) - NameGasspeicher = Column(String) - Speicherart = Column(String) - MaximalNutzbaresArbeitsgasvolumen = Column(Float) - MaximaleEinspeicherleistung = Column(Float) - MaximaleAusspeicherleistung = Column(Float) - DurchschnittlicherBrennwert = Column(Float) - Weic = Column(String) - Weic_Na = Column(Integer) - SpeicherMastrNummer = Column(String) - Gemarkung = Column(String) - FlurFlurstuecknummern = Column(String) - Adresszusatz = Column(String) - DatumBeginnVoruebergehendeStilllegung = Column(Date) - DatumDesBetreiberwechsels = Column(Date) - DatumRegistrierungDesBetreiberwechsels = Column(Date) - DatumEndgueltigeStilllegung = Column(Date) - ZugeordnenteWirkleistungWechselrichter = Column(Float) - - -class StorageUnits(ParentAllTables, Base): - __tablename__ = "storage_units" - MastrNummer = Column(String, primary_key=True) - Registrierungsdatum = Column(Date) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - NutzbareSpeicherkapazitaet = Column(Float) - VerknuepfteEinheit = Column(String) - AnlageBetriebsstatus = Column(String) - - -class BalancingArea(ParentAllTables, Base): - __tablename__ = "balancing_area" - - Id = Column(Integer, primary_key=True) - Yeic = Column(String) - RegelzoneNetzanschlusspunkt = Column(String) - BilanzierungsgebietNetzanschlusspunkt = Column(String) - - -class GasProducer(ParentAllTables, Base): - __tablename__ = "gas_producer" - - EinheitMastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - LokationMastrNummer = Column(String) - NetzbetreiberpruefungStatus = Column(String) - NetzbetreiberpruefungDatum = Column(Date) - AnlagenbetreiberMastrNummer = Column(String) - Land = Column(String) - Bundesland = Column(String) - Landkreis = Column(String) - Gemeinde = Column(String) - Gemeindeschluessel = Column(String) - Postleitzahl = Column(String) - Ort = Column(String) - Registrierungsdatum = Column(Date) - Inbetriebnahmedatum = Column(Date) - EinheitSystemstatus = Column(String) - EinheitBetriebsstatus = Column(String) - NichtVorhandenInMigriertenEinheiten = Column(Integer) - NameGaserzeugungseinheit = Column(String) - SpeicherMastrNummer = Column(String) - Strasse = Column(String) - StrasseNichtGefunden = Column(Integer) - Hausnummer = Column(String) - Hausnummer_nv = Column(Integer) - HausnummerNichtGefunden = Column(Integer) - Adresszusatz = Column(String) - Laengengrad = Column(Float) - Breitengrad = Column(Float) - Technologie = Column(String) - Erzeugungsleistung = Column(Float) - DatumDesBetreiberwechsels = Column(Date) - DatumRegistrierungDesBetreiberwechsels = Column(Date) - Gemarkung = Column(String) - FlurFlurstuecknummern = Column(String) - GeplantesInbetriebnahmedatum = Column(Date) - DatumBeginnVoruebergehendeStilllegung = Column(Date) - DatumEndgueltigeStilllegung = Column(Date) - - -class GasConsumer(ParentAllTables, Base): - __tablename__ = "gas_consumer" - - EinheitMastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - LokationMastrNummer = Column(String) - NetzbetreiberpruefungStatus = Column(String) - NetzbetreiberpruefungDatum = Column(Date) - AnlagenbetreiberMastrNummer = Column(String) - Land = Column(String) - Bundesland = Column(String) - Landkreis = Column(String) - Gemeinde = Column(String) - Gemeindeschluessel = Column(String) - Postleitzahl = Column(String) - Ort = Column(String) - Strasse = Column(String) - StrasseNichtGefunden = Column(Integer) - Hausnummer = Column(String) - Hausnummer_nv = Column(Integer) - HausnummerNichtGefunden = Column(Integer) - Laengengrad = Column(Float) - Breitengrad = Column(Float) - Registrierungsdatum = Column(String) - Inbetriebnahmedatum = Column(String) - EinheitSystemstatus = Column(String) - EinheitBetriebsstatus = Column(String) - NichtVorhandenInMigriertenEinheiten = Column(Integer) - NameGasverbrauchsseinheit = Column(String) - EinheitDientDerStromerzeugung = Column(String) - MaximaleGasbezugsleistung = Column(Float) - VerknuepfteEinheit = Column(String) - GeplantesInbetriebnahmedatum = Column(Date) - Adresszusatz = Column(String) - Gemarkung = Column(String) - FlurFlurstuecknummern = Column(String) - DatumDesBetreiberwechsels = Column(Date) - DatumRegistrierungDesBetreiberwechsels = Column(Date) - DatumEndgueltigeStilllegung = Column(Date) - DatumBeginnVoruebergehendeStilllegung = Column(Date) - - -class ElectricityConsumer(ParentAllTables, Base): - __tablename__ = "electricity_consumer" - - EinheitMastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - LokationMastrNummer = Column(String) - NetzbetreiberpruefungStatus = Column(String) - NetzbetreiberpruefungDatum = Column(Date) - AnlagenbetreiberMastrNummer = Column(String) - Land = Column(String) - Bundesland = Column(String) - Landkreis = Column(String) - Gemeinde = Column(String) - Gemeindeschluessel = Column(String) - Postleitzahl = Column(String) - Ort = Column(String) - Strasse = Column(String) - StrasseNichtGefunden = Column(Integer) - Hausnummer = Column(String) - Hausnummer_nv = Column(Integer) - HausnummerNichtGefunden = Column(Integer) - Adresszusatz = Column(String) - Gemarkung = Column(String) - FlurFlurstuecknummern = Column(String) - Laengengrad = Column(Float) - Breitengrad = Column(Float) - Registrierungsdatum = Column(String) - Inbetriebnahmedatum = Column(String) - EinheitSystemstatus = Column(String) - EinheitBetriebsstatus = Column(String) - NichtVorhandenInMigriertenEinheiten = Column(Integer) - Einsatzverantwortlicher = Column(String) - NameStromverbrauchseinheit = Column(String) - AnzahlStromverbrauchseinheitenGroesser50Mw = Column(Integer) - PraequalifiziertGemaessAblav = Column(Boolean) - AnteilBeinflussbareLast = Column(Float) - ArtAbschaltbareLast = Column(String) - DatumDesBetreiberwechsels = Column(Date) - DatumRegistrierungDesBetreiberwechsels = Column(Date) - DatumBeginnVoruebergehendeStilllegung = Column(Date) - DatumEndgueltigeStilllegung = Column(Date) - GeplantesInbetriebnahmedatum = Column(Date) - - -class MarketRoles(ParentAllTables, Base): - __tablename__ = "market_roles" - - MastrNummer = Column(String, primary_key=True) - MarktakteurMastrNummer = Column(String) - Marktrolle = Column(String) - Marktpartneridentifikationsnummer_nv = Column(Boolean) - BundesnetzagenturBetriebsnummer = Column(String) - BundesnetzagenturBetriebsnummer_nv = Column(Boolean) - Marktpartneridentifikationsnummer = Column(String) - KontaktdatenMarktrolle = Column(String) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - - -class MarketActors(ParentAllTables, Base): - __tablename__ = "market_actors" - - MastrNummer = Column(String, primary_key=True) - Personenart = Column(String) - Marktfunktion = Column(String) - RegistergerichtAusland = Column(String) - Registernummer = Column(String) - DatumLetzeAktualisierung = Column(DateTime(timezone=True)) - Firmenname = Column(String) - Rechtsform = Column(String) - Land = Column(String) - Strasse = Column(String) - Hausnummer = Column(String) - Hausnummer_nv = Column(Boolean) - Postleitzahl = Column(String) - Ort = Column(String) - Bundesland = Column(String) - Nuts2 = Column(String) - Email = Column(String) - Telefon = Column(String) - Fax_nv = Column(Boolean) - Webseite_nv = Column(Boolean) - Taetigkeitsbeginn = Column(Date) - AcerCode_nv = Column(Boolean) - Umsatzsteueridentifikationsnummer_nv = Column(Boolean) - BundesnetzagenturBetriebsnummer = Column(String) - BundesnetzagenturBetriebsnummer_nv = Column(Boolean) - HausnummerAnZustelladresse_nv = Column(Boolean) - Kmu = Column(Integer) - RegistrierungsdatumMarktakteur = Column(DateTime(timezone=True)) - Fax = Column(String) - HauptwirtdschaftszweigAbteilung = Column(String) - HauptwirtdschaftszweigGruppe = Column(String) - HauptwirtdschaftszweigAbschnitt = Column(String) - Webseite = Column(String) - Umsatzsteueridentifikationsnummer = Column(String) - Registergericht = Column(String) - Adresszusatz = Column(String) - LandAnZustelladresse = Column(String) - PostleitzahlAnZustelladresse = Column(String) - OrtAnZustelladresse = Column(String) - StrasseAnZustelladresse = Column(String) - HausnummerAnZustelladresse = Column(String) - RegisternummerAusland = Column(String) - SonstigeRechtsform = Column(String) - AcerCode = Column(String) - AdresszusatzAnZustelladresse = Column(String) - Taetigkeitsende = Column(Date) - Region = Column(String) - Taetigkeitsende_nv = Column(Boolean) - Marktrollen = Column(String) - Gasgrosshaendler = Column(Boolean) - BelieferungVonLetztverbrauchernGas = Column(Boolean) - BelieferungHaushaltskundenGas = Column(Boolean) - Netz = Column(String) - Direktvermarktungsunternehmen = Column(Boolean) - BelieferungVonLetztverbrauchernStrom = Column(Boolean) - BelieferungHaushaltskundenStrom = Column(Boolean) - Stromgrosshaendler = Column(Boolean) - MarktakteurVorname = Column(String) - MarktakteurNachname = Column(String) - WebportalDesNetzbetreibers = Column(String) - RegisternummerPraefix = Column(String) - - -class Grids(ParentAllTables, Base): - __tablename__ = "grids" - - MastrNummer = Column(String, primary_key=True) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - Sparte = Column(String) - KundenAngeschlossen = Column(String) - GeschlossenesVerteilnetz = Column(String) - Bezeichnung = Column(String) - Marktgebiet = Column(String) - Bundesland = Column(String) - - -class GridConnections(ParentAllTables, Base): - __tablename__ = "grid_connections" - - NetzanschlusspunktMastrNummer = Column(String, primary_key=True) - NetzanschlusspunktBezeichnung = Column(String) - LetzteAenderung = Column(DateTime(timezone=True)) - LokationMastrNummer = Column(String) - Lokationtyp = Column(String) - MaximaleEinspeiseleistung = Column(Float) - Gasqualitaet = Column(String) - NetzMastrNummer = Column(String) - NochInPlanung = Column(Boolean) - NameDerTechnischenLokation = Column(String) - MaximaleAusspeiseleistung = Column(Float) - Messlokation = Column(String) - Spannungsebene = Column(String) - BilanzierungsgebietNetzanschlusspunktId = Column(Integer) - Nettoengpassleistung = Column(Float) - Netzanschlusskapazitaet = Column(Float) - RegelzoneNetzanschlusspunkt = Column(String) - - -class DeletedUnits(ParentAllTables, Base): - __tablename__ = "deleted_units" - - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - EinheitMastrNummer = Column(String, primary_key=True) - Einheittyp = Column(String) - EinheitSystemstatus = Column(String) - EinheitBetriebsstatus = Column(String) - - -class DeletedMarketActors(ParentAllTables, Base): - __tablename__ = "deleted_market_actors" - - MarktakteurMastrNummer = Column(String, primary_key=True) - MarktakteurStatus = Column(String) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - - -class RetrofitUnits(ParentAllTables, Base): - __tablename__ = "retrofit_units" - - Id = Column(Integer, primary_key=True) - EegMastrNummer = Column(String) - Leistungserhoehung = Column(Float) - WiederinbetriebnahmeDatum = Column(Date) - DatumLetzteAktualisierung = Column(DateTime(timezone=True)) - Ertuechtigungsart = Column(String) - ErtuechtigungIstZulassungspflichtig = Column(Boolean) - - -class ChangedDSOAssignment(ParentAllTables, Base): - __tablename__ = "changed_dso_assignment" - - EinheitMastrNummer = Column(String, primary_key=True) - LokationMastrNummer = Column(String) - NetzanschlusspunktMastrNummer = Column(String) - NetzbetreiberMastrNummerNeu = Column(String) - NetzbetreiberMastrNummerAlt = Column(String) - ArtDerAenderung = Column(String) - RegistrierungsdatumNetzbetreiberzuordnungsaenderung = Column( - DateTime(timezone=True) - ) - Netzbetreiberzuordnungsaenderungsdatum = Column(DateTime(timezone=True)) - - -tablename_mapping = { - "anlageneegbiomasse": { - "__name__": BiomassEeg.__tablename__, - "__class__": BiomassEeg, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - "BiogasHoechstbemessungsleistung": "Hoechstbemessungsleistung", - }, - }, - "einheitenbiomasse": { - "__name__": BiomassExtended.__tablename__, - "__class__": BiomassExtended, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "KwkMaStRNummer": "KwkMastrNummer", - "LokationMaStRNummer": "LokationMastrNummer", - }, - }, - "anlageneeggeothermiegrubengasdruckentspannung": { - "__name__": GsgkEeg.__tablename__, - "__class__": GsgkEeg, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - }, - }, - "einheitengeothermiegrubengasdruckentspannung": { - "__name__": GsgkExtended.__tablename__, - "__class__": GsgkExtended, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "KwkMaStRNummer": "KwkMastrNummer", - "LokationMaStRNummer": "LokationMastrNummer", - }, - }, - "anlageneegsolar": { - "__name__": SolarEeg.__tablename__, - "__class__": SolarEeg, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - }, - }, - "einheitensolar": { - "__name__": SolarExtended.__tablename__, - "__class__": SolarExtended, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "LokationMaStRNummer": "LokationMastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - }, - }, - "anlageneegspeicher": { - "__name__": StorageEeg.__tablename__, - "__class__": StorageEeg, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - "Zuschlagsnummer": "eegZuschlagsnummer", - }, - }, - "anlageneegwasser": { - "__name__": HydroEeg.__tablename__, - "__class__": HydroEeg, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - }, - }, - "einheitenwasser": { - "__name__": HydroExtended.__tablename__, - "__class__": HydroExtended, - "replace_column_names": { - "EegMaStRNummer": "EegMastrNummer", - "LokationMaStRNummer": "LokationMastrNummer", - }, - }, - "anlageneegwind": { - "__name__": WindEeg.__tablename__, - "__class__": WindEeg, - "replace_column_names": { - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - "EegMaStRNummer": "EegMastrNummer", - }, - }, - "einheitenwind": { - "__name__": WindExtended.__tablename__, - "__class__": WindExtended, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - "EegMaStRNummer": "EegMastrNummer", - "Nachtkennzeichnung": "Nachtkennzeichen", - }, - }, - "anlagengasspeicher": { - "__name__": GasStorage.__tablename__, - "__class__": GasStorage, - "replace_column_names": { - "MaStRNummer": "MastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - }, - }, - "einheitengasspeicher": { - "__name__": GasStorageExtended.__tablename__, - "__class__": GasStorageExtended, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - "SpeicherMaStRNummer": "SpeicherMastrNummer", - }, - }, - "anlagenkwk": { - "__name__": Kwk.__tablename__, - "__class__": Kwk, - "replace_column_names": { - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheiten" - }, - }, - "anlagenstromspeicher": { - "__name__": StorageUnits.__tablename__, - "__class__": StorageUnits, - "replace_column_names": { - "MaStRNummer": "MastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - }, - }, - "bilanzierungsgebiete": { - "__name__": BalancingArea.__tablename__, - "__class__": BalancingArea, - "replace_column_names": None, - }, - "einheitenaenderungnetzbetreiberzuordnungen": { - "__name__": ChangedDSOAssignment.__tablename__, - "__class__": ChangedDSOAssignment, - "replace_column_names": None, - }, - "einheitengaserzeuger": { - "__name__": GasProducer.__tablename__, - "__class__": GasProducer, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - "SpeicherMaStRNummer": "SpeicherMastrNummer", - }, - }, - "einheitengasverbraucher": { - "__name__": GasConsumer.__tablename__, - "__class__": GasConsumer, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheit", - }, - }, - "einheitengenehmigung": { - "__name__": Permit.__tablename__, - "__class__": Permit, - "replace_column_names": { - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheiten", - "DatumDerAntragstellung": "DatumAntragstellung", - }, - }, - "einheitenkernkraft": { - "__name__": NuclearExtended.__tablename__, - "__class__": NuclearExtended, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - }, - }, - "einheitenstromverbraucher": { - "__name__": ElectricityConsumer.__tablename__, - "__class__": ElectricityConsumer, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - }, - }, - "einheitenstromspeicher": { - "__name__": StorageExtended.__tablename__, - "__class__": StorageExtended, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - "EegMaStRNummer": "EegMastrNummer", - }, - }, - "einheitenverbrennung": { - "__name__": CombustionExtended.__tablename__, - "__class__": CombustionExtended, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - "KwkMaStRNummer": "KwkMastrNummer", - }, - }, - "ertuechtigungen": { - "__name__": RetrofitUnits.__tablename__, - "__class__": RetrofitUnits, - "replace_column_names": None, - }, - "geloeschteunddeaktivierteeinheiten": { - "__name__": DeletedUnits.__tablename__, - "__class__": DeletedUnits, - "replace_column_names": None, - }, - "geloeschteunddeaktiviertemarktakteure": { - "__name__": DeletedMarketActors.__tablename__, - "__class__": DeletedMarketActors, - "replace_column_names": None, - }, - "marktrollen": { - "__name__": MarketRoles.__tablename__, - "__class__": MarketRoles, - "replace_column_names": None, - }, - "marktakteure": { - "__name__": MarketActors.__tablename__, - "__class__": MarketActors, - "replace_column_names": None, - }, - "netze": { - "__name__": Grids.__tablename__, - "__class__": Grids, - "replace_column_names": None, - }, - "netzanschlusspunkte": { - "__name__": GridConnections.__tablename__, - "__class__": GridConnections, - "replace_column_names": { - "LokationMaStRNummer": "LokationMastrNummer", - "NetzMaStRNummer": "NetzMastrNummer", - }, - }, - "katalogkategorien": { - "__name__": "katalogkategorien", - "__class__": None, - "replace_column_names": None, - }, - "katalogwerte": { - "__name__": "katalogwerte", - "__class__": None, - "replace_column_names": None, - }, - "lokationen": { - "__name__": LocationExtended.__tablename__, - "__class__": LocationExtended, - "replace_column_names": { - "VerknuepfteEinheitenMaStRNummern": "VerknuepfteEinheiten", - "NetzanschlusspunkteMaStRNummern": "Netzanschlusspunkte", - }, - }, - "einheitentypen": { - "__name__": "einheitentypen", - "__class__": None, - "replace_column_names": None, - }, -} diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 9d4e960f..2bff3ac4 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -6,7 +6,11 @@ import xmlschema from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction -from open_mastr.utils.xsd_tables import MastrColumnType, MastrTableDescription, translate_mastr_column_name +from open_mastr.utils.xsd_tables import ( + MastrColumnType, + MastrTableDescription, + translate_mastr_column_name, +) log = logging.getLogger("open-MaStR") diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index 33ecfa9c..ec855464 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -148,7 +148,7 @@ def read_mastr_table_descriptions_from_xsd( zipped_docs_file_path: Union[Path, str], data: list[str] ) -> set[MastrTableDescription]: print(data) - include_tables = set(data_to_include_tables(data, mapping="write_xml")) + include_tables = data_to_include_tables(data) mastr_table_descriptions = set() with ZipFile(zipped_docs_file_path, "r") as docs_z: diff --git a/open_mastr/xml_download/parse.py b/open_mastr/xml_download/parse.py deleted file mode 100644 index 6573d1ee..00000000 --- a/open_mastr/xml_download/parse.py +++ /dev/null @@ -1,144 +0,0 @@ -import xmlschema -from xmlschema.validators import XsdComplexType, XsdSimpleType, XsdElement -from typing import Dict, List, Optional - -# ---------------------------------------------- -# 1. Mapping XSD builtin types → SQLAlchemy types -# ---------------------------------------------- -XSD_TO_SQLA = { - "string": "String", - "integer": "Integer", - "int": "Integer", - "short": "Integer", - "long": "BigInteger", - "decimal": "Float", - "float": "Float", - "double": "Float", - "boolean": "Boolean", - "date": "Date", - "dateTime": "DateTime", - "time": "Time", -} - - -def map_xsd_type(xsd_type: XsdSimpleType) -> str: - """Map XSD builtin type to SQLAlchemy column type.""" - if xsd_type.is_simple() and xsd_type.primitive_type: - name = xsd_type.primitive_type.local_name - return XSD_TO_SQLA.get(name, "String") # default fallback - return "String" - - -# ---------------------------------------------- -# 2. Main model generation -# ---------------------------------------------- -def generate_sqlalchemy_models(xsd_file: str) -> str: - schema = xmlschema.XMLSchema(xsd_file) - output = [] - - output.append("from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime, BigInteger, ForeignKey") - output.append("from sqlalchemy.orm import declarative_base, relationship") - output.append("\nBase = declarative_base()\n") - - processed_types = {} - - # Iterate over all global elements (entry points) - for element_name, element in schema.elements.items(): - output.append(generate_class_from_element(element, processed_types)) - - return "\n".join(output) - - -# ---------------------------------------------- -# 3. Generate a class for an element -# ---------------------------------------------- -def generate_class_from_element( - element: XsdElement, - processed_types: Dict[str, str] -) -> str: - """Generate a SQLAlchemy class for the top-level element.""" - cls_name = to_class_name(element.name) - - # If it is a complexType element → - if isinstance(element.type, XsdComplexType): - return generate_class_from_complex_type(cls_name, element.type, processed_types) - - return f"# Skipped simple element {element.name}\n" - - -# ---------------------------------------------- -# 4. Generate class for a complex type -# ---------------------------------------------- -def generate_class_from_complex_type( - cls_name: str, - complex_type: XsdComplexType, - processed_types: Dict[str, str] -) -> str: - - if cls_name in processed_types: - return "" # already generated - - processed_types[cls_name] = cls_name - - lines = [] - lines.append(f"class {cls_name}(Base):") - lines.append(f" __tablename__ = '{camel_to_snake(cls_name)}'") - lines.append(" id = Column(Integer, primary_key=True)\n") - - # Iterate through child elements (sequence, choice, etc.) - for child in complex_type.content.iter_elements(): - - child_name = child.name - col_name = camel_to_snake(child_name) - - if isinstance(child.type, XsdComplexType): - # Nested complex type → child table with relationship - child_class_name = to_class_name(child_name) - lines.append( - f" {col_name}_id = Column(Integer, ForeignKey('{camel_to_snake(child_class_name)}.id'))" - ) - lines.append( - f" {col_name} = relationship('{child_class_name}')" - ) - # Generate nested class too - nested = generate_class_from_complex_type(child_class_name, child.type, processed_types) - lines.append("\n" + nested) - - else: - # Simple child element - sqlalchemy_type = map_xsd_type(child.type) - - nullable = "True" if child.min_occurs == 0 else "False" - lines.append( - f" {col_name} = Column({sqlalchemy_type}, nullable={nullable})" - ) - - lines.append("") - return "\n".join(lines) - - -# ---------------------------------------------- -# 5. Helpers -# ---------------------------------------------- -def to_class_name(name: str) -> str: - return "".join(part.capitalize() for part in name.split("_")) - - -def camel_to_snake(name: str) -> str: - out = "" - for i, ch in enumerate(name): - if ch.isupper() and i > 0: - out += "_" - out += ch.lower() - return out - - -# ---------------------------------------------- -# 6. Run example -# ---------------------------------------------- -if __name__ == "__main__": - import sys - xsd_path = sys.argv[1] - models = generate_sqlalchemy_models(xsd_path) - print(models) - diff --git a/open_mastr/xml_download/schema.py b/open_mastr/xml_download/schema.py deleted file mode 100644 index 2b223d7d..00000000 --- a/open_mastr/xml_download/schema.py +++ /dev/null @@ -1,49 +0,0 @@ -from pathlib import Path -import glob -from xml.etree import ElementTree - -import xmlschema - - -def check_if_files_valid_under_schema(xsd_file, xml_files): - schema = xmlschema.XMLSchema(xsd_file) - for xml_file in xml_files: - xml_resource = xmlschema.XMLResource(xml_file, lazy=True) - errors = schema.iter_errors(xml_resource) - error_count = 0 - for error in errors: - error_count += 1 - breakpoint() - print(" -", error) - if error_count == 0: - print(f"{xml_file}\tValid.") - - -def check_if_files_valid_under_schema_et(xsd_file, xml_files): - schema = xmlschema.XMLSchema(xsd_file) - for xml_file in xml_files: - xt = ElementTree.parse(xml_file) - errors = schema.iter_errors(xt) - error_count = 0 - for error in errors: - error_count += 1 - breakpoint() - print(" -", error) - if error_count == 0: - print(f"{xml_file}\tValid.") - - - -def main(): - xsd_root = Path("/home/gorgor/.open-MaStR/data/xml_download/Dokumentation MaStR Gesamtdatenexport/xsd") - xml_root = Path("/home/gorgor/.open-MaStR/data/xml_download/Gesamtdatenexport_20251129") - xsd_file = xsd_root / "EinheitenWind.xsd" - xml_files = [xml_root / basename for basename in glob.glob("EinheitenWind*.xml", root_dir=xml_root)] - xml_files =["/home/gorgor/.open-MaStR/data/xml_download/EinheitenWind_formatted.xml"] - print(xsd_file) - print(xml_files) - check_if_files_valid_under_schema_et(xsd_file=xsd_file, xml_files=xml_files) - - -if __name__ == "__main__": - main() diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index 560022cc..d0cf8b7a 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -13,21 +13,17 @@ import pandas as pd import sqlalchemy from sqlalchemy import Column, Engine, Table, delete, select, create_engine, inspect -from sqlalchemy.orm import DeclarativeBase from sqlalchemy.sql import text from sqlalchemy.sql.sqltypes import Date, DateTime from open_mastr.utils.config import setup_logger from open_mastr.utils.helpers import data_to_include_tables -from open_mastr.utils.orm import tablename_mapping from open_mastr.utils.xsd_tables import normalize_mastr_name, translate_mastr_column_name from open_mastr.utils.sqlalchemy_tables import CatalogInteger, CatalogString from open_mastr.xml_download.utils_cleansing_bulk import cleanse_bulk_data log = setup_logger() -DeclarativeBase_T = TypeVar("DeclarativeBase_T", bound=DeclarativeBase) - def write_mastr_xml_to_database( engine: sqlalchemy.engine.Engine, @@ -41,7 +37,7 @@ def write_mastr_xml_to_database( """Write the Mastr in xml format into a database defined by the engine parameter.""" log.info("Starting bulk download...") - include_tables = data_to_include_tables(data, mapping="write_xml") + include_tables = data_to_include_tables(data) threads_data = [] lower_mastr_table_to_db_table = { db_table.info.get("original_name", mastr_table_name).lower(): db_table @@ -291,19 +287,6 @@ def extract_xml_table_name(file_name: str) -> str: return file_name.split("_")[0].split(".")[0].lower() -def extract_sql_table_name(xml_table_name: str) -> str: - """Extract the SQL table name from the xml table name.""" - return tablename_mapping[xml_table_name]["__name__"] - - -def create_database_table( - engine: sqlalchemy.engine.Engine, xml_table_name: str -) -> None: - orm_class = tablename_mapping[xml_table_name]["__class__"] - orm_class.__table__.drop(engine, checkfirst=True) - orm_class.__table__.create(engine) - - def is_first_file(file_name: str) -> bool: """check if the file name indicates that it is the first file from the table""" return ( @@ -412,6 +395,8 @@ def add_table_to_non_sqlite_database( except sqlalchemy.exc.IntegrityError: # error resulting from Unique constraint failed + # FIXME: This error can also indicate other problems than non-unique. + # We should differentiate more and show it to the user for cases we cannot solve. df = write_single_entries_until_not_unique_comes_up( df, db_table, engine ) @@ -529,7 +514,6 @@ def add_missing_columns_to_table( ) - def delete_wrong_xml_entry(err: Error, df: pd.DataFrame) -> pd.DataFrame: delete_entry = str(err).split("«")[0].split("»")[1] log.warning(f"The entry {delete_entry} was deleted due to its false data type.") @@ -653,6 +637,8 @@ def add_table_to_sqlite_database( delete_wrong_xml_entry(err, df) except sqlalchemy.exc.IntegrityError: # error resulting from Unique constraint failed + # FIXME: This error can also indicate other problems than non-unique. + # We should differentiate more and show it to the user for cases we cannot solve. df = write_single_entries_until_not_unique_comes_up( df, db_table, engine ) @@ -661,8 +647,3 @@ def add_table_to_sqlite_database( add_table_to_non_sqlite_database(df, db_table, engine) break - -def column_exists(engine, table_name, column_name): - inspector = inspect(engine) - columns = [col["name"] for col in inspector.get_columns(table_name)] - return column_name in columns diff --git a/open_mastr/xml_download/xsd_to_table.py b/open_mastr/xml_download/xsd_to_table.py deleted file mode 100644 index 49fb63f7..00000000 --- a/open_mastr/xml_download/xsd_to_table.py +++ /dev/null @@ -1,61 +0,0 @@ - - -class SqlalchemyMastrModelMaker: - MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE = { - MastrColumnType.STRING: String, - MastrColumnType.INTEGER: Integer, - MastrColumnType.FLOAT: Float, - MastrColumnType.DATE: Date, - MastrColumnType.DATETIME: DateTime(timezone=True), - MastrColumnType.BOOLEAN: Boolean, - MastrColumnType.CATALOG_VALUE: Integer, - } - - @classmethod - def make_sqlalchemy_mastr_model( - cls, - table: MastrTableDescription, - primary_key_columns: set[str], - base: DeclarativeBase, - mixins: tuple[type, ...] = tuple(), - ): - namespace = { - "__tablename__": table.table_name, - "__annotations__": {}, - } - - for col in table.columns: - sa_type = cls.MASTR_COLUMN_TYPE_TO_SQLALCHEMY_TYPE[col.type] - kwargs = {"primary_key": True} if col.name in primary_key_columns else {"nullable": True} - namespace[col.name] = mapped_column(sa_type, **kwargs) - - bases = (base,) + mixins - return type(table.instance_name, bases, namespace) - - -class Base(DeclarativeBase): - pass - - -class ParentAllTables(object): - DatenQuelle = Column(String) - DatumDownload = Column(Date) - - -def generate_sqlalchemy_models(xsd_file: str) -> str: - schema = xmlschema.XMLSchema(xsd_file) - table = MastrTableDescription.from_xml_schema(schema) - - model = SqlalchemyMastrModelMaker.make_sqlalchemy_mastr_model( - table=table, - primary_key_columns={"EinheitMastrNummer"}, - base=Base, - mixins=(ParentAllTables,) - ) - - -if __name__ == "__main__": - import sys - xsd_path = sys.argv[1] - generate_sqlalchemy_models(xsd_path) - diff --git a/tests/conftest.py b/tests/conftest.py deleted file mode 100644 index eb5ce0fa..00000000 --- a/tests/conftest.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -The conftest.py file serves as a means of providing fixtures for an entire directory. -Fixtures defined in a conftest.py can be used by any test in that package without -needing to import them (pytest will automatically discover them). - -You can have multiple nested directories/packages containing your tests, -and each directory can have its own conftest.py with its own fixtures, -adding on to the ones provided by the conftest.py files in parent directories. - -https://docs.pytest.org/en/7.2.x/reference/fixtures.html -""" - -import pytest -from open_mastr import Mastr - -from open_mastr.utils.config import get_project_home_dir -from open_mastr.utils.helpers import create_database_engine -import os - - -@pytest.fixture(scope="function") -def make_Mastr_class(): - """ - Factory to create different Mastr class objects. - - Parameters - ---------- - engine_type: str - Define type of engine, for details see - :meth: `~.open_mastr.utils.helpers.create_database_engine` - - Returns - ------- - Mastr class object - """ - - def _make_Mastr_class(engine_type): - return Mastr(engine=engine_type) - - return _make_Mastr_class - - -@pytest.fixture -def engine(): - return create_database_engine( - "sqlite", os.path.join(get_project_home_dir(), "data", "sqlite") - ) From 2158b8a693ca296abd73addcbcc68bc81a2459d8 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 5 Feb 2026 12:19:54 +0100 Subject: [PATCH 19/34] Make code improvements (unused imports, etc.) --- open_mastr/mastr.py | 8 +--- open_mastr/soap_api/metadata/create.py | 4 +- open_mastr/soap_api/metadata/description.py | 2 +- open_mastr/utils/helpers.py | 42 ++++++++----------- open_mastr/utils/sqlalchemy_tables.py | 6 +-- open_mastr/utils/xsd_tables.py | 6 +-- .../xml_download/utils_download_bulk.py | 1 - .../xml_download/utils_write_to_database.py | 3 +- tests/test_helpers.py | 4 -- tests/test_interactive_download.py | 1 - .../xml_download/test_utils_cleansing_bulk.py | 1 - .../xml_download/test_utils_download_bulk.py | 1 - .../test_utils_write_to_database.py | 5 --- 13 files changed, 26 insertions(+), 58 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 3fad53b6..5dd0af62 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -1,10 +1,10 @@ import os from pathlib import Path -from typing import Any, Literal, Optional, Type, TypeVar, Union +from typing import Any, Literal, Optional, Union from collections.abc import Iterable, Mapping import pandas as pd -from sqlalchemy import inspect, create_engine, Engine, Table, MetaData +from sqlalchemy import inspect, Engine, Table, MetaData # import xml dependencies from open_mastr.xml_download.utils_download_bulk import ( @@ -19,14 +19,12 @@ write_mastr_xml_to_database, ) from open_mastr.utils.xsd_tables import ( - MastrTableDescription, read_mastr_table_descriptions_from_xsd, ) from open_mastr.utils.helpers import ( validate_parameter_format_for_download_method, validate_parameter_format_for_mastr_init, - validate_parameter_data, transform_data_parameter, parse_date_string, transform_date_parameter, @@ -38,11 +36,9 @@ get_output_dir, setup_logger, ) -import open_mastr.utils.orm as orm from open_mastr.utils.sqlalchemy_tables import make_sqlalchemy_table_from_mastr_table_description # constants -from open_mastr.utils.constants import TECHNOLOGIES, ADDITIONAL_TABLES # setup logger log = setup_logger() diff --git a/open_mastr/soap_api/metadata/create.py b/open_mastr/soap_api/metadata/create.py index 87b74233..ea4939ac 100644 --- a/open_mastr/soap_api/metadata/create.py +++ b/open_mastr/soap_api/metadata/create.py @@ -1,11 +1,9 @@ import csv import datetime -import json import os import uuid -from open_mastr.soap_api.metadata.description import DataDescription -from open_mastr.utils.config import get_data_config, get_filenames, column_renaming +from open_mastr.utils.config import get_data_config, get_filenames # TODO: We should not describe the data in both metadata folder and orm.py diff --git a/open_mastr/soap_api/metadata/description.py b/open_mastr/soap_api/metadata/description.py index 728aec23..2a19926f 100644 --- a/open_mastr/soap_api/metadata/description.py +++ b/open_mastr/soap_api/metadata/description.py @@ -156,7 +156,7 @@ def functions_data_documentation(self): log.error(f"Unexpected sequence type: {type(fcn['sequence'])}") log.error(f"Sequence content: {fcn['sequence']}") raise ValueError( - f"Unexpected sequence structure in function metadata" + "Unexpected sequence structure in function metadata" ) # Add data for inherited columns from base types diff --git a/open_mastr/utils/helpers.py b/open_mastr/utils/helpers.py index ab6a4e57..0ef8c7b5 100644 --- a/open_mastr/utils/helpers.py +++ b/open_mastr/utils/helpers.py @@ -1,5 +1,4 @@ import os -import json from contextlib import contextmanager import datetime from warnings import warn @@ -9,45 +8,40 @@ import dateutil import sqlalchemy -from sqlalchemy.sql import insert, literal_column, text from dateutil.parser import parse from sqlalchemy import create_engine -from sqlalchemy.orm import Query, sessionmaker - -import pandas as pd -from tqdm import tqdm -from open_mastr.utils import orm -from open_mastr.utils.config import ( - get_filenames, - get_data_version_dir, - column_renaming, -) +from sqlalchemy.orm import sessionmaker + from open_mastr.soap_api.download import log from open_mastr.utils.constants import ( BULK_DATA, TECHNOLOGIES, BULK_INCLUDE_TABLES_MAP, - BULK_ADDITIONAL_TABLES_CSV_EXPORT_MAP, - ORM_MAP, - UNIT_TYPE_MAP, ADDITIONAL_TABLES, ) MASTR_TIMEZONE = ZoneInfo("Europe/Berlin") -def create_database_engine(engine, sqlite_db_path) -> sqlalchemy.engine.Engine: - if engine == "sqlite": - sqlite_database_path = os.environ.get( - "SQLITE_DATABASE_PATH", - os.path.join(sqlite_db_path, "open-mastr.db"), +def create_database_engine( + engine: Union[Literal["sqlite"] | sqlalchemy.engine.Engine], + sqlite_db_path: Optional[str], +) -> sqlalchemy.engine.Engine: + if isinstance(engine, sqlalchemy.engine.Engine): + return engine + if engine != "sqlite": + log.warning( + "engine parameter is neither 'sqlite' nor an SQLALchemy engine." + " Creating SQLite engine." ) - db_url = f"sqlite:///{sqlite_database_path}" - return create_engine(db_url) - if type(engine) == sqlalchemy.engine.Engine: - return engine + sqlite_database_path = os.environ.get( + "SQLITE_DATABASE_PATH", + os.path.join(sqlite_db_path, "open-mastr.db"), + ) + db_url = f"sqlite:///{sqlite_database_path}" + return create_engine(db_url) def parse_date_string(bulk_date_string: str) -> str: diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 2bff3ac4..60ea8757 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -1,11 +1,7 @@ -import datetime import logging -from dataclasses import dataclass -from typing import Any, Optional, Type, TypeVar, Union +from typing import Any, Type, Union from sqlalchemy import Column, Integer, String, Float, Boolean, Date, DateTime, Table, MetaData -import xmlschema -from xmlschema.validators.simple_types import XsdAtomicBuiltin, XsdAtomicRestriction from open_mastr.utils.xsd_tables import ( MastrColumnType, MastrTableDescription, diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index ec855464..b3f5a84a 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -1,6 +1,5 @@ import logging import os -import re from enum import auto, Enum from dataclasses import dataclass from pathlib import Path @@ -65,10 +64,9 @@ def from_xsd_type(cls, xsd_type: Union[XsdAtomicBuiltin, XsdAtomicRestriction]) } if xsd_type.is_restriction(): if enumeration := xsd_type.enumeration: - if set(xsd_type.enumeration) == {0, 1}: + if set(enumeration) == {0, 1}: return cls.BOOLEAN - else: - return cls.CATALOG_VALUE + return cls.CATALOG_VALUE # Ertuechtigungen.xsd has some normal types defined as restrictions for some reason. # We cope with that by extracting the primitive type it's restricted to. inner_xsd_type = xsd_type.primitive_type diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index 02551722..0bd9aba4 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -1,4 +1,3 @@ -import math import os import shutil import time diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index d0cf8b7a..108f0a1d 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -4,7 +4,6 @@ from io import StringIO from multiprocessing import cpu_count from shutil import Error -from typing import Type, TypeVar from zipfile import ZipFile import re @@ -12,7 +11,7 @@ import numpy as np import pandas as pd import sqlalchemy -from sqlalchemy import Column, Engine, Table, delete, select, create_engine, inspect +from sqlalchemy import Column, Engine, Table, delete, select, create_engine from sqlalchemy.sql import text from sqlalchemy.sql.sqltypes import Date, DateTime diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 11f7dc62..2165e730 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -1,13 +1,9 @@ import pytest import os -from os.path import expanduser from pathlib import Path import itertools -import random -from os.path import join -import pandas as pd from open_mastr import Mastr from zipfile import ZipFile diff --git a/tests/test_interactive_download.py b/tests/test_interactive_download.py index b9b8ba85..e958490c 100644 --- a/tests/test_interactive_download.py +++ b/tests/test_interactive_download.py @@ -1,4 +1,3 @@ -import pytest from unittest.mock import patch, MagicMock from open_mastr.xml_download.utils_download_bulk import ( get_available_download_links, diff --git a/tests/xml_download/test_utils_cleansing_bulk.py b/tests/xml_download/test_utils_cleansing_bulk.py index f3c01abc..875d3a39 100644 --- a/tests/xml_download/test_utils_cleansing_bulk.py +++ b/tests/xml_download/test_utils_cleansing_bulk.py @@ -3,7 +3,6 @@ from os.path import expanduser import os import pandas as pd -import numpy as np import pytest from open_mastr.xml_download.utils_cleansing_bulk import ( diff --git a/tests/xml_download/test_utils_download_bulk.py b/tests/xml_download/test_utils_download_bulk.py index db202b00..5017e37c 100644 --- a/tests/xml_download/test_utils_download_bulk.py +++ b/tests/xml_download/test_utils_download_bulk.py @@ -1,4 +1,3 @@ -from datetime import date import time from open_mastr.xml_download.utils_download_bulk import ( gen_xml_download_url, diff --git a/tests/xml_download/test_utils_write_to_database.py b/tests/xml_download/test_utils_write_to_database.py index d1eb7dfc..378762fe 100644 --- a/tests/xml_download/test_utils_write_to_database.py +++ b/tests/xml_download/test_utils_write_to_database.py @@ -15,23 +15,18 @@ Date, DateTime, Double, - inspect, Integer, MetaData, String, Table, ) -from sqlalchemy.sql import text -from open_mastr.utils import orm -from open_mastr.utils.orm import RetrofitUnits, ElectricityConsumer, tablename_mapping from open_mastr.xml_download.utils_write_to_database import ( add_missing_columns_to_table, add_zero_as_first_character_for_too_short_string, cast_date_columns_to_string, correct_ordering_of_filelist, - create_database_table, extract_sql_table_name, extract_xml_table_name, is_date_column, From bd76ef1f27da2a0e74554b9af55c11e9b2597975 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 16 Feb 2026 16:54:03 +0100 Subject: [PATCH 20/34] Make existing tests work --- open_mastr/mastr.py | 3 +- open_mastr/utils/xsd_tables.py | 1 - .../xml_download/utils_download_bulk.py | 93 ++++++------ tests/test_helpers.py | 33 +---- tests/test_interactive_download.py | 14 +- tests/test_mastr.py | 60 ++++---- .../xml_download/test_utils_cleansing_bulk.py | 57 +++----- .../test_utils_write_to_database.py | 135 ++++++------------ 8 files changed, 141 insertions(+), 255 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 5dd0af62..747f46bf 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -91,7 +91,7 @@ def __init__( "==================================================\n" f"Data will be written to the following database: {self.engine.url}\n" "If you run into problems, try to " - "delete the database and update the package by running " + "delete the open-mastr directory & database and update the package by running " "'pip install --upgrade open-mastr'\n" ) @@ -370,6 +370,7 @@ def download( delete_zip_file_if_corrupted(zipped_xml_file_path) delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) + # TODO: Why is this duplicated? print( "\nWould you like to speed up the creation of your MaStR database?\n" "Try our new parallelized processing by setting os.environ['USE_RECOMMENDED_NUMBER_OF_PROCESSES'] = True " diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index b3f5a84a..a73c6664 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -145,7 +145,6 @@ class InvalidXmlSchemaError(Exception): def read_mastr_table_descriptions_from_xsd( zipped_docs_file_path: Union[Path, str], data: list[str] ) -> set[MastrTableDescription]: - print(data) include_tables = data_to_include_tables(data) mastr_table_descriptions = set() diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index 0bd9aba4..500744ff 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -148,8 +148,10 @@ def download_xml_Mastr( url: str, optional Custom download URL. If None, generates URL based on bulk_date_string. """ + if _download_is_complete(save_path, bulk_data_list): + return - log.info("Starting the Download from marktstammdatenregister.de.") + log.info("Starting the download from marktstammdatenregister.de.") # Helper function to convert date string to time.struct_time def _parse_date_string(date_str): @@ -209,13 +211,13 @@ def _parse_date_string(date_str): return if bulk_data_list == BULK_DATA: - full_download_without_unzip_http(save_path, r, bulk_data_list) + full_download_without_unzip_http(save_path, r) else: try: partial_download_with_unzip_http(save_path, url, bulk_data_list) except Exception as e: log.warning(f"Partial download failed, fallback to full download: {e}") - full_download_without_unzip_http(save_path, r, bulk_data_list) + full_download_without_unzip_http(save_path, r) time_b = time.perf_counter() log.info( @@ -224,26 +226,40 @@ def _parse_date_string(date_str): log.info(f"MaStR was successfully downloaded to {xml_folder_path}.") -def check_download_completeness( - save_path: str, bulk_data_list: list +def _find_missing_files( + save_path: str, bulk_data_list: list[str] ) -> tuple[list, bool]: - """Checks if an existing download contains the xml-files corresponding to the bulk_data_list.""" + needed_files = { + bulk_file_name + for bulk_data_name in bulk_data_list + for bulk_file_name in BULK_INCLUDE_TABLES_MAP[bulk_data_name] + } | {"katalogwerte"} # We always need Katalogwerte! + with ZipFile(save_path, "r") as zip_ref: - existing_files = [ + existing_files = { zip_name.lower().split("_")[0].split(".")[0] for zip_name in zip_ref.namelist() - ] + } + + missing_files = needed_files - existing_files + return missing_files - missing_data_set = set() - for bulk_data_name in bulk_data_list: - for bulk_file_name in BULK_INCLUDE_TABLES_MAP[bulk_data_name]: - if bulk_file_name not in existing_files: - missing_data_set.add(bulk_data_name) - is_katalogwerte_existing = False - if "katalogwerte" in existing_files: - is_katalogwerte_existing = True - return list(missing_data_set), is_katalogwerte_existing +def _download_is_complete( + save_path: str, bulk_data_list: list[str] +) -> bool: + """Checks if an existing download contains the xml-files corresponding to the bulk_data_list.""" + if os.path.exists(save_path): + if not _find_missing_files(save_path, bulk_data_list): + log.info( + "MaStR XML ZIP file already present and has all info. Not downloading again." + f" Existing file: {save_path}" + ) + return True + log.info( + f"MaStR XML ZIP file already present but missing the following data: {bulk_data_list}" + ) + return False def delete_xml_files_not_from_given_date( @@ -278,25 +294,12 @@ def partial_download_with_unzip_http(save_path: str, url: str, bulk_data_list: l url: str URL path to bulk file. bulk_data_list: list - List of tables/technologis to be downloaded. + List of tables/technologies to be downloaded. Returns ------- None """ - is_katalogwerte_existing = False - if os.path.exists(save_path): - bulk_data_list, is_katalogwerte_existing = check_download_completeness( - save_path, bulk_data_list - ) - if bool(bulk_data_list): - log.info( - f"MaStR file already present but missing the following data: {bulk_data_list}" - ) - else: - log.info(f"MaStR file already present: {save_path}") - return None - remote_zip_file = unzip_http.RemoteZipFile(url) remote_zip_names = [ remote_zip_name.lower().split("_")[0].split(".")[0] @@ -320,17 +323,16 @@ def partial_download_with_unzip_http(save_path: str, url: str, bulk_data_list: l # Example: remote_zip_file.namelist()[remote_index] corresponds to e.g. 'AnlagenEegSolar_1.xml' download_files_list.append(remote_zip_file.namelist()[remote_index]) + # We always need Katalogwerte. + download_files_list.append("Katalogwerte.xml") + for zipfile_name in tqdm(download_files_list, unit=" file"): remote_zip_file.extractzip(zipfile_name, path=Path(save_path)) - if not is_katalogwerte_existing: - remote_zip_file.extractzip("Katalogwerte.xml", path=Path(save_path)) - def full_download_without_unzip_http( save_path: str, r: requests.models.Response, - bulk_data_list: list, ) -> None: """ @@ -340,25 +342,11 @@ def full_download_without_unzip_http( Full file path where the downloaded MaStR zip file will be saved. r: requests.models.Response Response from making a request to MaStR. - bulk_data_list: list - List of tables/technologis to be downloaded. Returns ------- None """ - if os.path.exists(save_path): - bulk_data_list, is_katalogwerte_existing = check_download_completeness( - save_path, bulk_data_list - ) - if bool(bulk_data_list): - print( - f"MaStR file already present but missing the following data: {bulk_data_list}" - ) - else: - print(f"MaStR file already present: {save_path}") - return None - warning_message = ( "Warning: The servers from MaStR restrict the download speed." " You may want to download it another time." @@ -640,6 +628,13 @@ def download_documentation( save_path: str Full file path where the downloaded MaStR documentation zip file will be saved. """ + if os.path.exists(save_path): + log.info( + "MaStR docs file already present and has all info. Not downloading again." + f" Existing file: {save_path}" + ) + return + log.info("Starting MaStR documentation download from marktstammdatenregister.de.") preferred_url, fallback_url = gen_docs_download_urls(bulk_date_string, url) diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 2165e730..88124c4f 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -17,12 +17,6 @@ ) -@pytest.fixture -def mastr(tmp_path: Path): - output_dir = tmp_path / "output_dir" - return Mastr(output_dir=output_dir) - - def test_Mastr_validate_working_parameter(): valid_params = { "method": ["bulk"], @@ -133,32 +127,9 @@ def test_data_to_include_tables(): } include_tables_str = {"einheitenstromverbraucher"} - map_to_db_table_list = {"market_actors", "market_roles"} - map_to_db_table_str = {"locations_extended"} - # Assert - assert include_tables_list == data_to_include_tables( - data={"wind", "hydro"}, mapping="write_xml" - ) - assert include_tables_str == data_to_include_tables( - data={"electricity_consumer"}, mapping="write_xml" - ) - assert map_to_db_table_list == data_to_include_tables( - data={"market"}, mapping="export_db_tables" - ) - assert map_to_db_table_str == data_to_include_tables( - data={"location"}, mapping="export_db_tables" - ) - - -def test_data_to_include_tables_error(): - # test for non-existent 'mapping' parameter input - with pytest.raises( - NotImplementedError, - match="This function is only implemented for 'write_xml' and 'export_db_tables'," - " please specify when calling the function.", - ): - data_to_include_tables(data=["wind", "hydro"], mapping="X32J_22") + assert include_tables_list == data_to_include_tables(data={"wind", "hydro"}) + assert include_tables_str == data_to_include_tables(data={"electricity_consumer"}) def test_delete_zip_file_if_corrupted(): diff --git a/tests/test_interactive_download.py b/tests/test_interactive_download.py index e958490c..b7bf8511 100644 --- a/tests/test_interactive_download.py +++ b/tests/test_interactive_download.py @@ -117,12 +117,12 @@ def test_mastr_download_interactive( mock_select_date, mock_write_db, mock_generate_data_model, + mastr: Mastr, ): """Test the main download method with interactive selection.""" link = SAMPLE_LINKS[0] mock_select_date.return_value = link - db = Mastr() - db.download(select_date_interactively=True) + mastr.download(select_date_interactively=True) # Assert that select_download_date was called mock_select_date.assert_called_once() @@ -141,11 +141,10 @@ def test_mastr_download_interactive( @patch("open_mastr.mastr.select_download_date") @patch("open_mastr.mastr.download_xml_Mastr") -def test_mastr_download_interactive_cancel(mock_download, mock_select_date): +def test_mastr_download_interactive_cancel(mock_download, mock_select_date, mastr: Mastr): """Test the main download method when interactive selection is cancelled.""" mock_select_date.return_value = None - db = Mastr() - db.download(select_date_interactively=True) + mastr.download(select_date_interactively=True) # Assert that select_download_date was called mock_select_date.assert_called_once() @@ -155,11 +154,10 @@ def test_mastr_download_interactive_cancel(mock_download, mock_select_date): @patch("open_mastr.mastr.list_available_downloads") -def test_mastr_browse_available_downloads(mock_list_downloads): +def test_mastr_browse_available_downloads(mock_list_downloads, mastr: Mastr): """Test the browse_available_downloads method.""" mock_list_downloads.return_value = SAMPLE_LINKS - db = Mastr() - result = db.browse_available_downloads() + result = mastr.browse_available_downloads() mock_list_downloads.assert_called_once() assert result == SAMPLE_LINKS diff --git a/tests/test_mastr.py b/tests/test_mastr.py index 3afba66f..9730fa35 100644 --- a/tests/test_mastr.py +++ b/tests/test_mastr.py @@ -11,33 +11,11 @@ import pandas as pd from datetime import date, timedelta -_xml_file_exists = False -_xml_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "xml_download") -if os.path.isdir(_xml_folder_path): - for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): - _xml_file_exists = True - - -@pytest.fixture(scope="module") -def zipped_xml_file_path() -> Optional[str]: - zipped_xml_file_path = None - for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): - zipped_xml_file_path = os.path.join(_xml_folder_path, entry.name) - - return zipped_xml_file_path - - -@pytest.fixture -def mastr(tmp_path: Path) -> Mastr: - output_dir = tmp_path / "output_dir" - return Mastr(output_dir=output_dir) +from tests.conftest import EXISTING_DOCS_ZIP, EXISTING_XML_ZIP def test_mastr_init(mastr: Mastr) -> None: # test if folder structure exists - assert os.path.exists(mastr.home_directory) assert os.path.exists(mastr._sqlite_folder_path) # test if engine and connection were created assert type(mastr.engine) == sqlalchemy.engine.Engine @@ -45,18 +23,25 @@ def test_mastr_init(mastr: Mastr) -> None: @pytest.mark.dependency(name="bulk_downloaded") @pytest.mark.skipif( - not _xml_file_exists, reason="The zipped xml file could not be found." + not EXISTING_XML_ZIP or not EXISTING_DOCS_ZIP, + reason="The zipped XML or docs could not be found." ) -def test_mastr_download(mastr: Mastr) -> None: +def test_mastr_download_latest_real_xml( + mastr: Mastr, + existing_xml_zip_in_output_dir: Path, + existing_docs_zip_in_output_dir: Path, +) -> None: mastr.download(data="wind") df_wind = pd.read_sql("EinheitenWind", con=mastr.engine) assert len(df_wind) > 10000 mastr.download(data="biomass") df_biomass = pd.read_sql("EinheitenBiomasse", con=mastr.engine) + # Test that old biomass data is not deleted. assert len(df_wind) > 10000 assert len(df_biomass) > 10000 + # Test that we can pass a list of data. mastr.download(data=["wind", "nuclear"]) df_wind = pd.read_sql("EinheitenWind", con=mastr.engine) df_biomass = pd.read_sql("EinheitenBiomasse", con=mastr.engine) @@ -67,12 +52,27 @@ def test_mastr_download(mastr: Mastr) -> None: @pytest.mark.dependency(depends=["bulk_downloaded"]) -def test_mastr_download_keep_old_files(mastr: Mastr, zipped_xml_file_path: Optional[str]) -> None: - file_today = zipped_xml_file_path +@pytest.mark.skipif( + not EXISTING_XML_ZIP or not EXISTING_DOCS_ZIP, + reason="The zipped XML or docs could not be found." +) +def test_mastr_download_keep_old_downloads( + mastr: Mastr, + existing_xml_zip_in_output_dir: Path, + existing_docs_zip_in_output_dir: Path, +) -> None: + file_today = existing_xml_zip_in_output_dir + if not file_today: + raise ValueError( + "Zip file is missing. This should never happen and indicates a faulty test." + " The file has somehow been deleted between test discovery time and this test" + " being started." + ) yesterday = (date.today() - timedelta(days=1)).strftime("%Y%m%d") - file_old = re.sub(r"\d{8}", yesterday, os.path.basename(file_today)) - file_old = os.path.join(os.path.dirname(zipped_xml_file_path), file_old) + file_old_basename = re.sub(r"\d{8}", yesterday, os.path.basename(file_today)) + file_old = os.path.join(os.path.dirname(existing_xml_zip_in_output_dir), file_old_basename) shutil.copy(file_today, file_old) - mastr.download(data="gsgk", keep_old_files=True) + mastr.download(data="gsgk", keep_old_downloads=True) assert os.path.exists(file_old) + diff --git a/tests/xml_download/test_utils_cleansing_bulk.py b/tests/xml_download/test_utils_cleansing_bulk.py index 875d3a39..0fc6587f 100644 --- a/tests/xml_download/test_utils_cleansing_bulk.py +++ b/tests/xml_download/test_utils_cleansing_bulk.py @@ -1,9 +1,8 @@ -import sys -import sqlite3 -from os.path import expanduser import os import pandas as pd import pytest +from os.path import expanduser +from pathlib import Path from open_mastr.xml_download.utils_cleansing_bulk import ( cleanse_bulk_data, @@ -11,6 +10,8 @@ replace_mastr_katalogeintraege, ) +from tests.conftest import EXISTING_XML_ZIP + # Check if xml file exists _xml_file_exists = False _xml_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "xml_download") @@ -19,40 +20,12 @@ if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): _xml_file_exists = True -_sqlite_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "sqlite") -_sqlite_file_path = os.path.join(_sqlite_folder_path, "open-mastr.db") -_sqlite_db_exists = bool(os.path.exists(_sqlite_file_path)) - -# Silence ValueError caused by logger https://github.com/pytest-dev/pytest/issues/5502 -@pytest.fixture(autouse=True) -def capture_wrap(): - sys.stderr.close = lambda *args: None - sys.stdout.close = lambda *args: None - yield - - -@pytest.fixture(scope="module") -def con(): - con = sqlite3.connect(_sqlite_file_path) - yield con - con.close() - - -@pytest.fixture(scope="module") -def zipped_xml_file_path(): - zipped_xml_file_path = None - for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): - zipped_xml_file_path = os.path.join(_xml_folder_path, entry.name) - - return zipped_xml_file_path - - @pytest.mark.skipif( - not _xml_file_exists, reason="The zipped xml file could not be found." + not EXISTING_XML_ZIP, + reason="The zipped XML could not be found." ) -def test_cleanse_bulk_data(zipped_xml_file_path): +def test_cleanse_bulk_data(existing_xml_zip_in_output_dir: Path) -> None: df_raw = pd.DataFrame( { "ID": [0, 1, 2], @@ -70,34 +43,36 @@ def test_cleanse_bulk_data(zipped_xml_file_path): pd.testing.assert_frame_equal( cleanse_bulk_data( - df=df_raw, zipped_xml_file_path=zipped_xml_file_path, catalog_columns={"Bundesland", "Einheittyp"}, + df=df_raw, zipped_xml_file_path=str(existing_xml_zip_in_output_dir), catalog_columns={"Bundesland", "Einheittyp"}, ), df_replaced, ) @pytest.mark.skipif( - not _xml_file_exists, reason="The zipped xml file could not be found." + not EXISTING_XML_ZIP, + reason="The zipped XML could not be found." ) -def test_replace_mastr_katalogeintraege(zipped_xml_file_path): +def test_replace_mastr_katalogeintraege(existing_xml_zip_in_output_dir: Path) -> None: df_raw = pd.DataFrame({"ID": [0, 1, 2], "Bundesland": [335, 335, 336]}) df_replaced = pd.DataFrame( {"ID": [0, 1, 2], "Bundesland": ["Bayern", "Bayern", "Bremen"]} ) pd.testing.assert_frame_equal( replace_mastr_katalogeintraege( - zipped_xml_file_path=zipped_xml_file_path, df=df_raw, catalog_columns={"Bundesland", "Einheittyp"}, + zipped_xml_file_path=str(existing_xml_zip_in_output_dir), df=df_raw, catalog_columns={"Bundesland", "Einheittyp"}, ), df_replaced, ) @pytest.mark.skipif( - not _xml_file_exists, reason="The zipped xml file could not be found." + not EXISTING_XML_ZIP, + reason="The zipped XML could not be found." ) -def test_create_katalogwerte_from_bulk_download(zipped_xml_file_path): +def test_create_katalogwerte_from_bulk_download(existing_xml_zip_in_output_dir: Path) -> None: katalogwerte = create_katalogwerte_from_bulk_download( - zipped_xml_file_path=zipped_xml_file_path + zipped_xml_file_path=existing_xml_zip_in_output_dir ) assert type(katalogwerte) == dict assert len(katalogwerte) > 1000 diff --git a/tests/xml_download/test_utils_write_to_database.py b/tests/xml_download/test_utils_write_to_database.py index 378762fe..be8f5b4d 100644 --- a/tests/xml_download/test_utils_write_to_database.py +++ b/tests/xml_download/test_utils_write_to_database.py @@ -3,6 +3,8 @@ import sys from datetime import datetime from os.path import expanduser +from pathlib import Path +from typing import Any, Callable from zipfile import ZipFile import numpy as np @@ -15,6 +17,7 @@ Date, DateTime, Double, + Engine, Integer, MetaData, String, @@ -22,12 +25,12 @@ ) +from open_mastr.utils.sqlalchemy_tables import CatalogString from open_mastr.xml_download.utils_write_to_database import ( add_missing_columns_to_table, add_zero_as_first_character_for_too_short_string, cast_date_columns_to_string, correct_ordering_of_filelist, - extract_sql_table_name, extract_xml_table_name, is_date_column, is_first_file, @@ -38,53 +41,12 @@ interleave_files, ) -# Check if xml file exists -_xml_file_exists = False -_xml_folder_path = os.path.join(expanduser("~"), ".open-MaStR", "data", "xml_download") -if os.path.isdir(_xml_folder_path): - for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): - _xml_file_exists = True +from tests.conftest import EXISTING_XML_ZIP -# Silence ValueError caused by logger https://github.com/pytest-dev/pytest/issues/5502 -@pytest.fixture(autouse=True) -def capture_wrap(): - sys.stderr.close = lambda *args: None - sys.stdout.close = lambda *args: None - yield - - -@pytest.fixture(scope="module") -def zipped_xml_file_path(): - # TODO: Remove this - return "/home/gorgor/.open-MaStR/data/Gesamtdatenexport_20251228.zip" - zipped_xml_file_path = None - for entry in os.scandir(path=_xml_folder_path): - if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): - zipped_xml_file_path = os.path.join(_xml_folder_path, entry.name) - - return zipped_xml_file_path - - -@pytest.fixture(scope="module") -def con_testdb(): - testdb_file_path = os.path.join( - expanduser("~"), ".open-MaStR", "data", "sqlite", "test-open-mastr.db" - ) - # Create testdb - con_testdb = sqlite3.connect(testdb_file_path) - yield con_testdb - con_testdb.close() - # Remove testdb - os.remove(testdb_file_path) - - -@pytest.fixture(scope="module") -def engine_testdb(): - testdb_file_path = os.path.join( - expanduser("~"), ".open-MaStR", "data", "sqlite", "test-open-mastr.db" - ) +@pytest.fixture +def engine_testdb(tmp_path: Path) -> Engine: + testdb_file_path = tmp_path / "test-open-mastr.db" testdb_url = f"sqlite:///{testdb_file_path}" yield create_engine(testdb_url) @@ -94,11 +56,6 @@ def test_extract_xml_table_name(): assert extract_xml_table_name(file_name) == "netzanschlusspunkte" -def text_extract_sql_table_name(): - xml_table_name = "netzanschlusspunkte" - assert extract_sql_table_name(xml_table_name) == "network_connection_points" - - def test_is_first_file(): assert is_first_file("EinheitenKernkraft.xml") is True assert is_first_file("EinheitenKernkraft_1.xml") is True @@ -198,17 +155,18 @@ def test_correct_ordering_of_filelist(): @pytest.mark.skipif( - not _xml_file_exists, reason="The zipped xml file could not be found." + not EXISTING_XML_ZIP, + reason="The zipped XML could not be found." ) -def test_read_xml_file(zipped_xml_file_path): +def test_read_xml_file(existing_xml_zip_in_output_dir: Path) -> None: file_name = "EinheitenStromVerbraucher" - with ZipFile(zipped_xml_file_path, "r") as f: + with ZipFile(existing_xml_zip_in_output_dir, "r") as f: df = read_xml_file(f, f"{file_name}.xml") assert df.shape[0] > 0 -def test_add_zero_as_first_character_for_too_short_string(): +def test_add_zero_as_first_character_for_too_short_string() -> None: # Prepare df_raw = pd.DataFrame( {"ID": [0, 1, 2], "Gemeindeschluessel": [9162000, np.nan, 19123456]} @@ -223,72 +181,58 @@ def test_add_zero_as_first_character_for_too_short_string(): pd.testing.assert_frame_equal(df_edited, df_correct) -# TODO: Do we want to keep this kind of renaming? -@pytest.mark.skip -def test_change_column_names_to_orm_format(): - initial_df = pd.DataFrame( - { - "VerknuepfteEinheitenMaStRNummern": ["test1", "test2"], - "NetzanschlusspunkteMaStRNummern": [1, 2], - } - ) - expected_df = pd.DataFrame( - { - "VerknuepfteEinheiten": ["test1", "test2"], - "Netzanschlusspunkte": [1, 2], - } - ) - - pd.testing.assert_frame_equal( - expected_df, change_column_names_to_orm_format(initial_df, "lokationen") - ) - - @pytest.mark.skipif( - not _xml_file_exists, reason="The zipped xml file could not be found." + not EXISTING_XML_ZIP, + reason="The zipped XML could not be found." ) -def test_process_table_before_insertion(zipped_xml_file_path): +def test_process_table_before_insertion(existing_xml_zip_in_output_dir: Path) -> None: bulk_download_date = datetime.now().date().strftime("%Y%m%d") initial_df = pd.DataFrame( { "Gemeindeschluessel": [9162000, 19123456], "Postleitzahl": [1234, 54321], "NameKraftwerk": ["test1", "test2"], - "LokationMaStRNummer": ["test3", "test4"], + "NetzbetreiberpruefungStatus": [2954, 2955], } ) + db_table = Table( + "einheitenkernkraft", + MetaData(), + Column("EinheitMastrNummer", String, primary_key=True), + Column("DatumLetzteAktualisierung", DateTime), + Column("Gemeindeschluessel", String), + Column("Postleitzahl", String), + Column("NameKraftwerk", String), + Column("NetzbetreiberpruefungStatus", CatalogString), + ) + actual_df = process_table_before_insertion( + initial_df, + db_table, + existing_xml_zip_in_output_dir, + bulk_download_date, + bulk_cleansing=True, + ) expected_df = pd.DataFrame( { "Gemeindeschluessel": ["09162000", "19123456"], "Postleitzahl": ["01234", "54321"], "NameKraftwerk": ["test1", "test2"], - "LokationMastrNummer": ["test3", "test4"], + "NetzbetreiberpruefungStatus": ["Geprüft", "In Prüfung"], "DatenQuelle": ["bulk", "bulk"], "DatumDownload": [bulk_download_date, bulk_download_date], } ) - pd.testing.assert_frame_equal( - expected_df, - process_table_before_insertion( - initial_df, - "einheitenkernkraft", - zipped_xml_file_path, - bulk_download_date, - bulk_cleansing=False, - ), - ) + pd.testing.assert_frame_equal(actual_df, expected_df) -def test_add_missing_columns_to_table(engine_testdb): +def test_add_missing_columns_to_table(engine_testdb: Engine) -> None: table = Table( "einheitengasverbraucher", MetaData(), Column("EinheitMastrNummer", String, primary_key=True), Column("DatumLetzteAktualisierung", DateTime), ) - # We must recreate the table to be sure that the new column is not present. - table.drop(engine_testdb, checkfirst=True) table.create(engine_testdb) with engine_testdb.connect() as con: with con.begin(): @@ -324,7 +268,10 @@ def test_add_missing_columns_to_table(engine_testdb): "add_table_to_database_function", [add_table_to_sqlite_database, add_table_to_non_sqlite_database], ) -def test_add_table_to_sqlite_database(engine_testdb, add_table_to_database_function): +def test_add_table_to_sqlite_database( + engine_testdb: Engine, + add_table_to_database_function: Callable[[pd.DataFrame, Table, Engine], Any] +) -> None: table = Table( "anlageneeggeothermiegrubengasdruckentspannung", MetaData(), From 2dac26ba296741881e8043a62d85f876f5d59ec4 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 16 Feb 2026 18:34:13 +0100 Subject: [PATCH 21/34] Fix bug with primary keys --- open_mastr/utils/sqlalchemy_tables.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index 60ea8757..b937ff63 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -34,7 +34,7 @@ # can be NULL. "EinheitenAenderungNetzbetreiberzuordnungen": None, - "EnheitenBiomasse": {"EinheitMastrNummer"}, + "EinheitenBiomasse": {"EinheitMastrNummer"}, "EinheitenGasErzeuger": {"EinheitMastrNummer"}, "EinheitenGasSpeicher": {"EinheitMastrNummer"}, "EinheitenGasverbraucher": {"EinheitMastrNummer"}, @@ -86,8 +86,11 @@ def make_sqlalchemy_table_from_mastr_table_description( table_name = table_description.original_table_name primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS.get( - table_description.original_table_name, set() + table_description.original_table_name, ) + if not primary_key_columns: + primary_key_columns = set() + if primary_key_columns and english: primary_key_columns = {translate_mastr_column_name(column) for column in primary_key_columns} From 09cc1e06a5115f708c7bf2af0986a49543df31c9 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 16 Feb 2026 18:38:09 +0100 Subject: [PATCH 22/34] Add tests for english & data model generation --- tests/test_mastr.py | 150 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 149 insertions(+), 1 deletion(-) diff --git a/tests/test_mastr.py b/tests/test_mastr.py index 9730fa35..eedb1157 100644 --- a/tests/test_mastr.py +++ b/tests/test_mastr.py @@ -2,7 +2,6 @@ from pathlib import Path from typing import Optional -from open_mastr.mastr import Mastr import os import re import sqlalchemy @@ -10,6 +9,9 @@ from os.path import expanduser import pandas as pd from datetime import date, timedelta +from open_mastr.mastr import Mastr +from open_mastr.utils.constants import TABLE_TRANSLATIONS +from open_mastr.utils.sqlalchemy_tables import CatalogString from tests.conftest import EXISTING_DOCS_ZIP, EXISTING_XML_ZIP @@ -50,6 +52,152 @@ def test_mastr_download_latest_real_xml( assert len(df_biomass) > 10000 assert len(df_nuclear) > 1 + with mastr.engine.connect() as con: + query = sqlalchemy.text( + "SELECT Gemeinde, Bruttoleistung, WindAnlandOderAufSee" + " FROM EinheitenWind" + " WHERE EinheitMastrNummer = 'SEE909443729526'" + ) + result = con.execute(query) + rows = result.all() + assert rows == [("Badbergen", 6800.0, "Windkraft an Land")] + + +@pytest.mark.skipif( + not EXISTING_XML_ZIP or not EXISTING_DOCS_ZIP, + reason="The zipped XML or docs could not be found." +) +def test_mastr_download_latest_real_xml_english( + mastr: Mastr, + existing_xml_zip_in_output_dir: Path, + existing_docs_zip_in_output_dir: Path, +) -> None: + mastr.download(data="wind", english=True) + df_wind = pd.read_sql("wind_extended", con=mastr.engine) + assert len(df_wind) > 10000 + + with mastr.engine.connect() as con: + query = sqlalchemy.text( + "SELECT municipality, grossCapacity, WindAnlandOderAufSee" + " FROM wind_extended" + " WHERE unitMastrNumber = 'SEE909443729526'" + ) + result = con.execute(query) + rows = result.all() + assert rows == [("Badbergen", 6800.0, "Windkraft an Land")] + + +@pytest.mark.skipif( + not EXISTING_XML_ZIP, + reason="The zipped XML or docs could not be found." +) +def test_download_latest_without_altering_tables( + mastr: Mastr, + existing_xml_zip_in_output_dir: Path, +) -> None: + db_table = sqlalchemy.Table( + 'balancing_area', + sqlalchemy.MetaData(), + sqlalchemy.Column('id', sqlalchemy.Integer(), primary_key=True, nullable=False, info={'original_name': 'Id', 'normalized_name': 'Id', 'english_name': 'id'}), + sqlalchemy.Column('yeic', sqlalchemy.String(), info={'original_name': 'Yeic', 'normalized_name': 'Yeic', 'english_name': 'yeic'}), + sqlalchemy.Column('accountingAreaNetworkConnectionPoint', sqlalchemy.String(), info={'original_name': 'BilanzierungsgebietNetzanschlusspunkt', 'normalized_name': 'BilanzierungsgebietNetzanschlusspunkt', 'english_name': 'accountingAreaNetworkConnectionPoint'}), + sqlalchemy.Column('dataSource', sqlalchemy.String(), info={'normalized_name': 'DatenQuelle', 'english_name': 'dataSource'}), + sqlalchemy.Column('downloadDate', sqlalchemy.String(), info={'normalized_name': 'DatumDownload', 'english_name': 'downloadDate'}), + info={'original_name': 'Bilanzierungsgebiete', 'english_name': 'balancing_area'}, + ) + db_table.create(mastr.engine) + + mastr.download( + data="balancing_area", + english=True, + mastr_table_to_db_table={"Bilanzierungsgebiete": db_table}, + alter_database_tables=False, + ) + + # Check that column RegelzoneNetzanschlusspunkt/controlZoneNetworkConnectionPoint has not been created. + db_column_names = {column["name"] for column in sqlalchemy.inspect(mastr.engine).get_columns(db_table.name)} + assert db_column_names == {'id', 'yeic', 'accountingAreaNetworkConnectionPoint', 'dataSource', 'downloadDate'} + + # Check that data has been imported. + with mastr.engine.connect() as con: + row_count_query = sqlalchemy.text("SELECT COUNT(*) FROM balancing_area") + row_count = con.scalar(row_count_query) + assert row_count > 1000 + query = sqlalchemy.text( + "SELECT id, yeic, accountingAreaNetworkConnectionPoint" + " FROM balancing_area" + " WHERE yeic = '11YW-FREUDENST-L'" + ) + result = con.execute(query) + rows = result.all() + assert rows == [(428, "11YW-FREUDENST-L", "Stromnetz Freudenstadt")] + + +@pytest.mark.skipif( + not EXISTING_DOCS_ZIP, + reason="The zipped docs could not be found." +) +def test_mastr_generate_data_model( + mastr: Mastr, + existing_docs_zip_in_output_dir: Path, +) -> None: + mastr_table_to_db_table = mastr.generate_data_model() + expected_keys = set(TABLE_TRANSLATIONS.keys()) - { + # A couple of tables we do not create. + "Einheitentypen", + "Katalogkategorien", + "Katalogwerte", + "Lokationstypen", + } + assert set(mastr_table_to_db_table.keys()) == expected_keys + # Check some samples + solar_table = mastr_table_to_db_table["EinheitenSolar"] + assert solar_table.name == "EinheitenSolar" + solar_table.info == {"original_name": "EinheitenSolar", "english_name": "solar_extended"} + # Check a couple of columns + assert solar_table.c.EinheitMastrNummer.primary_key is True + assert isinstance(solar_table.c.EinheitMastrNummer.type, sqlalchemy.String) + assert isinstance(solar_table.c.Bruttoleistung.type, sqlalchemy.Float) + assert isinstance(solar_table.c.Hauptausrichtung.type, CatalogString) + assert isinstance(solar_table.c.EinheitlicheAusrichtungUndNeigungswinkel.type, sqlalchemy.Boolean) + + changed_dso_assignment_table = mastr_table_to_db_table["EinheitenAenderungNetzbetreiberzuordnungen"] + assert changed_dso_assignment_table.c.OpenMastrId.primary_key is True + assert isinstance(changed_dso_assignment_table.c.OpenMastrId.type, sqlalchemy.Integer) + + +@pytest.mark.skipif( + not EXISTING_DOCS_ZIP, + reason="The zipped docs could not be found." +) +def test_mastr_generate_data_model_english( + mastr: Mastr, + existing_docs_zip_in_output_dir: Path, +) -> None: + mastr_table_to_db_table = mastr.generate_data_model(english=True) + expected_keys = set(TABLE_TRANSLATIONS.keys()) - { + # A couple of tables we do not create. + "Einheitentypen", + "Katalogkategorien", + "Katalogwerte", + "Lokationstypen", + } + assert set(mastr_table_to_db_table.keys()) == expected_keys + # Check some samples + solar_table = mastr_table_to_db_table["EinheitenSolar"] + assert solar_table.name == "solar_extended" + solar_table.info == {"original_name": "EinheitenSolar", "english_name": "solar_extended"} + # Check a couple of columns + assert solar_table.c.unitMastrNumber.primary_key is True + assert isinstance(solar_table.c.unitMastrNumber.type, sqlalchemy.String) + assert isinstance(solar_table.c.grossCapacity.type, sqlalchemy.Float) + assert isinstance(solar_table.c.mainOrientation.type, CatalogString) + assert isinstance(solar_table.c.uniformOrientationAndTiltAngle.type, sqlalchemy.Boolean) + + changed_dso_assignment_table = mastr_table_to_db_table["EinheitenAenderungNetzbetreiberzuordnungen"] + assert changed_dso_assignment_table.c.OpenMastrId.primary_key is True + assert isinstance(changed_dso_assignment_table.c.OpenMastrId.type, sqlalchemy.Integer) + @pytest.mark.dependency(depends=["bulk_downloaded"]) @pytest.mark.skipif( From cb932df2fb95427c2755efdde902adce36af0a11 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 26 Feb 2026 10:08:31 +0100 Subject: [PATCH 23/34] Update documentation --- docs/advanced.md | 111 +++++++++++++++++++++++--------- docs/dataset.md | 115 +++++++++++++++++++--------------- docs/getting_started.md | 8 +-- docs/index.md | 4 +- open_mastr/utils/constants.py | 2 +- 5 files changed, 151 insertions(+), 89 deletions(-) diff --git a/docs/advanced.md b/docs/advanced.md index 041bd66a..7b37e4e2 100644 --- a/docs/advanced.md +++ b/docs/advanced.md @@ -4,6 +4,7 @@ or the [SOAP API download](#soap-api-download). ## Configuration ### Database settings +#### Using a custom database Configure your database with the `engine` parameter of [`Mastr`][open_mastr.Mastr]. @@ -12,22 +13,70 @@ It defines the engine of the database where the MaStR is mirrored to. Default is The possible databases are: * **sqlite**: By default the database will be stored in `$HOME/.open-MaStR/data/sqlite/open-mastr.db`. -* **own database**: The Mastr class accepts a sqlalchemy.engine.Engine object as engine which enables the user to +* **own database**: The Mastr class accepts a `sqlalchemy.engine.Engine` object as engine which enables the user to use any other desired database such as PostgreSQL. The tables are created in the default DB schema, in PostgreSQL this is `public`. If you use an own database so, you need to insert the connection parameter into the engine variable. In the example below, the following parameters are used: user `open-mastr`, password `open-mastr-pw`, database `open-mastr-db`. Make sure it exists and the user has sufficient permissions. +!!! warning MySQL needs special table definitions + You can pass an engine for a MySQL database, but MySQL demands maximum lengths for its `VARCHAR` fields. + Since open-mastr generates its database string fields without maximum length, using MySQL will fail by default. + You can make it work by defining your own tables beforehand and [passing your own database schema](#using-a-custom-database-schema). + ```python +from sqlalchemy import create_engine + +# SQLite DB +engine_sqlite = create_engine("sqlite:///path/to/sqlite/database.db") +# PostgreSQL DB +engine_postgres = create_engine("postgresql+psycopg2://open-mastr:open-mastr-pw@localhost:55443/open-mastr-db") +mastr = Mastr(engine=engine_sqlite) # or engine=engine_postgres +mastr.download() +``` + +#### Using a custom database schema + +By default, `Mastr.download` will download the MaStR documentation, generate a database schema from the contained XSD +files and create all database tables necessary for storing MaStR data. + +If you want to prepare the database yourself, you can pass your own mapping from the original MaStR table name to your +database table to `Mastr.download` with the `mastr_table_to_db_table` parameter. +To get started with the default database schema, we recommend generating it from the MaStR docs using +`Mastr.generate_data_model` and then adjusting it: + +```python +from sqlalchemy import create_engine +from open_mastr import Mastr, format_mastr_table_to_db_table + +engine_postgres = create_engine("postgresql+psycopg2://open-mastr:open-mastr-pw@localhost:55443/open-mastr-db") +mastr = Mastr(engine=engine_postgres) + +# Generate SQLAlchemy table definitions without creating the tables +mastr_table_to_db_table = mastr.generate_data_model() +# Print the tables so that you can see what was generated. +print(format_mastr_table_to_db_table) + +# Now you need to go and create the tables in your database and adjust them to your needs. +# It's best to use the table definitions we generated and adjust them. +# Finally, you need your custom version of mastr_table_to_db_table. +mastr_table_to_your_custom_db_table = ... + +# Download MaStR data into your custom tables. +mastr.download(mastr_table_to_db_table=mastr_table_to_your_custom_db_table) +``` - from sqlalchemy import create_engine +When open-mastr encounters XML files in the MaStR download that have additional columns when compared to the database +tables, it will issue `ALTER` statements to add the columns to the database on the fly. To avoid this and to instead +skip the additional columns during import, you can pass the parameter `alter_database_tables=False`: - # SQLite DB - engine_sqlite = create_engine("sqlite:///path/to/sqlite/database.db") - # postgreSQL DB - engine_postgres = create_engine("postgresql+psycopg2://open-mastr:open-mastr-pw@localhost:55443/open-mastr-db") - db = Mastr(engine=engine_sqlite) +```python +# Download MaStR data into your custom tables. +mastr.download( + mastr_table_to_db_table=mastr_table_to_your_custom_db_table, + alter_database_tables=False, +) ``` ### Project directory @@ -37,8 +86,7 @@ You can change this default path, see [environment variables](#environment-varia Default config files are copied to this directory which can be modified - but with caution. The project home directory is structured as follows (files and folders below `data/` just an example). -```bash - +``` .open-MaStR/ ├── config │   ├── credentials.cfg @@ -46,15 +94,16 @@ The project home directory is structured as follows (files and folders below `da │   ├── logging.yml ├── data │   ├── dataversion- + │ ├── docs_download + │ │ └── Dokumentation MaStR Gesamtdatenexport_.zip │   ├── sqlite - │      └── open-mastr.db - └── xml_download - └── Gesamtdatenexport_.zip + │   │   └── open-mastr.db + │ └── xml_download + │ └── Gesamtdatenexport_.zip └── logs └── open_mastr.log ``` - * **config** * `credentials.cfg`
Credentials used to access @@ -69,15 +118,15 @@ The project home directory is structured as follows (files and folders below `da Contains exported data as csv files from method [`to_csv`][open_mastr.Mastr.to_csv] * `sqlite`
Contains the sqlite database in `open-mastr.db` + * `docs_download`
+ Contains the documentation of the MaStR download. * `xml_download`
Contains the bulk download in `Gesamtdatenexport_.zip`
New bulk download versions overwrite older versions. * **logs** - * `open_mastr.log`
+ * `open_mastr.log`
The files stores the logging information from executing open-mastr. - - ### Logs For the download via the API, logs are stored in a single file in `/$HOME//.open-MaStR/logs/open_mastr.log`. @@ -87,7 +136,6 @@ By default, the log level is set to `INFO`. You can increase or decrease the ver or adjusting it manually in your code. E.g. to enable `DEBUG` messages in `open_mastr.log` you can use the following snippet: ```python - import logging from open_mastr import Mastr @@ -96,7 +144,6 @@ or adjusting it manually in your code. E.g. to enable `DEBUG` messages in `open_ logging.getLogger("open-MaStR").setLevel(logging.DEBUG) ``` - ### Data If the zipped dump of the MaStR is downloaded, it is saved in the folder `$HOME/.open-MaStR/data/xml_download`. @@ -122,8 +169,8 @@ There are some environment variables to customize open-MaStR: ## Bulk download On the homepage [MaStR/Datendownload](https://www.marktstammdatenregister.de/MaStR/Datendownload) a zipped folder containing the whole -MaStR is offered. The data is delivered as xml-files. The official documentation can be found -on the same page (in german). This data is updated on a daily base. +MaStR is offered. The data is delivered as XML files. The official documentation can be found +on the same page (in German). This data is updated on a daily basis. ``` mermaid flowchart LR @@ -132,9 +179,8 @@ flowchart LR id2 --> id3[("📗 open-mastr database")] id3 --> id4("🔧 Decode and cleanse data") id4 --> id3 - id3 --> id5("Merge corresponding tables - and save as csv") - id5 --> id6>"📜 open-mastr csv files"] + id3 --> id5("Export to CSV") + id5 --> id6>"📜 open-mastr CSV files"] click id1 "https://www.marktstammdatenregister.de/MaStR/Datendownload" _blank click id2 "https://github.com/OpenEnergyPlatform/open-MaStR/blob/7b155a9ebdd5204de8ae6ba7a96036775a1f4aec/open_mastr/xml_download/utils_write_to_database.py#L17C6-L17C6" _blank click id4 "https://github.com/OpenEnergyPlatform/open-MaStR/blob/7b155a9ebdd5204de8ae6ba7a96036775a1f4aec/open_mastr/xml_download/utils_cleansing_bulk.py#L10" _blank @@ -143,17 +189,24 @@ flowchart LR ``` -In the following, the process is described that is started when calling the [`Mastr.download`][open_mastr.Mastr.download] function with the parameter `method`="bulk". -First, the zipped files are downloaded and saved in `$HOME/.open-MaStR/data/xml_download`. The zipped folder contains many xml files, -which represent the different tables from the MaStR. Those tables are then parsed to a sqlite database. If only some specific -tables are of interest, they can be specified with the parameter `data`. Every table that is selected in `data` will be deleted from the local database, if existent, and then filled with data from the xml files. +In the following, the process is described that is started when calling the [`Mastr.download`][open_mastr.Mastr.download] without parameters. +First, the zipped documentation is downloaded and saved in `$HOME/.open-MaStR/data/docs_download`. The zipped documentation contains +XSD files that describe the MaStR XML files that contain the data. open-mastr reads the XSD files and generates a database schema for +importing the data. I.e., for each MaStR table, it defines a database table and then creates it in a SQLite database. + +Then, the zipped files are downloaded and saved in `$HOME/.open-MaStR/data/xml_download`. The zipped folder contains +many XML files, which represent the different tables from the MaStR. Those XML files are then read and imported into the +previously created SQLite database tables. + +If only some specific tables are of interest, they can be specified with the parameter `data`. Every table that is +selected in `data` will be deleted from the local database, if existent, and then filled with data from the xml files. In the next step, a basic data cleansing is performed. Many entries in the MaStR from the bulk download are replaced by numbers. -As an example, instead of writing the german states where the unit is registered (Saxony, Brandenburg, Bavaria, ...) the MaStR states +As an example, instead of writing the German states where the unit is registered (Saxony, Brandenburg, Bavaria, ...) the MaStR states corresponding digits (7, 2, 9, ...). One major step of cleansing is therefore to replace those digits with their original meaning. Moreover, the datatypes of different entries are set in the data cleansing process and corrupted files are repaired. -If needed, the tables in the database can be obtained as csv files. Those files are created by first merging corresponding tables (e.g all tables that contain information about solar) and then dumping those tables to `.csv` files with the [`to_csv`][open_mastr.Mastr.to_csv] method. +The tables in the database can be exported to CSV files using the [`to_csv`][open_mastr.Mastr.to_csv] method. **Note**: By default, existing zip files in `$HOME/.open-MaStR/data/xml_download` are deleted when a new file is downloaded. You can change this behavior by setting `keep_old_downloads`=True in diff --git a/docs/dataset.md b/docs/dataset.md index 772395bf..2be9a796 100644 --- a/docs/dataset.md +++ b/docs/dataset.md @@ -34,59 +34,70 @@ After downloading the MaStR, you will find a database with a large number of tab ### Tables in the local database - -=== "_extended tables" - The main information about the different technologies lies in the `_extended` tables. You can find the capacity, location, and other technology-specific attributes here. - - | Table name | Comments | - |------|------| - | biomass_extended | | - | combustion_extended | *Conventional powerplants: Gas, Oil, Coal, ...* | - | gsgk_extended | *gsgk is short for: Geothermal, Mine gas, and Pressure relaxation* | - | hydro_extended | | - | nuclear_extended | | - | solar_extended | | - | storage_extended | | - | wind_extended | | - -=== "_eeg tables" - In germany, renewable energies were subsidized by the state - according to a law called 'EEG'. Relevant information like the 'EEG ID' are in the `_eeg` tables. - - | Table name | Comments | - |------|------| - | biomass_eeg | | - | gsgk_eeg | *gsgk is short for: Geothermal, Mine gas, and Pressure relaxation* | - | hydro_eeg | | - | solar_eeg | | - | storage_eeg | | - | wind_eeg | | +=== "Units related to electric power" + The main information about power plants producing power/gas and other units is in tables prefixed with "Einheiten". You can find the capacity, location, and other technology-specific attributes here. + + | Original German name | English name | Comments | + |------|------|------| + | EinheitenBiomasse | biomass_extended | Biomass combustion power plants | + | EinheitenGeothermieGrubengasDruckentspannung | gsgk_extended | Geothermal, mine gas and pressure relaxation units | + | EinheitenKernkraft | nuclear_extended | Nuclear power plants | + | EinheitenSolar | solar_extended | Solar power plants | + | EinheitenStromSpeicher | storage_extended | Electric power storage units | + | EinheitenStromVerbraucher | electricity_consumer | *Large* electric power consumers | + | EinheitenVerbrennung | combustion_extended | Conventional combustion power plants: gas, oil, coal, … | + | EinheitenWasser | hydro_extended | Hydroelectric power plants | + | EinheitenWind | wind_extended | Wind power plants | + +=== "Units related to gas" + + | Original German name | English name | Comments | + |------|------|------| + | EinheitenGasErzeuger | gas_producer | Gas production units (natural gas extraction, biomethane production, …)| + | EinheitenGasSpeicher | gas_storage_extended | Gas storage units | + | EinheitenGasverbraucher | gas_consumer | *Large* gas consumers | + +=== "EEG & KWK subsidy information" + In Germany, renewable energies as well as combined heat and power (CHP/KWK) plants are subsidized by the state according to laws called 'EEG' (for renewable energies) and 'KWK' (for CHP plants). These tables contain information about the subsidies such as the 'EEG ID' and contain the MaStR IDs of the subsidized unit(s); you can use these IDs to look up the units in the 'Einheiten*' tables. + + | Original German name | English name | Comments | + |------|------|------| + | AnlagenEegBiomasse | biomass_eeg | | + | AnlagenEegGeothermieGrubengasDruckentspannung | gsgk_eeg | | + | AnlagenEegSolar | solar_eeg | | + | AnlagenEegSpeicher | storage_eeg | | + | AnlagenEegWasser | hydro_eeg | | + | AnlagenEegWind | wind_eeg | | + | AnlagenGasSpeicher | gas_storage | | + | AnlagenKwk | kwk | | + | AnlagenStromSpeicher | storage_units | | === "Other tables" Other tables contain information about the grid, the energy market, or gas consumers and producers: - | Table name | Comments | - |------|------| - | balancing_area | *Related to the energy market* | - | changed_dso_assignment | *Units where the DSO responsibility changed* | - | electricity_consumer | *Only large consumers* | - | gas_consumer | *Only large consumers* | - | gas_producer | | - | gas_storage | | - | gas_storage_extended | | - | grid_connections | *Does not contain geoinformation* | - | grids | *Does not contain geoinformation* | - | locations_extended | *Connects units with grids - to get coordinates of units use the _extended tables*| - | market_actors | | - | market_roles | | - | permit | | - | storage_units | | - | kwk | *short for: Combined heat and power (CHP)* | - | deleted_units | Units from all technologies that were deleted or deactivated | - | deleted_market_actors | Market actors that were deleted or deactivated | - + | Original German name | English name | Comments | + |------|------|------| + | Bilanzierungsgebiete | balancing_area | Balancing areas | + | EinheitenAenderungNetzbetreiberzuordnungen | changed_dso_assignment | Changes of DSO assigment of units | + | EinheitenGenehmigung | permit | Unit permits | + | Einheitentypen | unit_types | Meta information about unit types. **Not imported by open-mastr** | + | Ertuechtigungen | retrofit_units | Retrofits of units | + | GeloeschteUndDeaktivierteEinheiten | deleted_units | Deleted & deactived units | + | GeloeschteUndDeaktivierteMarktakteure | deleted_market_actors | Deleted & deactived market actors | + | Katalogkategorien | catalog_categories | Meta information about MaStR values. **Not imported by open-mastr** | + | Katalogwerte | catalog_values | Meta information about MaStR values. **Not imported by open-mastr** | + | Lokationen | locations | Connects units with grid connections | + | Lokationstypen | location_types | Meta information location types. **Not imported by open-mastr** | + | Marktakteure | market_actors | Market actors | + | MarktakteureUndRollen | market_actors_and_roles | Roles filled by market actors | + | Marktfunktionen | market_functions | Meta information about market functions. **Not imported by open-mastr** | + | Marktrollen | market_roles | Meta information about market roles. **Not imported by open-mastr** | + | Netzanschlusspunkte | grid_connections | Connects locations with grids | + | Netze | grids | Grids | ### MaStR data model -A useful overview of the MaStR data model can be found at the MaStR [help page](https://www.marktstammdatenregister.de/MaStRHilfe/subpages/faq.html). A translated version using the names from the tables you can find in your local database is presented here: + +A useful overview of the MaStR data model can be found at the MaStR [help page](https://www.marktstammdatenregister.de/MaStRHilfe/subpages/faq.html). A translated version using the names from the tables you can find in your local database is presented here: === "translated image (english)" ![Data model of the MaStR](images/DetailAnlagen_english.PNG) @@ -97,8 +108,10 @@ A useful overview of the MaStR data model can be found at the MaStR [help page]( ## Tables as CSV -Tables from the database can be exported to csv files. By default, all available power plant unit data will be exported -to csv files. +Tables from the database can be exported to CSV files. By default, all available power plant unit data will be exported +to csv files. + +!!! warning "Joining of tables for CSV export has been removed" + In versions > `v1.0.0`, the database tables are exported to CSV as they are. Joins between unit, CHP/EEG data and permits are not done anymore. -For exported csv's additional available data is joined on basic unit data. For example: For biomass power plants one csv -is exported consisting of the join of four database tables (unit data, chp data, permit data, eeg data). We regularly run the whole download and cleansing pipeline and upload the dataset as csv files at [zenodo](https://doi.org/10.5281/zenodo.6807425). +We occasionally run the whole download and cleansing pipeline and upload the dataset as csv files at [zenodo](https://doi.org/10.5281/zenodo.6807425). diff --git a/docs/getting_started.md b/docs/getting_started.md index 0c17fcb4..877316ca 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -18,11 +18,7 @@ pip install open-mastr --upgrade ## Downloading the MaStR data -The MaStR dataset is updated on a daily basis. To download todays MaStR and save it in a sqlite database, you will use the [`Mastr`][open_mastr.Mastr] class and its [`download`][open_mastr.Mastr.download] method. The [`download`][open_mastr.Mastr.download] method offers two different ways to get the data by changing the `method` parameter (if not specified, `method` defaults to "bulk"): - -1. `method` = "bulk": Get data via the bulk download from [MaStR/Datendownload](https://www.marktstammdatenregister.de/MaStR/Datendownload). Use this if you want to download the whole dataset (few Gigabite) or if you want to download all units of a given technology (e.g. all wind turbines in Germany). -2. `method` = "API": Get data via the MaStR SOAP-API. Use this if you want specific information about single units and if you have registerd to get an API token. - +The MaStR dataset is updated on a daily basis. To download today's MaStR and save it in a sqlite database, you will use the [`Mastr`][open_mastr.Mastr] class and its [`download`][open_mastr.Mastr.download] method. This will get the bulk download from [MaStR/Datendownload](https://www.marktstammdatenregister.de/MaStR/Datendownload). You can either download the whole dataset (a few GB) or all units of a given technology (e.g. all wind turbines in Germany). ### Bulk download @@ -86,4 +82,4 @@ additional tables are mirrored from database to csv as they are. To export the d tables=["wind", "grids"] db.to_csv(tables) -``` \ No newline at end of file +``` diff --git a/docs/index.md b/docs/index.md index 698e224a..c57695bc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -21,7 +21,7 @@ In particular, `open-mastr` facilitates access to the daily provided MaStR dumps | ------------------------- | ---------------------------------------------------------------------------------------------------------------- | | Data download and parsing | Download, decode, and write data to a local database | | Translation to English | Translate table names and columns from German to English as well as an English documentation page of the dataset | -| Data processing | Merge relevant information about different technologies to single csv files | +| CSV export | Export downloaded data as CSV | !!! question "Just here for the data?" :sparkles: We regularly run the whole download and cleansing pipeline and upload the dataset as csv files at [zenodo](https://doi.org/10.5281/zenodo.6807425)! @@ -29,4 +29,4 @@ In particular, `open-mastr` facilitates access to the daily provided MaStR dumps ## License The original dataset is licensed under the **Datenlizenz Deutschland – Namensnennung – Version 2.0** (DL-DE-BY-2.0) -[Marktstammdatenregister](https://www.marktstammdatenregister.de/MaStR) - © Bundesnetzagentur für Elektrizität, Gas, Telekommunikation, Post und Eisenbahnen | [DL-DE-BY-2.0](https://www.govdata.de/dl-de/by-2-0) \ No newline at end of file +[Marktstammdatenregister](https://www.marktstammdatenregister.de/MaStR) - © Bundesnetzagentur für Elektrizität, Gas, Telekommunikation, Post und Eisenbahnen | [DL-DE-BY-2.0](https://www.govdata.de/dl-de/by-2-0) diff --git a/open_mastr/utils/constants.py b/open_mastr/utils/constants.py index 2962bf0d..61816d02 100644 --- a/open_mastr/utils/constants.py +++ b/open_mastr/utils/constants.py @@ -87,7 +87,7 @@ ], "electricity_consumer": ["einheitenstromverbraucher"], "location": ["lokationen"], - "market": ["marktakteure", "marktrollen", "marktakteureundrollen", "marktfunktionen"], + "market": ["marktakteure", "marktakteureundrollen"], "grid": ["netzanschlusspunkte", "netze"], "balancing_area": ["bilanzierungsgebiete"], "permit": ["einheitengenehmigung"], From 4fc054bdf940d406f1e8154307044b9428d1d913 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 26 Feb 2026 16:33:05 +0100 Subject: [PATCH 24/34] Add Simon Will to authors --- CITATION.cff | 3 +++ pyproject.toml | 1 + 2 files changed, 4 insertions(+) diff --git a/CITATION.cff b/CITATION.cff index 4f23f38c..8a7b5584 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -38,6 +38,9 @@ authors: given-names: "Kevin" alias: "pt-kkraemer" affiliation: "ProjectTogether gGmbH" + - family-names: "Will" + given-names": "Simon" + alias: "@Simon-Will" title: "open-MaStR" type: software license: AGPL-3.0 diff --git a/pyproject.toml b/pyproject.toml index edd4550d..b5b115f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ authors = [ {name = "Kotthoff Florian"}, {name = "Tepe Deniz"}, {name = "Amme Jonathan"}, + {name = "Simon Will"}, {name = "Open Energy Family"}, ] From bfb5aa4be24f71570325fdfcd0bec8831ab1a649 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 26 Feb 2026 16:34:09 +0100 Subject: [PATCH 25/34] Add missing conftest.py file --- tests/conftest.py | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 tests/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 00000000..9d1d833e --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,83 @@ +import os +import shutil +from datetime import date +from pathlib import Path +from typing import Optional + +import pytest + +from open_mastr import Mastr +from open_mastr.utils.config import get_project_home_dir + + +_data_dir = Path(get_project_home_dir()) / "data" + +EXISTING_XML_ZIP: Optional[Path] = None +_xml_data_dir = _data_dir / "xml_download" +if _xml_data_dir.is_dir(): + for entry in os.scandir(_xml_data_dir): + if "Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): + EXISTING_XML_ZIP = Path(entry.path) + # We don't break here in case there are multiple files. + # We take the last matching entry in the hope of getting the most recent file. + +EXISTING_DOCS_ZIP: Optional[Path] = None +_docs_data_dir = _data_dir / "docs_download" +if _docs_data_dir.is_dir(): + for entry in os.scandir(_docs_data_dir): + if "Dokumentation MaStR Gesamtdatenexport" in entry.name and entry.name.endswith(".zip"): + EXISTING_DOCS_ZIP = Path(entry.path) + # We don't break here in case there are multiple files. + # We take the last matching entry in the hope of getting the most recent file. + + +@pytest.fixture +def output_dir(tmp_path: Path) -> Path: + dir_ = tmp_path / "output" + yield dir_ + # Clean up so we don't leave this huge file lying around in some tmp dir. + shutil.rmtree(dir_) + + +@pytest.fixture +def mastr(output_dir: Path) -> Mastr: + return Mastr(output_dir=str(output_dir)) + + +@pytest.fixture +def existing_xml_zip_in_output_dir(output_dir: Path) -> Path: + if not EXISTING_XML_ZIP: + raise ValueError( + "There is no existing XML ZIP file to copy to the output dir." + " This indicates faulty test setup. This fixture must only be used" + " when EXISTING_XML_ZIP is not None." + ) + + xml_dir = output_dir / "data" / "xml_download" + xml_dir.mkdir(parents=True, exist_ok=True) + # We pretend that this file is from "today". + dest_path = xml_dir / f"Gesamtdatenexport_{date.today().strftime('%Y%m%d')}.zip" + + # The XML file is pretty large, making this copy operation a bit costly for a unit test. + # So, use this fixture sparingly. + # Would be nice to have a hard link with copy-on-write semantics. Is there such a thing? + shutil.copy(EXISTING_XML_ZIP, dest_path) + return dest_path + + +@pytest.fixture +def existing_docs_zip_in_output_dir(output_dir: Path) -> Path: + if not EXISTING_DOCS_ZIP: + raise ValueError( + "There is no existing docs ZIP file to copy to the output dir." + " This indicates faulty test setup. This fixture must only be used" + " when EXISTING_DOCS_ZIP is not None." + ) + + docs_dir = output_dir / "data" / "docs_download" + docs_dir.mkdir(parents=True, exist_ok=True) + # We pretend that this file is from "today". + dest_path = docs_dir / f"Dokumentation MaStR Gesamtdatenexport_{date.today().strftime('%Y%m%d')}.zip" + + shutil.copy(EXISTING_DOCS_ZIP, dest_path) + return dest_path From ba69e756808b050ac3c7be2bbcf886eef6390a5c Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 26 Feb 2026 17:07:28 +0100 Subject: [PATCH 26/34] Improve clarity around artificial primary keys --- open_mastr/utils/sqlalchemy_tables.py | 28 +++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/open_mastr/utils/sqlalchemy_tables.py b/open_mastr/utils/sqlalchemy_tables.py index b937ff63..23d92dc2 100644 --- a/open_mastr/utils/sqlalchemy_tables.py +++ b/open_mastr/utils/sqlalchemy_tables.py @@ -32,6 +32,10 @@ # EinheitMastrNummer + RegistrierungsdatumNetzbetreiberzuordnungsaenderung, # but the MaStR docs say that RegistrierungsdatumNetzbetreiberzuordnungsaenderung # can be NULL. + # Plus, SEE904666329300 would additionally need Netzbetreiberzuordnungsaenderungsdatum + # to make it unique. But Netzbetreiberzuordnungsaenderungsdatum actually has NULL values for + # some rows, so it cannot be used in a composite primary key because it must be nullable. + # (Nullable columns in a primary key are OK in SQLite, but not in PostgreSQL & MySQL.) "EinheitenAenderungNetzbetreiberzuordnungen": None, "EinheitenBiomasse": {"EinheitMastrNummer"}, @@ -85,11 +89,17 @@ def make_sqlalchemy_table_from_mastr_table_description( else: table_name = table_description.original_table_name - primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS.get( - table_description.original_table_name, - ) - if not primary_key_columns: + try: + primary_key_columns = MASTR_TABLE_NAME_TO_PRIMARY_KEY_COLUMNS[ + table_description.original_table_name + ] or set() + artificial_primary_key_name = "OpenMastrId" + except KeyError: + # This table is not yet known to open-mastr. We insert a temporary + # primary key, but make that clear in the name so that users don't + # rely on it. primary_key_columns = set() + artificial_primary_key_name = "TempOpenMastrIdForUnknownTable" if primary_key_columns and english: primary_key_columns = {translate_mastr_column_name(column) for column in primary_key_columns} @@ -123,10 +133,11 @@ def make_sqlalchemy_table_from_mastr_table_description( **kwargs, } ) - db_column_kwargs = _prepend_open_mastr_id_if_missing_primary_key( + db_column_kwargs = _prepend_primary_key_if_missing( expected_primary_key_columns=primary_key_columns, db_column_kwargs=db_column_kwargs, table_name=table_description.original_table_name, + new_primary_key_name=artificial_primary_key_name, ) if include_download_metadata: @@ -168,10 +179,11 @@ def make_sqlalchemy_table_from_mastr_table_description( ) -def _prepend_open_mastr_id_if_missing_primary_key( +def _prepend_primary_key_if_missing( expected_primary_key_columns: set[str], db_column_kwargs: list[dict[str, Any]], table_name: str, + new_primary_key_name: str, ) -> list[dict[str, Any]]: realized_primary_key_columns = { kwargs["name"] @@ -186,10 +198,10 @@ def _prepend_open_mastr_id_if_missing_primary_key( id_column_name = "OpenMastrId" log.info( f"Missing primary key column for table {table_name}." - f" Inserting custom ID column {id_column_name!r}" + f" Inserting custom ID column {new_primary_key_name!r}" ) return [ - {"name": id_column_name, "type_": Integer, "primary_key": True, "autoincrement": True} + {"name": new_primary_key_name, "type_": Integer, "primary_key": True, "autoincrement": True} ] + [ kwargs | {"primary_key": False, "nullable": True} for kwargs in db_column_kwargs From e214d98d72b42800f0b015a3cdd0ed5f1addc69d Mon Sep 17 00:00:00 2001 From: Simon Will Date: Thu, 26 Feb 2026 17:12:39 +0100 Subject: [PATCH 27/34] Add changelog entry --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67f9e607..5a8e25c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,11 @@ and the versioning aims to respect [Semantic Versioning](http://semver.org/spec/ - Add trusted publishing for test releases [#713](https://github.com/OpenEnergyPlatform/open-MaStR/pull/713) ### Changed +- Switch to dynamic table generation based on parsing of XSD files; + change table names and column names to align more closely with original names; + add the option to pass a custom database schema; + simplify CSV export by removing table joins + [#718](https://github.com/OpenEnergyPlatform/open-MaStR/pull/718) ### Removed @@ -27,7 +32,6 @@ and the versioning aims to respect [Semantic Versioning](http://semver.org/spec/ [#685](https://github.com/OpenEnergyPlatform/open-MaStR/pull/685) - ## [v0.16.0] Partial downloads with open-MaStR PartialPumpkinPull - 2025-11-26 ### Added - Add partial bulk download From 9b92e574da9e606dc4336386e1f54cfc2ac9a828 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Tue, 3 Mar 2026 11:12:04 +0100 Subject: [PATCH 28/34] Add views for old table names + a few other things --- docs/dataset.md | 75 +++++++------- open_mastr/mastr.py | 17 ++- ...tR-Gesamtdatenexport-20251227-Fallback.zip | Bin 38958 -> 0 bytes ...tR-Gesamtdatenexport-20260216-Fallback.zip | Bin 0 -> 1389768 bytes open_mastr/utils/constants.py | 59 +++++------ open_mastr/utils/sqlalchemy_views.py | 98 ++++++++++++++++++ tests/test_mastr.py | 36 +++++-- 7 files changed, 208 insertions(+), 77 deletions(-) delete mode 100644 open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip create mode 100644 open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20260216-Fallback.zip create mode 100644 open_mastr/utils/sqlalchemy_views.py diff --git a/docs/dataset.md b/docs/dataset.md index 2be9a796..c6860e7c 100644 --- a/docs/dataset.md +++ b/docs/dataset.md @@ -19,12 +19,6 @@ The German Federal Network Agency regularly updates the dataset and adds new tab As you may have noticed, we distinguish between `bulk` and `API` datasets. The `bulk` dataset refers to the data obtained from the zipped XML files downloaded from [here](https://www.marktstammdatenregister.de/MaStR/Datendownload) using the [`Mastr.download`][open_mastr.Mastr.download] function. The `API` data is obtained by requesting information via the SOAP-API and the [`soap_api.download.MaStRAPI`][open_mastr.soap_api.download.MaStRAPI] module. -??? question "Why is the table structure in the open-mastr database as it is?" - - The structure of the database is historically determined by the data retrieved via API. (open-mastr existed before the XML-dump was provided). -
See [MaStR data model](#mastr-data-model) - - ## Tables in the database !!! question "Confused by all the tables?" @@ -35,55 +29,62 @@ After downloading the MaStR, you will find a database with a large number of tab ### Tables in the local database === "Units related to electric power" - The main information about power plants producing power/gas and other units is in tables prefixed with "Einheiten". You can find the capacity, location, and other technology-specific attributes here. + The main information about power plants producing power/gas and other units is in tables prefixed with + "Einheiten"/"units". You can find the capacity, location, and other technology-specific attributes here. | Original German name | English name | Comments | |------|------|------| - | EinheitenBiomasse | biomass_extended | Biomass combustion power plants | - | EinheitenGeothermieGrubengasDruckentspannung | gsgk_extended | Geothermal, mine gas and pressure relaxation units | - | EinheitenKernkraft | nuclear_extended | Nuclear power plants | - | EinheitenSolar | solar_extended | Solar power plants | - | EinheitenStromSpeicher | storage_extended | Electric power storage units | - | EinheitenStromVerbraucher | electricity_consumer | *Large* electric power consumers | - | EinheitenVerbrennung | combustion_extended | Conventional combustion power plants: gas, oil, coal, … | - | EinheitenWasser | hydro_extended | Hydroelectric power plants | - | EinheitenWind | wind_extended | Wind power plants | + | EinheitenBiomasse | units_biomass | Biomass combustion power plants | + | EinheitenGeothermieGrubengasDruckentspannung | units_gsgk | Geothermal, mine gas and pressure relaxation units | + | EinheitenKernkraft | units_nuclear | Nuclear power plants | + | EinheitenSolar | units_solar | Solar power plants | + | EinheitenStromSpeicher | units_electricity_storage | Electric power storage units | + | EinheitenStromVerbraucher | units_electricity_consumers | *Large* electric power consumers | + | EinheitenVerbrennung | units_combustion | Conventional combustion power plants: gas, oil, coal, … | + | EinheitenWasser | units_hydro | Hydroelectric power plants | + | EinheitenWind | units_wind | Wind power plants | === "Units related to gas" + The tables prefixed with "EinheitenGas"/"units_gas" refer to units related to gas. | Original German name | English name | Comments | |------|------|------| - | EinheitenGasErzeuger | gas_producer | Gas production units (natural gas extraction, biomethane production, …)| - | EinheitenGasSpeicher | gas_storage_extended | Gas storage units | - | EinheitenGasverbraucher | gas_consumer | *Large* gas consumers | + | EinheitenGasErzeuger | units_gas_producers | Gas production units (natural gas extraction, biomethane production, …)| + | EinheitenGasSpeicher | units_gas_storage | Gas storage units | + | EinheitenGasverbraucher | units_gas_consumers | *Large* gas consumers | + +=== "Groups of units" + Tables prefixed with "Anlagen"/"installations" define groups of units; they have a column called + "VerknuepfteEinheitenMastrNummern"/"linkedUnitsMastrNumbers", which you can use to look up the connected units. -=== "EEG & KWK subsidy information" - In Germany, renewable energies as well as combined heat and power (CHP/KWK) plants are subsidized by the state according to laws called 'EEG' (for renewable energies) and 'KWK' (for CHP plants). These tables contain information about the subsidies such as the 'EEG ID' and contain the MaStR IDs of the subsidized unit(s); you can use these IDs to look up the units in the 'Einheiten*' tables. + Some of them are special subsidy groups: In Germany, renewable energies as well as combined heat and power (CHP/KWK) + plants are subsidized by the state according to laws called 'EEG' (for renewable energies) and 'KWK' (for CHP + plants). These tables contain information about the subsidies such as the 'EEG ID'. | Original German name | English name | Comments | |------|------|------| - | AnlagenEegBiomasse | biomass_eeg | | - | AnlagenEegGeothermieGrubengasDruckentspannung | gsgk_eeg | | - | AnlagenEegSolar | solar_eeg | | - | AnlagenEegSpeicher | storage_eeg | | - | AnlagenEegWasser | hydro_eeg | | - | AnlagenEegWind | wind_eeg | | - | AnlagenGasSpeicher | gas_storage | | - | AnlagenKwk | kwk | | - | AnlagenStromSpeicher | storage_units | | + | AnlagenEegBiomasse | installations_eeg_biomass | | + | AnlagenEegGeothermieGrubengasDruckentspannung | installations_eeg_gsgk | | + | AnlagenEegSolar | installations_eeg_solar | | + | AnlagenEegSpeicher | installations_eeg_storage | | + | AnlagenEegWasser | installations_eeg_hydro | | + | AnlagenEegWind | installations_eeg_wind | | + | AnlagenGasSpeicher | installations_gas_storage | | + | AnlagenKwk | installations_kwk | | + | AnlagenStromSpeicher | installations_electricity_storage | | === "Other tables" - Other tables contain information about the grid, the energy market, or gas consumers and producers: + Other tables contain information about the grid, the energy market and changes to units and market actors. | Original German name | English name | Comments | |------|------|------| - | Bilanzierungsgebiete | balancing_area | Balancing areas | - | EinheitenAenderungNetzbetreiberzuordnungen | changed_dso_assignment | Changes of DSO assigment of units | - | EinheitenGenehmigung | permit | Unit permits | + | Bilanzierungsgebiete | balancing_areas | Balancing areas | + | EinheitenAenderungNetzbetreiberzuordnungen | changes_dso_assignment | Changes of DSO assigment of units | + | EinheitenGenehmigung | permits | Unit permits | | Einheitentypen | unit_types | Meta information about unit types. **Not imported by open-mastr** | - | Ertuechtigungen | retrofit_units | Retrofits of units | - | GeloeschteUndDeaktivierteEinheiten | deleted_units | Deleted & deactived units | - | GeloeschteUndDeaktivierteMarktakteure | deleted_market_actors | Deleted & deactived market actors | + | Ertuechtigungen | retrofits | Retrofits of units | + | GeloeschteUndDeaktivierteEinheiten | deleted_and_deactivated_units | Deleted & deactived units | + | GeloeschteUndDeaktivierteMarktakteure | deleted_and_deactivated_market_actors | Deleted & deactived market actors | | Katalogkategorien | catalog_categories | Meta information about MaStR values. **Not imported by open-mastr** | | Katalogwerte | catalog_values | Meta information about MaStR values. **Not imported by open-mastr** | | Lokationen | locations | Connects units with grid connections | diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 747f46bf..ebe24294 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -37,13 +37,13 @@ setup_logger, ) from open_mastr.utils.sqlalchemy_tables import make_sqlalchemy_table_from_mastr_table_description +from open_mastr.utils.sqlalchemy_views import create_views -# constants # setup logger log = setup_logger() -FALLBACK_DOCS_PATH = Path(__file__).parent / "resources" / "Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip" +FALLBACK_DOCS_PATH = Path(__file__).parent / "resources" / "Dokumentation-MaStR-Gesamtdatenexport-20260216-Fallback.zip" class Mastr: @@ -196,6 +196,7 @@ def download( mastr_table_to_db_table: Optional[Mapping[str, Table]] = None, alter_database_tables: bool = True, english: bool = False, + add_views_for_old_table_names: bool = True, **kwargs: Any, ) -> None: """Download the MaStR registry and write it to a local database. @@ -288,6 +289,13 @@ def download( if they haven't been added to open-mastr's translation info yet.) Defaults to False. + + add_views_for_old_table_names : bool = True, optional, + If set to True, database views will be generated for tables renamed in version 1.0 so that + the previous table names still work. Only has an effect if mastr_table_to_db_table is not + given. + + Defaults to True. """ if method == "API": log.warning( @@ -333,8 +341,8 @@ def download( mastr_table_to_db_table = self.generate_data_model( data=data, date=bulk_download_date, - catalog_value_as_str=bulk_cleansing, url=custom_docs_url, + catalog_value_as_str=bulk_cleansing, english=english, ) log.info( @@ -345,6 +353,9 @@ def download( db_table.drop(self.engine, checkfirst=True) db_table.create(self.engine) + if add_views_for_old_table_names: + create_views(engine=self.engine, mastr_table_to_db_table=mastr_table_to_db_table) + data = transform_data_parameter(data, **kwargs) xml_folder_path = os.path.join(self.output_dir, "data", "xml_download") diff --git a/open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip b/open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20251227-Fallback.zip deleted file mode 100644 index 242b39ca9daf5b1d1b6970bb87f74ecaa277b1dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38958 zcma%iW0+&>wsqOItGaC4wr!hTw(aV&jV`;(wr#V^Hoxk9&%Jw}d+v`f&q}hACs`}W zobMQ8jyWSQ1q=cO@aLj!m#OvF&cAL*0dN3>?W~+_Ol+MDoGk2Y31keEoD>PfOdJht zoQw^eOl(cuzS}uC(Wxjy0szNRC|CecDp)wXK?4AS903CW{Bw~+we*3qt0rK_i*8%AMe2_n{fB*<~ zFjB^q{`oQv1OU*C1OR~buU81zS{s;|*ov5#30m0M7&tnb(0;w~Tz$-TjUJ&L{fG~u zm8}jNg(iSqAb{A$uaM@3JVF;rQdc5qAgPbUXh?6X$XdgPH2&2O`pHyjePtu<8^y_$ z+fT+zMCK73E+5b815ZDN&7@SPx7W5vHvG4}f~9J>P$zx`C`q?o3>qP;ZNjA!7()Z5 zxoa9;^&cbZf+>iM@_weaz2io*;ZF30F*#Usd=LRW`Za9JTVu{h?KX|8J&&j5YlLZ2 zr94w4Is6{vC{Az4};A0aifv0(9KX^z& z^zw%-9c)5c2C7a4C8));K2UC2u(B(STk!g7adW_1d;Rz*F2Rr_r~%9)A+M3k(Ig>H z0yiaCKzSYI)$~QdWIYDMMfQkg0Ho-PFOh`4JBN@ff{Nrh|Iqf$Z0c=AYdSovSAn`S z#X#<=31otO=Wxa3%sgUj%7k_uZ(tsPGY7X8=kc*F(7MKq(ZyAu71NbP0wL0; z(1WdZ>R&P2pPoA7cD5uV{VL_r4~)9t;ki;M;@&m|4eU^~PwI(!jQ}LB(EC#-YIr@U zj{~K;dVVkY$y_Aj0O>a^jX{hEj*_$L+qW1Kp)~V($c`5;Uxw?XLq>3pR;A0+tIt(4F|sr+2XqSuV^s((T!Jfg*Ogb$&6h%f^zj>ZV1RMGV zJ*hw#9;-49Or2>jD58gDv(cr9`CD*3I?ddf1fp@=LPC2;t@eSAFhzc0Oa$eJ`dunrl-9z~ytGt6O%ukC~)d zl^smPPfHHYHc>6;wc5p5(epg^X9W>%_fO~Bshd9UYxKXKIZHWRwyRhoA3@0ueWs# z&aR)!e#c*!jnKwrw>jRPcCV{Fk#tv_8!cWlkWL1B2pBRVuRm|d_tJzvxx8@j>Wc2@ zXxoc{^4Q#{2{PGhlfM8P)tvBa0Ed^8c0jy44uP1Qzs+HLfVD-~k(Z4IO^b`;@qNYG zg^`O#!fD^vnmPTW+O{Nx!)Sl?R`EAzVW_r1q)x#;qCR%ME@8`L>;ZV6unh6|s~qyM zD*7oH94xG}5{lrQx7y=VCf>>1JdDZ#` zI$JFKTJj%l?PmBFS&F%?Mku7N!!yzi(0fs%enauSt-lSV^)sl{O5?;&o2a*niLey& z^NO;sfovTvdXNtanM;vG#1yW^%}0xf%1LieF;T)R@E+APY@jCeVr{&;qz|nkR2qn3 zAq_2I#3i4)5Cr_W!1~P?u>5J!oEG77t)7?RZ`fo%Blr02ql|lLv|Ng6wI$OT&^Y-y zsu(OKS(HNwOapgb8=xH^5`+^H)P{GeQ-|_GMRjE!y}%} z$n3GDZ7)!@q+cozhOQ55>95@Z1E;9Qr<-oi)=r&Hyc(i$3H`znmfywM5_$hsRLdAS z1{PF}K)g7;0%56QJ7!H=mJ&M+OnXT8+*HVrY-|;i`%;o~lKgpB@oV7sDw*YrXxg`AvHNBiILl^ovC@dq*kIZk>ZZjs& z>QrLFm-}>@1uE$egxKD5);`tFRKK<;^i9bQN-`2g$Ylc}6&%A1*k59p_k~W)^=#+k zCST>KI7W=1Whh#KuntU@kt9cd*v3-O)ZWmYG6V=rSX=-oy)r1;h%&rY<0vjVY9ynR zFJl6$eoeF(>5~+q>b+XFt%-c_XT$H7U8=9_6&%K6IDp({BJRKeDJnBLWMrE(&K8`> z`CSv1Y!8bp^@ZYnM>2I}?$>xjsuoM8i5fV~w1wS_ST!s+si6h3Cq6J1LZbeFY~894 zt#J@C&;TY3Gfsvix1TY`&@G}o9QN4bvHnA~_NOyaXB6E?qQIU55SjH5&*Hrji`rt! zO@_{HQ%+kIiMf+T6}Au?EAs)1aY%RUr6`&*grJ1^5?)#_GP&<-RW>TkS=DNtbRz!s znAjdRy8ZXF?#v||s`0G?4b0%32r?Y^Lhwn?C6EEY0m)tGmU>nnwsvj57Z9d2R5*;I zKbIfLellndhk|8;#_(fwM@t1+Ssr*i;;NE0K6(}|a2^8`6c=|Lh~0nu1GR9tjFkft zl^;OAPzwbD0084ZP)qHP8vHBT6G?x;R>)=23qJK$WZqB9pzrz062!!_l92DsDppLa zR4zltu4v*u-a}wUhQI?H2S+PeW`|ksHt^Mpn(k8cs-_q(9kNT00DIPy46yGx32k!d z9}5RV@O_QA%WhzrZUMu?!-(r9qFelgnfcSMPy0df;XxG0DCYbg&IXsMQu(+QHb+xo zXn_Rkm8w}PT?uK-PwVFo0ep{pL;0ywMLcwLogyCO%t0S4ls|wr1z)t(p-mm_9GNEX z1baMg+WiPM2WhxDl2t)t1F5P?242K)xQrab6%N0rQ%xg{nJ;Yt$~k|pi#28IZ^@hT zFD1BYn&9E5q=Cne>YKj_pKDYNxXnW@b=}UuVFB~_)|{=>N!~^=3#Q)d=0+4naLFXd zFelIKK})eT~L;r7LFvR3qVM%Ep@7byBJwxUGf+=m^MN$GXI4qDpt;8Rd%Uu=#rR8ws|5qI$^@r~|)lPhC zyuO5z0ue~KVz79rxEA7zJlz5o*dL+v02rjV#W0Am=SLq$3cjW9@;hUQjcIdZa6uZ% z3`p`8A;b2*Vwcmeqh^Z1yp^xD37>YoeC+WOi%DmximGoTW zlX==UFr2p_0s)|mY2PYiny^mJaWNOOsrF<0v6BaDWmYid6|X9#%H^Z?tAW8d$y^LF zrk)_@FfsFn6$&+gwZK)R5#J{2?vR-a({FblUP6g8@CsEj=Bi0PIGPq`CH zHooSW5b;5(IMoG|ZOVI=?!Gre;hK}gv>DiXkrggPb8&xQ9frAP?d<(S=&?gfKx=s7 zn*JeJl^AKh$WV<405ZMgBJK-<`ymmwB>BE33gU`P?Zryqu~(yF04I!*1||`I=4}ta zykaieGtoSZZ=1~-GTE$h*Au}CuqSTDfcHW)9n+>tV?smcmjm5I5)~x2+Ek?2#-3!q{PS!+Gx4PXY_-~ zX$OSNCYo|7iz-Ag!o$+D;I2PmkpqhB{aL4LDCi5B`1u52F(CrAn-UeMr{}ezcmY9{ z0kJIn9K+DyEb8BT#w6T#fi$GNS?3rKf9oyF_t+=e4$-W8;_9d|2byUPC9rUCyX9!YOc7Smqj9YR;EgxwIm$0jIs z(M>E`6)}jG3uf8;PB9&YofmxF%^$gk&UiQAp@yR>HlJlTolk-olfjC&R>DwFkH zMt6kv6Y%e>b>lNu9`y7HDfuEek^dw(F$2ec5?oTEj$AK2O30uljzXM&m0W%87mY#_ zG;Yl|h0TZeW2eJrXA_)BK zx2>^_00LO0Syl@$v)U@9>6NQfcAU2!%X;g?Hww zxcl-r{<1*+WpGHjTK!eIB`Mgg(jyGzq%~Y3JbQzL6sv?aoXo4HgJsRvS*&Ix;Dn2u z$-k}_zTa^rgun>O=h1mfO}ciyZs|;>X(uw?;t62?DEEVX1wQnTxKaN}tlxFWmNU6L z@H_;cFdHS47_g5gHc!|9!Pb(jRxO#@eArW|a69-W&A7lI9>kow6vhTpyIN(SnFXg z9-t(WdoSF(VJ2wVKws_d8Y2B&yYf}F^e(Nn3-`Hxr4VH{jmpr5Im=Jy{#2sz;GlH( zftgW?ZKmD>q>UF0z;sd%&Q4KZwQq4g5U6q_{j@V{d9HB~Cz3@o?SQSr4lyjw*#XJD z8$3;DIZU}IWKH_eURgazjYMsgIWB>o9lDRf*Oey)4C43ct~DwJbVF4O=59{?D>I0C zTbCCfU>(Y6s?b4Jd5Q=SmV=kqRju|aLrsf?TOHdO35&5ieuu23fin@sOD~sRAMk&t z$s@n9a*br5N6lB7sD7aU&cCOLl9Pj-&A;QoKZUO1GzM%QRo^yawdYdNXn@_k=pjnDY&i{3Au+zBB+)gi8+!}NlG>11$E=eK zqbMjKy%na`V5oLE7moh~J5q8dwXp-S{SgEvC9y7*xKdea{;l0N1GQC`<0S{fSYFP&rV|6$ms7#Ua z<{rA!!ScYhozpXZf#-N)Rct=XOf9SziNr$6RWzw1T6C@sX5892(O$KB7cxZXNV)0X zOJ?PX^=KF17(hlOz5~i01eQ{z_L${xJurou`4{a^i0-3qw<8~erZF4n?4u6b5f9ex zSb>9KzgBejedeG;^!l*NV(QFPVK> z`R^QpvEAO=pp9@gKIflE?~z<=vq)%Rz&5^WcoSCp`~&Ze1dNq6MtU|qz9PN)Wr+TF zqy;Uk4QxFuOdP(<97i(~Lkkn9zdX+@FAK!xHCl4WqDkJK6Ef8Mj`|aFesSjO^Rj7wPfvkCe+-PMTsrv zIp*^sHJ)!qkF&R4kEaLEMjJ3Ii!ljobQHKTm>@^~^5beCg*&wo29o?j3R=pc0VF7O zBX&Ti=BR2l^e*k3ZiE~T7?Yd5)8a|7oTwpU&%{wzlqY$x#|)@qjm)SPk+AZ*Jm`uA ziaSa{>&OP0s|gj~xA=Q?W;Wb3aXdgfde^HUSR_e8K977^DBZTcfwdyxXf8{-^@+rL zw%0aS3JX^8&b#zwQK$~^2iYmHI@|a0@3NSNm(~(&jq%~P;OciS0UmCx>$n7L=;Hgq zuIq5EayviDY)mbcsFI$}f2b~{4cf5xE*W!n&+xBpoupxX{3B-2Usg)w)3?g{ub2sf z0RS-mYjuiP*qWPIe3|b8Cbq_ZMNZbl$-~gZ$-%_J(8R&R+0McEk2z;z`v>G3RW@Yn zzwEis_)Fa3O)dEX2ALUVh3W=UO=LTCjJ4=9>y50&qdBg5#Z|%ZMYoZ+Oh?m0fWSz> z-#yssB`|}#HR$00^ekz;64ZD@OWiC(0>HDPJ(}qhGxyNwkrXo(_#wB??QDD(m|T#t`A76#tsU;_agfDu0r6gt zn7Q)^kyOD-@*wOWWGn5zG3%AqG zS8R!d({;^KN_ILeN&RlLQ|x6m5u%0z^CXo@`bwnscGRPmo$#m2^WIb(+&7wms5`vu zY=SgisYh;uo^_LJr-%vb?g`)*IjV3vcj&0cuKfDz;=q8e?j)0 zBR1XMqjkB~Nh3uig`Ai_(km1N42ga44VfMRmu?r@Va*DQ#XjP^V$Fvq#YJaCa_k~G&+8|MICIO;!-mmT#_idF zdph%E_cHrjX!d8}0SiBTy+TES(B;^1`B2{D?sGxt)a1DmS0;ZM)+h%uyaRYOV**~E z`aw9?ox?kongn-@K@bFFVXn?`FdyDt+$t|mQ|M-Y%gUUoBX1608n_%IGK)z00b7@^ z+m;^8;m&llD8mz~u~0b*Tt`Z6Hvbv_<1V$zV(-nsL3tl_7Rh%X4~D>j>hdj`w^4hW zQ+!tfy**Y%=MQ`K@o1Vw_F)Ge%H+5~k9(`JHn4S;z^vQl%xIw%p=!4^%!XjK>`m}s zzMOpvs6neuII}{W%t4BZxR|7|xyNlK0}Xa|2nm~9OJ=C zflo%JtUbbc!4qi`j)-tuEf1MG=?qHb2F^9(Y?d+TmkiZ(wgrdVXU)qdCg&bpyOeM= zW5N|r=;#=ye8TA^VCt~R;yKSEG3RX=aZ{Nlk)*4(Zz}uSev~`-P9ub0Z6?C25yB`1 zubWO3@C_{MF_I?FV6wXKS+;fs+@}kv9BVkeUm!xH`onQ6!HjqBl3D@!==&BYOlN1a@iRkt$49bpa-m+LAQ97@ZfN$ zGQ@(%La2GUG-t@c^%P4*NZl>Waq2S78b+n4t}+16r2XP2D;>DLQr&*-bP#RLEeY<- z<|TUC^~6p+be87t{CDzqM8%!2*U_VuhatmOJ2@}bcEyzAPD-_}S@JCrO(wBKI9s}h zsx4Bpy2}BNGwgWd>?4U@x5VsF#IzP{wGCvA{@lDF}at!#1aICZEdhucvZTm)tG1uHS-8PAa_T2A-DXsZs7J}_7v;VAxKHE7;&CzHiFWjv3YK73ga?AWl=-^(? z*RQZcIsK~rsAt)Yc*9yzdmn?OrUL5K#>WY^rj<8kz}~~1mNsg~pRyZ%GDtyn4DvZZ z%p?@8EvUi%vCuw?IPvseO;Cc}~vHTDwaKl!tF zq8c*_s3hrs7!Kf8*MJ7zr{atQVDn(?WWzipm-jko&3kHhp+RtvTP%on4DhDzP^cQ4 zk2b%m(2yN+L5%E73ScbqcWJ%$q-)VO+iFg%cl!<6{D>a9uTRxq??#BXpNq5)gfuz& zk$i`V7$;X;85iIsTLANXC4ec)N`Rrzs(-~#??!;ZjR1oO0R|5e2o4ws9`%~asDDN9 z*XFmW%8v;Ke^d$j?HCp&(cp@o(TxC;I}Qd<91NZ~5InvIcx2n(_=CVLRpDzz z+(n&W>k!m2+}DHhxQi;m)~1^^0bJQ>8xq2>X1!6HQ-_I?Hbi`Gw;GVuw|zKgz(W|H zeMDo^!kug-XHnE3+Yinap8~m$&{;dXQdi4jTBDNgm5!c|`W{xNsWa)%y~TY6O|M93 zw@>-UNGt9YKDu1mrOuE1=DYpFlwmHEy6^^2BO$EMwinj7XS;u=6tgu*2Es2Dh)M9b z68s-k@m2eaICz*ioBfyFd9I=H$F=gQp8xcF+YE@t7FW>(CCN*QZ=gKBR;6*PQL9*T zisgU0&tfTQ>9^&-5h@~9w4P$CXWF{JdEJ>KHc28wh&OFNc($|B1$E<#B#+hFj2&8I zlewH5TB_!i-uGOQBOpP|Pt4`1+-5~SW`PMaEjzIIP(v04McUEC@^Az2!flO@A6fFzgSJpz9b=9i7gQWYm$TYL zx{X5wmsw#I&$Aw5(xdW6ypBNIMD}{iokO9izzao21dU}52AyS5;OqcqQTfiIOe!27 zFwM=2R%5=b!%7U5<|Nm8@;Y9Zp90r6sem_~jYkgH0B%Uk3^ScuC8%`JJEpZ+IJhLG zcKIUgSKDYeUVayrnUP~GSjq3IKFC5Fu&*c=WPt)ryA`avpm~^8Dc!NSOm>^6sXa|w zt<1Jj_v~}=AWK^Ac9}PWYDNs!sr;RL<~K7jHzlxA`XYBr#fs!pij3Be zNN6p{&)r$gLeol;pRbFAaGGAHSs2>d$@)Z-%^R#OVvN0PH*%Oy7onZb>~A$_?8Ec8 z#uZ;w^6<(~p>gTK*HFSRs(y=Mf(6I8_{Am5Ip}$p+g4ltT%EwKUZJTka9+1kN!REa z?nx@4sc}VGikI735oSwcg|(0ZY7&s+u)noPQTtZiC6UB}s*phLbMhy9L=YMJM~_kT zo1~#{sggoI;(jk6H3899T>3vCFZlaQu)VdH7C%;WGtMpJqaJLi<%B1%H>znue(uP9 z_Bln++i*U7%CfgaKHhsHo}?(zgr{qs2lKe;1#_x??`F(bO@nib;tLSAHAR_T1-hM( znqI`dyhKpa-nSMfBAT;r>-Oq7T+O{>mrx8_$9{C4hKs79Qy`cM$d*I5bwjbzj~JX* zNn`-4b$nR|vMaFT_)Obj2M&c}Anq<;`uQ9zB)^{E5$9RLbDN0jVgR-5oeZU@k$$bd zTvIjD7vd~|w>qUN__{ONCMq8=SBG%Hp||f2bP?xwvS{=3J+)+$Tma*NIE~eEXi_}h z%RDWXa)WHEc)lB${9EzjQ}3mPb&SV2-WYZ)lJL3*c2di}zNO>p8CLH**$2z;1CTe& zJ4lQa&v#B95i*|bEjT37E;uG<@O^9U*5+07Trodp@asCMd@*hODRnd@b~~Ai zc;F2G`@ChC3S>>Dnrtjq;8Q^TuboepK*sSgSG7GhDI})uEXVjdTd@w$r1V$i?$IBv zG9L6etBds=7YmhFFBz3<`@oaSqN{rS_(`AJzO_n`@9flpno{+?PTeUrajtQ<(B!!}u zL<0{TTwF|CO%n^RCgYTk1jI6KL)W@(vY=1IkmT@OlTB?IYId2Am%5$Jnxjn)NCMK7 z!W05SnmsavyH=@46Usv~Z%w38vJ@c0-2`A&Q25pzgCs3pZHc&Kik2V0GaIhkJ$0aWBn+%y$Qt}bDwI}z1vqK8|BYEvb*P1oxCMhO=?s7*@+Pkf2A1Py!9-gHweY~a_SiW~Pw`P`CQ3R^r zdyW?$sNwY?{z1|w4jFKYUQmsTY8w%TxhVOYpv^$D@Uv)^KJB_fb62!K_#L*kO~E_0 z_&6kot0f8_1>+FycKdq^*)h?Kg9!ojt95tR(|f(a8BBfosF@vKpkl1EBVZLBek1Y8 z%C^t_@<};J95;RU#D3RHvae=A0TDS&hL= zVFvZNJA)XWARu?YsjnZACMJgWieSDQ1=gUD+z3YSRJloPQ^>~QgQv#;7!E=(%n$ri zKMkKfu|J`>B+bQxN(R#&z1X1uyp$jrovHmsYw*5)i;*_R`<5fjju*nB!4e$-82V86 zHS&!OtVx{8c`td!i}6sC zsKW1>!WACu=m(gZ2l#WVW_IwUCNwvALYPvKx@af~+iz%cy({#oUU-zzBWWA`u8{q8 zu^qnHP4_qo-%qVypT~p8@67rKQ(_h#azvAz3y+VjEhbw&^{!mLf`G5mV(bsoPgY+t z;Xj;jpZQHa#4iXkzy|>M+WvCB|0!==OdJdy44nVFeSfZD^T!7N;I;S!Ja`oavY=2| zQSM)rq1<3@O|eV(a>0Z5=(|uxtG77#EpiFY6vE+?RwZR_xLrHBUUj{$?bGX5c_1X9 zH?IR8JJo>k&>;^jhFpwQe~HE9$a z1@RXOfmc!DbGt_qws7Z+#-vcN@K!I8C5*gE+^C5rzh3l9G2=^v1H$%F3jPi zit!XUy8u~~zH=xJD*RD68!0tq%Q6gvPtS1YEgy<(`!SYnIX3Tq7=mL`SJO)?>(GL)=ws-*{*tO$l!Kq(S0L}2FaPBHyy%APJ84N4-Fc@gSqwWC%F=Na)$J?ShqIsE#p5a4^9n z5fbfGlCAYn5Q!=Z-~?O-8tA(eEyBdwE3%qV?M=L!m?!61U}Rc%LS<=Z0)fWX4Sm^h zE@fY&8}_RP&Y|8yx4Jk7Cm2qPy`mq0F`TvRQgXdG=Hh>*skGbeyi(40c7LM^(>$Qt zrucw}XWwZ9x(&houmFC?Rg8d6gV!=P*M>oSR!VZ(PVaND<=7B?pJ&bN&mNP z{x_O@jX;~*SeX557V=zG#_>?rOeHcUhGdHJZo8MjR`Be zN2;r%7?#=XD;q*_9E4XNU2-1J^RG=tjm&@*YlYnkmyVIZgK|KmgYcd^Q#-KZ$0D2T z21~Ih_<&?_Bgj`2iN=veN^0^sMPtqFODx7!VSxG&fWiHf{AL>^DCWsk@WK(6h?X{N zo3hT`$$sQ{E}lQE>)n=T=r9^8a>*up$sI$C_7LTyh53C8qaz^LrJg4oH@Y?F+d0LU z9eBrbDH&)9;Ii4rg~uKqn};hoX4_g)G?Dx=tprGem=rQyM*Qnb!v+;kK=XP$h$C6I z*5_-hrxRIA4v)$Yaft2L>_Jcrde~8@l_Jvh0C@?dZ5ga$4GE&xO?!Df2y5fC69yS~ zz&B!p#fMRz&9#41m##)e#Y0(i0OdvNwhGypSHM~?`^sr+4TEcmcbP?EJb?d-tMBQ? zn!8*j40+F^*?%jb=@oY`qcLh){TSlj&rUzO`#2hWSgc;|JRev7eSs_tISh~;$|?l5 z3z)iMo!`o}dXr=_POM}uqSX72mhs8cKIREBw$k`udr9J6wz{69Oc96l2BFfKTTmJy~ab9G5d-gJs3Xj=FCGmp~kBmEihM%7%s8UYSIi=(6GbX`54 z#>(bYMnD!s5{oj3omJ&yK+5RxF3+L8l;=AZuVL0PWDM5o8#P`wy6^vL(^8(va>sx5 z-tw6M0GR)Stp5K-aL=_)?dJGlKEIq_p`^>{!x+3iZg^&wK>?IjhF?!=}B03u8v`5?ki+eWqmCNrz?o&0=nUWk9|l zK@x%+6u96Ez}U2PbWW_@a)*BQCGPB-REO{guf(2#l>-RUf?In?J{DR}2DhQYQ|XoA zl>rMBi*M1U9>Is+^;g^nw=>C(JZeebrQ{L_qy5I++$o@1F4;{-%taC#+J6~^^pSB+ z39wJxKi#DT)H8>2lz10A`GA~A_FTwg7L1{QP@3q3nDoR%d{a8g7^*1ett44VyZ|9N z@<)n$;ExIl0gRYdA+{q)FW*#9Sh0&5+Nk zmnKSEvH+J&ke(}^eX2aCOjnz@39y}$bkv|3n?m={n`$1^%50Nnw#VmETRFgt^w+D` z-byp88g%P|>qLy_DVWPwY|e_4tZNi0`rgE89FOLXHsv}(j8@;g-|^eV*|O%oxU<6y zDR>;?)28m}_TvJKb_K_F`i9!v3mU7=^&6}=9~jL|l`C*7HWBPf><`nmfDj!0xDY%# zpe4bjs^H6Jw9Y-v<@v@dwkA~$pX?-b4d*aOja8C+A+L19vsQeTWZIvU6yNIiZfoNx zg}l55kfh*rNKz9Y#`F!tj(*~_pQqv)Yo_XzG7Agw_K0QnH#g)bFiX~uVx@xgv1Q46 zq(FtO1mVG*w7G6F&^*5YxLm)$`{)8I#Sv+ggB7c*9u)Z6@t3NgYT^G*QPX5}HbEbk z4c1Kg9)~JTQ-{QAdnH!WiTa-1ZOvcMrSakuz&;QxjZIW1SL$w8=N>yywKKa%J<^jt zQF!Px_F5YvUBuv|l5T?8zX)j-{ESzXa!Ut__N<;d6bEq0*UhX~+Yz=|4UX)6Cgber zyBSK~J1XJdF0w^@QKYN&s7N_%Vxy_p!-|OtzGf_sGu?&_*wHbw`Cy4~FL{{lUf_ih zs6~vFqYd%0A3sTk9^(@|w}3Ypvk+yRAi5X*kS~Ie+6@I02FcXC%flyYlmJIxGX8de zXl=dh(Uzupfv}cd!wGyIxSrvNFO;Z1K*84E8idKpCZ{1m_Jj`I2E^h3x>{%oiR`P5 zZJPA#9n4HP(nwG)2760)4p6Z0u1uKP!t6r2QWS6i-UDU{V@S^7jZIVgQ|0_cZPgo$ zon7z@r2se(qrceM0+@y;vZ@%}X?T0K{)p2P4c9m^I?9kI^5U1-Oz8u4>wUI}>smd# z%r&(v2X`bgbVDpC>^n24-2QRvMFWjjgHQ@hF8(#)gbQr1y2_Xcm5Q++LD=_iIglD@>naSu^WD&#`}+| zep$c;NhKwj9;jz9ecW_)Kn70l7h?^;jO5nf#ubZj!}685aSCc&1i%^7WYr{hBUX^d z=QGny>d=^cA$PRaM+t0B7}G|UYt{A$PxN?IzQN5B$6_d3Zh-J)ldDlmy&%**(!%MlkeTJc>RNLv#Vp%8vz6YW-$ zcG817StaeiPT^^*a;OK@_~z7AhP-OtY$QNqQ7zwGKUyYE_5PL+e>@RG7}!X;FN`Po zYT^F(e~tb}LP(i7*jhOlm^%G6Bly+B`%{awOT5C9Z?TDsyQd8n=U1K1C(9Oi&U8wX z;z$VZ(y#gd>hk#wP(%T{r_E`Ctf*BgadG|JQhzxxlHsamubdVTXVA-){9b0N;^#R+ zzwa~j;^6*PXVT&My8E0#^{nXu*k93`h_pkX@;x)`2||=QT6swFxjIo~hdk&Tp)dll zS_}Ba`rx+~FK-eq)!g}g=SI$q3Ehd4YNQ>tEX|23A3nZQvp@}Yr=omtJ$_a8$ULJC zcz1w2ARnlJSWxWJ=Y(6c4&rR#@6PT#{%0pQtwDMevbN6lz;{s1NcH8=Q&Pe6^*F>7 z_$Lzm-}H1VHJZXQl$U=Fw{k+6a3%YE*&-oHOP85D2fA281QjPP>_Wxcj8O*RPW{SQ zIsUB*-`Q1HxfwxzIQVLHw;P&`q*C1FJ1(l_{7yg6ScPfhKhEO?mIvwu3=0=G2!gst zEu&1KuCB$jtgoPDrmK7hx#z-quv98wXS= z*0n+#X)iq_yF;K_cx_nk>e}_@QnK2rWlbY@BxM@n*hjqe-x4&fvN_{7i-I59rl6_I zX|Pg;Y}?3>V8;5opCOH$A1+{b&Y(7=kC4#~mo3l<2xfmguZrPeGBQT>a$i`Z-S}$Woeh!CF~@zgqbC>IqSIdUvs&wRwFcg*g|)WC ze#+1(3+sxSDgVhictt%S_y*pNy}NnOZb8i-_l4Sweb0&Fs0J5aeLzA%ok-G>w-)pa zgWBPV3n+fLVx`kvibdPe?#VRvNZ)NmJEo!M!7+{j`do2k!Iq%HW`a6#6ZOx>F?kG1 zGuQSk0viC!_hm*XzLoPmH-IRApu@H5-E$E%>IZfrSgvJxqmW2f64HFf_XWYm8gT^` zWlw+G*!^I7`X+0<2@x+Osp5-%NR)hwWzwyI5Xd0CsNyyi>I3xy%KNCCK7#NnI`9a~ z4gL4n^AgA!#J_BJ!?1;%%u>T|_NUBLv5&BVv4u;L)_VSD9-!u`v4Y_v66R+aj^;USGcvU~!Lpo& za;aikf7GiFgwsvQ(Ke5+JESP?MPh0uMh3T&7)kotGma7t)WLxEx~6B}MdQ6LyLATt0(L zBI#qz>3!Tvn3?h?73z`s2^5w?%a9(j-q{iIIrhOm?6a0a0x&n>APyV5nx=JHYBm1L znFgo3__;Vui=%~8{eaixs*zNAIjKsCCmxnxwcC{CiCMe_;6Uza?p3 z+J22ue2M8x`2#Lyi8fLZn0ZTU0(AitjDL(#Xyt^m?F_J&d?r_!a8wKZ_}L(170<=x z`up|vwuMetXF%ZqDF_DH$C_ixx*VuI2SyMNM@x@4hxfixjV_1V$DSl->;uA3)j%@5 zCWVq+M%W8TC|UGmS@L=63x?@~03E`<+-V2+_2y_Hhvzp*JT0Ok(y8)=W2YBuP0!@8 z+>_N`O7AWoof)vEJJU%KcwRkqy&5n>i>Gn11j^lQ68-&erO%Gb2z>_n(52dZ?dDy7gXmkdAD%YEUO>beVTm%VFZkT(I-W@d%p#Za;j z1&O?zs?Wo37&_Nkb}$2#$ZJe`(40Pul0PNi*6&6bvs%kEOOrQH%C z8ckbGOt}Xv>Z4BLMJVE1CJI_rNak=9EG&ODMIMTemLx!D{!Ez$+hGnZeeHMX34MElwar5Lcl)oyUT~ z8(UQ$JoRQ##s;W!~RNYbKbt1l!zBfo5)NX-)c3yG)kZ>jlqi3eNQPJ-Tl za0ceV(R*#}6uMUWVaOa^X+=ru^BZ;X-b27W`d))(GF!+3;&0#GGSD7<`3H+5y{N~5F#z$oyXny(5cBU#`lRvB zTdXgpUSUYpIVj?^_GNan#i0IzVzBr!&;5$#iysNQoVXi5=XRorrfB?^#!5X6qHhdP zY!SpQ_XXqN8s>*Z^e3qNcU?d-SY!T(XUu6gU|r_#KpL9dn z>qA9{Y9TA4p%Usv3_lscn$(5TQEbg_qNicj80G_;tgbljTV$|K08*MjnNWSuI39F~ zhPw|s!h^)EW&*Bds&_R2%|e2_A){mEz4YuDT=FFdb{R!j?f#ufL(i^!+osxOWKf_{ z1a7{oK7!wJ6Sa(@)Dpmg)2WPu!!cIwWEEgQlp~Q@Z53eaITpb}6`1djQLR;MKh6Hiu3Jow`j&)%fhi%ySP%>ohPt^M3N+7H*wgsOuW$y;C{FN zZGd*NH|WZPeW!Rid8D_685TuQZw5}3BV#98M9ue|EsZTEk zI-6iHsf%?GEqk~Y&Bvf)nzdWwI8piW6=-K5!qeT%K5i5FU%tX}jp?v~i5YN{FJk*J zjize{0%luu)G`kQ2;FAz2ourFvT{}4fiXXcI3dpFl-#yxg?uI9qGP8E_^Fas>&@?d zcLL#pFgICXpE2^ivHb-0$vZ%x43sJ5Fwn&I9ng5m}E& z>;rY3J)F7@X1J)ai^!FlGG6*x5s~{Ij{#EThGx7t+Yjat(R1L4UtHXyiUQB!+ns!V zSmTLGC0AGhlbLP%V978BsjZ67nkSRZj7oQ``^@wk{ctwit(C@Mb$3r1r7N~%rRxRB z?MUq56Lb6`-Me50Y_B zX=I6c;iK`%$??gtdL`ZV)|i4pR0vGcw+0IyD>m$Iu@UzD9*f(xfwdB{iT@%W>T{FZd%fy zMVdkX)*uW>-mulG#Lt-oUon)?Zk?Hqtkz&dGap$h(*kF4Xzlu+e_dDixL0 ziz1>Z?zuWIN9C_-acJ_^f3@d>HAHS;#m8$@yiFKo&{sP2RjmYSQo8XdtxA7YD>wRj zA?`hs37ASpGC9lq-a23EY1a0a6|Hxo8H6N1I|u_hg|vLGzo5c_=oqL?h~`pL*^18j7TlE4a}Q(Yx(zqj9^zD$ua+&J z@2Z!tX_~LHjw#`cW`rwk{n5I&VW8c1=)*W0%UP3{_)9%@vctM_HcAu~7m!JXb9svD zS+r?|GP(mU)L%qNiT13$nq>R8!`T0t&JNcSa1mL7APdRySqCC z3+_<3O9&p^f=eJkfFKF(?(XguAXsny8T=Z`za9rqhwQPe2izrAFyz4n~X znse>^iz30zf<5gQPMRufykQP#7NY|p+$%T7xpie=jU&4l?iZrx;XnalBnAoLNUUPx zOv}Dz7aGtN3xbse&P9r9;Z0M|$lNEcwi6mjoErZb?i;pt2{m$htCtGlNf;T}d!^EmC+5}Lmt$|o2-I8V>l z#&pjFI+&B>nD$bOSVULT#5sT;-e^oht2ubtpYC6+uP)?dGtdzP9(mS5k1(0;S2T6E zVb2pk;am@lM}py8H<>uH)T@pucML2voFab-9r=TRG8uyc`%A8jIt9^19>Z|YljDKC zTPZ|Of6v1m?GGXa)Y^4CAV*5Nbv3;nOUM3HsUUsnpeo8lQLMTW(cM7tq5uuaM31u2 zW~2v}k(+mdtFL&BrF5Xz$PuK9J9xR8$NP4J1L!@OHf$*kZ*;3HOk$JGG>`{eybf>9 zOUKrh=8bR|5&}4i>h9==@^Zvs^|`&6Q0X}^f-1x)o49c8j#+5Rdh6F8=b)?LDxbgs z@#e3lp{p1xTL$1}yIu!+@A@f2IqJCZLJ;kZ8ar&Ok4PvNe!nKfkEM;5o2FQTtsf;~9o)Mp&*N=Nf(z;rmXhv`hx~9L3HTafyXc zxmhrHRN1v_w2RZk;IVJ8R~t~&s&7|D>{T_2MH(8`Sj7W&Cbsk<6lGk@WInbPOn%th zO^xbH8|;xRItjG{tQI<|iWWOL)(zG*)HYTBQj!I(h! zPTO9i)w@*3&q{@>zg@Ov*9nh#C!7y(%qjBpKto1JI|!-Nu~rW8TgATWkthL5aErcQ zcPynKN3l28nYFuT*|zu)S>0G$urTs-XRprg>yVhM$p9$d*RKhxH*a2X9K-67TuL7(=LsfKfV%kGF9ck%YChkpZb&q|U{+o{`6%ee1U+P5O2$axAt zg!3W4Ex%`gixMW=1^mLkvL=W7Q!(Ov(x)vhN;i4W+Nb%Ww#;jR&x1M7_{YFd883C zhApx(QKu8LfFq{NAVCV4R5qx~=A+X(^MI)4L{Ya*$%>#IUhJIjiwLl5<(67nQX-m3 zr4{ZF=*e#R@wo-AHqWW>x>4>s*Cf9P_{9z+(N`pauJu)}js~EQ+{Qk8K!*Oz`zX>p zR6;0=n}baXd)(T_N5tjU-ak3$YtvZnX4!A_GwA24Ol+2J| z%4eensZ6QHn!DJb3FCba zhc5~a<%edY6+iJ3MKUxXX4YD#lH3vt?(yZ#MExoCnqv00oA;XOokG%2U7mbFWsxU9Qm`PGQo?oi3aNtx?`&#(+>_P7AS*LKaTf=ekvx{DASsMnM(&Ws14=2G?@?1-s<^fLWJufz>%X5g# z^xs?0;A*cUy6D_LgeWohHGioW2GSF3UNatsxikBS;q!zs$1tZba8t5&6`Mq!&w?JXjmIMRh|~ADTW#2!flw5(f#CG6edO@ugM=71rjt8sc+)q+jFa zPNzts_*mYq3VhdR+8dD2beu4Z-cT{K`a?iabsq?+`tm2fNQ03;;IK-2XlD1-+ zyz2dh-KD*h(TbyJw4#2;*V+D^KI~Z6k915`9!4s#1l=L9pv7N)AoanoumXSCs~p{I z|5)G^9wRI7_h(Ue3p9*yiNs9a+-=Y;*BVV{HHHy_()pAYq4GwR10 z7gC@3PD*AgCk~P7eRNQkXpmiTYN)LZ*jW8eYOeF`J8HaMtH+D7Wjo_fwQb=r@$w{J zbx`8xC1|?e3kA&HXPlsoWwx|2>9o0YLLa!i9$V`pL7+_jOjloJ zq)92WqPv5dLs43yNK_T!QKRS-u$O${i!{GNH?05sW(YG8b2B>V6Pn{lyt)!H z%NzPCv&d)=h(Y=#@&pQ0JJ`ncdw#Nu_1Bu=j7j}Z}~ zv3emLm>4)9^{v7LmT8j|7r5O6P`F2?vzbNXH>{L zLS;bNAa5kDYRFYY%WEI3-7DEjt=zRFXwVY$Red8XZI5-mzvXecN-;DTTWt@W6rtp# z;zT%6h@sF>PLzN6@#=CcG)VAtX6)&CM(S=?ExW&n+6Ts$;{%BG5@qX<&`gm7imdAV z4mjd|Fjw6qfsk=8-SoEE8kM%Ywyr*Mv6$RctEI>QA_3vz=9rTr4g2Gb4IXn;x@sNj z>eOc&%)RI~h}bYO#gwoV<0~hVb*Ms$C(D zjVI$p(wh!Wzst-eIge?d?uo=m43tb3s`FGK8tm;egu4rv)bknn%|{kETYSX8-`>Gr zl&tqmrhqk?n6>e|8g0&_^ySP$GylF$np5*(i5L5gD7y!Nk?=|G%;y8 zNsi9P52A%HV8+>!0BELb72RLa$Y$>Yv)z=m(uSRs@{2-^Z+{5w*HKMn<+#Vbg}XS+ z998>_AgJ?so}i!kqvQlV1RFRLlcp1Oz!=;|vH?JRt9fNNnbUVIkv5W8hQ-yWsdTeS zsnV0&X}-z`p)RG{$(J`?_1wk6YC&t0P=2{BnIzfp=3jS5K-1)gwNd>r79;%U;X|1u zc-SA_&%saWchBnUb=}{;j_WTEP{l`Pcx(iy6TBCm08FiCJ%*XMP6BtU7 z#P;UW9O)5I8ekXj<6QRYV`|juo|cAo`Ft$%qjoLOz}k4SDe^YU(9BOk~d1@ z3HK4@&iKnv7XRSzyRokcXj73WVjR)tFNM#kaCVterV2%10U`uDvagH4(kR5_$ z(S^E1?C^!Vov}a>d+Zveyd)V#yUMxzNk0A{ave~oIU{jC79@#W%eS%_x+V`}JYdW$ ziDnPEmdg3$@E(z@mIaD@ilVE$SRTn-$KAR$2aAH|Ra~=4(MOL!v0GF0L0bq!d#Ooc z3U5SvxGBodWt^Q=hICoRiU4hDB&INdXXu%N_)>Tn^=b!M!?h46RLu4GLIJ#%B?Kv_ zS9IzDbG*Z_U)MO#VNU`R>34WP>xST*ou{jkq^-)!^eM%4ldn&*T2dZXJ0w>09=s6Y z9j(SR3PLbideJO(N;Zn!udTrwd-5e=1Y8LiCV7qsFonD5w6KK8*1@QQsOC4+!8?;d<+jxDJa8(q(W(<2=l9XxzZ79Hs8 z2Y`5b5-78Bg@Av7fIrM$3TgNh-W;3b5a-by2Akv0J8sUAY?(CxLh%NbcYMQ)kmcK) z^a5?d-GohnanvpClssyzo})Wl!ieJF*EliUKt(%ju?~G~48cIMQHHR$de|5(wsdcN zAzGS!^_B$~Y>BZsP!RB0usQTR&sW&6Im{SrhxL|UFJ}6(fc8gA++P|9C5Q`+r2T*2 zkwT7082QLLgW4~mu$M;KT^l|$CXW)lB6lcN7QJO*ojt4WVdy80^H_4MdEs_inO@ox z>^|9Q)rG~p_1#OG2AB4Gj5CkB#md-oqYOe~ZbDw)qwUL3dE|UA_x1fTv}YNFRo5q_ z3wfqMKHgy$o(O~PACq}`(0sgwC)+*#^85qsc|^&p9*!g)j!`2HE=$=ZjFF9%3Qhg5p*cW2`)mUc@8GqJNM8#XGgInc z?>BKo$0mQ}^tAk%gWW4>4(wf*em=LP zU1!;4O;LYc2UZn6(wPEn>N6wL;r$q-G0n|UDowV%AYoj7#V<|n!t%I`)7E4+AwoG=J-UVW=lE{IG;DpIYZZ}d3dFM@GFV_P~#8U0kUjBM&~m!R#U zfrJO|MRF2eQd4QU6OP~4*Db+tm08;KsT6UBxvBMffC^==Jv|lHwf4=K%X`}_^)o_K=*vFon`M%oIskL2?S*LdKAaIpg zz#i(gXXTLhPhlKhKn)%WQ?T2D-7EA|{6pP&YhzU>$psKDS=@qMoe62N+I$0w)WD3mfTOp?p~ZOo!@KVhG61$nQBm6 zvEeIB+#`*&v!|`ZoZ5uKjdb@utgrX5P^csuy#ErpsmfQAd0if}q}F$KT(LNYGvyk3 z92H`6zt#kikckN7!*e&)t;SuurMVD`|Atcm9^YD|noqXD6yHia)lCNVokn+rJXWKB zHRe2Bz1Uc9cfhO895ny|2Xqp=*TB8g{=zx0)KZp7r8ykc06Lvte^wzraIX?^G5kPs z%{Zz;W7hoyi}gm`;;; zI223)+l;4swuenRYYd*$LC`$Rb^Ta^SNcUo;@qzO55+)MQ( zNCBrzo0L2oP$K<)6cwp8G2dzP$^KfTp4W@3+~#2U>?Il?zc10U(B=U0Ox}1!iq)c_ zpk=iqC!Uzzz$SWU@DGe`h@+H=ZJ^uI6iPvJPy}2n10>N@@+XE*N$iR~sXif}8DDqQ zBMUFziYIR3;)PbHoap67ZfdiWEruXzZpl#x8=2tB=D^|XzN0q!sFih2BXyG7A=%L< zkSd+%u|ogd4#6gx>+SmYh($iC80k6#a)`jWSlwg}?n%m+f!QEDS>aG(1_)H_FM<8U zA?G)whqBXH)y_K;oVVa26s#Xi4v9P!eT>N!rxvxdML6nv7ORzjiigJ z&y;=rl#1NF#?e%!kQx5{t~ko3~r*Y_O8eT5CmqWk)k=1g8S5kSkZR zgMqPz(bF_e+4QrZ!VYTTby+q0w=kTo?#$T8Vqa+GJT^m0^(3g8|TxFT4{+$brPb>dnxGZv9TS}(yYjclXSARyLu4a3B8 zy$ys2G?UoOinPfg;_WMvpM>x8Zm(~bSo13E6~o1=yw4+1fp5Rr-|SWx^bmZ>U>m;( zC>nhNjE`t3VEryvJQ}UYibia@Pmbjpt2dcDW0r&eqytFpG~%U-;-3e8;aEOjEnYF3 z&q|(bYsFG!{_qUSTMS654c@x`3pmWA}# z9AQ}$dXaHvsJ(H)EyhyI3%uO@3*pkOt(iJOU(5PaSr6B53TsV$L)E%>kdKG=nP@nu z6OcDbL<$THQIpcBm%3@>B_tR6--boYswh%r?1q9a4-Y^i-b}jh`9w_*oE%MKH;e_wYm) zdu&Kl<9(J+8sX*X^`9nk$F@Vw*F>q?l3$g0R2*asx?k$4;@2uM`q8VXK}s)|UcC#2 zsfM=e>9GCr{;~_&oGD}lorRjspr_PCOJP1iDZA%pYYU_E*GresE`NgGs?)Gye#6C8HzHmUWTP%O=CzSH_bG~ zjp&@k7PX5?f*~p><@j9Y*w1n`NHIC~YLodzR=LiekTllT*i%~Hb3r*H=;x^l@@py+ zs2i*-H7!?|JJ)=qE&Wb{IjCGSM zdzLJhM!n)Rs}ijiO1)CSWfaZjhTgOiElMMH)NQw2#f9X*F<%ua3s7Q2bNLbt|6?DD za0Xvj;hfe87n2F(e!_9*fp)SV_jvNBV9r60L|9i3q@&Y?Ooy5TEje=q$(&zKkCz>? z59Qx9^^X*O;_5v4B!T1R_r=9EVNFUcm(EH7MJ$JyPIz}qWgFXaA1735B&f{DK1@^@ zr&n%GCizavlmR=mUIEpZa^JisE-NXAcxJ;-qRB5>QrV!2s=z1PH}U;f>9D$^i*#eD z>37{PR)|(DfVoWlj#$%PWN}DGx%+m(YlSa!6Vsy&^!*wg^7qEWR^zr+8zG;q^7jOi zn{mHO3?_4E^LWY1qOul;T^i5#wu4O@6S>KDgtCBlHZR z4R|>uih~L^El+B`AR~1LcnO%AfpdwD@f;FpaD$c;x@OOYx6qC%`px&Vbr;d3=~|Q% zFw6&%IfZ2#isx#`rSU~D3`k>WqdYgUh(}&ULzcB~_H?KlTYViF1u?V{Lq2J2x0u2_ z4Eu2{=Zp%0^jjEh$~o&q09;nR-CJU(BZ|s+DpDrD{tqTl4nE~$F0h^g$x~7YbsxMS z<8YrqPoNc-Ce{dYk6{NPQu9l(jVebOUN>G8zin73+H0ibfP6QNul^L8r2EU~aw=Lc zc#}zFuJzT?D!oB3cuY{Vi(&&W_`t;~y*aN?f~QMw-k;Mt`+J6_;Vv0WLG2lm2roTr zMSJS_iCY$)Xm5B6bGRyBakJUi*b0px);z5fdlvsZMEno>3nfWJg3Zu-DQHoTt~g2f`q{V(>R6D&C1>zb^RocL>##{ z3KZgGhRg%4Hwp~^dZ89aavq}_>n${IIVvBV9Tq?|d@WRBK7!?}8Q%0_ekk6Vb(S{k zd1-J&GbtB%=vSETkrfxDZtTpbwWVY3T0lFyxo=HRLlz|P(WI+t4x!vjB-U8gg-3Gxt>Y5W!QX9826h$j{e`JmSjOg?=EG8XS!qQ`kjvQCmG;fuf$I(+$_sV&Oi z>2iKJn`Nzh86CM$?0u)M93~r;zYuvPG4gp@!QB+zLjIH_j@ZP*-3IG*=n~37(kp{> zGVLT6O^n6vlYVq?P0pvhoNYC2CA`>I@R$WRnG1xsY1zPc=jH(MLBU&K5hIrCH{<>J z!6&!C%M-2QRL3nJ_zlA1iR6Q1hw|5#^t!Cy-x!9a)VZmDUV2B1wXoKoI+qZYK|6bG zP1U`)2826x%|WtqyI z+`8Mx}tc_9ZMM?8( zHd=u%!6dlp9R4q?*P+4^(Xi3-bP3Qr+ewaLz{x06xfx>5;(E`d@nXU4=JOnxk{kiz z1lIQM(|c!M#|D-gNuQ^4y#>F-GWw9{pQw%N7=_vGkY}$jW;o`T|IYBq#-SI2YI%f~ ztJC63v>S{Bk(hWF^PMonAE5r;0S=!QTljZ=us?8{F$jEb0$;LJ$w@I(EWD#7l=1PrzzYG|58_EtMHxTnCO0o=b9-&Nm&&zsU>`lw!9_H(Zl*^2G+#dmX8otmweOI zYivPc@fmJExqbZc^R9v{b^tyk;t3FnSIFhV0>m<=uuBU%E?i#a{6h4wm8r?z$br{k zlRJ1i8fpg|?1b*D4f2la1(Ee(et^@Gk>*f4Ts_+;GIo*0-An%2yo|r6L@|c48cmnb zg8iVj-U7v^rv7tEByMa4Gk%+OrrK7nsD43t4@n4t1KjVD9dlq6yot8X@TE|_nd7O99x(LM+wTo#iC%gcwPl01Zm#n7ou^q=by zek||y-|6`F*`vaxe^AcFWj4n=sT?`R179(;om3k`(|I{*4&TsZqHv?e6*DSY2niLP zPUpf=hAQ4X9$@0tF4%W2o~>wz&I-41eC|hll3@cR1oU9%oYhlb%8V*&3-uS1(7(PR z<|+6DaRb$%@LH@Iy#N_p5F|WL!L*MOo*_WiLrv>KtkWz`) z^9|&w5((&cfr!xdHB?`2#|YN;^-^CR#(+t?#)U3!_kDrlt?DxOD*dCA;daU3#?Ga| zU{ezWvY{U_;;3$NhA#9NJqwpjo8Xw+JEWAm;zBF|DiX$~u_;YC(5NpiqQKc!04XUpI zi~TlAXNcl+4R|cW?o>XGXMGj^7*4^0zMV162`MhVuZ&8p=_^R)NcTNbGvx9nw?D@x zBKnwBao-qnC8dSWEN>YE#^6C}Qo_uO!ZxLA0d?* z=L>ZFQ4=KHp-zjBzY!IWTkd_#f}!lN(F;yKdQNHIY4VH~El>TWfYi=v`G9?-SXzOd zu2VWSY7CE25&|MGejg4m45Q-q02Ng3>L9T4lS|@z0aM_64~e9fSJPfC0??Qw0~)31 zmF>yWysw=hsRn1Wg9$=1YIQpAK6ub=U)6u}6773Y-MGwrp+5OsN?aDK2}RdAaiBKG z+?MQPmySmK5-a~FWI=*L@3}~}CeFEd=yKX0$IEzsAKMW^rYgFwq8IR>b_@l1`hLau zlh$|Cw*s14g3>IR0`1NJboMFrfJSnZhUZ7flk@q?)tQtw^dC_TxE08XZJ1Obg8 zTzI6ikqC?zU`cy317p)@wa9xYG%3PN7&6EO6t;3vYK;ynb#)e6?d{y6E9jiu0^XwS zH(;dv;p?MC9%Y7c$Errx@)cEy`lxWt58u=|qEuJzgg||;8#kJ3ZZa^?KOLh>(UaQ9 z&)c{^K&**2nsgo`;t+s9SiLnGM>KC}{z7|N&^NX>Ta*xr z^| z;*)5{M8y~(Rz;XjO)!#Jy5@AD9{M1pRSKvEC#X6$FhMog397;SBu}8om-K(upv(P$ zcs~w?Kdd}Sr9UeVyxo_yy0(Yq^E&ydQ0vlKIqZAL*>swwq^kbunXLFXo|&JuU%-`7 zK6yhu1*J|NFg5Xg2NUzSFZ5GI{=kd4ForFJR~|vqpykpwiC7VD)U}2nmp~e+Hv%EO z1S~g{Po<5=CY3&>7LIY)Bm*pLNUeJ>xFk)E?j5Cr2ya+P(%k4J(PJf6d^rJ*GnsbP z2Qw}knv>vj6Q<$Zj?J_-Uf7n9^1=>T$<0;MjOW=nxsuw; zN-$vRNLSkDQ0-gMpO{w`pcl2U*R4!)gpXH9TYYob@b6%vI+`eOU&P9W<&4w@;Qy;P7;Tu=hDqBG>KOu`&6c!(j2)Aj`s0{{RvE4WN&C2NKEnpeL~;p7tOZ=?LKq~FMh~ZjlIG`)1E#4vZ^J8oD(SExSB+! zhEUxzz3%^6j#T1lA>`x;kB$C*b-vdjZq8x341en|PKpz27(oQnh^9UvZ79K5#i%+I zx-p6&M2l}U88#)NLE$Izo^7OI`j)vcCcGl>HCubq-aDd(jUz^9>BV@@ea@nmdGX;j zAbdYqD^-D&D1*y)fLoXFvSv*e6us)^$>3K9DrlwODQAf?^c_`G$y%Uw@ZKl?%qJ&Dd1eb}@AE;al?`~oU_5-l&| z2&en8<)Mn;SBpA4P!Y7;4=f@F5;uMoF01Htlv1 z*s}mb6Bm<3YB{W;f@y9|its@_%#LOStlT*Fl$K+6Hz)Ye%MH=l+I9?Xl{c`YFC65n zS=1I*#4g@49l9TglCz`sMJc=&l3l`V3=__AmfU5Uel`KSB|9cEAZzsP-K(ynuqM7w z=@G^#1vtCC*Alq_tq5wHvI@k`jvo~>D&;%^?qvjAU&Wn<3HH4>tkCb?Lgk8FYoIUI z?$^${>Np=t?FfdiFz;#Kz6_?4`iev;*p2Kz9J`Rve79w9)YgRONpEJpDsw6S&W@=@ zA3xl>fk*a=+;9~sqs=4v;re_iEmIX$guu>cNT8_6tA7tH|2&iKEocGPM6f%Lc1e#2 z3g(568;eb~MFcl!p1{A^AhwB0k<%&+QTEj9^L9_Qk!IJCI`*l=iasQ_?v%Wl-oH9$ zSVQJ-)a-Y;labY;-E9kL;7|LO>t4x|zf;!MBR|yST9W8_Gg5cp={n&(JUBR(HBVbt zoF8#b=k?hNGb3m0ONL8OY~zn?`mG7`c)38@{xQ;tg;{vr>(j$`PS-7}9vqwpwSCBE zXS(&SM?XTp-5NVoZjI&d-Cpgn^XoRv7`g5)EKH;E2tZ)omBoZqvkj)?EeNY8#&{gn;dZi@5iL_~s@*O#mH(1J!# zp#JYeorLb^9!ydFs=WkKr@neSj?komS z)Hv}852dCdc;ltyj`zjv#_31?J~w`ZzM{l$BP2(@Bt-i~KIJ~w-X7;o z%ePBQd!G@{HZ6lz6&F6lmV5hKwGo~fNS&8rbp~+|+M|FIW!K9`!y2Ad9T9_kJm!sF zU5T=J7sPm-%h^`gYg#CMx6;=soVWE>YW!OA7Gt}&ep+5?gM%3sWv^5Q4tISPX0IyQ zc=+V6uM8@ds#a}3bYV2+F2nco5k!qWxzNPj2D?ePdW}@N&6c*Hy0DN=%l~1+F2t$Wq*C4_j){^~JZjtvn*WyR#$M>d2vH zFHgArH3wUw41dla%IRzHHWAE2cAK1oJY7j!9LM;k>1+KCscy|lPaiyRHd(@Q9KU8p z<~R;!j{J`g4mM9x!7m87n)vB$H=zdWo0G6Oj=@cJm-~@zH=lAGL!@3l8N2~A^?uFF z-<(AB=i3g-JkWVI%J_A%cKd7{EpzA;KxO;}S-Uf~j+ME%JRpzP+BTm2lIvCH7<+o- z(MfpTP#+R=dgJj)THXPV*VZ<-{F2+%;F!xFZ)F^vFsFNWjt#k9;mGr^ZJYAkhUNWy z^9P^2Pe$HQ&tUZojyU(4g=y+uSY4W3H8Y({=Qb#yAx;LVO+zO`P{)XOmL47;z)bY7kL zL)E98ReW2MTk}_`S{V+z4mMtcMME|J|NJJ@F51}_*t!}2TdURxHhuY&(n8tUDezBl zV-&K9{N{Ai1;CE_&ZnDYH&KHHi1*b?bYy7veh=snBlQ^t>&g^78#!o5xrwV zv?SF=z)CxFoi?HU5yF|AvpKfWW1?P@f)%M=L&0C}t@+7jG!P=2h)#*34L(S8ovxUl zrzXkU@r9u+kZ2x)Lcf5BH)P+m$$3{RZ-wsK%Jt=vXH4Ky-r7J65t}wc9+x+N7jVn9iDJ5g@>jelJIy9y8hgZe1^l~pI`a(>njJpzT)}wD{?;fq?YZ-KYnQA z_2&<@mj3+VO(snQ}>?Gjr4jXvr-0eB&++&cc zJV#=uus&*}#Ik}O~GHB^6ba%@q0jtfZ$0S=L(BbPB4@K4mNp5a>`MR@> zP?a15DX-iUQz_qE7Bi`UTt_phklb=JsqowrGpXoY z7IUe1fTKAe&Kyu~4j4BFoR|a9EdVSQ02K>>qXi(&0#I%N7`FhNSOCy10W6jP6-$7l zB_PfcP;Lnrw*;J60?@4hELH#&D}bXFAkGR(0-RU@(5(S1)&Lc2fTJ}a&Kgi| z4H&luoLB?UZ2&Ab02Ld6qYWU=22gGT7`FkO*Z|Oh02UxX1qg5i0^)#xav)$F2si-( z&}{)Mwg44dfTJxS&K6K^3mCTroY(@;?Eoxx02Mocqa7g54p43f7`FqQ*a6V(0W9{y zRi%gqXRj(xjmKW;+H|~;Pd`@R*?R9vck-b|A#PJhIr$iM$U%42ZBUwL$Sq`xlm3Wj zi#&a+zWq2g!8QHYhtX3G5%uW~>!+#DOSbUcc(=NDImLB{IKR6O{@0Hn#C4HDU$EolE=c{_VKMDehl($xT+hY>Cv8%jRx z4TV?>+W-6ZA9eB>h3EeV_im(0&(-CTqr+ED6HapsF2iwK@>Ix~O6dYQJa44jpyR)z zP;XGF^csGQ+ftxH&QeMj$>Dh`<%Svmoq>A8T%~sn^noH3@&~1Ki5#973s=Czq&7c) zVY1`MZBlZF1#9cXtiRVnPOjWmTWI>#&ZW;wsP7ZSw`2o_j_wW1YeRikDdP>=ds}O{ z-%PjK2npYr>dQ7^R zL&^nFa)Y!WeV{^kr>i21qD*~~HTP=ZKDvwP`>WkF+DSOt;P&jU!LF3^tK6{`^Y>+X z(47VN&qsD0MZpr+^IPr62*nbfcCDTm`2ZEB8)bC``UFsMFu33J&3}b=eMgrq!Qtt| zq&x(tB-SkeF{;#3#S$qpM{h-@8=QN~kUF%LcBx3gzIIqTw-*rEwtH=#xI7}b9ONSe zP01=^Ksn&Q?%#~#+I&Jc#MCT$l*Q9?%Hn5m!WO`!*+E;+HL3p8N1&uxG}G8Fg=|ox zgmsW0SNE-&hG^X?ydzp@xOQ?_u*dV2!k$u!EJ-^`PN%hU=;y6_rAm?vO1RYJ@RD+` zAR5q8WxMf=F|fPV-a*>HH_13X^`_MfchRr<;cyTy`i`PYd$XU@me3%SJpYyXJlqki z>0ZjnG#Ds0x+U+d6oM-w?9moZ`zYN>2N06g1YXNgM);j9a}p;6gNzaonP&)H5U1AgKi+G$z!@np2C5eJOE^l{NFI!r; zlDxbh1A0@+1wpb4R-!I~@1DWC#A;Vtu@WdkE#}!TXR6axRaV5*cKg#y9!);m(wIe` zrk~=zD3{X56lqr2s70}eZQXTub3hKgJXIZ?o!-=nOSL0?&LmzvF2<+Vqa#YiQQ=aL zn$z6+LWNRsBr*VK2+X&dpGB_}al#Lj9fKUu$s7RGhiARKXmoeyO!loZ`NVucp0tXp ztYKG{J(^E&IsH-2GOt6sueR0M>*G-{Qguhe@qpOjD;>R zt9UH`cl8;&kZ7G*mH0meRi8Jg`an4~e_C^YR-gS}$H^mO?q8O0RE(!@mv_jcUCd*A(j8p8)PbmUhB(7l$7?u3~SEL)`P!p&HU@zCtpdjZ$(TEz_dTt&wu-6iLh zApZxVGOKS8KxQk|;~;g6dyFt+5Osw&Ym_IRcXH8^5!pBusRsXax~XL&QrOx3`|aG3 z4AHi07_6&a*lIMZYf`~F_(2QYn4ub<2FgwPS`;=UfKt}DwQvqyX(u~r|MO?Yndk%g zys-xJ(u9KOrX`Dt+q>J{I#TTH;q-*3KJQP+$fgb1%{GatNc1ZPKc!-8%jn2NjFF*n z;PDu1guPqCC8ANS!kv#uaf9vu(f(PLi=IWQ2!GRwO#59nZRNTreTa*4K7|p?oZ+Qa zwgk$VNuXCI4m+Eq0^^+n<&a$j523U)X!)@Xo*oSJQ=S&4cGds}*T8b;w-Qx3`I~NO za?Mey*S4lM{3;AO^a_YkQtLHk#*%v~)~qkys$OO0vJWkkvb5z=!5yQorFMr3(0_?Y zm$C#xzb`L`R(MS)s38Oe@*3h-gU=SfzGVmN@~+sI4c#g!S-iT9$DhMl(fyz&MRcOy ziH33!DxF3$MfueLH^uw;dC~;Yvaandw2q?!gjvDikaH?wUN47cF`lyy?FeF<4wGmF z_lctANIlVsplmlHTWAd-NlxXUp;rv%JdH6v`R)ZbWf@V>re-b)2QiAf?jmOB-(e;!_0=>JF4fzLn{tcy z$8~{AJr#o|(Bg=)K7A!f6hnWH4EGCiqg6@yn?NH&Fz8&0_@IaX(Wg~gZ010&3FK*h z>{@#J%085KS}ybjeQOspwr|vPpPs8^DTi3hd)|JX4#BGHna!fKXQ665zYrN28|zK} z`XqIV9ALonRunQZzNVA(S(6D?M&sMD*hr$>_>2oHBsI~u-PtTA$;G=`SKBF=r-b$Au{UMlWR0(|>W|zh)wL;zzYoBi%oZQL)Xfgz%tZwi) z@4rL^TV`Ug^Z?T0o%J)5dFk{B7TS5|pYG?u?+c?vt4<8jzzodScj{#GxSHdt+IpdiPwyRQ#0Q-PK+XHt4HAs(&*z|_?dR>@ z!v_aO{PXz}P{!^eVC}ndqKz} zk_aJvF#UgT#oyC=KP1^8{6_jyoBW6~_l`X5UpT)fWPZpY12x=(68$4R^CK210#f+D zut)}Oh8A2POcXW@{Z|Mw&9_tdh#828`PjC8=h7MAY-_!oDWT%g4HPl)EM*BT6=R;aIXsPx+?Jo(||CFZl(LR*8 z-uC{>VSV3*k26F5+K2l#?8E-YKKx$;Sy11|zc%GP>T$-fhbTf&hK)zX{YU<=hXpg{ zp7@_=k8=n;q`5!;o%S%J&_i0*)c;0%oG#=c?Uv$qn)Bm$9}j`pDU<(Nyx%hl`~uz| z7t%EU1U}9$@Q?=fW=?9{>%R~F_f7XW!2B=TeJ?4X`;7*4G&8ohHa8ZxcQP=xG1Yev zv3D}GG`4Ycu+{%-x%|Vuz^WYm*D~Ml#p4jj5BDMh6!rd52YM6``5`Op1t{|Tzl=Ng ztjBRaAF?pG{=xc>XS=ksq5p~VIAq#G4wK+NIsZ(h{jglq;N$-j?{P4ihdc?1|HS(l z<>2o;HxH37GX5R;dkBhO$osC^A@dL9Us95X9Iz+&JAMB$c;7eK<7f@PIQN|tT<#y7 zpQZXccEdwjg~0#T86PhmeMnnT{Rizo&m5k@{BOhN<7G?_LCv7q?W11*Yf;m~@=V7J z|7*wiT?YOObKgo^27h9H7ll6rfmPx`cmK;7=XVYAL(rJfAE5tDk^G3g+GAp>JNsYf zd%tU4AF{Vh{)PR}*m^Gne1wPPV3+=vVf1&2=0kjm*&p~n<%S@w+ylYpBb2Uz?Jnbg zpKt!IWqgP_GJk~nOWF8{lDFdXZ}mVZ!wsl@&;Og~~cGwz=MOG$p$p8aCn zAJ*{Jj~Ra}(H?T>g{-u={^gqPcahdF&iw%(W%CE;zjgr}a9k*+|K2XY+wp%;$C|{z&*AoKLjCO#I^og?fq_TeF$puc>wy`_WBSa z!cE8WZSz9s z@fHfS78MMP0`!*zvOly1+`qavED%C~t~Eh7ZD8sna|Hlokoe<<0=5U541iX$0xg}a zK@+K;N?KxBePu@_VsT>!eQQS}(12lM>}m_NccfQUfdYewqEa+>a)k$b0{InWCHVR9 zkfjP@Rfsiu*}nq=yZ@*CivMNCD2AW6F?7O F{~trdUgrP+ diff --git a/open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20260216-Fallback.zip b/open_mastr/resources/Dokumentation-MaStR-Gesamtdatenexport-20260216-Fallback.zip new file mode 100644 index 0000000000000000000000000000000000000000..0e29b97fac02714dcc55235457d180f772bbc525 GIT binary patch literal 1389768 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

dr0B;^iWNPZ|&3a%C_9dAnHr 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

;v3fQSEiC~} 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%0DcyG4{JJ8 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%0AX^W;kCA;#3wYQ6%D5-0 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

DV|KjZYJl%k}plg`6AsvibbM?dmX5* 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 z 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≀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Š|I-G(KXpA{p#@EdDnk@SASHXN`^SY76|-tn~3AT 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

kZ1525tE_7|a~zoN)V_teD^fbyg7 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�$@?i}w{UR1uUAA4FlLpZ~XAc}*Bc{6U1FBfWfv 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�Q+$RsQ+Oz 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 None: + inspector = inspect(engine) + tables = inspector.get_table_names() + views = inspector.get_view_names() + + with engine.begin() as conn: + if view_name in views: + conn.execute(text(f'DROP VIEW "{view_name}"')) + elif view_name in tables: + conn.execute(text(f'DROP TABLE "{view_name}"')) + conn.execute(CreateView(view_name, select(db_table))) + + +def create_views(engine: Engine, mastr_table_to_db_table: Mapping[str, Table]) -> None: + for mastr_table, db_table in mastr_table_to_db_table.items(): + old_table_name = OLD_MASTR_TABLE_TO_OLD_DB_TABLE_NAME.get(mastr_table) + if not old_table_name: + log.debug( + f"No old table name known for MaStR table {mastr_table}." + " Not creating any view." + ) + continue + if old_table_name == db_table.name: + log.debug( + f"Old table name {old_table_name} was the same as the current name." + " Not creating any view." + ) + continue + + log.info(f"Creating view {old_table_name} mirroring table {db_table.name}") + _create_view(engine=engine, db_table=db_table, view_name=old_table_name) + diff --git a/tests/test_mastr.py b/tests/test_mastr.py index eedb1157..7bf9e66d 100644 --- a/tests/test_mastr.py +++ b/tests/test_mastr.py @@ -62,6 +62,16 @@ def test_mastr_download_latest_real_xml( rows = result.all() assert rows == [("Badbergen", 6800.0, "Windkraft an Land")] + # Check that the view wind_extended works. + query = sqlalchemy.text( + "SELECT Gemeinde, Bruttoleistung, WindAnlandOderAufSee" + " FROM wind_extended" + " WHERE EinheitMastrNummer = 'SEE909443729526'" + ) + result = con.execute(query) + rows = result.all() + assert rows == [("Badbergen", 6800.0, "Windkraft an Land")] + @pytest.mark.skipif( not EXISTING_XML_ZIP or not EXISTING_DOCS_ZIP, @@ -73,10 +83,20 @@ def test_mastr_download_latest_real_xml_english( existing_docs_zip_in_output_dir: Path, ) -> None: mastr.download(data="wind", english=True) - df_wind = pd.read_sql("wind_extended", con=mastr.engine) + df_wind = pd.read_sql("units_wind", con=mastr.engine) assert len(df_wind) > 10000 with mastr.engine.connect() as con: + query = sqlalchemy.text( + "SELECT municipality, grossCapacity, WindAnlandOderAufSee" + " FROM units_wind" + " WHERE unitMastrNumber = 'SEE909443729526'" + ) + result = con.execute(query) + rows = result.all() + assert rows == [("Badbergen", 6800.0, "Windkraft an Land")] + + # Check that the view wind_extended works. query = sqlalchemy.text( "SELECT municipality, grossCapacity, WindAnlandOderAufSee" " FROM wind_extended" @@ -143,17 +163,19 @@ def test_mastr_generate_data_model( ) -> None: mastr_table_to_db_table = mastr.generate_data_model() expected_keys = set(TABLE_TRANSLATIONS.keys()) - { - # A couple of tables we do not create. + # A couple of tables with meta information we do not create. "Einheitentypen", "Katalogkategorien", "Katalogwerte", "Lokationstypen", + "Marktrollen", + "Marktfunktionen", } assert set(mastr_table_to_db_table.keys()) == expected_keys # Check some samples solar_table = mastr_table_to_db_table["EinheitenSolar"] assert solar_table.name == "EinheitenSolar" - solar_table.info == {"original_name": "EinheitenSolar", "english_name": "solar_extended"} + solar_table.info == {"original_name": "EinheitenSolar", "english_name": "units_solar"} # Check a couple of columns assert solar_table.c.EinheitMastrNummer.primary_key is True assert isinstance(solar_table.c.EinheitMastrNummer.type, sqlalchemy.String) @@ -176,17 +198,19 @@ def test_mastr_generate_data_model_english( ) -> None: mastr_table_to_db_table = mastr.generate_data_model(english=True) expected_keys = set(TABLE_TRANSLATIONS.keys()) - { - # A couple of tables we do not create. + # A couple of tables with meta information we do not create. "Einheitentypen", "Katalogkategorien", "Katalogwerte", "Lokationstypen", + "Marktrollen", + "Marktfunktionen", } assert set(mastr_table_to_db_table.keys()) == expected_keys # Check some samples solar_table = mastr_table_to_db_table["EinheitenSolar"] - assert solar_table.name == "solar_extended" - solar_table.info == {"original_name": "EinheitenSolar", "english_name": "solar_extended"} + assert solar_table.name == "units_solar" + solar_table.info == {"original_name": "EinheitenSolar", "english_name": "units_solar"} # Check a couple of columns assert solar_table.c.unitMastrNumber.primary_key is True assert isinstance(solar_table.c.unitMastrNumber.type, sqlalchemy.String) From c40fb9afcb3d23f69099736a694c4ebca4118887 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Tue, 3 Mar 2026 22:04:47 +0100 Subject: [PATCH 29/34] Remove some unused code --- open_mastr/utils/constants.py | 78 ----------------------------------- 1 file changed, 78 deletions(-) diff --git a/open_mastr/utils/constants.py b/open_mastr/utils/constants.py index f737a94d..59000a22 100644 --- a/open_mastr/utils/constants.py +++ b/open_mastr/utils/constants.py @@ -117,84 +117,6 @@ "changed_dso_assignment": ["changed_dso_assignment"], } -# used to map the parameter options in open-mastr to the exact table class names in orm.py -ORM_MAP = { - "wind": { - "unit_data": "WindExtended", - "eeg_data": "WindEeg", - "permit_data": "Permit", - }, - "solar": { - "unit_data": "SolarExtended", - "eeg_data": "SolarEeg", - "permit_data": "Permit", - }, - "biomass": { - "unit_data": "BiomassExtended", - "eeg_data": "BiomassEeg", - "kwk_data": "Kwk", - "permit_data": "Permit", - }, - "combustion": { - "unit_data": "CombustionExtended", - "kwk_data": "Kwk", - "permit_data": "Permit", - }, - "gsgk": { - "unit_data": "GsgkExtended", - "eeg_data": "GsgkEeg", - "kwk_data": "Kwk", - "permit_data": "Permit", - }, - "hydro": { - "unit_data": "HydroExtended", - "eeg_data": "HydroEeg", - "permit_data": "Permit", - }, - "nuclear": {"unit_data": "NuclearExtended", "permit_data": "Permit"}, - "storage": { - "unit_data": "StorageExtended", - "eeg_data": "StorageEeg", - "permit_data": "Permit", - }, - "gas_consumer": "GasConsumer", - "gas_producer": "GasProducer", - "gas_storage": "GasStorage", - "gas_storage_extended": "GasStorageExtended", - "electricity_consumer": "ElectricityConsumer", - "locations_extended": "LocationExtended", - "market_actors": "MarketActors", - "market_actors_and_roles": "MarketActorsAndRoles", - "grid_connections": "GridConnections", - "grids": "Grids", - "balancing_area": "BalancingArea", - "permit": "Permit", - "deleted_units": "DeletedUnits", - "deleted_market_actors": "DeletedMarketActors", - "retrofit_units": "RetrofitUnits", - "changed_dso_assignment": "ChangedDSOAssignment", - "storage_units": "StorageUnits", -} - -UNIT_TYPE_MAP = { - "Windeinheit": "wind", - "Solareinheit": "solar", - "Biomasse": "biomass", - "Wasser": "hydro", - "Geothermie": "gsgk", - "Verbrennung": "combustion", - "Kernenergie": "nuclear", - "Stromspeichereinheit": "storage", - "Gasspeichereinheit": "gas_storage", - "Gasverbrauchseinheit": "gas_consumer", - "Stromverbrauchseinheit": "electricity_consumer", - "Gaserzeugungseinheit": "gas_producer", - "Stromerzeugungslokation": "location_elec_generation", - "Stromverbrauchslokation": "location_elec_consumption", - "Gaserzeugungslokation": "location_gas_generation", - "Gasverbrauchslokation": "location_gas_consumption", -} - TABLE_TRANSLATIONS = { "AnlagenEegBiomasse": "installations_eeg_biomass", "AnlagenEegGeothermieGrubengasDruckentspannung": "installations_eeg_gsgk", From 21e7ce7d5e398fa54ebd594ccf4ec3d27c10d3f6 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Wed, 4 Mar 2026 09:32:57 +0100 Subject: [PATCH 30/34] Fix test --- tests/test_mastr.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_mastr.py b/tests/test_mastr.py index 7bf9e66d..53fe80f3 100644 --- a/tests/test_mastr.py +++ b/tests/test_mastr.py @@ -88,7 +88,7 @@ def test_mastr_download_latest_real_xml_english( with mastr.engine.connect() as con: query = sqlalchemy.text( - "SELECT municipality, grossCapacity, WindAnlandOderAufSee" + "SELECT municipality, grossCapacity, windOnshoreOrOffshore" " FROM units_wind" " WHERE unitMastrNumber = 'SEE909443729526'" ) @@ -98,7 +98,7 @@ def test_mastr_download_latest_real_xml_english( # Check that the view wind_extended works. query = sqlalchemy.text( - "SELECT municipality, grossCapacity, WindAnlandOderAufSee" + "SELECT municipality, grossCapacity, windOnshoreOrOffshore" " FROM wind_extended" " WHERE unitMastrNumber = 'SEE909443729526'" ) From f3e2333ec7a6e48743b07252cebd38f9b20d666c Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 9 Mar 2026 21:14:03 +0100 Subject: [PATCH 31/34] Address review comments --- CITATION.cff | 12 +-- docs/advanced.md | 2 +- open_mastr/__init__.py | 1 - open_mastr/mastr.py | 33 +++++-- open_mastr/utils/xsd_tables.py | 16 ++-- .../xml_download/utils_download_bulk.py | 85 ++++++++----------- 6 files changed, 78 insertions(+), 71 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 8a7b5584..840edfdd 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -14,32 +14,32 @@ authors: given-names: "Christoph" alias: "@chrwm" affiliation: "Reiner Lemoine Institut" - orcid: " https://orcid.org/0000-0001-8144-5260" + orcid: "https://orcid.org/0000-0001-8144-5260" - family-names: "Kotthoff" given-names: "Florian" alias: "@FlorianK13" affiliation: "fortiss" - orcid: " https://orcid.org/0000-0003-3666-6122" + orcid: "https://orcid.org/0000-0003-3666-6122" - family-names: "Tepe" given-names: "Deniz" alias: "@deniztepe" affiliation: "fortiss" - orcid: " https://orcid.org/0000-0002-7605-0173" + orcid: "https://orcid.org/0000-0002-7605-0173" - family-names: "Amme" given-names: "Jonathan" alias: "@nesnoj" affiliation: "Reiner Lemoine Institut" - orcid: " https://orcid.org/0000-0002-8563-5261" + orcid: "https://orcid.org/0000-0002-8563-5261" - family-names: "Imbrisca" given-names: "Alexandra-Andreea" alias: "@AlexandraImbrisca" affiliation: "Technical University of Munich" - family-names: 'Krämer' given-names: "Kevin" - alias: "pt-kkraemer" + alias: "@pt-kkraemer" affiliation: "ProjectTogether gGmbH" - family-names: "Will" - given-names": "Simon" + given-names: "Simon" alias: "@Simon-Will" title: "open-MaStR" type: software diff --git a/docs/advanced.md b/docs/advanced.md index 7b37e4e2..32f8f4b4 100644 --- a/docs/advanced.md +++ b/docs/advanced.md @@ -56,7 +56,7 @@ mastr = Mastr(engine=engine_postgres) # Generate SQLAlchemy table definitions without creating the tables mastr_table_to_db_table = mastr.generate_data_model() # Print the tables so that you can see what was generated. -print(format_mastr_table_to_db_table) +print(format_mastr_table_to_db_table(mastr_table_to_db_table)) # Now you need to go and create the tables in your database and adjust them to your needs. # It's best to use the table definitions we generated and adjust them. diff --git a/open_mastr/__init__.py b/open_mastr/__init__.py index 65b8517b..0a400501 100644 --- a/open_mastr/__init__.py +++ b/open_mastr/__init__.py @@ -3,6 +3,5 @@ setup_project_home() # This import should be called after the setup project home, since .open_mastr folder must be defined first -# TODO: Why must we create the folder before importing?? from .mastr import Mastr # noqa: E402 ignore import order warning of flake8 from .utils.sqlalchemy_tables import format_mastr_table_to_db_table # noqa: E402 diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index ebe24294..8e6a9ea5 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -110,6 +110,21 @@ def generate_data_model( MaStR XML files, and generate SQLAlchemy tables from those XSD files. The tables are not created in the database. + You can use this method to create a mapping from the MaStR data model to your own data model. + This mapping should then be passed to the `Mastr.download` method. + + !!! example + + ```python + from open_mastr import Mastr, format_mastr_table_to_db_table + db = Mastr() + mapping = db.generate_data_model() + # Print the tables so that you can see what was generated. + print(format_mastr_table_to_db_table(mapping)) + # edit your mapping here + db.download(mastr_table_to_db_table=mapping) + ``` + Parameters ---------- data : str or list or None, optional @@ -273,6 +288,8 @@ def download( `Mastr.generate_data_model` (and thus downloading the MaStR documentation). In this case, the tables will be created. + You can pass this parameter to use your own mapping. + Defaults to None. alter_database_tables : bool, optional @@ -381,13 +398,6 @@ def download( delete_zip_file_if_corrupted(zipped_xml_file_path) delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) - # TODO: Why is this duplicated? - print( - "\nWould you like to speed up the creation of your MaStR database?\n" - "Try our new parallelized processing by setting os.environ['USE_RECOMMENDED_NUMBER_OF_PROCESSES'] = True " - "or configure your own number of processes via os.environ['NUMBER_OF_PROCESSES'] = your_number\n" - ) - write_mastr_xml_to_database( engine=self.engine, zipped_xml_file_path=zipped_xml_file_path, @@ -458,6 +468,15 @@ def browse_available_downloads(self) -> list[dict[str, Optional[str]]]: log.info("Browsing available MaStR downloads...") return list_available_downloads() + def translate(self) -> None: + """ + The translate method has been removed. You can use the `english` option + in the `Mastr.download` method to get English table and column names. + """ + raise NotImplementedError( + "The translate method has been removed. You can use the `english` option" + " in the `Mastr.download` method to get English table and column names." + ) def _generate_data_model_from_downloaded_docs( zipped_docs_file_path: Path, diff --git a/open_mastr/utils/xsd_tables.py b/open_mastr/utils/xsd_tables.py index a73c6664..e8195aa8 100644 --- a/open_mastr/utils/xsd_tables.py +++ b/open_mastr/utils/xsd_tables.py @@ -16,14 +16,14 @@ log = logging.getLogger("open-MaStR") -# TODO: Should we really mess with the original column names? -# The BNetzA "choice" to sometimes write MaStR and sometimes Mastr is certainly confusing, -# but are we the ones who should change that? -# Also TODO: Should we also apply the more opinionated normalization/renaming that is currently stored in orm.py? -# E.g. "VerknuepfteEinheitenMaStRNummern" -> "VerknuepfteEinheiten", "NetzanschlusspunkteMaStRNummern" -> "Netzanschlusspunkte", etc. + def normalize_mastr_name(original_mastr_name: str) -> str: - # BNethA sometimes has MaStR, other times MaStR. We normalize that. - # Also, in case the column names in the XSD contain äöüß, we replace them. This is probably a BNetzA oversight, but has happened at least once. + """Normalize original MaStR column name. + + BNetzA sometimes has "MaStR", other times "Mastr". We normalize that. + Also, in case the column names in the XSD contain äöüß, we replace them. + This is probably a BNetzA oversight, but has happened at least once. + """ return original_mastr_name.replace("MaStR", "Mastr").replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss").strip() @@ -37,7 +37,7 @@ def translate_mastr_column_name(normalized_mastr_column_name: str) -> Optional[s def translate_mastr_table_name(normalized_mastr_table_name: str) -> Optional[str]: translated = TABLE_TRANSLATIONS.get(normalized_mastr_table_name) if not translated: - log.warning(f"No translation available for column {normalized_mastr_table_name!r}") + log.warning(f"No translation available for table {normalized_mastr_table_name!r}") return translated diff --git a/open_mastr/xml_download/utils_download_bulk.py b/open_mastr/xml_download/utils_download_bulk.py index 500744ff..54f05db6 100644 --- a/open_mastr/xml_download/utils_download_bulk.py +++ b/open_mastr/xml_download/utils_download_bulk.py @@ -129,7 +129,7 @@ def gen_xml_download_url( def download_xml_Mastr( save_path: str, bulk_date_string: str, - bulk_data_list: list, + bulk_data_list: list[str], xml_folder_path: str, url: str = None, ) -> None: @@ -148,7 +148,8 @@ def download_xml_Mastr( url: str, optional Custom download URL. If None, generates URL based on bulk_date_string. """ - if _download_is_complete(save_path, bulk_data_list): + missing_tables = _find_missing_tables(save_path, bulk_data_list) + if not missing_tables: return log.info("Starting the download from marktstammdatenregister.de.") @@ -210,11 +211,12 @@ def _parse_date_string(date_str): log.error("Could not download file: download URL not found") return - if bulk_data_list == BULK_DATA: + all_tables = {table for tables in BULK_INCLUDE_TABLES_MAP for table in tables} + if missing_tables.issuperset(all_tables): full_download_without_unzip_http(save_path, r) else: try: - partial_download_with_unzip_http(save_path, url, bulk_data_list) + partial_download_with_unzip_http(save_path, url, missing_tables) except Exception as e: log.warning(f"Partial download failed, fallback to full download: {e}") full_download_without_unzip_http(save_path, r) @@ -226,40 +228,36 @@ def _parse_date_string(date_str): log.info(f"MaStR was successfully downloaded to {xml_folder_path}.") -def _find_missing_files( +def _find_missing_tables( save_path: str, bulk_data_list: list[str] -) -> tuple[list, bool]: - needed_files = { - bulk_file_name +) -> set[str]: + """Check if an existing download contains the XML files corresponding to the bulk_data_list.""" + needed_tables = { + bulk_table_name for bulk_data_name in bulk_data_list - for bulk_file_name in BULK_INCLUDE_TABLES_MAP[bulk_data_name] + for bulk_table_name in BULK_INCLUDE_TABLES_MAP[bulk_data_name] } | {"katalogwerte"} # We always need Katalogwerte! + if not os.path.exists(save_path): + return needed_tables with ZipFile(save_path, "r") as zip_ref: - existing_files = { + existing_tables = { zip_name.lower().split("_")[0].split(".")[0] for zip_name in zip_ref.namelist() } - missing_files = needed_files - existing_files - return missing_files - - -def _download_is_complete( - save_path: str, bulk_data_list: list[str] -) -> bool: - """Checks if an existing download contains the xml-files corresponding to the bulk_data_list.""" - if os.path.exists(save_path): - if not _find_missing_files(save_path, bulk_data_list): - log.info( - "MaStR XML ZIP file already present and has all info. Not downloading again." - f" Existing file: {save_path}" - ) - return True + missing_tables = needed_tables - existing_tables + if missing_tables: + log.info( + f"MaStR XML ZIP file already present but missing the following data: {missing_tables}" + ) + else: log.info( - f"MaStR XML ZIP file already present but missing the following data: {bulk_data_list}" + "MaStR XML ZIP file already present and has all info. Not downloading again." + f" Existing file: {save_path}" ) - return False + + return missing_tables def delete_xml_files_not_from_given_date( @@ -284,7 +282,7 @@ def delete_xml_files_not_from_given_date( os.makedirs(xml_folder_path) -def partial_download_with_unzip_http(save_path: str, url: str, bulk_data_list: list): +def partial_download_with_unzip_http(save_path: str, url: str, names_to_download: set[str]): """ Parameters @@ -293,8 +291,9 @@ def partial_download_with_unzip_http(save_path: str, url: str, bulk_data_list: l Full file path where the downloaded MaStR zip file will be saved. url: str URL path to bulk file. - bulk_data_list: list - List of tables/technologies to be downloaded. + names_to_download: set + List of tables to be downloaded. + E.g. {"anlageneegsolar", "einheitensolar", "katalogwerte"} Returns ------- @@ -306,26 +305,14 @@ def partial_download_with_unzip_http(save_path: str, url: str, bulk_data_list: l for remote_zip_name in remote_zip_file.namelist() ] - remote_index_list = [] download_files_list = [] - for bulk_data_name in bulk_data_list: - # Example: ['wind','solar'] - for bulk_file_name in BULK_INCLUDE_TABLES_MAP[bulk_data_name]: - # Example: From "wind" we get ["anlageneegwind", "einheitenwind"], and from "solar" we get ["anlageneegsolar", "einheitensolar"] - # and we have to find the corresponding index in the remote_zip_file list in order to fetch the correct file - remote_index_list = [ - remote_index - for remote_index, remote_zip_name in enumerate(remote_zip_names) - if remote_zip_name == bulk_file_name - ] - # for remote_index in tqdm(remote_index_list): - for remote_index in remote_index_list: + for name in names_to_download: + # we have to find the corresponding index in the remote_zip_file list in order to fetch the correct file + for remote_index, remote_zip_name in enumerate(remote_zip_names): + if remote_zip_name == name: # Example: remote_zip_file.namelist()[remote_index] corresponds to e.g. 'AnlagenEegSolar_1.xml' download_files_list.append(remote_zip_file.namelist()[remote_index]) - # We always need Katalogwerte. - download_files_list.append("Katalogwerte.xml") - for zipfile_name in tqdm(download_files_list, unit=" file"): remote_zip_file.extractzip(zipfile_name, path=Path(save_path)) @@ -351,7 +338,9 @@ def full_download_without_unzip_http( "Warning: The servers from MaStR restrict the download speed." " You may want to download it another time." ) - # TODO: Explain this number + # We could get rid of this magic number by first making a request to get the file size + # and then using that as total length for the progress bar. + # See https://github.com/OpenEnergyPlatform/open-MaStR/issues/570 total_length = int(23000) with ( open(save_path, "wb") as zfile, @@ -600,7 +589,7 @@ def gen_docs_download_urls( dt = datetime.strptime(bulk_date_string, "%Y%m%d") stichtag_url = ( "https://download.marktstammdatenregister.de/Stichtag/" - "Dokumentation%20MaStR%20Gesamdatenexport%20" + "Dokumentation%20MaStR%20Gesamtdatenexport%20" f"{dt.day:0>2}-{dt.month:0>2}-{dt.year:0>4}.zip" ) if dt.date() == date.today(): From 8c6a1dbda434059f97c15a81ecd670de8a7f9772 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Mon, 9 Mar 2026 21:58:41 +0100 Subject: [PATCH 32/34] 516: Add test for XSD fallback --- pyproject.toml | 2 ++ tests/test_mastr.py | 86 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index b5b115f2..a1763d2a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,6 +62,8 @@ dev = [ "mkdocs-material", "mkdocs-include-markdown-plugin", "black", + "responses", + "pytest-responses", ] [project.urls] diff --git a/tests/test_mastr.py b/tests/test_mastr.py index 53fe80f3..ca7f5c20 100644 --- a/tests/test_mastr.py +++ b/tests/test_mastr.py @@ -1,4 +1,6 @@ +import io import shutil +import zipfile from pathlib import Path from typing import Optional @@ -6,6 +8,7 @@ import re import sqlalchemy import pytest +import responses from os.path import expanduser import pandas as pd from datetime import date, timedelta @@ -248,3 +251,86 @@ def test_mastr_download_keep_old_downloads( assert os.path.exists(file_old) + +def test_mastr_generate_data_model_fallback_to_included_docs( + mastr: Mastr, + output_dir: Path, + responses: responses.RequestsMock, + caplog: pytest.LogCaptureFixture, +) -> None: + caplog.set_level("ERROR") + + invalid_xsd = """ + + + + + + + + + + + + + + + + + + """ + # Create inner ZIP file xsd.zip containing Netze.xsd + inner_zip_content = io.BytesIO() + with zipfile.ZipFile(inner_zip_content, 'w') as inner_zip: + inner_zip.writestr('Netze.xsd', invalid_xsd) + inner_zip_content.seek(0) + + # Create outer ZIP file containing xsd.zip + outer_zip_content = io.BytesIO() + with zipfile.ZipFile(outer_zip_content, 'w') as outer_zip: + outer_zip.writestr('xsd.zip', inner_zip_content.getvalue()) + outer_zip_content.seek(0) + + expected_url = ( + "https://download.marktstammdatenregister.de/Stichtag/" + "Dokumentation%20MaStR%20Gesamtdatenexport%2001-03-2026.zip" + ) + # Mock the GET request + responses.add( + responses.GET, + expected_url, + body=outer_zip_content.getvalue(), + content_type='application/zip' + ) + + mastr_table_to_db_table = mastr.generate_data_model( + date="20260301" + ) + # We expect that reading the invalid XSD Netze.xsd fails, triggering the fallback. + assert len(caplog.messages) == 1 + assert "Falling back to stored docs" in caplog.messages[0] + + expected_keys = set(TABLE_TRANSLATIONS.keys()) - { + # A couple of tables with meta information we do not create. + "Einheitentypen", + "Katalogkategorien", + "Katalogwerte", + "Lokationstypen", + "Marktrollen", + "Marktfunktionen", + } + assert set(mastr_table_to_db_table.keys()) == expected_keys + # Check some samples + solar_table = mastr_table_to_db_table["EinheitenSolar"] + assert solar_table.name == "EinheitenSolar" + solar_table.info == {"original_name": "EinheitenSolar", "english_name": "units_solar"} + # Check a couple of columns + assert solar_table.c.EinheitMastrNummer.primary_key is True + assert isinstance(solar_table.c.EinheitMastrNummer.type, sqlalchemy.String) + assert isinstance(solar_table.c.Bruttoleistung.type, sqlalchemy.Float) + assert isinstance(solar_table.c.Hauptausrichtung.type, CatalogString) + assert isinstance(solar_table.c.EinheitlicheAusrichtungUndNeigungswinkel.type, sqlalchemy.Boolean) + + changed_dso_assignment_table = mastr_table_to_db_table["EinheitenAenderungNetzbetreiberzuordnungen"] + assert changed_dso_assignment_table.c.OpenMastrId.primary_key is True + assert isinstance(changed_dso_assignment_table.c.OpenMastrId.type, sqlalchemy.Integer) From 3d2f1da2ed1efa042bf6295e45c4bdbcc5e334cc Mon Sep 17 00:00:00 2001 From: Simon Will Date: Sat, 28 Mar 2026 14:50:00 +0100 Subject: [PATCH 33/34] Let open-MaStR logger propagate and handle with root logger --- open_mastr/utils/config/logging.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/open_mastr/utils/config/logging.yml b/open_mastr/utils/config/logging.yml index c1b4c29b..b3d4db32 100644 --- a/open_mastr/utils/config/logging.yml +++ b/open_mastr/utils/config/logging.yml @@ -22,5 +22,9 @@ handlers: loggers: open-MaStR: level: "INFO" - handlers: ["console", "file"] - propagate: no + handlers: [] + propagate: yes + +root: + level: "INFO" + handlers: ["console", "file"] From 60b9e772d3933bd630cedffdf26aa873bed88c05 Mon Sep 17 00:00:00 2001 From: Simon Will Date: Wed, 8 Apr 2026 09:18:04 +0200 Subject: [PATCH 34/34] 516: Run black --- open_mastr/mastr.py | 43 +++++++++++----- .../xml_download/utils_write_to_database.py | 49 ++++++++++--------- .../test_utils_write_to_database.py | 20 ++------ 3 files changed, 63 insertions(+), 49 deletions(-) diff --git a/open_mastr/mastr.py b/open_mastr/mastr.py index 8e3b9a9e..66eb6f73 100644 --- a/open_mastr/mastr.py +++ b/open_mastr/mastr.py @@ -36,14 +36,20 @@ get_output_dir, setup_logger, ) -from open_mastr.utils.sqlalchemy_tables import make_sqlalchemy_table_from_mastr_table_description +from open_mastr.utils.sqlalchemy_tables import ( + make_sqlalchemy_table_from_mastr_table_description, +) from open_mastr.utils.sqlalchemy_views import create_views # setup logger log = setup_logger() -FALLBACK_DOCS_PATH = Path(__file__).parent / "resources" / "Dokumentation-MaStR-Gesamtdatenexport-20260216-Fallback.zip" +FALLBACK_DOCS_PATH = ( + Path(__file__).parent + / "resources" + / "Dokumentation-MaStR-Gesamtdatenexport-20260216-Fallback.zip" +) class Mastr: @@ -175,11 +181,12 @@ def generate_data_model( docs_folder_path = os.path.join(self.output_dir, "data", "docs_download") os.makedirs(docs_folder_path, exist_ok=True) zipped_docs_file_path = os.path.join( - docs_folder_path, - f"Dokumentation MaStR Gesamtdatenexport_{date}.zip" + docs_folder_path, f"Dokumentation MaStR Gesamtdatenexport_{date}.zip" ) try: - download_documentation(zipped_docs_file_path, bulk_date_string=date, url=url) + download_documentation( + zipped_docs_file_path, bulk_date_string=date, url=url + ) return _generate_data_model_from_downloaded_docs( zipped_docs_file_path=zipped_docs_file_path, data=data, @@ -371,7 +378,9 @@ def download( db_table.create(self.engine) if add_views_for_old_table_names: - create_views(engine=self.engine, mastr_table_to_db_table=mastr_table_to_db_table) + create_views( + engine=self.engine, mastr_table_to_db_table=mastr_table_to_db_table + ) data = transform_data_parameter(data, **kwargs) @@ -387,7 +396,11 @@ def download( delete_xml_files_not_from_given_date(zipped_xml_file_path, xml_folder_path) download_xml_Mastr( - zipped_xml_file_path, bulk_download_date, data, xml_folder_path, custom_xml_url + zipped_xml_file_path, + bulk_download_date, + data, + xml_folder_path, + custom_xml_url, ) log.info( "\nWould you like to speed up the creation of your MaStR database?\n" @@ -430,11 +443,15 @@ def to_csv( if db_table_names is None: db_table_names = existing_table_names - log.info(f"Exporting the following database tables to CSV: {', '.join(db_table_names)}") + log.info( + f"Exporting the following database tables to CSV: {', '.join(db_table_names)}" + ) with self.engine.connect() as conn: for requested_table_name in db_table_names: if requested_table_name not in existing_table_names: - log.warning(f"Table {requested_table_name} does not exist. Skipping.") + log.warning( + f"Table {requested_table_name} does not exist. Skipping." + ) continue csv_path = os.path.join(data_path, f"{requested_table_name}.csv") if os.path.exists(csv_path): @@ -475,9 +492,11 @@ def translate(self) -> None: " in the `Mastr.download` method to get English table and column names." ) + def _generate_data_model_from_downloaded_docs( zipped_docs_file_path: Path, - data: list[str], catalog_value_as_str: bool = True, + data: list[str], + catalog_value_as_str: bool = True, metadata: Optional[MetaData] = None, english: bool = False, ) -> dict[str, Table]: @@ -495,6 +514,8 @@ def _generate_data_model_from_downloaded_docs( metadata=metadata, english=english, ) - mastr_table_to_db_table[mastr_table_description.original_table_name] = sqlalchemy_model + mastr_table_to_db_table[ + mastr_table_description.original_table_name + ] = sqlalchemy_model return mastr_table_to_db_table diff --git a/open_mastr/xml_download/utils_write_to_database.py b/open_mastr/xml_download/utils_write_to_database.py index 991524e9..7f143752 100644 --- a/open_mastr/xml_download/utils_write_to_database.py +++ b/open_mastr/xml_download/utils_write_to_database.py @@ -17,7 +17,10 @@ from open_mastr.utils.config import setup_logger from open_mastr.utils.helpers import data_to_include_tables -from open_mastr.utils.xsd_tables import normalize_mastr_name, translate_mastr_column_name +from open_mastr.utils.xsd_tables import ( + normalize_mastr_name, + translate_mastr_column_name, +) from open_mastr.utils.sqlalchemy_tables import CatalogInteger, CatalogString from open_mastr.xml_download.utils_cleansing_bulk import cleanse_bulk_data @@ -40,8 +43,7 @@ def write_mastr_xml_to_database( threads_data = [] lower_mastr_table_to_db_table = { db_table.info.get("original_name", mastr_table_name).lower(): db_table - for mastr_table_name, db_table - in mastr_table_to_db_table.items() + for mastr_table_name, db_table in mastr_table_to_db_table.items() } with ZipFile(zipped_xml_file_path, "r") as f: @@ -55,7 +57,9 @@ def write_mastr_xml_to_database( db_table = lower_mastr_table_to_db_table.get(xml_table_name) if db_table is None: - log.warning(f"Skipping MaStR file {file_name!r} because no database table was found for {xml_table_name=}") + log.warning( + f"Skipping MaStR file {file_name!r} because no database table was found for {xml_table_name=}" + ) continue threads_data.append( @@ -204,7 +208,9 @@ def check_for_column_mismatch_and_try_to_solve_it( missing_columns=additional_df_column_names, ) except Exception: - log.exception("Could not add at least some columns to the database. Ignoring the columns from the XML file instead.") + log.exception( + "Could not add at least some columns to the database. Ignoring the columns from the XML file instead." + ) df = df.drop(columns=additional_df_column_names) else: log.warning( @@ -294,9 +300,7 @@ def is_first_file(file_name: str) -> bool: ) -def cast_date_columns_to_datetime( - db_table: Table, df: pd.DataFrame -) -> pd.DataFrame: +def cast_date_columns_to_datetime(db_table: Table, df: pd.DataFrame) -> pd.DataFrame: for column in db_table.columns: if is_date_column(column) and column.name in df.columns: # Convert column to datetime64, invalid string -> NaT @@ -397,9 +401,7 @@ def add_table_to_non_sqlite_database( # error resulting from Unique constraint failed # FIXME: This error can also indicate other problems than non-unique. # We should differentiate more and show it to the user for cases we cannot solve. - df = write_single_entries_until_not_unique_comes_up( - df, db_table, engine - ) + df = write_single_entries_until_not_unique_comes_up(df, db_table, engine) def add_zero_as_first_character_for_too_short_string(df: pd.DataFrame) -> pd.DataFrame: @@ -501,9 +503,7 @@ def add_missing_columns_to_table( try: with engine.connect().execution_options(autocommit=True) as con: with con.begin(): - con.execute( - text(alter_query).execution_options(autocommit=True) - ) + con.execute(text(alter_query).execution_options(autocommit=True)) except sqlalchemy.exc.OperationalError as err: # If the column already exists, we can ignore the error. if "duplicate column name" not in str(err): @@ -587,7 +587,9 @@ def process_table_before_insertion( if isinstance(column.type, (CatalogInteger, CatalogString)) } df = cleanse_bulk_data( - df=df, catalog_columns=catalog_columns, zipped_xml_file_path=zipped_xml_file_path + df=df, + catalog_columns=catalog_columns, + zipped_xml_file_path=zipped_xml_file_path, ) return df @@ -597,14 +599,18 @@ def align_df_column_names_to_db_column_names( db_table: Table, ) -> pd.DataFrame: old_column_name_to_new_column_name = { - column_name: normalize_mastr_name(column_name) - for column_name in df.columns + column_name: normalize_mastr_name(column_name) for column_name in df.columns } if db_table.name == db_table.info.get("english_name"): # Database is in English. We must translate the df columns english_updates = {} - for old_column_name, normalized_column_name in old_column_name_to_new_column_name.items(): - if english_column_name := translate_mastr_column_name(normalized_column_name): + for ( + old_column_name, + normalized_column_name, + ) in old_column_name_to_new_column_name.items(): + if english_column_name := translate_mastr_column_name( + normalized_column_name + ): english_updates[old_column_name] = english_column_name old_column_name_to_new_column_name.update(english_updates) @@ -639,11 +645,8 @@ def add_table_to_sqlite_database( # error resulting from Unique constraint failed # FIXME: This error can also indicate other problems than non-unique. # We should differentiate more and show it to the user for cases we cannot solve. - df = write_single_entries_until_not_unique_comes_up( - df, db_table, engine - ) + df = write_single_entries_until_not_unique_comes_up(df, db_table, engine) except Exception: # If any unexpected error occurs, we'll switch back to the non-SQLite method. add_table_to_non_sqlite_database(df, db_table, engine) break - diff --git a/tests/xml_download/test_utils_write_to_database.py b/tests/xml_download/test_utils_write_to_database.py index be8f5b4d..bf16585f 100644 --- a/tests/xml_download/test_utils_write_to_database.py +++ b/tests/xml_download/test_utils_write_to_database.py @@ -154,10 +154,7 @@ def test_correct_ordering_of_filelist(): ] -@pytest.mark.skipif( - not EXISTING_XML_ZIP, - reason="The zipped XML could not be found." -) +@pytest.mark.skipif(not EXISTING_XML_ZIP, reason="The zipped XML could not be found.") def test_read_xml_file(existing_xml_zip_in_output_dir: Path) -> None: file_name = "EinheitenStromVerbraucher" with ZipFile(existing_xml_zip_in_output_dir, "r") as f: @@ -181,10 +178,7 @@ def test_add_zero_as_first_character_for_too_short_string() -> None: pd.testing.assert_frame_equal(df_edited, df_correct) -@pytest.mark.skipif( - not EXISTING_XML_ZIP, - reason="The zipped XML could not be found." -) +@pytest.mark.skipif(not EXISTING_XML_ZIP, reason="The zipped XML could not be found.") def test_process_table_before_insertion(existing_xml_zip_in_output_dir: Path) -> None: bulk_download_date = datetime.now().date().strftime("%Y%m%d") initial_df = pd.DataFrame( @@ -246,9 +240,7 @@ def test_add_missing_columns_to_table(engine_testdb: Engine) -> None: table.name, con=con, if_exists="append", index=False ) - add_missing_columns_to_table( - engine_testdb, table, ["NewColumn"] - ) + add_missing_columns_to_table(engine_testdb, table, ["NewColumn"]) expected_df = pd.DataFrame( { @@ -270,7 +262,7 @@ def test_add_missing_columns_to_table(engine_testdb: Engine) -> None: ) def test_add_table_to_sqlite_database( engine_testdb: Engine, - add_table_to_database_function: Callable[[pd.DataFrame, Table, Engine], Any] + add_table_to_database_function: Callable[[pd.DataFrame, Table, Engine], Any], ) -> None: table = Table( "anlageneeggeothermiegrubengasdruckentspannung", @@ -331,9 +323,7 @@ def test_add_table_to_sqlite_database( } ) - add_table_to_database_function( - df, table, engine_testdb - ) + add_table_to_database_function(df, table, engine_testdb) with engine_testdb.connect() as con: with con.begin(): pd.testing.assert_frame_equal(

{{GHJF<_+*2_Kp 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