From cf92cb61ccfde35777fb8eb56e2747e70932bb1e Mon Sep 17 00:00:00 2001 From: TrisNol Date: Tue, 12 Sep 2023 19:07:23 +0200 Subject: [PATCH 01/20] checkpoint(data-ingestion): Extract founding_date and other stats --- .../Unternehmensregister/notebook.ipynb | 3973 ++++++++++++++++- poetry.lock | 280 +- pyproject.toml | 1 + .../models/company.py | 16 +- 4 files changed, 3972 insertions(+), 298 deletions(-) diff --git a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb index f0eb465..e02e63c 100644 --- a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb +++ b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb @@ -487,6 +487,17 @@ "num_files" ] }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import glob\n", + "import xmltodict" + ] + }, { "cell_type": "code", "execution_count": 3, @@ -3905,11 +3916,6 @@ } ], "source": [ - "import json\n", - "import glob\n", - "import xmltodict\n", - "\n", - "\n", "def transform_xml_to_json(source_dir: str, target_dir: str):\n", " for source_path in [\n", " os.path.normpath(i) for i in glob.glob(source_dir + \"**/*.xml\", recursive=True)\n", @@ -3935,7 +3941,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -3957,11 +3963,12 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ - "from models.Company import Company\n", + "import re\n", + "from aki_prj23_transparenzregister.models.company import Company\n", "\n", "\n", "def parse_stakeholder(data: dict) -> list:\n", @@ -4111,6 +4118,141 @@ " ][\"Organisation\"][\"Bezeichnung\"][\"Bezeichnung_Aktuell\"]\n", "\n", "\n", + "# TODO Not present in all companies - possibly map using name of company ...\n", + "def map_rechtsform(company_name: str, data: dict) -> str:\n", + " try:\n", + " return data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Basisdaten_Register\"][\n", + " \"Rechtstraeger\"\n", + " ][\"Rechtsform\"][\"content\"]\n", + " except:\n", + " if (\n", + " company_name.endswith(\"GmbH\")\n", + " or company_name.endswith(\"UG\")\n", + " or company_name.endswith(\"UG (haftungsbeschränkt)\")\n", + " ):\n", + " return \"Gesellschaft mit beschränkter Haftung\"\n", + " elif company_name.endswith(\"SE\"):\n", + " return \"Europäische Aktiengesellschaft (SE)\"\n", + " elif company_name.endswith(\"KG\"):\n", + " return \"Kommanditgesellschaft\"\n", + " return None\n", + "\n", + "\n", + "def map_stammkapital(data: dict, company_type: str) -> str:\n", + " capital = {\"Zahl\": 0, \"Waehrung\": \"\"}\n", + " if company_type == \"Kommanditgesellschaft\":\n", + " if \"Zusatzangaben\" not in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"]:\n", + " return None\n", + " capital_type = \"Hafteinlage\"\n", + " base = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Zusatzangaben\"][\n", + " \"Personengesellschaft\"\n", + " ][\"Zusatz_KG\"][\"Daten_Kommanditist\"]\n", + " if type(base) == \"list\":\n", + " for entry in base:\n", + " # TODO link to persons using Ref_Rollennummer then extract [\"Hafteinlage\"] as below\n", + " capital[\"Zahl\"] = capital[\"Zahl\"] + entry[\"Zahl\"]\n", + " # TODO Improve multi assignment\n", + " capital[\"Waehrung\"] = entry[\"Waehrung\"]\n", + " elif type(base) == \"dict\":\n", + " capital = base[\"Hafteinlage\"]\n", + " elif company_type in [\n", + " \"Gesellschaft mit beschränkter Haftung\",\n", + " \"Europäische Aktiengesellschaft (SE)\",\n", + " \"Aktiengesellschaft\",\n", + " \"Kommanditgesellschaft auf Aktien\",\n", + " \"Rechtsform ausländischen Rechts HRB\",\n", + " ]:\n", + " if \"Zusatzangaben\" not in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"]:\n", + " return None\n", + " if (\n", + " \"Zusatz_GmbH\"\n", + " in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Zusatzangaben\"][\n", + " \"Kapitalgesellschaft\"\n", + " ]\n", + " ):\n", + " capital_type = \"Stammkapital\"\n", + " capital = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Zusatzangaben\"][\n", + " \"Kapitalgesellschaft\"\n", + " ][\"Zusatz_GmbH\"][\"Stammkapital\"]\n", + " elif (\n", + " \"Zusatz_Aktiengesellschaft\"\n", + " in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Zusatzangaben\"][\n", + " \"Kapitalgesellschaft\"\n", + " ]\n", + " ):\n", + " capital_type = \"Grundkapital\"\n", + " capital = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Zusatzangaben\"][\n", + " \"Kapitalgesellschaft\"\n", + " ][\"Zusatz_Aktiengesellschaft\"][\"Grundkapital\"][\"Hoehe\"]\n", + " elif company_type in [\n", + " \"Einzelkaufmann\",\n", + " \"Einzelkauffrau\",\n", + " \"eingetragene Genossenschaft\",\n", + " \"Partnerschaft\",\n", + " \"Einzelkaufmann / Einzelkauffrau\",\n", + " \"Offene Handelsgesellschaft\",\n", + " \"Partnerschaftsgesellschaft\",\n", + " None,\n", + " ]:\n", + " return None\n", + " else:\n", + " return None\n", + " return {\n", + " \"value\": capital[\"Zahl\"],\n", + " \"currency\": capital[\"Waehrung\"],\n", + " \"type\": capital_type,\n", + " }\n", + "\n", + "\n", + "def map_geschaeftszweck(data: dict) -> str:\n", + " try:\n", + " return data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Basisdaten_Register\"][\n", + " \"Gegenstand_oder_Geschaeftszweck\"\n", + " ]\n", + " except:\n", + " return None\n", + "\n", + "\n", + "def map_founding_date(data: dict) -> str:\n", + " text = str(data)\n", + " entry_date = re.findall(\n", + " r\".Tag der ersten Eintragung:(\\\\n| )?(\\d{1,2}\\.\\d{1,2}\\.\\d{2,4})\", text\n", + " )\n", + " if len(entry_date) == 1:\n", + " return entry_date[0][1]\n", + "\n", + " entry_date = re.findall(\n", + " r\".Gesellschaftsvertrag vom (\\d{1,2}\\.\\d{1,2}\\.\\d{2,4})\", text\n", + " )\n", + " if len(entry_date) == 1:\n", + " return entry_date[0]\n", + "\n", + " if \"Eintragungstext\" in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Auszug\"]:\n", + " if (\n", + " type(\n", + " data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Auszug\"][\"Eintragungstext\"]\n", + " )\n", + " == \"list\"\n", + " ):\n", + " temp = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Auszug\"][\n", + " \"Eintragungstext\"\n", + " ][0][\"Text\"]\n", + " results = re.findall(r\"\\d{1,2}\\.\\d{1,2}\\.\\d{2,4}\", temp)\n", + " if len(temp) == 1:\n", + " return results[0]\n", + " if (\n", + " \"Gruendungsmetadaten\"\n", + " in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Basisdaten_Register\"]\n", + " ):\n", + " temp = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Basisdaten_Register\"][\n", + " \"Gruendungsmetadaten\"\n", + " ][\"Gruendungsdatum\"]\n", + " return \".\".join(reversed(temp.split(\"-\")))\n", + " # No reliable answer\n", + " # raise ValueError()\n", + " return None\n", + "\n", + "\n", "def map_unternehmensregister_json(data: dict) -> dict:\n", " result = {\"relationships\": []}\n", "\n", @@ -4148,6 +4290,11 @@ " result[\"last_update\"] = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Auszug\"][\n", " \"letzte_Eintragung\"\n", " ]\n", + " # TODO New features --> to be tested\n", + " result[\"company_type\"] = map_rechtsform(result[\"name\"], data)\n", + " result[\"share_capital\"] = map_stammkapital(data, result[\"company_type\"])\n", + " result[\"business_purpose\"] = map_geschaeftszweck(data)\n", + " result[\"founding_date\"] = map_founding_date(data)\n", "\n", " for i in range(\n", " 2, len(data[\"XJustiz_Daten\"][\"Grunddaten\"][\"Verfahrensdaten\"][\"Beteiligung\"])\n", @@ -4161,7 +4308,19 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import json\n", + "import dataclasses\n", + "from tqdm import tqdm" + ] + }, + { + "cell_type": "code", + "execution_count": 53, "metadata": {}, "outputs": [ { @@ -4175,18 +4334,3760 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 3381/3381 [00:06<00:00, 514.81it/s]\n" + " 3%|▎ | 106/3381 [00:00<00:06, 536.79it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\01019TelefondiensteGmbH.json\n", + "./data/Unternehmensregister/export\\01024TelefondiensteGmbH.json\n", + "./data/Unternehmensregister/export\\01050comGmbH.json\n", + "./data/Unternehmensregister/export\\11DeMailGmbH.json\n", + "./data/Unternehmensregister/export\\11EnergyGmbH.json\n", + "./data/Unternehmensregister/export\\11LogistikGmbH.json\n", + "./data/Unternehmensregister/export\\11MailMediaApplicationsSE.json\n", + "./data/Unternehmensregister/export\\11MailMediaDevelopmentTechnologyGmbH.json\n", + "./data/Unternehmensregister/export\\11MailMediaGmbH.json\n", + "./data/Unternehmensregister/export\\11MailMediaServiceGmbH.json\n", + "./data/Unternehmensregister/export\\11TelecomGmbH.json\n", + "./data/Unternehmensregister/export\\11TelecomHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\11TelecommunicationSE.json\n", + "./data/Unternehmensregister/export\\11TelecomSalesGmbH.json\n", + "./data/Unternehmensregister/export\\11TelecomServiceMontabaurGmbH.json\n", + "./data/Unternehmensregister/export\\11TelecomServiceZweibrückenGmbH.json\n", + "./data/Unternehmensregister/export\\11VersatelDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\11VersatelGmbH.json\n", + "./data/Unternehmensregister/export\\123fliegenfreiGmbH.json\n", + "./data/Unternehmensregister/export\\1AAutenriethKunststofftechnikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\1ABlumenGriesbaumInhPhilippZähringereK.json\n", + "./data/Unternehmensregister/export\\1AlfdorferSolarbetriebsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\1FreiburgerSolarfondsBeteiligungsKG.json\n", + "./data/Unternehmensregister/export\\1GussMaulburgGmbH.json\n", + "./data/Unternehmensregister/export\\1ServicesGmbH.json\n", + "./data/Unternehmensregister/export\\1StaigerGrundstücksverwaltungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\1stClassMarketingGmbH.json\n", + "./data/Unternehmensregister/export\\1WeinheimerBestattungsunternehmeneGVereinigteWeinheimerHemsbacherSchreinermeister.json\n", + "./data/Unternehmensregister/export\\21GrammGastroGmbH.json\n", + "./data/Unternehmensregister/export\\21GRAMMMusicUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\21GRAMMPublishingUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\2GrammGmbH.json\n", + "./data/Unternehmensregister/export\\2SchaperObjektGmbHCoKielKG.json\n", + "./data/Unternehmensregister/export\\7paceGmbH.json\n", + "./data/Unternehmensregister/export\\99grammManagementGmbH.json\n", + "./data/Unternehmensregister/export\\A1MarketingKommunikationundneueMedienGmbH.json\n", + "./data/Unternehmensregister/export\\AachenerBergmannssiedlungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\AASPFilmproduktionsgesellschaftmbHCoLeonieKG.json\n", + "./data/Unternehmensregister/export\\ABGApothekenBeratungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\ACONITAGrundstücksVermietungsgesellschaftmbHCoObjektNiederradKG.json\n", + "./data/Unternehmensregister/export\\ACUPHARMAundCHEMIEGmbH.json\n", + "./data/Unternehmensregister/export\\ADAGIO2GrundstücksverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\ADAGIOGrundstücksverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\adidasAG.json\n", + "./data/Unternehmensregister/export\\adidasBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\adidasCDCImmobilieninvestGmbH.json\n", + "./data/Unternehmensregister/export\\adidasInsuranceRiskConsultantsGmbH.json\n", + "./data/Unternehmensregister/export\\adidasInternationalFinance.json\n", + "./data/Unternehmensregister/export\\AdmentaDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\AEMtecGmbH.json\n", + "./data/Unternehmensregister/export\\AFSImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\AgheeraGmbH.json\n", + "./data/Unternehmensregister/export\\AgroMycMerckGmbH.json\n", + "./data/Unternehmensregister/export\\AHGAgrarHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\ahgAutohandelsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\AIBVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\AirbusDSAirborneSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\AirITServicesGmbH.json\n", + "./data/Unternehmensregister/export\\AirplaneEquipmentServicesAESGmbH.json\n", + "./data/Unternehmensregister/export\\AirportAssekuranzVermittlungsGmbH.json\n", + "./data/Unternehmensregister/export\\AirportCaterServiceGmbH.json\n", + "./data/Unternehmensregister/export\\AKADHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\AKFBauUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\AKGAutomobileGmbH.json\n", + "./data/Unternehmensregister/export\\AKONHaustechnikeKInhMusaAkkaya.json\n", + "./data/Unternehmensregister/export\\ALBANeckarAlbGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AlbertHenkelGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AlbertHenkelVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\AlbertScheidGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\AlbertSchäfflerElektromeisterGmbH.json\n", + "./data/Unternehmensregister/export\\AlbWindkraftGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\ALGRAMMGmbH.json\n", + "./data/Unternehmensregister/export\\AllergopharmaGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AlphabetInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\ALTBERGGmbH.json\n", + "./data/Unternehmensregister/export\\AmberDritteVVGmbH.json\n", + "./data/Unternehmensregister/export\\AmberErsteVVGmbH.json\n", + "./data/Unternehmensregister/export\\AmberZweiteVVGmbH.json\n", + "./data/Unternehmensregister/export\\AmbulanterPflegedienstHellaSchnepeleK.json\n", + "./data/Unternehmensregister/export\\AmperoGmbH.json\n", + "./data/Unternehmensregister/export\\AmprioGmbH.json\n", + "./data/Unternehmensregister/export\\AmpTecGmbH.json\n", + "./data/Unternehmensregister/export\\amsggesellschaftfürarchitekturundsigekoordinationmbh.json\n", + "./data/Unternehmensregister/export\\AncavionGmbH.json\n", + "./data/Unternehmensregister/export\\ancotechHoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AnnelieseKösterGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AntamiraMaklerundBeratungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\AntjeLeonieSchindlerUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\APHSAmbulanterPflegedienstHellaSchnepelGmbH.json\n", + "./data/Unternehmensregister/export\\ApleonaPBGmbH.json\n", + "./data/Unternehmensregister/export\\ApothekeNeuhausenInhaberKlausPeterKessler.json\n", + "./data/Unternehmensregister/export\\Aragon13VVGmbH.json\n", + "./data/Unternehmensregister/export\\Aragon14VVGmbH.json\n", + "./data/Unternehmensregister/export\\Aragon15VVGmbH.json\n", + "./data/Unternehmensregister/export\\Aragon16VVGmbH.json\n", + "./data/Unternehmensregister/export\\AREFSolarGermanyIGmbH.json\n", + "./data/Unternehmensregister/export\\AREFSolarGermanyIIGmbH.json\n", + "./data/Unternehmensregister/export\\ARKONGrundbesitzverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\AROTECAutomationundRobotikGmbH.json\n", + "./data/Unternehmensregister/export\\ASSETImmobilienbeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\ASSMaschinenbauGmbH.json\n", + "./data/Unternehmensregister/export\\AstraAmbulantePflegeGmbH.json\n", + "./data/Unternehmensregister/export\\ATESTEOBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\ATESTEOManagementGmbH.json\n", + "./data/Unternehmensregister/export\\AthenaFilmHellavKrottnaurerFilmverleihundVortragsdienst.json\n", + "./data/Unternehmensregister/export\\AudaEnBWMAInitiatorenGmbHCoKG.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 8%|▊ | 261/3381 [00:00<00:04, 691.25it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\audiodigitalNRWGmbH.json\n", + "./data/Unternehmensregister/export\\AufwindBBGmbHCoZweiundzwanzigsteBiogasKG.json\n", + "./data/Unternehmensregister/export\\AufzugTechnikGrammGmbH.json\n", + "./data/Unternehmensregister/export\\AugustSchäfflerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AugustSchäfflerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSActiveManagementGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSActiveManagementHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSAdvisoryAG.json\n", + "./data/Unternehmensregister/export\\AURELIUSAlphaInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSAlphaInvestGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSAlphaInvestNewGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSAPARTMENTSUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\AURELIUSBetaInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusBeteiligungsberatungsAG.json\n", + "./data/Unternehmensregister/export\\AureliusCottaKonradPikaTrippelPartnerschaftvonRechtsanwältenmbB.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentEightGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentElevenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFifteenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyEightGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyFiveDSGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyFiveGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyFourGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyOneGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtySevenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtySixGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyThreeGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentFourtyTwoGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentNineGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentSevenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentSeventeenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentSixGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentSixteenDSGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentSixteenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentTenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentThirtyFiveGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentThirtyFourGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentThirtyOneGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentThirtyThreeGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentThirtyTwoGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentThreeGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentTwelveGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentTwentyFiveGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentTwentyFourGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentTwentyNineGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentTwentySixGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSDevelopmentTwentyThreeGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusDienstleistungseG.json\n", + "./data/Unternehmensregister/export\\AureliusDigitalVenturesUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\AURELIUSEpsilonInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSEpsilonInvestGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSEquityOpportunitiesSECoKGaA.json\n", + "./data/Unternehmensregister/export\\AURELIUSGammaInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSGammaInvestGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusHofMainhausenGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusHoldingUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\AureliusHorizonUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\AureliusImmobiliengesellschaftAmFannyMendelssohnPlatzGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AureliusImmobiliengesellschaftamUdoLindenbergPlatzGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusImmoGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSInitiativeDevelopmentGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSInvestmentAdvisoryAG.json\n", + "./data/Unternehmensregister/export\\AureliusInvestmentManagementPartnersGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusInvestUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\AURELIUSIVGERAcquiCoFourGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSIVGERAcquiCoOneGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSIVGERAcquiCoThreeGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSIVGERAcquiCoTwoGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusKG.json\n", + "./data/Unternehmensregister/export\\AureliusKontorImmobilienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AURELIUSManagementSE.json\n", + "./data/Unternehmensregister/export\\AureliusMedicalGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusMittelstandskapitalGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSMKTwoGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusMVZGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSPortfolioManagementAG.json\n", + "./data/Unternehmensregister/export\\AURELIUSRealEstateInvestmentsGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSServicesHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusSW11GmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSTransaktionsberatungsAG.json\n", + "./data/Unternehmensregister/export\\AureliusUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\AureliusUlmenhofGmbH.json\n", + "./data/Unternehmensregister/export\\AureliusVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\AureliusVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWachstumskapitalSECoKG.json\n", + "./data/Unternehmensregister/export\\AureliusWittonGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKElevenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKFifteenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKManagementSE.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKNineGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKNineteenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKSeventeenGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwelveGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentyDSGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentyFiveGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentyFourGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentyGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentyOneGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentySixGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentyThreeGmbH.json\n", + "./data/Unternehmensregister/export\\AURELIUSWKTwentyTwoGmbH.json\n", + "./data/Unternehmensregister/export\\AURORAKonradGSchulzGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AurubisAG.json\n", + "./data/Unternehmensregister/export\\AurubisProductSalesGmbH.json\n", + "./data/Unternehmensregister/export\\AurubisStolbergAssetGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AurubisStolbergAssetVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\AurubisStolbergGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AurubisStolbergVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\AUTO1GroupOperationsSE.json\n", + "./data/Unternehmensregister/export\\AUTO1GroupSE.json\n", + "./data/Unternehmensregister/export\\AutoGarantFahrzeughandelundserviceGmbH.json\n", + "./data/Unternehmensregister/export\\AutoGrammereK.json\n", + "./data/Unternehmensregister/export\\AutohausAlbertHenkelGmbH.json\n", + "./data/Unternehmensregister/export\\AutohausBriemGmbHCoKGVertragshändler.json\n", + "./data/Unternehmensregister/export\\AutohausErwinSchmidtGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\AutohausFuldaKrahEndersGmbH.json\n", + "./data/Unternehmensregister/export\\AutohausGröbenzellGmbHCoKfzHandelsKG.json\n", + "./data/Unternehmensregister/export\\AutohausJBLelleK.json\n", + "./data/Unternehmensregister/export\\AutohausKarellKG.json\n", + "./data/Unternehmensregister/export\\AutohausMenkeGmbH.json\n", + "./data/Unternehmensregister/export\\AutohausModereggerGmbH.json\n", + "./data/Unternehmensregister/export\\AutohausVogleKBMWVertragshändler.json\n", + "./data/Unternehmensregister/export\\AWLeoniGmbH.json\n", + "./data/Unternehmensregister/export\\AZElectronicMaterialsGmbH.json\n", + "./data/Unternehmensregister/export\\azetiGmbH.json\n", + "./data/Unternehmensregister/export\\BadKreuznacherSonnenparkBetriebGmbHCoKGKSB.json\n", + "./data/Unternehmensregister/export\\BASF3DPrintingSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFAgriculturalSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFAGROTRADEMARKSGmbH.json\n", + "./data/Unternehmensregister/export\\BASFAkquisitionsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFBatteryMaterialsandRecyclingGmbH.json\n", + "./data/Unternehmensregister/export\\BASFBatteryTechnologyInvestmentGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BASFBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BASFBiorenewableBeteiligungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BASFCatalystsGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\BASFCoatingsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFCoatingsServicesGmbH.json\n", + "./data/Unternehmensregister/export\\BASFConstructionAdditivesGmbH.json\n", + "./data/Unternehmensregister/export\\BASFDeutscheGrundbesitzGmbH.json\n", + "./data/Unternehmensregister/export\\BASFDigitalFarmingGmbH.json\n", + "./data/Unternehmensregister/export\\BASFDigitalSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFenviaMSolarparkSchwarzheideGmbH.json\n", + "./data/Unternehmensregister/export\\BASFFinanceMaltaGmbH.json\n", + "./data/Unternehmensregister/export\\BASFFuelCellGmbH.json\n", + "./data/Unternehmensregister/export\\BASFFuelCellPensionsverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\BASFGastronomieGmbH.json\n", + "./data/Unternehmensregister/export\\BASFGrenzachGmbH.json\n", + "./data/Unternehmensregister/export\\BASFHandelsundExportgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BASFImmobilienGesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BASFInnovationsfondsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFIPLicensingGmbH.json\n", + "./data/Unternehmensregister/export\\BASFIsocyanateChinaInvestmentGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 10%|▉ | 331/3381 [00:00<00:05, 608.66it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\BASFJobmarktGmbH.json\n", + "./data/Unternehmensregister/export\\BASFLampertheimGmbH.json\n", + "./data/Unternehmensregister/export\\BASFLeunaGmbH.json\n", + "./data/Unternehmensregister/export\\BASFLizenzGmbH.json\n", + "./data/Unternehmensregister/export\\BASFLogisticsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFLudwigshafenGrundbesitzSECoKG.json\n", + "./data/Unternehmensregister/export\\BASFMetabolomeSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFMobilienleasingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BASFNiedersächsischeGrundbesitzGmbH.json\n", + "./data/Unternehmensregister/export\\BASFPensionskasseVVaG.json\n", + "./data/Unternehmensregister/export\\BASFPerformancePolymersGmbH.json\n", + "./data/Unternehmensregister/export\\BASFPersonalCareandNutritionGmbH.json\n", + "./data/Unternehmensregister/export\\BASFPlantScienceCompanyGmbH.json\n", + "./data/Unternehmensregister/export\\BASFPlantScienceGmbH.json\n", + "./data/Unternehmensregister/export\\BASFPolyurethanesGmbH.json\n", + "./data/Unternehmensregister/export\\BASFProcessCatalystsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFRenewableEnergyGmbH.json\n", + "./data/Unternehmensregister/export\\BASFSchwarzheideGmbH.json\n", + "./data/Unternehmensregister/export\\BASFSE.json\n", + "./data/Unternehmensregister/export\\BASFStationaryEnergyStorageGmbH.json\n", + "./data/Unternehmensregister/export\\BASFTreuhandGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BASFTrostbergerGrundbesitzGmbH.json\n", + "./data/Unternehmensregister/export\\BASFUSVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\BASFVCBeteiligungsundManagementgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BASFVentureCapitalGmbH.json\n", + "./data/Unternehmensregister/export\\BASFVerwaltungstreuhandGmbH.json\n", + "./data/Unternehmensregister/export\\BASFwatertechnologiesBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\BASFwatertechnologiesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BASFWohnenBauenGmbH.json\n", + "./data/Unternehmensregister/export\\BauMineralGmbH.json\n", + "./data/Unternehmensregister/export\\BautechnikGrammerGmbH.json\n", + "./data/Unternehmensregister/export\\BauvereinGlückaufGmbH.json\n", + "./data/Unternehmensregister/export\\BayAnlagenbauGmbH.json\n", + "./data/Unternehmensregister/export\\BayBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayCityTextilhandelsGmbH.json\n", + "./data/Unternehmensregister/export\\Bayer04ImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\Bayer04LeverkusenFußballGmbH.json\n", + "./data/Unternehmensregister/export\\Bayer04LeverkusenSportförderunggGmbH.json\n", + "./data/Unternehmensregister/export\\Bayer04physioteamGmbH.json\n", + "./data/Unternehmensregister/export\\BayerAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\BayerAltersversorgungGmbH.json\n", + "./data/Unternehmensregister/export\\BayerAluminiumbauGmbH.json\n", + "./data/Unternehmensregister/export\\BayerAutomatenGmbH.json\n", + "./data/Unternehmensregister/export\\BayerBauphysikIngenieurgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BayerBauunternehmenGmbH.json\n", + "./data/Unternehmensregister/export\\BayerBeistandskasseVVaG.json\n", + "./data/Unternehmensregister/export\\BayerBeteiligungsundVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayerBeteiligungsverwaltungGoslarGmbH.json\n", + "./data/Unternehmensregister/export\\BayerBetriebsGmbH.json\n", + "./data/Unternehmensregister/export\\BayerBitterfeldGmbH.json\n", + "./data/Unternehmensregister/export\\BayerBräuGmbH.json\n", + "./data/Unternehmensregister/export\\BayerBräuInhAlfredBayer.json\n", + "./data/Unternehmensregister/export\\BayerConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\BayerCropScienceAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\BayerCropScienceDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\BayerCropScienceVermögensverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BayerDesignFritzBayerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerDesignServiceGmbH.json\n", + "./data/Unternehmensregister/export\\BayerDirectServicesGmbH.json\n", + "./data/Unternehmensregister/export\\BayerDorschnerBauplanungsgesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerDruckGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BayerFahrzeugbauGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BayerFahrzeugbauGesellschaftmitbeschränkterHaftungCoKommanditgesellschaft.json\n", + "./data/Unternehmensregister/export\\bayerFeinwerkGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerFensterTürentechnikGmbH.json\n", + "./data/Unternehmensregister/export\\BayerFleischwarenGmbH.json\n", + "./data/Unternehmensregister/export\\BayerGastronomieGmbH.json\n", + "./data/Unternehmensregister/export\\BayerGebäudereinigungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayerGebäudetechnikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerGerüstaufundabbauInhKlausThieleeK.json\n", + "./data/Unternehmensregister/export\\BayerGeschäftsführungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayerGesellschaftfürBeteiligungenmbH.json\n", + "./data/Unternehmensregister/export\\BayerGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BayerGlasbauGmbH.json\n", + "./data/Unternehmensregister/export\\BayerGmainPflegeundTherapiezentrumGmbH.json\n", + "./data/Unternehmensregister/export\\BayerGmbH.json\n", + "./data/Unternehmensregister/export\\BayerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerGmbHTorZaunsysteme.json\n", + "./data/Unternehmensregister/export\\BayerGothieuGmbHTransporte.json\n", + "./data/Unternehmensregister/export\\BayerGrabmaleGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BayerGrundbesitzGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerGrundbesitzVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BayerHandelsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BayerHausrenovierungenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerHausrenovierungenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayerHieblSHLSanitärHeizungsLüftungsbaugesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BayerImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\BayerIndustrieanlageneK.json\n", + "./data/Unternehmensregister/export\\BayerIntellectualPropertyGmbH.json\n", + "./data/Unternehmensregister/export\\BayerJAutomobileinternationalGmbH.json\n", + "./data/Unternehmensregister/export\\BayerKarosserieundLackierzentrumKasselGmbH.json\n", + "./data/Unternehmensregister/export\\BayerKastnerGmbH.json\n", + "./data/Unternehmensregister/export\\BayerKastnerGmbHPersonaldienstleistungen.json\n", + "./data/Unternehmensregister/export\\BayerkreativKüchenInnenausbauInhaberMatthiasBayereK.json\n", + "./data/Unternehmensregister/export\\BayerLenzenStahlbauundangewandteSchweißtechnikGmbH.json\n", + "./data/Unternehmensregister/export\\BayerMaschinenbauGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerMetallbauGmbH.json\n", + "./data/Unternehmensregister/export\\BayerModenInhMeikeBayer.json\n", + "./data/Unternehmensregister/export\\BayerMontagebauGmbH.json\n", + "./data/Unternehmensregister/export\\BayernABSProjektentwicklungGmbH.json\n", + "./data/Unternehmensregister/export\\BayernAutoGmbH.json\n", + "./data/Unternehmensregister/export\\BayernBankettGastronomieGmbH.json\n", + "./data/Unternehmensregister/export\\BayernBHKWGmbH.json\n", + "./data/Unternehmensregister/export\\BayernBlockGmbH.json\n", + "./data/Unternehmensregister/export\\BayernBodenGmbH.json\n", + "./data/Unternehmensregister/export\\BayernCamperGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayernCamperVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayernCardServicesBeteiligungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayernCardServicesBeteiligungsverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayernCardServicesGmbHSFinanzgruppe.json\n", + "./data/Unternehmensregister/export\\BAYERNCHEMIEGesellschaftfürflugchemischeAntriebemitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BayernConnectGmbH.json\n", + "./data/Unternehmensregister/export\\BAYERNCONSULTUnternehmensberatungGmbH.json\n", + "./data/Unternehmensregister/export\\BayernCorporateServicesGmbH.json\n", + "./data/Unternehmensregister/export\\bayerndesignGmbH.json\n", + "./data/Unternehmensregister/export\\BayernDigitalRadioGmbH.json\n", + "./data/Unternehmensregister/export\\BayernDriveFahrschuleGmbH.json\n", + "./data/Unternehmensregister/export\\BayernEngineeringGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayernExpressSpeditionErnstMayerGmbH.json\n", + "./data/Unternehmensregister/export\\BayernFassRekonditionierungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayernFassVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\BayernFilmLieselotteMaurerNachfeK.json\n", + "./data/Unternehmensregister/export\\BayernFlugGmbH.json\n", + "./data/Unternehmensregister/export\\BAYERNHausWohnbauGmbH.json\n", + "./data/Unternehmensregister/export\\BayernImmobilienHöllerLechnerKG.json\n", + "./data/Unternehmensregister/export\\BayernImmobilienTreuhandDrjurZembschGmbHCoAnlagenVerwaltungsKG.json\n", + "./data/Unternehmensregister/export\\BayernInnovativBayerischeGesellschaftfürInnovationundWissenstransfermbH.json\n", + "./data/Unternehmensregister/export\\BayernKapitalGmbH.json\n", + "./data/Unternehmensregister/export\\BayernKapitalVerwaltungsGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 14%|█▍ | 485/3381 [00:00<00:04, 691.39it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\BayernMarktVeranstaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayernOsteuropaOHGTravelConsultingMarketing.json\n", + "./data/Unternehmensregister/export\\BayernParkFreizeitparadiesGmbH.json\n", + "./data/Unternehmensregister/export\\BayernParkKG.json\n", + "./data/Unternehmensregister/export\\BayernPVGmbH.json\n", + "./data/Unternehmensregister/export\\BAYERNRALLYEKarussellbetriebOHG.json\n", + "./data/Unternehmensregister/export\\BayernTeleGmbHFernsehproduktionBayerischerZeitschriftenverlage.json\n", + "./data/Unternehmensregister/export\\BayernTourismusMarketinggesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BayernTouristGmbHBTGGesellschaftfürtouristischesundgastgewerblichesMarketinginBayern.json\n", + "./data/Unternehmensregister/export\\BayernTreuhandAktiengesellschaftWirtschaftsprüfungsgesellschaft.json\n", + "./data/Unternehmensregister/export\\BayernTreuhandInternationalAuditingAssuranceGmbHWirtschaftsprüfungsgesellschaft.json\n", + "./data/Unternehmensregister/export\\BayernTreuhandObermeierKilgerKGWirtschaftsprüfungsgesellschaft.json\n", + "./data/Unternehmensregister/export\\BayernTrucksHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\BayernWindGmbH.json\n", + "./data/Unternehmensregister/export\\BayerPartnerRechtsanwälteInsolvenzverwaltung.json\n", + "./data/Unternehmensregister/export\\BayerPartnerRechtsanwälteSteuerberater.json\n", + "./data/Unternehmensregister/export\\BayerPensionskasseVersicherungsvereinaufGegenseitigkeit.json\n", + "./data/Unternehmensregister/export\\BayerPharmaAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\BayerPilzeWaldfrüchteUweNiklasGmbH.json\n", + "./data/Unternehmensregister/export\\BayerRaachGmbH.json\n", + "./data/Unternehmensregister/export\\BayerRaachNeueEnergienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayerRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\BayerReisenGmbH.json\n", + "./data/Unternehmensregister/export\\BayerReitsportGmbH.json\n", + "./data/Unternehmensregister/export\\BayerRettungstechnikoHG.json\n", + "./data/Unternehmensregister/export\\BayerRiedlPersonalserviceGmbH.json\n", + "./data/Unternehmensregister/export\\BayerStaatsbadBadReichenhallBayerGmainGmbH.json\n", + "./data/Unternehmensregister/export\\BayerTextilundMarketingGmbH.json\n", + "./data/Unternehmensregister/export\\BayerTrauringeGmbH.json\n", + "./data/Unternehmensregister/export\\BayerundPreussGmbH.json\n", + "./data/Unternehmensregister/export\\BayerUnternehmensberatungGmbH.json\n", + "./data/Unternehmensregister/export\\BayerUnterstützungskasseGmbH.json\n", + "./data/Unternehmensregister/export\\BayerUphuesGmbH.json\n", + "./data/Unternehmensregister/export\\BayerUSIPGmbH.json\n", + "./data/Unternehmensregister/export\\BayeruSohnSpeditionsGmbH.json\n", + "./data/Unternehmensregister/export\\BayeruSohnVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayerVermögensverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\BayerVersicherungsmaklerGmbH.json\n", + "./data/Unternehmensregister/export\\BayerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayerVerwaltungUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\BayerVitalGmbH.json\n", + "./data/Unternehmensregister/export\\BayerVitrotechnicGmbH.json\n", + "./data/Unternehmensregister/export\\BayerWaldGranitwerkeKAThieleGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\bayeurokesselGmbH.json\n", + "./data/Unternehmensregister/export\\BAYGmbH.json\n", + "./data/Unternehmensregister/export\\BayGmbHAutohausLandmaschinen.json\n", + "./data/Unternehmensregister/export\\BayGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayGmbHFleischgroßeinzelhandel.json\n", + "./data/Unternehmensregister/export\\BAYGmbHWirtschaftsprüfungsgesellschaftRechtsanwaltsgesellschaft.json\n", + "./data/Unternehmensregister/export\\BAYHandelsGmbH.json\n", + "./data/Unternehmensregister/export\\BayHolzwerkGmbH.json\n", + "./data/Unternehmensregister/export\\BayIGmbH.json\n", + "./data/Unternehmensregister/export\\BAYInvestmentGmbH.json\n", + "./data/Unternehmensregister/export\\BayKüchenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayKüchenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayLogistikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BAYPLASTGmbH.json\n", + "./data/Unternehmensregister/export\\BAYROInternationalVermittlungvonHolzBrennstoffeneK.json\n", + "./data/Unternehmensregister/export\\BAYSchnellrestaurantGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BaySoftGmbH.json\n", + "./data/Unternehmensregister/export\\BaySpeditionVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BaySöhneTransportGmbH.json\n", + "./data/Unternehmensregister/export\\BAYTradingGmbH.json\n", + "./data/Unternehmensregister/export\\BAYVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayVerwaltungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayWaAgrarBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaAgrarhandelGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\BayWaARA2GmbH.json\n", + "./data/Unternehmensregister/export\\BayWaBauGartenmärkteGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayWaBauProjektGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaBGMVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaCSGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaDienstleistungOstGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaEEHGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaEnergieDienstleistungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaFinanzserviceGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaForderungsmanagementGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaGlobalProduceGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaGreentechparkDevelopmentGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaHandelsSystemeServiceGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaHaustechnikGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaHochhausVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaMobilitySolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaObstBeteiligungGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaObstGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayWaPensionsverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaPowerLiquidsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareAG.json\n", + "./data/Unternehmensregister/export\\BayWareAssetManagementGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareAssetVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareDataServicesGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareEMEAIPPHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareEnergyTradingGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareEnergyVenturesGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareGreenEnergyProductsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareIPPVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareItaliaAssetsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaRentGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareOffshoreWindGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareOperationServicesGmbH.json\n", + "./data/Unternehmensregister/export\\BayWarePowerSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareRotorServiceGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareRotorServiceVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareSolardächerIIGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayWareSolarEnergySystemsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareSolarProjectsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareSolarProjectsVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareWind20GmbH.json\n", + "./data/Unternehmensregister/export\\BayWareWindGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareWindparkArlenaGmbH.json\n", + "./data/Unternehmensregister/export\\BayWareWindparkportfolio1GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BayWareWindVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BayWaVentureGmbH.json\n", + "./data/Unternehmensregister/export\\BayWiesenauerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BBGBerlinBrandenburgerLagerundDistributionsgesellschaftBiesterfeldBrenntagmbH.json\n", + "./data/Unternehmensregister/export\\BCABeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\BCDChemieGmbH.json\n", + "./data/Unternehmensregister/export\\BeGraBefestigungstechnikGrammGmbH.json\n", + "./data/Unternehmensregister/export\\BehrHellaThermocontrolGmbH.json\n", + "./data/Unternehmensregister/export\\BEKIBeteiligungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\belboonGmbH.json\n", + "./data/Unternehmensregister/export\\BELETAGELiegenschaftenGmbH.json\n", + "./data/Unternehmensregister/export\\BellevueBadHeilbrunnGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BENEOBiodivisHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\BENEOGmbH.json\n", + "./data/Unternehmensregister/export\\BEONeG.json\n", + "./data/Unternehmensregister/export\\BeragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\BerchelmannscheApothekeInhSerapBirgüleK.json\n", + "./data/Unternehmensregister/export\\BergeMeerTouristikGmbH.json\n", + "./data/Unternehmensregister/export\\BerlinovoWohnquartierGmbH.json\n", + "./data/Unternehmensregister/export\\Best4ConceptGmbH.json\n", + "./data/Unternehmensregister/export\\BeteiligungsgesellschaftHesseNewmanRealEstateNr2mbH.json\n", + "./data/Unternehmensregister/export\\BetekGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BETOMAXsystemsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BetonBohruSägedienstJohannSchäfflereK.json\n", + "./data/Unternehmensregister/export\\BetreibergesellschaftVerteilzentrumGmbH.json\n", + "./data/Unternehmensregister/export\\BetriebskrankenkassederBMWAG.json\n", + "./data/Unternehmensregister/export\\BFEInstitutfürEnergieundUmweltGmbH.json\n", + "./data/Unternehmensregister/export\\BFGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\BGDBodengesundheitsdienstGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BIGImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\BilfingerCorporateInsuranceManagementGmbH.json\n", + "./data/Unternehmensregister/export\\BilfingerCorporateRealEstateManagementGmbH.json\n", + "./data/Unternehmensregister/export\\BilfingerEngineeringMaintenanceGmbH.json\n", + "./data/Unternehmensregister/export\\BilfingerISPEuropeGmbH.json\n", + "./data/Unternehmensregister/export\\BilfingerLifeScienceAutomationGmbH.json\n", + "./data/Unternehmensregister/export\\BilfingerNoellGmbH.json\n", + "./data/Unternehmensregister/export\\BilsteinSiekermannGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BioenergieHaraldGrammVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BioenergieMerkUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\BiomasseHeizkraftwerkSiegerlandGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BiometDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\BirkenApothekeMarlisLaueK.json\n", + "./data/Unternehmensregister/export\\BITIBAGmbH.json\n", + "./data/Unternehmensregister/export\\BizLinkelocabGmbH.json\n", + "./data/Unternehmensregister/export\\BizLinkIndustryGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\BizLinkRoboticSolutionsGermanyGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 19%|█▊ | 626/3381 [00:00<00:04, 670.34it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\BizLinkSpecialCablesGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\BlackForxxGmbH.json\n", + "./data/Unternehmensregister/export\\BMVVBaumaschinenVermietungsundVertriebsGmbH.json\n", + "./data/Unternehmensregister/export\\BMWAnlagenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BMWBankGmbH.json\n", + "./data/Unternehmensregister/export\\BMWBeteiligungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BMWCarITGmbH.json\n", + "./data/Unternehmensregister/export\\BMWFahrzeugtechnikGmbH.json\n", + "./data/Unternehmensregister/export\\BMWFinanzVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BMWHighPowerChargingBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\BMWINTECBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\BMWiVenturesGmbH.json\n", + "./data/Unternehmensregister/export\\BMWMGmbHGesellschaftfürindividuelleAutomobile.json\n", + "./data/Unternehmensregister/export\\BMWServiceMoserGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BMWVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\BockGmbH.json\n", + "./data/Unternehmensregister/export\\BodeChemieGmbH.json\n", + "./data/Unternehmensregister/export\\BodoonstageeK.json\n", + "./data/Unternehmensregister/export\\BondLaminatesGmbH.json\n", + "./data/Unternehmensregister/export\\bonnieboutiqueHellaWolter.json\n", + "./data/Unternehmensregister/export\\BoschBASFSmartFarmingGmbH.json\n", + "./data/Unternehmensregister/export\\BRAWOSYSTEMSGmbH.json\n", + "./data/Unternehmensregister/export\\BREADbutterGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BREMERLEGUILGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\BrenntagBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\BrenntagEuropeanServicesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BrenntagForeignHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\BrenntagGermanyHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\BrenntagGlobalServicesGmbH.json\n", + "./data/Unternehmensregister/export\\BRENNTAGGmbH.json\n", + "./data/Unternehmensregister/export\\BrenntagHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\BRENNTAGInternationalChemicalsGmbH.json\n", + "./data/Unternehmensregister/export\\BrenntagRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\BrenntagSE.json\n", + "./data/Unternehmensregister/export\\BrenntagVermögensmanagementGmbH.json\n", + "./data/Unternehmensregister/export\\BrentwoodEuropeGmbH.json\n", + "./data/Unternehmensregister/export\\BRIONMusikVerlagInhaberinBrittaOnneneK.json\n", + "./data/Unternehmensregister/export\\BroadNetDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\brüderlProjektAmalienstraßeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BrüderlProjektBadEndorfGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BrüderlProjektGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BrüderlProjektKunigundenstraßeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\brüderlProjektLerchenwegGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BrüderlProjektTraunstorferStraßeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BSIZECHHOCHTIEFGmbHCooHG.json\n", + "./data/Unternehmensregister/export\\BSPBernerSchaefflerPartnersGmbHSteuerberatungsgesellschaft.json\n", + "./data/Unternehmensregister/export\\BTCEuropeGmbH.json\n", + "./data/Unternehmensregister/export\\BTS18ProjektGmbH.json\n", + "./data/Unternehmensregister/export\\BucherMerkProcessGmbH.json\n", + "./data/Unternehmensregister/export\\BuchhandlungWinnemutheKInhaberinJuliaErlen.json\n", + "./data/Unternehmensregister/export\\BuddeFördertechnikGmbH.json\n", + "./data/Unternehmensregister/export\\BuMaGebäudeserviceGmbH.json\n", + "./data/Unternehmensregister/export\\BundesanstaltfürPostundTelekommunikationDeutscheBundespost.json\n", + "./data/Unternehmensregister/export\\BuschjostMagnetventileGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\BücherstubeLeonieKonertzNachfHelmutKrüger.json\n", + "./data/Unternehmensregister/export\\BürgerEnergiegenossenschaftEnBWCityeG.json\n", + "./data/Unternehmensregister/export\\callmobileGmbH.json\n", + "./data/Unternehmensregister/export\\CARMAHVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\CCGDEGmbH.json\n", + "./data/Unternehmensregister/export\\CECONOMYAG.json\n", + "./data/Unternehmensregister/export\\CECONOMYDataGmbH.json\n", + "./data/Unternehmensregister/export\\CECONOMYDigitalGmbH.json\n", + "./data/Unternehmensregister/export\\CECONOMYDreizehnteGesellschaftfürVermögensverwaltungmbH.json\n", + "./data/Unternehmensregister/export\\CECONOMYInvestGmbH.json\n", + "./data/Unternehmensregister/export\\CECONOMYRetailGmbH.json\n", + "./data/Unternehmensregister/export\\CECONOMYRetailInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\CEEMainovaWPKirchhainGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CeragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\ChemieparkBitterfeldWolfenGmbH.json\n", + "./data/Unternehmensregister/export\\ChemitraGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\CheMondisGmbH.json\n", + "./data/Unternehmensregister/export\\CityAirlinesGmbH.json\n", + "./data/Unternehmensregister/export\\CLAASMainDonauGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CLAASNordostbayernGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CLGLagerhausGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\ClubMETROPOLAGmbH.json\n", + "./data/Unternehmensregister/export\\CMCConsumerMedicalCareGmbH.json\n", + "./data/Unternehmensregister/export\\CMCTechnologiesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CMKomplementär03018GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CMKomplementär03019GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CMKomplementär03020GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CockpitpersonalGmbH.json\n", + "./data/Unternehmensregister/export\\CognisHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\CognisInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\CognisIPManagementGmbH.json\n", + "./data/Unternehmensregister/export\\ComOnNetworkeK.json\n", + "./data/Unternehmensregister/export\\COMPUTECGmbH.json\n", + "./data/Unternehmensregister/export\\ConnectedRetailGmbH.json\n", + "./data/Unternehmensregister/export\\ConstructionResearchTechnologyGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroAG.json\n", + "./data/Unternehmensregister/export\\CovestroBrunsbüttelEnergieGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroDeutschlandAG.json\n", + "./data/Unternehmensregister/export\\CovestroFirstRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroIntellectualPropertyGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CovestroIntellectualPropertyVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroInvestGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroProcurementServicesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\CovestroProcurementServicesVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroResinsGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroSecondRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\CovestroThermoplastCompositeGmbH.json\n", + "./data/Unternehmensregister/export\\CrononGmbH.json\n", + "./data/Unternehmensregister/export\\CropEnergiesAG.json\n", + "./data/Unternehmensregister/export\\CropEnergiesBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\CropEnergiesBioethanolGmbH.json\n", + "./data/Unternehmensregister/export\\CrossMatchTechnologiesGmbH.json\n", + "./data/Unternehmensregister/export\\CSBChristianSchäfflerBauingenieurdienstleistungsGmbH.json\n", + "./data/Unternehmensregister/export\\DaimlerTruckAG.json\n", + "./data/Unternehmensregister/export\\DaimlerTruckVermögensundBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\DaimlerVermögensundBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\DAJupiterWohnanlageGmbH.json\n", + "./data/Unternehmensregister/export\\DanzasDeutschlandHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\DASGRAMMeK.json\n", + "./data/Unternehmensregister/export\\DATAGROUPBusinessSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\DCDatacenterAssetsGmbH.json\n", + "./data/Unternehmensregister/export\\DEFAGBeteiligungsverwaltungsGmbHI.json\n", + "./data/Unternehmensregister/export\\DEFAGBeteiligungsverwaltungsGmbHIII.json\n", + "./data/Unternehmensregister/export\\DefflandMerckGmbH.json\n", + "./data/Unternehmensregister/export\\DefflandMerckImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroAustriaGmbH.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroHFKitchensGmbH.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroIndiaUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroKitchensHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroLocalVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroPakistanUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroPhilippinesUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroSE.json\n", + "./data/Unternehmensregister/export\\DeliveryHeroStoresHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\DelvagVersicherungsAG.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 23%|██▎ | 761/3381 [00:01<00:04, 606.25it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\DematicHoldingsGmbH.json\n", + "./data/Unternehmensregister/export\\DEMMerckHoldingUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\DerneueStöckachGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\DERReisecenterTUIGmbH.json\n", + "./data/Unternehmensregister/export\\DessauerSchaltschrankundGehäusetechnikGmbH.json\n", + "./data/Unternehmensregister/export\\deSterGmbH.json\n", + "./data/Unternehmensregister/export\\detailMGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheAnningtonHoldingsFünfGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheBaumanagementGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheBauundSiedlungsGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\DeutscheibwWohnundHausbaugesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheLufthansaAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\DeutscheLufthansaUnterstützungswerkGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\DeutschePostAdressBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostAdressGeschäftsführungsGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostAdressGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\DeutschePostAG.json\n", + "./data/Unternehmensregister/export\\DeutschePostAltersvorsorgeSicherungeVCoObjektGronauKG.json\n", + "./data/Unternehmensregister/export\\DeutschePostAssekuranzVermittlungsGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostBeteiligungenHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostCustomerServiceCenterGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostDHLBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostDHLCorporateRealEstateManagementGmbHCoLogistikzentrenKG.json\n", + "./data/Unternehmensregister/export\\DeutschePostDHLCorporateRealEstateManagementGmbHCoObjektWeißenhornKG.json\n", + "./data/Unternehmensregister/export\\DeutschePostDHLExpressHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostDHLFacilityManagementDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostDHLRealEstateDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostDHLResearchandInnovationGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostDialogSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostDirektGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostEPOSTSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostExpansionGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostFinanceBV.json\n", + "./data/Unternehmensregister/export\\DeutschePostFleetGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostGrundstücksVermietungsgesellschaftbetambH.json\n", + "./data/Unternehmensregister/export\\DeutschePostGrundstücksVermietungsgesellschaftbetambHCoObjektLeipzigKG.json\n", + "./data/Unternehmensregister/export\\DeutschePostImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostInHausServicesGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostInvestmentsGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostITServicesGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostMobilityGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostPensionsfondsAG.json\n", + "./data/Unternehmensregister/export\\DeutschePostPensionsTreuhandGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\DeutschePostShopEssenGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostShopHannoverGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostShopMünchenGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostTransportGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostVerwaltungsObjektGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschePostZahlungsdiensteGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscherStudentenWohnBondISA.json\n", + "./data/Unternehmensregister/export\\DeutschesRotesKreuzKreisverbandStadeWohnundLangzeiteinrichtungengemeinnützigeGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschesRotesKreuzLebenundWohnenGüterslohGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschesRotesKreuzLeipzigLandWohnenundServicegemeinnützigeGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschesRotesKreuzNienburgpflegenwohnengGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschesRotesKreuzRostockWohnenundPflegegemeinnützigeGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschesRotesKreuzWohnenimAlterZittauGmbH.json\n", + "./data/Unternehmensregister/export\\DeutschesRotesKreuzWohnenPflegeundServiceimMuldentalGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenAssetImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlin5GmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlin6GmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlin7GmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinIIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinIIIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinXGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinXIIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinXIIIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinXVGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinXVIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBerlinXVIIIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBeteiligungenImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenBeteiligungsverwaltungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenCareSE.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenConstructionandFacilitiesGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenCorporateRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenDirektImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenDresdenIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenDresdenIIGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenFondsbeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenImmobilienManagementGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenKundenserviceGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenManagementGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenManagementundServicegesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenMultimediaNetzGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenReisholzGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenSE.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenTechnologyGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnenZweiteFondsbeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnInkassoGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnInvestGmbH.json\n", + "./data/Unternehmensregister/export\\DeutscheWohnundGewerbebauKG.json\n", + "./data/Unternehmensregister/export\\DeWoBaDeutscheWohnBaueG.json\n", + "./data/Unternehmensregister/export\\DFIVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\DHL2MannHandlingGmbH.json\n", + "./data/Unternehmensregister/export\\DHLAirwaysGmbH.json\n", + "./data/Unternehmensregister/export\\DHLAutomotiveGmbH.json\n", + "./data/Unternehmensregister/export\\DHLAutomotiveOffenauGmbH.json\n", + "./data/Unternehmensregister/export\\DHLConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\DHLDataAnalyticsGmbH.json\n", + "./data/Unternehmensregister/export\\DHLExpressCustomerServiceGmbH.json\n", + "./data/Unternehmensregister/export\\DHLExpressGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\DHLExpressNetworkManagementGmbH.json\n", + "./data/Unternehmensregister/export\\DHLFoodLogisticsGmbH.json\n", + "./data/Unternehmensregister/export\\DHLFreightGermanyHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\DHLFreightGmbH.json\n", + "./data/Unternehmensregister/export\\DHLGlobalEventLogisticsGmbH.json\n", + "./data/Unternehmensregister/export\\DHLGlobalForwardingGmbH.json\n", + "./data/Unternehmensregister/export\\DHLGlobalForwardingManagementGmbH.json\n", + "./data/Unternehmensregister/export\\DHLGlobalManagementGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 26%|██▌ | 887/3381 [00:01<00:04, 615.85it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\DHLHomeDeliveryGmbH.json\n", + "./data/Unternehmensregister/export\\DHLHubLeipzigGmbH.json\n", + "./data/Unternehmensregister/export\\DHLInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\DHLPaketGmbH.json\n", + "./data/Unternehmensregister/export\\DHLSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\DHLSortingCenterGmbH.json\n", + "./data/Unternehmensregister/export\\DHLSupplyChainLeipzigGmbH.json\n", + "./data/Unternehmensregister/export\\DHLSupplyChainManagementGmbH.json\n", + "./data/Unternehmensregister/export\\DHLSupplyChainOperationsGmbH.json\n", + "./data/Unternehmensregister/export\\DHLSupplyChainVASGmbH.json\n", + "./data/Unternehmensregister/export\\DIAGRAMMATICDESIGNSGmbH.json\n", + "./data/Unternehmensregister/export\\DiermeierEnergieGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIAcademyGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIAKTIENGESELLSCHAFT.json\n", + "./data/Unternehmensregister/export\\DMGMORIBielefeldHildenGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIFinanceGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIFrankfurtGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIGlobalMarketingGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIGlobalServiceGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIUltrasonicLasertecGmbH.json\n", + "./data/Unternehmensregister/export\\DMGMORIVertriebsundServiceGmbH.json\n", + "./data/Unternehmensregister/export\\DocterOpticsSE.json\n", + "./data/Unternehmensregister/export\\DRAWINVertriebsGmbH.json\n", + "./data/Unternehmensregister/export\\DrBeckersCentralApothekeRomanGötzeK.json\n", + "./data/Unternehmensregister/export\\DrOKWackChemieGmbH.json\n", + "./data/Unternehmensregister/export\\DRPAULHARTMANNCOLLGmbHWirtschaftsprüfungsgesellschaftSteuerberatungsgesellschaft.json\n", + "./data/Unternehmensregister/export\\DrSchäfflerExpertGmbH.json\n", + "./data/Unternehmensregister/export\\DrWackHoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\DrägerGebäudeundServiceGmbH.json\n", + "./data/Unternehmensregister/export\\DrägerHoldingInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\DrägerInterservicesGmbH.json\n", + "./data/Unternehmensregister/export\\DrägerMedicalANSYGmbH.json\n", + "./data/Unternehmensregister/export\\DrägerMedicalDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\DrägerMedicalInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\DrägerMSIGmbH.json\n", + "./data/Unternehmensregister/export\\DrägerSafetyVerwaltungsAG.json\n", + "./data/Unternehmensregister/export\\DrägerTGMGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\DrägerwerkAGCoKGaA.json\n", + "./data/Unternehmensregister/export\\DrägerwerkVerwaltungsAG.json\n", + "./data/Unternehmensregister/export\\DueLeoniGmbH.json\n", + "./data/Unternehmensregister/export\\DWREDresdenGmbH.json\n", + "./data/Unternehmensregister/export\\DWREHalleGmbH.json\n", + "./data/Unternehmensregister/export\\DWREHennigsdorfGmbH.json\n", + "./data/Unternehmensregister/export\\DWRELeipzigGmbH.json\n", + "./data/Unternehmensregister/export\\DörenhagenWindenergieanlagenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EAInternationaleExplorationsundProduktionsGmbH.json\n", + "./data/Unternehmensregister/export\\EASartoriusVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EBBHochTiefUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\eBoDGmbH.json\n", + "./data/Unternehmensregister/export\\EBVGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\ecowoGmbH.json\n", + "./data/Unternehmensregister/export\\EDGITALGmbH.json\n", + "./data/Unternehmensregister/export\\EDISAG.json\n", + "./data/Unternehmensregister/export\\EDITIONMETROeK.json\n", + "./data/Unternehmensregister/export\\EEADrSchäfflerGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\EinhornApothekeHellaDierking.json\n", + "./data/Unternehmensregister/export\\EisengießereiDinklageGmbH.json\n", + "./data/Unternehmensregister/export\\EisenwerkWeilbachGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\ElektroGrammerGmbH.json\n", + "./data/Unternehmensregister/export\\ElektroHaustechnikSchäfflerGmbH.json\n", + "./data/Unternehmensregister/export\\ElringKlingerAG.json\n", + "./data/Unternehmensregister/export\\ElringKlingerKunststofftechnikGmbH.json\n", + "./data/Unternehmensregister/export\\ElringKlingerLogisticServiceGmbH.json\n", + "./data/Unternehmensregister/export\\ElringKlingerMotortechnikGmbH.json\n", + "./data/Unternehmensregister/export\\elthermGmbH.json\n", + "./data/Unternehmensregister/export\\elthermproductionGmbH.json\n", + "./data/Unternehmensregister/export\\EmanuelMerckGmbH.json\n", + "./data/Unternehmensregister/export\\EmanuelMerckVermögensKG.json\n", + "./data/Unternehmensregister/export\\EMerckBeteiligungenKG.json\n", + "./data/Unternehmensregister/export\\EMerckKG.json\n", + "./data/Unternehmensregister/export\\EMGEuroMarineElectronicsGmbH.json\n", + "./data/Unternehmensregister/export\\EMPAHochtiefElektroinstallationUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\EnBWAlbatrosGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWAlbatrosManagementGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBaltic1GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWBaltic1VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBaltic2GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWBaltic2ManagementGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBalticWindparkVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBetriebsundServicegesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBiogasGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBiomasseGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBürgerbeteiligungSolar1GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWBürgerbeteiligungWind1GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWCentralandEasternEuropeHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWCityGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWContractingGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWContractingServiceGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWCyberSecurityGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWEnergieBadenWürttembergAG.json\n", + "./data/Unternehmensregister/export\\EnBWEnergyFactoryGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWEtzelSpeicherGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWFranceGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWGrundstücksverwaltungRheinhafenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWHeDreihtGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWHeDreihtManagementGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWHoheSeeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWHoheSeeManagementGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWImmobilienbeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWInternationalMarketsGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWKernkraftGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWKommunaleBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWKraftwerkLippendorfBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWMainfrankenparkGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWmobilityAGCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWNachhaltigeQuartiereGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWNAGBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWNetzeBWBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWNeueEnergienGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWNewVenturesGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshore1GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshore2GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshore3GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshore4GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshore5GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshore6GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshore7GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOffshoreServiceGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega107VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega108VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega121VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega122VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega123VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega124VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega125VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega126VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega132VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega133VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega134VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega139VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega140VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega141VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega144VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmega145VerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOmegaNeunundachtzigsteVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOnshorePortfolioGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWOstwürttembergDonauRiesAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\EnBWPerspektivenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWREGBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWRenewablesInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWRückbauserviceGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSenergiImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSmartMeterGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSolarGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 31%|███▏ | 1058/3381 [00:01<00:03, 723.32it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\EnBWSolarparkBirkenfeldGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkEmmingenLiptingenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkGickelfeldGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkGottesgabeGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkGroßLübbenauGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkGöritzGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkGückelhirnGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkIngoldingenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkKroppenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkLauenhagenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkLindenauGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkRotanderRotGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkSonnewaldeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkTuningenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSolarparkWeesowWillmersdorfGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSolarVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWSunInvestGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWSunInvestManagementGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWTelekommunikationGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWUrbaneInfrastrukturGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWvernetztBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWVersicherungsVermittlungGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWVertriebsbeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindInvestGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWWindInvestManagementGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindkraftprojekteGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindOnshore1GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindOnshoreInstandhaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindOnshorePortfolio2019GmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindOnshoreVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindparkAalenWaldhausenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindparkBuchholzIIIGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindparkHemmeGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindparkKleinliebringenGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindparkOberRamstadtGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWWindparkPrötzelGmbH.json\n", + "./data/Unternehmensregister/export\\EnBWÜbertragungsnetzImmobiliengesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EnBWÜbertragungsnetzImmobilienVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\energiehoch3GmbH.json\n", + "./data/Unternehmensregister/export\\EnergieKirchheimunterTeckVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EnergieSachsenheimVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EnergieServicePlusGmbH.json\n", + "./data/Unternehmensregister/export\\EnergieversorgungGaildorfOHGderEnBWKommunaleBeteiligungenGmbHundderNWSREGBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EnergieversorgungStrohgäuVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EnergyAirGmbH.json\n", + "./data/Unternehmensregister/export\\ENEXIOGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\EngelApothekeDrEmanuelMerckInhaberinRenateKoehlereK.json\n", + "./data/Unternehmensregister/export\\EnPulseVenturesGmbH.json\n", + "./data/Unternehmensregister/export\\EnPVGmbH.json\n", + "./data/Unternehmensregister/export\\EON11VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON45VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON46VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON47VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON51VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON52VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON53VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON54VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON55VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON57VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON58VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EON9VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EONAccountingSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\EONBayernVerwaltungsAG.json\n", + "./data/Unternehmensregister/export\\EONBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\EONBeteiligungsholdingGmbH.json\n", + "./data/Unternehmensregister/export\\EONBioerdgasGmbH.json\n", + "./data/Unternehmensregister/export\\EONBusinessSolutionsDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\EONBusinessSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\EONCountryHubGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\EONDigitalTechnologyGmbH.json\n", + "./data/Unternehmensregister/export\\EONDriveGmbH.json\n", + "./data/Unternehmensregister/export\\EONDriveInfrastructureGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\EONDriveInfrastructureGmbH.json\n", + "./data/Unternehmensregister/export\\EONEnergie38BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\EONEnergieAG.json\n", + "./data/Unternehmensregister/export\\EONEnergieDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\EONEnergieDeutschlandHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\EONEnergieDialogGmbH.json\n", + "./data/Unternehmensregister/export\\EONEnergyMarketsGmbH.json\n", + "./data/Unternehmensregister/export\\EONEnergyProjectsGmbH.json\n", + "./data/Unternehmensregister/export\\EONEnergySolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\EONFinanzanlagenGmbH.json\n", + "./data/Unternehmensregister/export\\EONFinanzholdingBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\EONFinanzholdingSECoKG.json\n", + "./data/Unternehmensregister/export\\EONFünfundzwanzigsteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EONGasMobilGmbH.json\n", + "./data/Unternehmensregister/export\\EONGastronomieGmbH.json\n", + "./data/Unternehmensregister/export\\EONGridSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\EONGroupInnovationGmbH.json\n", + "./data/Unternehmensregister/export\\EONGrugaGeschäftsführungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EONGrugaObjektgesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONGrundBodenBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\EONGrundBodenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONHydrogenGmbH.json\n", + "./data/Unternehmensregister/export\\EONIberiaHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\EONimpulseGmbH.json\n", + "./data/Unternehmensregister/export\\EONInhouseConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\EONInsuranceServicesGmbH.json\n", + "./data/Unternehmensregister/export\\EONInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\EONOneGmbH.json\n", + "./data/Unternehmensregister/export\\EONPensionsfondsAG.json\n", + "./data/Unternehmensregister/export\\EONPensionsfondsHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\EONPerspektGmbH.json\n", + "./data/Unternehmensregister/export\\EONPortfolioServicesGmbH.json\n", + "./data/Unternehmensregister/export\\EONPortfolioSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\EONRAGBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\EONRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\EONRheinRuhrWerkeGmbH.json\n", + "./data/Unternehmensregister/export\\EONRuhrgasGPAGmbH.json\n", + "./data/Unternehmensregister/export\\EONRuhrgasPortfolioGmbH.json\n", + "./data/Unternehmensregister/export\\EONSE.json\n", + "./data/Unternehmensregister/export\\EONSechzehnteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EONServiceGmbH.json\n", + "./data/Unternehmensregister/export\\EONSolarGmbH.json\n", + "./data/Unternehmensregister/export\\EONSolarpark10GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark11GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark12GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark13GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark3GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark4GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark5GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark6GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark7GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark8GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarpark9GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarparkDiepoldshofenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolarparkGerdshagenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EONSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\EONStiftunggGmbH.json\n", + "./data/Unternehmensregister/export\\EONTowerCoGmbH.json\n", + "./data/Unternehmensregister/export\\EONUSHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\EONVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EONVerwaltungsAGNr1.json\n", + "./data/Unternehmensregister/export\\EONVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EpurexFilmsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\ErnstFeyerabendPächterDieterGrammer.json\n", + "./data/Unternehmensregister/export\\ErsatzteilversorgunghistorischerBMWKraftfahrzeugeGmbH.json\n", + "./data/Unternehmensregister/export\\ErsteEndofRunwayDevelopmentLeipzigGmbH.json\n", + "./data/Unternehmensregister/export\\ErsteLogistikEntwicklungsgesellschaftMGGmbH.json\n", + "./data/Unternehmensregister/export\\ErsteWohnServicePlusGmbH.json\n", + "./data/Unternehmensregister/export\\EssoStationHochhausDiplIngAndreasHochhauseK.json\n", + "./data/Unternehmensregister/export\\EumaticGmbHKunststoffverarbeitung.json\n", + "./data/Unternehmensregister/export\\EurafricaBaugesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\EUROGREENGmbH.json\n", + "./data/Unternehmensregister/export\\EuropeanAirTransportLeipzigGmbH.json\n", + "./data/Unternehmensregister/export\\EurowingsAviationGmbH.json\n", + "./data/Unternehmensregister/export\\EurowingsDigitalGmbH.json\n", + "./data/Unternehmensregister/export\\EurowingsGmbH.json\n", + "./data/Unternehmensregister/export\\EurowingsTechnikGmbH.json\n", + "./data/Unternehmensregister/export\\EverschopApothekeInhaberinHellaBehmeKfr.json\n", + "./data/Unternehmensregister/export\\EvertasteGmbH.json\n", + "./data/Unternehmensregister/export\\EVGAGrundstücksundGebäudemanagementGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EvonikBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikCateringServicesGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikDahlenburgGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikDigitalGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikFunctionalSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikIndustriesAG.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 33%|███▎ | 1131/3381 [00:01<00:03, 668.02it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\EvonikIPGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikLogisticsServicesGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikMaterialsGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikOperationsGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikRealEstateGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EvonikRiskandInsuranceServicesGmbH.json\n", + "./data/Unternehmensregister/export\\EvonikVentureCapitalGmbH.json\n", + "./data/Unternehmensregister/export\\EWDiscoverGmbH.json\n", + "./data/Unternehmensregister/export\\EWEGoHOCHTIEFLadepartnerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\EWEHOCHTIEFLadepartnerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\EWIEEINFACHGmbH.json\n", + "./data/Unternehmensregister/export\\ExnerWäschereiReinigungeK.json\n", + "./data/Unternehmensregister/export\\FachklinikfürAnästhesieundIntensivmedizinVahrenwaldGmbH.json\n", + "./data/Unternehmensregister/export\\FacilmaGrundbesitzmanagementundserviceGmbHCoBesitzKG.json\n", + "./data/Unternehmensregister/export\\FahrzeugbauGmbHGeisa.json\n", + "./data/Unternehmensregister/export\\FaragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\FarmFactsGmbH.json\n", + "./data/Unternehmensregister/export\\FarmFactsHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\FaroLeoniUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\FashionCircleGmbH.json\n", + "./data/Unternehmensregister/export\\FCSFrankfurtCargoServicesGmbH.json\n", + "./data/Unternehmensregister/export\\FernwärmeVerbundSaarGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\FerrostaalOilGasGmbH.json\n", + "./data/Unternehmensregister/export\\FichthornGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\FieldServiceDeutschlandFSDGmbH.json\n", + "./data/Unternehmensregister/export\\FielmannAGCo.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoamMarktKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoAnderRothenburgOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBadCannstattOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBarbarossaplatzOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBarmenOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBergedorfKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBillstedtKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBonnBadGodesbergOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBornheimKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBrackwedeKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBramfeldKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoBuerOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoCentrumOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoChorweilerKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoCityArkadenOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoDerendorfOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoDresdenAltstadtKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoDresdenNeustadtOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoEbertplatzKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoEimsbüttelOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoElberfeldOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoEssenRüttenscheidOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoEssenSteeleOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoHambornOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoHarburgSandOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoHiltrupOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoHöchstOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoimAlstertalEinkaufszentrumOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoimCentrumKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoimCentrumOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoJahnplatzOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoKlosterstraßeOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoLeipzigerStraßeOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoMülheimOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoOberhausenOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoOberkasselOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoOchsenzollOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGAlleeCenter.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGCityGalerie.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGHindenburgstraße.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGimCentrum.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGKalk.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGLudwigsplatz.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGLüttenKlein.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGMarktplatzCenter.json\n", + "./data/Unternehmensregister/export\\FielmannAGCooHGRheinCenter.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoOthmarschenOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoOttensenOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoPaunsdorfCenterOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoPferdemarktOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoRahlstedtOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoRathausOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoRethelstraßeOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoRheydtoHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoRoßmarktOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoVenloerStraßeOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoVolksdorfOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoWandsbekOHG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoWattenscheidKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoWestlicheKaiserstraßeKG.json\n", + "./data/Unternehmensregister/export\\FielmannAGCoZentrumKG.json\n", + "./data/Unternehmensregister/export\\FielmannAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\FielmannAugenoptikAGCo.json\n", + "./data/Unternehmensregister/export\\FielmannAugenoptikAGCooHG.json\n", + "./data/Unternehmensregister/export\\FielmannAugenoptikAGCooHGHarburgCity.json\n", + "./data/Unternehmensregister/export\\FielmannAugenoptikGmbHCoLuxemburgKG.json\n", + "./data/Unternehmensregister/export\\fielmannFarmsenFielmannGmbHCo.json\n", + "./data/Unternehmensregister/export\\fielmannFielmannGmbH.json\n", + "./data/Unternehmensregister/export\\FielmannFinanzserviceGmbH.json\n", + "./data/Unternehmensregister/export\\fielmannINTEROPTIKGmbHCo.json\n", + "./data/Unternehmensregister/export\\fielmannopticFielmannGmbHCo.json\n", + "./data/Unternehmensregister/export\\FIMMUSGrundstücksVermietungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\FIMMUSGrundstücksVermietungsgesellschaftmbHCoObjektLübeckKG.json\n", + "./data/Unternehmensregister/export\\FinanzenimGanzenStröerUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\FindusMetropolGmbH.json\n", + "./data/Unternehmensregister/export\\FIRSTTravelGmbH.json\n", + "./data/Unternehmensregister/export\\FlughafenFrankfurtHahnGmbH.json\n", + "./data/Unternehmensregister/export\\FläktGroupDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\FMDFacilityManagementDienstleistungenGmbH.json\n", + "./data/Unternehmensregister/export\\FOMLEGGeneralübernehmerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\FontaneApothekeKlausKirchmeiereK.json\n", + "./data/Unternehmensregister/export\\formartImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\ForsterGmbH.json\n", + "./data/Unternehmensregister/export\\FortimoGmbH.json\n", + "./data/Unternehmensregister/export\\FraGroundFraportGroundHandlingProfessionalsGmbH.json\n", + "./data/Unternehmensregister/export\\FrankfurterSiedlungsgesellschaftmbHFSG.json\n", + "./data/Unternehmensregister/export\\FrankSchäfflereK.json\n", + "./data/Unternehmensregister/export\\FraportAGFrankfurtAirportServicesWorldwide.json\n", + "./data/Unternehmensregister/export\\FraportAusbauSüdGmbH.json\n", + "./data/Unternehmensregister/export\\FraportBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\FraportBrasilHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\FraportCasaCommercialGmbH.json\n", + "./data/Unternehmensregister/export\\FraportCasaGmbH.json\n", + "./data/Unternehmensregister/export\\FraportFacilityServicesGmbH.json\n", + "./data/Unternehmensregister/export\\FraportImmobilienserviceuentwicklungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\FraportObjekte162163GmbH.json\n", + "./data/Unternehmensregister/export\\FraportObjektMönchhofGmbH.json\n", + "./data/Unternehmensregister/export\\FraportPassengerServicesGmbH.json\n", + "./data/Unternehmensregister/export\\FraportRealEstate162163GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\FraportRealEstateMönchhofGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\FraportRealEstateVerwaltungsGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 38%|███▊ | 1295/3381 [00:01<00:03, 679.94it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\FraSecFlughafensicherheitGmbH.json\n", + "./data/Unternehmensregister/export\\FraSecFraportSecurityServicesGmbH.json\n", + "./data/Unternehmensregister/export\\FraSecServicesGmbH.json\n", + "./data/Unternehmensregister/export\\FRAVorfeldkontrolleGmbH.json\n", + "./data/Unternehmensregister/export\\freenetAG.json\n", + "./data/Unternehmensregister/export\\freenetCitylineGmbH.json\n", + "./data/Unternehmensregister/export\\freenetDatenkommunikationsGmbH.json\n", + "./data/Unternehmensregister/export\\freenetdeGmbH.json\n", + "./data/Unternehmensregister/export\\freenetDirektGmbH.json\n", + "./data/Unternehmensregister/export\\freenetDLSGmbH.json\n", + "./data/Unternehmensregister/export\\freenetEnergyGmbH.json\n", + "./data/Unternehmensregister/export\\freenetLogistikGmbH.json\n", + "./data/Unternehmensregister/export\\freenetShopGmbH.json\n", + "./data/Unternehmensregister/export\\freenetShoppingGmbH.json\n", + "./data/Unternehmensregister/export\\FreibergerHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\FreibergerInternationaleBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\FreibergerLebensmittelGmbH.json\n", + "./data/Unternehmensregister/export\\FreibergerOsterweddingenGmbH.json\n", + "./data/Unternehmensregister/export\\FritzSchäfflerGmbHCo.json\n", + "./data/Unternehmensregister/export\\FryeStröerLegehennenKG.json\n", + "./data/Unternehmensregister/export\\FSBFGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\FSBFlugplatzBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\FUCHSFinanzserviceGmbH.json\n", + "./data/Unternehmensregister/export\\FUCHSLUBRICANTSGERMANYGmbH.json\n", + "./data/Unternehmensregister/export\\FUCHSPETROLUBSE.json\n", + "./data/Unternehmensregister/export\\FuelsServicesGmbH.json\n", + "./data/Unternehmensregister/export\\FügerGrundstücksundVermögensverwaltungsUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\FügerVerwaltungsUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\GALERIAHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\GammaUnternehmensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\GarbenApothekeeK.json\n", + "./data/Unternehmensregister/export\\GartenstadtHotelInhaberinBeateBeckereK.json\n", + "./data/Unternehmensregister/export\\GASCADEGastransportGmbH.json\n", + "./data/Unternehmensregister/export\\GasnetzverwaltungsgesellschaftSchorndorfGmbH.json\n", + "./data/Unternehmensregister/export\\GastauerReisenGmbH.json\n", + "./data/Unternehmensregister/export\\GateGourmetLoungeGmbH.json\n", + "./data/Unternehmensregister/export\\GateGourmetObjektundVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GBSGesellschaftfürUnternehmensbeteiligungenmbH.json\n", + "./data/Unternehmensregister/export\\GEAAWPGmbH.json\n", + "./data/Unternehmensregister/export\\GEABischoffGmbH.json\n", + "./data/Unternehmensregister/export\\GEABrewerySystemsGmbH.json\n", + "./data/Unternehmensregister/export\\GEADiesselGmbH.json\n", + "./data/Unternehmensregister/export\\GEAErsteKapitalbeteiligungenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GEAFarmTechnologiesGmbH.json\n", + "./data/Unternehmensregister/export\\GEAFoodSolutionsGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\GEAGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\GEAGroupAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\GEAGroupHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\GEAGroupServicesGmbH.json\n", + "./data/Unternehmensregister/export\\GEALyophilGmbH.json\n", + "./data/Unternehmensregister/export\\GEAMechanicalEquipmentGmbH.json\n", + "./data/Unternehmensregister/export\\GEAMessoGmbH.json\n", + "./data/Unternehmensregister/export\\GEARealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\GEARefrigerationGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\GEARefrigerationTechnologiesGmbH.json\n", + "./data/Unternehmensregister/export\\GEATDSGmbH.json\n", + "./data/Unternehmensregister/export\\GEATuchenhagenGmbH.json\n", + "./data/Unternehmensregister/export\\GEAWestfaliaSeparatorGroupGmbH.json\n", + "./data/Unternehmensregister/export\\GEAWiegandGmbH.json\n", + "./data/Unternehmensregister/export\\GEHAGErsteBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GEHAGGrundbesitzIGmbH.json\n", + "./data/Unternehmensregister/export\\GEHAGGrundbesitzIIIGmbH.json\n", + "./data/Unternehmensregister/export\\GEHAGZweiteBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GEHEImmobilienVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\GEHEPharmaHandelGmbH.json\n", + "./data/Unternehmensregister/export\\GelsenbergGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER10BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER11BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER12BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER13BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER14BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER1BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER3ProjektbeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER6BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSER9BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERAG.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERBeteiligungenSE.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERDigitalGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERDresdenGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\GELSENWASSEREnergienetze9BeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSEREnergienetzeGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSEREntwicklungsgesellschaftDresdenmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERIndustrieserviceSchkopauGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERMagdeburgGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERPolskaGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERProjektgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERServiceGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERStadtwerkedienstleistungsGmbH.json\n", + "./data/Unternehmensregister/export\\GELSENWASSERStiftunggGmbH.json\n", + "./data/Unternehmensregister/export\\GemeindewerkeBrühlVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\GemeindewerkeSchermbeckVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GemeinnützigeEisenbahnWohnungsbauGesellschaftmitbeschränkterHaftungWuppertal.json\n", + "./data/Unternehmensregister/export\\GemeinnützigeGesellschaftzurFörderungdesEONEnergyResearchCentermbH.json\n", + "./data/Unternehmensregister/export\\GeorgSchäfflerGmbH.json\n", + "./data/Unternehmensregister/export\\GeragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\GerhardBechtholdGmbH.json\n", + "./data/Unternehmensregister/export\\GerlachZolldiensteGmbH.json\n", + "./data/Unternehmensregister/export\\GermanwingsGmbH.json\n", + "./data/Unternehmensregister/export\\GerresheimerWertheimGmbH.json\n", + "./data/Unternehmensregister/export\\GerresheimFestausstattungGmbH.json\n", + "./data/Unternehmensregister/export\\GerresheimVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\GesellschaftfürnuklearesReststoffrecyclingmbH.json\n", + "./data/Unternehmensregister/export\\GesellschaftzurFörderungderLackkunstmbH.json\n", + "./data/Unternehmensregister/export\\GeWoGesellschaftfürWohnungsundStädtebaumbH.json\n", + "./data/Unternehmensregister/export\\GGRWohnparksKastanienalleeGmbH.json\n", + "./data/Unternehmensregister/export\\GGRWohnparksNordLeipzigerTorGmbH.json\n", + "./data/Unternehmensregister/export\\GGRWohnparksSüdLeipzigerTorGmbH.json\n", + "./data/Unternehmensregister/export\\GIPHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\GKFVermögensverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GKFVermögensverwaltungsgesellschaftmbHCo25ObjektKG.json\n", + "./data/Unternehmensregister/export\\GKFVermögensverwaltungsgesellschaftmbHCoGewerbegrundstückeKG.json\n", + "./data/Unternehmensregister/export\\GKFVermögensverwaltungsgesellschaftmbHCoObjektHammKG.json\n", + "./data/Unternehmensregister/export\\GKFVermögensverwaltungsgesellschaftmbHCoObjektMönchengladbachZVIIKG.json\n", + "./data/Unternehmensregister/export\\GKFVermögensverwaltungsgesellschaftmbHCoObjektSaarGrundKG.json\n", + "./data/Unternehmensregister/export\\GladbauBaubetreuungsundVerwaltungsGesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GoingOnMediaservicesInhMirkoHeintzeK.json\n", + "./data/Unternehmensregister/export\\GoldhandLebensmittelundVerbrauchsgüterVertriebsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\GrainliGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GrammArchitekturGmbH.json\n", + "./data/Unternehmensregister/export\\GrammEnergieGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMMERAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\GRAMMERAutomotiveMetallGmbH.json\n", + "./data/Unternehmensregister/export\\GrammerDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMMEREVITGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMMEREVITINTERNATIONALGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMMERImmobilienProjektentwicklungGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMMERImmobilienTechnikGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 42%|████▏ | 1435/3381 [00:02<00:02, 671.58it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\GRAMMERImmobilienVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMMERInteriorComponentsGmbH.json\n", + "./data/Unternehmensregister/export\\GrammerRailwayInteriorGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMMERSolarGmbH.json\n", + "./data/Unternehmensregister/export\\GrammerSolarPhotovoltaikGmbH.json\n", + "./data/Unternehmensregister/export\\GrammersSUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\GRAMMERSystemGmbH.json\n", + "./data/Unternehmensregister/export\\GrammerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\GrammFertigungstechnikGmbH.json\n", + "./data/Unternehmensregister/export\\grammgenauGmbH.json\n", + "./data/Unternehmensregister/export\\GrammGeschäftsführungGmbH.json\n", + "./data/Unternehmensregister/export\\GrammGmbH.json\n", + "./data/Unternehmensregister/export\\GrammGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GRAMMHoldingUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\GrammImmoGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GrammImmoVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\GrammLinsPartnerPatentundRechtsanwältePartGmbB.json\n", + "./data/Unternehmensregister/export\\GrammmedicalhealthcareGmbH.json\n", + "./data/Unternehmensregister/export\\GrammOberflächentechnischesInstitutBodenseeGmbH.json\n", + "./data/Unternehmensregister/export\\GrammProfiltechnikGmbH.json\n", + "./data/Unternehmensregister/export\\GrammSpenglereiGmbH.json\n", + "./data/Unternehmensregister/export\\GrammSpiegelLichtGmbH.json\n", + "./data/Unternehmensregister/export\\GrammtechnicalGmbH.json\n", + "./data/Unternehmensregister/export\\GrammTechnikGmbH.json\n", + "./data/Unternehmensregister/export\\GrammVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\GrammVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\GRAMOLERAGrundstücksvermietungsgesellschaftObjektTicinombH.json\n", + "./data/Unternehmensregister/export\\GramtechnoGmbH.json\n", + "./data/Unternehmensregister/export\\GravisComputervertriebsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GroupEngineManagementGmbH.json\n", + "./data/Unternehmensregister/export\\GrundstücksgesellschaftDuHambH.json\n", + "./data/Unternehmensregister/export\\GrundstücksgesellschaftKarowerDammmbH.json\n", + "./data/Unternehmensregister/export\\GrundstücksgesellschaftPfingstangerSalzgitterBadKG.json\n", + "./data/Unternehmensregister/export\\GrünauIllertissenGmbH.json\n", + "./data/Unternehmensregister/export\\GSRVentiltechnikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GStranzingerBauprojektGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GSWCoronaGmbH.json\n", + "./data/Unternehmensregister/export\\GSWGrundvermögensundVertriebsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\GuanoWerkeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GuidosPizzeriaInhaberGiorgioPumaeK.json\n", + "./data/Unternehmensregister/export\\GVMSGrundstücksverwaltungServiceGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GVVGrevenerVermietungsundVerpachtungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\GWNGemeinnützigeWohnungsgesellschaftNordwestdeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\hairdesignbyHellaBallinGmbH.json\n", + "./data/Unternehmensregister/export\\HamburgAmerikaLinieGmbH.json\n", + "./data/Unternehmensregister/export\\HamburgerGesellschaftfürFlughafenanlagenmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\HamburgOnAireK.json\n", + "./data/Unternehmensregister/export\\HansaportHafenbetriebsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\HansJoachimJetschkeIndustriefahrzeugeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HanspeterGrasslKG.json\n", + "./data/Unternehmensregister/export\\HansRüsselBuchhandlungInhBenediktRüssel.json\n", + "./data/Unternehmensregister/export\\HapagLloydAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\HapagLloydDamiettaGmbH.json\n", + "./data/Unternehmensregister/export\\HapagLloydGrundstücksholdingGmbH.json\n", + "./data/Unternehmensregister/export\\HapagLloydReisebüroHagenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HapagLloydReisebüroHagenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HapagLloydSchiffsvermietungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HaragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\HARTMANNBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\HartmannGmbH.json\n", + "./data/Unternehmensregister/export\\HARTMANNVentureGmbH.json\n", + "./data/Unternehmensregister/export\\HASAGmbH.json\n", + "./data/Unternehmensregister/export\\HAUFFTECHNIKGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HausAureliusImmobilienVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HausAureliusSZBAachenAltenundPflegeheimGmbH.json\n", + "./data/Unternehmensregister/export\\HausAureliusSZBAachenImmobilienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HBPOGmbH.json\n", + "./data/Unternehmensregister/export\\HebbelApothekeHellaBehmeKfr.json\n", + "./data/Unternehmensregister/export\\HeineResistorsGmbH.json\n", + "./data/Unternehmensregister/export\\HeinrichSchäfermeyerGmbH.json\n", + "./data/Unternehmensregister/export\\HeinzelmannMineralöleInhaberWolfgangSartoriuseK.json\n", + "./data/Unternehmensregister/export\\HeizkraftwerkStuttgartGmbH.json\n", + "./data/Unternehmensregister/export\\HellaAglaiaMobileVisionGmbH.json\n", + "./data/Unternehmensregister/export\\HellaCorporateCenterGmbH.json\n", + "./data/Unternehmensregister/export\\HellaDistributionGmbH.json\n", + "./data/Unternehmensregister/export\\HellaFahrzeugkomponentenGmbH.json\n", + "./data/Unternehmensregister/export\\HellaGeschäftsführungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HellaGmbH.json\n", + "./data/Unternehmensregister/export\\HELLAGmbHCoKGaA.json\n", + "./data/Unternehmensregister/export\\hellagoodeKInhHellaKocks.json\n", + "./data/Unternehmensregister/export\\HellaGutmannAnlagenvermietungGmbH.json\n", + "./data/Unternehmensregister/export\\HellaGutmannHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\HellaGutmannSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\HellaHoldingInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\HellaInnenleuchtenSystemeGmbH.json\n", + "./data/Unternehmensregister/export\\HellaKelling.json\n", + "./data/Unternehmensregister/export\\HellaKochMineralöltransporteGmbH.json\n", + "./data/Unternehmensregister/export\\HellaKrauseeK.json\n", + "./data/Unternehmensregister/export\\HellaKraußInhaberThomasKrauß.json\n", + "./data/Unternehmensregister/export\\HellaMatthiesenKunststoffspritzgußInhHansGeorgBergereK.json\n", + "./data/Unternehmensregister/export\\HellaPagidGmbH.json\n", + "./data/Unternehmensregister/export\\HellaPriemBeflockungsGmbH.json\n", + "./data/Unternehmensregister/export\\HellaRichertVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HellaSeifenHildegardSchipporeitGroßhandeleK.json\n", + "./data/Unternehmensregister/export\\HELLASonnenschutztechnikGmbH.json\n", + "./data/Unternehmensregister/export\\HellaStiftungGmbH.json\n", + "./data/Unternehmensregister/export\\HellaTomMediaGmbH.json\n", + "./data/Unternehmensregister/export\\HellaVermögensverwaltungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HELLAVONSINNENCORNELIASCHEELKomikzentrumGmbH.json\n", + "./data/Unternehmensregister/export\\HellaWerkzeugTechnologiezentrumGmbH.json\n", + "./data/Unternehmensregister/export\\HellmaGastronomieServiceGmbH.json\n", + "./data/Unternehmensregister/export\\HelmutGrammMöbelhandelundVerpachtungInhaberinMarionGrammeK.json\n", + "./data/Unternehmensregister/export\\HelmutRübsamenGmbHCoKGMetalldrückereiUmformtechnik.json\n", + "./data/Unternehmensregister/export\\HenkelAGCoKGaA.json\n", + "./data/Unternehmensregister/export\\HENKELAnlagenundProzesstechnikGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelArchitekturPlanungsundProjektentwicklungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HenkelAssekuranzMaklerUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\HenkelAugenoptikGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\HenkelBastInhSabineBasteK.json\n", + "./data/Unternehmensregister/export\\HenkelBauelementeGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBauGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBeautyIBHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBedachungenGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBedachungGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBeizundElektropoliertechnikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HenkelBeizundElektropoliertechnikVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBeratungundBeteiligungenUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\HenkelBesitzGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HenkelBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBeteiligungsundVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelBodenbelägeGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelDachundWandGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelDentalLaborInhBarbaraHenkeleK.json\n", + "./data/Unternehmensregister/export\\HenkelEigentümerDiensteGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelElektroInstallationeKfr.json\n", + "./data/Unternehmensregister/export\\HenkelElektromaschinenbauGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelElfteVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HenkelEntsorgungGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelErsteHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelFamilienKG.json\n", + "./data/Unternehmensregister/export\\HenkelGasarmaturenGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelGeflitterGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelGerlachGmbHCo.json\n", + "./data/Unternehmensregister/export\\HenkelGerlachRügenElektroHandelGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelGerlachRügenElektroHandelGmbHCoKommanditgesellschaft.json\n", + "./data/Unternehmensregister/export\\HenkelGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\HenkelGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelGmbHCo.json\n", + "./data/Unternehmensregister/export\\HenkelGmbHCoKG.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 47%|████▋ | 1597/3381 [00:02<00:02, 740.85it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\HenkelGmbHFormularVerlag.json\n", + "./data/Unternehmensregister/export\\HenkelHausundGrundstücksverwaltungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HenkelHenkelGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HenkelHenkelVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelHoldingKGaACoKG.json\n", + "./data/Unternehmensregister/export\\HenkelHolzundMassivbauGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelImmoGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelIndustrialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelIndustrieconsultingUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\HenkelInnovationInvestmentsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelInvestmentGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelIPHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelIPHoldingVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelIPManagementandICServicesGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelItaliaHoldingVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelJungTransportRecyclingGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelKarosseriebauFachbetriebGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelKGGeneralagentur.json\n", + "./data/Unternehmensregister/export\\HenkelKlinikserviceGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelLicenseGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelLoctiteKIDGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelManagementAG.json\n", + "./data/Unternehmensregister/export\\HENKELmedPERSONALDüsseldorfGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelModellbauGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelNillesUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\HenkeloHGFormularVerlagInhaberMarcHenkeleK.json\n", + "./data/Unternehmensregister/export\\HenkelPartnermbBPatentanwaltskanzlei.json\n", + "./data/Unternehmensregister/export\\HenkelPartsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelReißElektroundKältetechnikGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelRohrverformungstechnikGmbH.json\n", + "./data/Unternehmensregister/export\\HENKELROTHGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelRühaakSteuerberatungsgesellschaftPartmbB.json\n", + "./data/Unternehmensregister/export\\HenkelScheelKlinkerbauGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelSeickertImmobilienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HENKELSEMAtronicUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\henkelsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\henkelsHöfeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\henkelsLDHGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HenkelSteuerberatungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\henkelsVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelSöhneBedachungsGmbH.json\n", + "./data/Unternehmensregister/export\\henkelTKGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelTransporteGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelTuningGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelUmformundFügetechnikGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelundGärtnerGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelVermietungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelVersandKarlHeinzHenkeleK.json\n", + "./data/Unternehmensregister/export\\HenkelVertriebManfredJHenkel.json\n", + "./data/Unternehmensregister/export\\HenkelVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelVerwaltungsUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\HenkelVisionGesellschaftfürCreativesMarketingmbHDarmstadt.json\n", + "./data/Unternehmensregister/export\\HenkelVolicGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelvormKleinzHeizungSanitäreK.json\n", + "./data/Unternehmensregister/export\\HenkelWaschundReinigungsmittelGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelZehnteVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HenkelZweiteHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\HenkelZwölfteVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HesseNewmanImmobilienmanagementGmbH.json\n", + "./data/Unternehmensregister/export\\HEVHohenloherEnergieVersorgungGmbH.json\n", + "./data/Unternehmensregister/export\\HHeitzFurnierkantenwerkGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HildegardGrammBräuerGmbHCoVermögensverwaltungsKG.json\n", + "./data/Unternehmensregister/export\\HINOTRATONGlobalProcurementGmbH.json\n", + "./data/Unternehmensregister/export\\HitexGmbH.json\n", + "./data/Unternehmensregister/export\\HJMerckCoGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFAmericasGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFAsiaPacificGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFBauundBetriebGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFBePoHessenBewirtschaftungGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFBePoHessenGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFConstructionManagementMiddleEastGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFDCXGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFDNCapital1GmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFEngineeringGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFInfrastructureGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFInsuranceBrokingandRiskManagementSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFLaboreKasselBewirtschaftungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFLaboreKasselGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFLadepartnerGmbH.json\n", + "./data/Unternehmensregister/export\\HochTiefLandschaftsbauSchöneckGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFOBKVermietungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFOffshoreCrewingGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFOffshoreDevelopmentFünfGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFOffshoreDevelopmentSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPANDIONOettingenstraßeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPANDIONOettingenstraßeVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPP1HoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPP1HoldingVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPBundeswehrpartnerFWKMünchenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPBundeswehrpartnerFWKMünchenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPLifecycle1GmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPOperationsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPSchulpartnerBraunschweigGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPSchulpartnerFrankfurtamMainGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPSchulpartnerFrankfurtamMainVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPSchulpartnerKölnP1GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPSchulpartnerKölnRodenkirchenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPSchulpartnerKölnRodenkirchenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPTransportWesteuropaGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPPVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPSüdosthessenBewirtschaftungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFPPSüdosthessenVermietungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFProjektentwicklungGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFSolarpartnerGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFSolutions3BeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFSolutionsAG.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFSolutionsRealEstateBeteiligungsverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFSolutionsRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFSozialeInfrastrukturEuropaGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFTradeSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFViConGmbH.json\n", + "./data/Unternehmensregister/export\\HOCHTIEFÖPPProjektgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HochundTiefbauKishkGmbH.json\n", + "./data/Unternehmensregister/export\\HolzundBaustoffhandlungHellaOstheimInhVolkerOstheimeK.json\n", + "./data/Unternehmensregister/export\\HornbachBaustoffUnionGmbH.json\n", + "./data/Unternehmensregister/export\\HORNBACHHoldingAGCoKGaA.json\n", + "./data/Unternehmensregister/export\\HORNGROUPHoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HorstHenkelMetallwarenSuhlMäbendorfeK.json\n", + "./data/Unternehmensregister/export\\HospitalityDigitalGmbH.json\n", + "./data/Unternehmensregister/export\\HotelMetrooHGInhaberEdithRichterundFriedaRichter.json\n", + "./data/Unternehmensregister/export\\HotmobilDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\hteGmbHthehighthroughputexperimentationcompany.json\n", + "./data/Unternehmensregister/export\\HTPImmoGmbH.json\n", + "./data/Unternehmensregister/export\\HubertSchäfflerGmbH.json\n", + "./data/Unternehmensregister/export\\HUGOBOSSAG.json\n", + "./data/Unternehmensregister/export\\HUGOBOSSBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\HUGOBOSSDienstleistungsGmbH.json\n", + "./data/Unternehmensregister/export\\HUGOBOSSInternationaleBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\HugoBossStiftunggGmbH.json\n", + "./data/Unternehmensregister/export\\HUGOBOSSTradeMarkManagementGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HUGOBOSSTradeMarkManagementVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\HUGOBOSSVermögensverwaltungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\hvsVerpflegungssystemeGmbH.json\n", + "./data/Unternehmensregister/export\\HYBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\HörselApothekeInhaberApothekerinReginaGrammeKfr.json\n", + "./data/Unternehmensregister/export\\HüttensandSalzgitterGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\HüttensandSalzgitterVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\IABIonenaustauscherGmbHBitterfeld.json\n", + "./data/Unternehmensregister/export\\IDEALAutomotiveGmbH.json\n", + "./data/Unternehmensregister/export\\IDKOMAG.json\n", + "./data/Unternehmensregister/export\\IDKOMNetworksGmbH.json\n", + "./data/Unternehmensregister/export\\IEFWernerGmbH.json\n", + "./data/Unternehmensregister/export\\IgnazSchäfflereK.json\n", + "./data/Unternehmensregister/export\\IHOBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\IHOHoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\IHOManagementGmbH.json\n", + "./data/Unternehmensregister/export\\IHOVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\iLeoniGmbH.json\n", + "./data/Unternehmensregister/export\\iLoveGmbH.json\n", + "./data/Unternehmensregister/export\\IMDNaturalSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\imecoGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\ImmobilienVermietungsgesellschaftvonQuistorpGmbHCoObjektAltlandsbergKG.json\n", + "./data/Unternehmensregister/export\\ImmobilienverwaltungABGmbH.json\n", + "./data/Unternehmensregister/export\\IMMOLADENGMBH.json\n", + "./data/Unternehmensregister/export\\IMPARKMAINOVAHessischeParkhausbetriebeUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\ImtronGmbH.json\n", + "./data/Unternehmensregister/export\\INAHoldingSchaefflerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\INDUSEpsilonGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\INDUSHoldingAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\IndustriewerkSchaefflerINAIngenieurdienstGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\InfineonPensionTrustImmobilienHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologies2VermögensverwaltungsgesellschaftmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 52%|█████▏ | 1745/3381 [00:02<00:02, 717.05it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\InfineonTechnologies3VermögensverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesAG.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesBipolarGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesBipolarVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesCampeonVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesDeltaGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesDresdenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesDresdenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesGammaGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesMantel26AG.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesMantel27GmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesMantel29GmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesMemorySolutionsGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesSemiconductorGmbH.json\n", + "./data/Unternehmensregister/export\\InfineonTechnologiesVermögensverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\INFOSCREENGmbH.json\n", + "./data/Unternehmensregister/export\\InfrastrukturgesellschaftPlochingenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\ingeGmbH.json\n", + "./data/Unternehmensregister/export\\INNOFRICTIONGmbH.json\n", + "./data/Unternehmensregister/export\\InOutVenturesGmbH.json\n", + "./data/Unternehmensregister/export\\IntenGmbH.json\n", + "./data/Unternehmensregister/export\\InterconnectorGmbH.json\n", + "./data/Unternehmensregister/export\\InterlubesGmbH.json\n", + "./data/Unternehmensregister/export\\InterMetroIndustriesBVZweigniederlassungMaisach.json\n", + "./data/Unternehmensregister/export\\internetstoresGmbH.json\n", + "./data/Unternehmensregister/export\\IonisosGmbH.json\n", + "./data/Unternehmensregister/export\\IONOSGroupSE.json\n", + "./data/Unternehmensregister/export\\IONOSHoldingSE.json\n", + "./data/Unternehmensregister/export\\IONOSSE.json\n", + "./data/Unternehmensregister/export\\IONOSServiceGmbH.json\n", + "./data/Unternehmensregister/export\\IPETRONIKGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\IragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\ISARIAObjektPreußenstraßeGmbH.json\n", + "./data/Unternehmensregister/export\\ISOCHEMHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\it4logisticsGmbH.json\n", + "./data/Unternehmensregister/export\\ITGGmbHInternationaleSpeditionundLogistik.json\n", + "./data/Unternehmensregister/export\\JacobBekGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\JannisBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\JeansOnHansJürgenPapeeK.json\n", + "./data/Unternehmensregister/export\\JeNaCellGmbH.json\n", + "./data/Unternehmensregister/export\\JettainerGmbH.json\n", + "./data/Unternehmensregister/export\\jfiberGmbH.json\n", + "./data/Unternehmensregister/export\\JGMerckensMeßundRegelsystemeGmbH.json\n", + "./data/Unternehmensregister/export\\JohannesBergGmbHWeinkellerei.json\n", + "./data/Unternehmensregister/export\\JohannGrammer.json\n", + "./data/Unternehmensregister/export\\JohannSchäfflerInhRolandSchäfflereK.json\n", + "./data/Unternehmensregister/export\\JosefSartoriusGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\JosefSchäfflerElektrizitätswerkGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\jplasmaGmbH.json\n", + "./data/Unternehmensregister/export\\JSFinancialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\jwmarhofferGmbH.json\n", + "./data/Unternehmensregister/export\\KabelDeutschlandHoldingAG.json\n", + "./data/Unternehmensregister/export\\KaragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\KarlBosch.json\n", + "./data/Unternehmensregister/export\\KarlOsterGmbH.json\n", + "./data/Unternehmensregister/export\\KarlSimonGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KaufhalleGmbH.json\n", + "./data/Unternehmensregister/export\\KaufhalleGmbHCoObjektLagerApfelstädtKG.json\n", + "./data/Unternehmensregister/export\\KaufhofKölnHoheStraßeGmbH.json\n", + "./data/Unternehmensregister/export\\KBSBusreisenGmbH.json\n", + "./data/Unternehmensregister/export\\KCSBrandschutzGmbH.json\n", + "./data/Unternehmensregister/export\\KCSEichnerBaugesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KeiserGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\KelvionBrazedPHEGmbH.json\n", + "./data/Unternehmensregister/export\\KelvionGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\KelvionIndustriebeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\KelvionMachineCoolingSystemsGmbH.json\n", + "./data/Unternehmensregister/export\\KelvionPHEGmbH.json\n", + "./data/Unternehmensregister/export\\KernkraftwerkeIsarVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\KernkraftwerkObrigheimGmbHKWO.json\n", + "./data/Unternehmensregister/export\\KESIsoliertechnikGmbH.json\n", + "./data/Unternehmensregister/export\\KetzinerBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KfzWirtschaftsgesellschaftderBMWVertragshändlermbH.json\n", + "./data/Unternehmensregister/export\\KHSAutoteileGmbH.json\n", + "./data/Unternehmensregister/export\\KHSLeasingundVersicherungsvermittlungsGmbH.json\n", + "./data/Unternehmensregister/export\\KiebackGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KiepeElectricGmbH.json\n", + "./data/Unternehmensregister/export\\KinoimSchloßhofGmbH.json\n", + "./data/Unternehmensregister/export\\KIONFinancialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\KIONGROUPAG.json\n", + "./data/Unternehmensregister/export\\KIONInformationManagementServicesGmbH.json\n", + "./data/Unternehmensregister/export\\KIONWarehouseSystemsGmbH.json\n", + "./data/Unternehmensregister/export\\KirchnerMaschinenbauInhaberAndreasGrammeK.json\n", + "./data/Unternehmensregister/export\\KISKronauerIndustrieschilderGmbH.json\n", + "./data/Unternehmensregister/export\\KKHRServicesGmbH.json\n", + "./data/Unternehmensregister/export\\klarmobilGmbH.json\n", + "./data/Unternehmensregister/export\\KLASDienstleistungsGmbH.json\n", + "./data/Unternehmensregister/export\\KLESCHHausdiensteGmbH.json\n", + "./data/Unternehmensregister/export\\KLESSHäuslicheAltenundKrankenpflegeGmbH.json\n", + "./data/Unternehmensregister/export\\KMeyerRMSGmbH.json\n", + "./data/Unternehmensregister/export\\KMSDorukComputerSystemeOHG.json\n", + "./data/Unternehmensregister/export\\KMSKarinSchilling.json\n", + "./data/Unternehmensregister/export\\KMSKretschmerBauplanGmbH.json\n", + "./data/Unternehmensregister/export\\KMSVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KnauerundRöschGmbHWerkzeugundMaschinenbau.json\n", + "./data/Unternehmensregister/export\\KneippGmbH.json\n", + "./data/Unternehmensregister/export\\KneippWerbeAgenturuVertriebsGmbH.json\n", + "./data/Unternehmensregister/export\\KnorrBremseAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\KnorrBremseBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KnorrBremseInvestmentGmbH.json\n", + "./data/Unternehmensregister/export\\KnorrBremseServicesGmbH.json\n", + "./data/Unternehmensregister/export\\KnorrBremseSteeringSystemsGmbH.json\n", + "./data/Unternehmensregister/export\\KnorrBremseSystemefürSchienenfahrzeugeGmbH.json\n", + "./data/Unternehmensregister/export\\KnorrBremseSystemefürSchienenfahrzeugeIberoHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\KOBGmbH.json\n", + "./data/Unternehmensregister/export\\KOBMedicalDevicesDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\KOCHWERKCateringGmbH.json\n", + "./data/Unternehmensregister/export\\KommanditgesellschaftSteindammGrundstücksundMetroHotelgesellschaftmitbeschränkterHaftungCo.json\n", + "./data/Unternehmensregister/export\\KOMOSIngErnstAugustMüllerVDIMaschinenkonstruktionenVermessungstechnik.json\n", + "./data/Unternehmensregister/export\\KPSKonstruktionsPlanungsServiceGmbH.json\n", + "./data/Unternehmensregister/export\\KraftwerkHattorfGmbH.json\n", + "./data/Unternehmensregister/export\\KramerArealVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\KramerWerkeGmbH.json\n", + "./data/Unternehmensregister/export\\KrankenhausServiceWestmecklenburgGmbH.json\n", + "./data/Unternehmensregister/export\\KroneKälteKlimaVertriebsGmbH.json\n", + "./data/Unternehmensregister/export\\KSAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\KSAnInstitutsVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KSATAGBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KSAutomobileGmbH.json\n", + "./data/Unternehmensregister/export\\KSBAbbruchUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBApartmentsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBArchitektenIngenieureGmbH.json\n", + "./data/Unternehmensregister/export\\KSBArmaturenVerwaltungsundBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBasalykGmbH.json\n", + "./data/Unternehmensregister/export\\KSBauGmbH.json\n", + "./data/Unternehmensregister/export\\KSBAutomatenaufstellerGmbH.json\n", + "./data/Unternehmensregister/export\\KSBBauGmbH.json\n", + "./data/Unternehmensregister/export\\KSBBauträgerundImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\KSBBeratungsUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBBerlinerKanalsanierungGmbH.json\n", + "./data/Unternehmensregister/export\\KSBBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KSBBeteiligungsundBeratungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KSBConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\KSBDU277GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBDU277VerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBEnergieAG.json\n", + "./data/Unternehmensregister/export\\KSBEnergieGmbH.json\n", + "./data/Unternehmensregister/export\\KSBEnergieinvestGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBEnergieVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBErneuerbareEnergienDreiGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBErneuerbareEnergienEinsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBErneuerbareEnergienFünfGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBEuropeanInvestmentAG.json\n", + "./data/Unternehmensregister/export\\KSBFinancialConsultingUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBGmbH.json\n", + "./data/Unternehmensregister/export\\KSBGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBGmbHKlügelSchwinnBeschläge.json\n", + "./data/Unternehmensregister/export\\KSBGrundbesitzGmbH.json\n", + "./data/Unternehmensregister/export\\KSBHarburgUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBHausGmbH.json\n", + "./data/Unternehmensregister/export\\KSBHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\KSBImmobilienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBINTAXDatenschutzGmbH.json\n", + "./data/Unternehmensregister/export\\KSBINTAXProjektGmbH.json\n", + "./data/Unternehmensregister/export\\KSBINTAXTREUHANDGmbHWirtschaftsprüfungsgesellschaftSteuerberatungsgesellschaft.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 57%|█████▋ | 1912/3381 [00:02<00:01, 771.26it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\KSBINTAXvBismarckRechtsanwälteWirtschaftsprüferSteuerberaterPartGmbB.json\n", + "./data/Unternehmensregister/export\\KSBINTAXVersicherungsschadenmanagementGmbH.json\n", + "./data/Unternehmensregister/export\\KSBInternationalTradingGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKabelSignalbauGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKFZServiceBochumUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBKiesundSandwerkeBoddinGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKitaSodenmattBremenGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKlinglerSchaumbetonGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKlinikberatungGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKlinikServiceBetriebeGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKontaktSchaltanlagenBauGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKrankentransportServiceBerlinGmbH.json\n", + "./data/Unternehmensregister/export\\KSBKreyenbrückerServicegesellschaftBreeWatermbH.json\n", + "./data/Unternehmensregister/export\\KSBKölnerServiceundBeratungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBlechbearbeitungGmbH.json\n", + "./data/Unternehmensregister/export\\KSBlitzschutztechnikGmbH.json\n", + "./data/Unternehmensregister/export\\KSBManagementSE.json\n", + "./data/Unternehmensregister/export\\KSBMassivhausGmbH.json\n", + "./data/Unternehmensregister/export\\KSBMenüGmbH.json\n", + "./data/Unternehmensregister/export\\KSBPlanungsgesellschaftfürArchitekturundLandschaftsarchitekturmbH.json\n", + "./data/Unternehmensregister/export\\KSBProjectInvestGmbH.json\n", + "./data/Unternehmensregister/export\\KSBProjektentwicklungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBProjektGesellschaftIIIGmbH.json\n", + "./data/Unternehmensregister/export\\KSBProjektgesellschaftIIUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBProjektgesellschaftIUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBSECoKGaA.json\n", + "./data/Unternehmensregister/export\\KSBServiceGmbH.json\n", + "./data/Unternehmensregister/export\\KSBSolarfeldTelligZweiGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBSolarprojekteGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBStahlbauBerlinGmbH.json\n", + "./data/Unternehmensregister/export\\KSBTransferNETUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\KSBVertriebsgesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSBWaschundReinigungsmittelGmbH.json\n", + "./data/Unternehmensregister/export\\KSBWindfeldBrehnaZweiGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBWindfeldOstGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBWindfeldParsteinGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBWindfeldSüderlandIIIGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBWindGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSBWohnbauGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSCitystoreOHG.json\n", + "./data/Unternehmensregister/export\\KSEDVConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\KSElektroserviceKirchStallmannGmbH.json\n", + "./data/Unternehmensregister/export\\KSFassadenTechnikGmbH.json\n", + "./data/Unternehmensregister/export\\KSGesellschaftfürInformatikmbH.json\n", + "./data/Unternehmensregister/export\\KSGesellschaftfürKiesundSandmbHCoKommanditgesellschaft.json\n", + "./data/Unternehmensregister/export\\KSGleitlagerGmbH.json\n", + "./data/Unternehmensregister/export\\KSGmbHModellundFormenbau.json\n", + "./data/Unternehmensregister/export\\KSGmbHProjektmanagement.json\n", + "./data/Unternehmensregister/export\\KSGourmetPartyserviceundCateringeK.json\n", + "./data/Unternehmensregister/export\\KSGrundstücksverwaltungBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSGrundstücksverwaltungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KSHagedornGmbH.json\n", + "./data/Unternehmensregister/export\\KSHandelsgesellschaftfürKlebstoffeundSpezialpapierembH.json\n", + "./data/Unternehmensregister/export\\KSHandelsGmbH.json\n", + "./data/Unternehmensregister/export\\KSHElektroheizungsserviceGmbH.json\n", + "./data/Unternehmensregister/export\\KSHotelGmbH.json\n", + "./data/Unternehmensregister/export\\KSImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\KSImmobilienmanagementGmbH.json\n", + "./data/Unternehmensregister/export\\KSIndustrieserviceGmbH.json\n", + "./data/Unternehmensregister/export\\KSIngenieurbürofürtechnischeGebäudeausrüstungGmbH.json\n", + "./data/Unternehmensregister/export\\KSKABELVERLEGUNGUNDSTRASSENBAUBETEILIGUNGSGESELLSCHAFTmbH.json\n", + "./data/Unternehmensregister/export\\KSKassensystemeGmbH.json\n", + "./data/Unternehmensregister/export\\KSKOLBENSCHMIDTGmbH.json\n", + "./data/Unternehmensregister/export\\KSLargeBorePistonsGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\KSLogisticVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSMAKarlHeinzSitzlerMaschinenundAnlagenbauGmbH.json\n", + "./data/Unternehmensregister/export\\KSManagementGmbH.json\n", + "./data/Unternehmensregister/export\\KSMBiegetechnikGmbH.json\n", + "./data/Unternehmensregister/export\\KSMechatronikGmbH.json\n", + "./data/Unternehmensregister/export\\KSMediaGmbH.json\n", + "./data/Unternehmensregister/export\\KSMineralsandAgricultureGmbH.json\n", + "./data/Unternehmensregister/export\\KSMRechtsanwälteKrekelsPartner.json\n", + "./data/Unternehmensregister/export\\KSNewFustexGmbH.json\n", + "./data/Unternehmensregister/export\\KSPersonalleasingGmbH.json\n", + "./data/Unternehmensregister/export\\KSREuroHandelLogistikNachfOctaviodaConceicaoRibeiroeK.json\n", + "./data/Unternehmensregister/export\\KSSauerHerrenmodenInhaberMarkusSauereK.json\n", + "./data/Unternehmensregister/export\\KSSchnitzlerGmbHallesfürsBüro.json\n", + "./data/Unternehmensregister/export\\KSServiceGmbH.json\n", + "./data/Unternehmensregister/export\\KSStahlBehälterbauGmbH.json\n", + "./data/Unternehmensregister/export\\KSStudiosGmbH.json\n", + "./data/Unternehmensregister/export\\KSSystembodenGmbH.json\n", + "./data/Unternehmensregister/export\\KSSystemeTordSteinbockeK.json\n", + "./data/Unternehmensregister/export\\KSSystemhausGmbH.json\n", + "./data/Unternehmensregister/export\\KSTaxibetriebGmbH.json\n", + "./data/Unternehmensregister/export\\KSVerblendGmbH.json\n", + "./data/Unternehmensregister/export\\KSVerbrauchermarktGmbHuCoKG.json\n", + "./data/Unternehmensregister/export\\KSVersicherungsvermittlungsGmbH.json\n", + "./data/Unternehmensregister/export\\KSVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KSWohnungsbauGmbH.json\n", + "./data/Unternehmensregister/export\\KSZahntechnikGmbH.json\n", + "./data/Unternehmensregister/export\\KTSGmbH.json\n", + "./data/Unternehmensregister/export\\KUBUSGmbHPlanenBauen.json\n", + "./data/Unternehmensregister/export\\KUKAAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\KUKAAssemblyTestGmbH.json\n", + "./data/Unternehmensregister/export\\KUKABauelementeImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\KukaBauGmbH.json\n", + "./data/Unternehmensregister/export\\KUKADeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\KUKAENTERTAINMENTGmbH.json\n", + "./data/Unternehmensregister/export\\KuKaExportImportGmbH.json\n", + "./data/Unternehmensregister/export\\KUKAhomeGmbH.json\n", + "./data/Unternehmensregister/export\\KuKaImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\KUKAIndustriesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KUKARealEstateGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\KUKARealEstateManagementGmbH.json\n", + "./data/Unternehmensregister/export\\KUKASystemsGmbH.json\n", + "./data/Unternehmensregister/export\\KUKAUnterstützungskasseGmbH.json\n", + "./data/Unternehmensregister/export\\KukaZimmereiGmbH.json\n", + "./data/Unternehmensregister/export\\KuKsDelphinSportundSchwimmschulenBetriebsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\KulturclubMetropolGmbH.json\n", + "./data/Unternehmensregister/export\\KundSGerüstbaugesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KunststoffbeschichtungHochbergGmbH.json\n", + "./data/Unternehmensregister/export\\KurtEngelInhLeonieEngeleK.json\n", + "./data/Unternehmensregister/export\\KurtTweesmannGmbH.json\n", + "./data/Unternehmensregister/export\\KuSAutohandelGmbH.json\n", + "./data/Unternehmensregister/export\\KWSMassivbauBetreuungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\KöniglichprivilegierteLöwenapothekeeKInhHellaBehm.json\n", + "./data/Unternehmensregister/export\\KösterCoGmbH.json\n", + "./data/Unternehmensregister/export\\KüstermannGmbH.json\n", + "./data/Unternehmensregister/export\\LackwerkstattEschweilerKSBGmbH.json\n", + "./data/Unternehmensregister/export\\LANXESSAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\LANXESSDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\LANXESSGlobalBusinessServicesGmbH.json\n", + "./data/Unternehmensregister/export\\LANXESSMiddleEastGmbH.json\n", + "./data/Unternehmensregister/export\\LANXESSOrganometallicsGmbH.json\n", + "./data/Unternehmensregister/export\\LANXESSPerformanceMaterialsGmbH.json\n", + "./data/Unternehmensregister/export\\LANXESSTrademarkGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LANXESSTrademarkManagementGmbH.json\n", + "./data/Unternehmensregister/export\\LappGesellschaftmitbeschränkterHaftungKabelwerke.json\n", + "./data/Unternehmensregister/export\\LaragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\LavendelApothekeMarenGutholdeK.json\n", + "./data/Unternehmensregister/export\\LBBWImmobilienDevelopmentGmbH.json\n", + "./data/Unternehmensregister/export\\LBBWImmobilienKommunalentwicklungGmbH.json\n", + "./data/Unternehmensregister/export\\LBBWImmobilienManagementGewerbeGmbH.json\n", + "./data/Unternehmensregister/export\\LBBWImmobilienManagementGmbH.json\n", + "./data/Unternehmensregister/export\\LEGAchteGrundstücksverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\LegerImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\LEGFünfteGrundstücksverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\LEGImmobilienSE.json\n", + "./data/Unternehmensregister/export\\LEGJADEGmbH.json\n", + "./data/Unternehmensregister/export\\LEGManagementGmbH.json\n", + "./data/Unternehmensregister/export\\LEGNeunteGrundstücksverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\LEGNiedersachsenGmbH.json\n", + "./data/Unternehmensregister/export\\LEGNiedersachsenSüdGmbH.json\n", + "./data/Unternehmensregister/export\\LEGNRWGmbH.json\n", + "./data/Unternehmensregister/export\\LEGObjektKrefeldBockumVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\LEGProjektgesellschaft2GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LEGRheinlandKölnGmbH.json\n", + "./data/Unternehmensregister/export\\LEGSiebteGrundstücksverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\LEGWestImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\LEGWestVIIIGmbH.json\n", + "./data/Unternehmensregister/export\\LEGWohnenNRWGmbH.json\n", + "./data/Unternehmensregister/export\\LEGWohnungsbauRheinlandGmbH.json\n", + "./data/Unternehmensregister/export\\LeibnizServiceGmbH.json\n", + "./data/Unternehmensregister/export\\Leoni247UGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\Leoni31GmbH.json\n", + "./data/Unternehmensregister/export\\LEONIAG.json\n", + "./data/Unternehmensregister/export\\LEONIBordnetzSystemeGmbH.json\n", + "./data/Unternehmensregister/export\\LEONICableAssembliesGmbH.json\n", + "./data/Unternehmensregister/export\\LEONICarserviceGmbH.json\n", + "./data/Unternehmensregister/export\\LEONIEDMSDVBGmbH.json\n", + "./data/Unternehmensregister/export\\LeonieGrimbergHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\LeonieIsabelAppelsBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\LeonieKesselerVermögensverwaltungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LeonieLackmannWißkirchenGmbH.json\n", + "./data/Unternehmensregister/export\\LeonieMergenGmbH.json\n", + "./data/Unternehmensregister/export\\LEONIEVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\LeoniGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LEONIHighTempSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\LEONIIndustryHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\LeoniJuneConsultingUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\LEONIKabelGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 61%|██████ | 2068/3381 [00:03<00:01, 741.50it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\LEONIKabelsystemeGmbH.json\n", + "./data/Unternehmensregister/export\\LEONIKerpenGmbH.json\n", + "./data/Unternehmensregister/export\\LeoniSolutionUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\LeoniWernerUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\LesezirkelAusAllerWeltTelseMoellereK.json\n", + "./data/Unternehmensregister/export\\LiftEquipGmbHElevatorComponents.json\n", + "./data/Unternehmensregister/export\\LindeMaterialHandlingGmbH.json\n", + "./data/Unternehmensregister/export\\LindeMaterialHandlingRentalServicesGmbH.json\n", + "./data/Unternehmensregister/export\\LindeMaterialHandlingRheinRuhrGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LitarionGmbH.json\n", + "./data/Unternehmensregister/export\\LitecLLLGmbH.json\n", + "./data/Unternehmensregister/export\\LLPlantEngineeringAG.json\n", + "./data/Unternehmensregister/export\\LMHImmobilienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LMHImmobilienHoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LODUREnergieanlagenGmbH.json\n", + "./data/Unternehmensregister/export\\LRIntralogistikGmbH.json\n", + "./data/Unternehmensregister/export\\LSGAsiaGmbH.json\n", + "./data/Unternehmensregister/export\\LSGLufthansaServiceEuropaAfrikaGmbH.json\n", + "./data/Unternehmensregister/export\\LSGLufthansaServiceHoldingAG.json\n", + "./data/Unternehmensregister/export\\LSGSouthAmericaGmbH.json\n", + "./data/Unternehmensregister/export\\LSYGmbH.json\n", + "./data/Unternehmensregister/export\\lturGmbH.json\n", + "./data/Unternehmensregister/export\\LudwigHenkeleK.json\n", + "./data/Unternehmensregister/export\\LufthansaAirPlusServicekartenGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaAssetManagementGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaAssetManagementLeasingGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaAviationTrainingGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaAviationTrainingGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaCargoAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\LufthansaCityLineGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaCommercialHoldingGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\LufthansaGroupBusinessServicesGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaGroupDigitalHangarGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaIndustrySolutionsASGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaIndustrySolutionsBSGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaIndustrySolutionsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LufthansaIndustrySolutionsVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaJobServicesNorderstedtGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaProcessManagementGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaSeeheimGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaSystemsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LufthansaTechnikAEROAlzeyGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaTechnikAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\LufthansaTechnikImmobilienundVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaTechnikLogistikGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaTechnikLogistikServicesGmbH.json\n", + "./data/Unternehmensregister/export\\LufthansaTechnikObjektundVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\LuKUnnaGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\LWSPlusGmbH.json\n", + "./data/Unternehmensregister/export\\LégèreHotelMesseErfurtImmobilienVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\LéonieCorentinGmbH.json\n", + "./data/Unternehmensregister/export\\LöwenApothekeLeonieEulzereK.json\n", + "./data/Unternehmensregister/export\\LünenerWohnungsundSiedlungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\MA3SchäfflerHausGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MagdalenaSchäfflerGmbH.json\n", + "./data/Unternehmensregister/export\\MAGRAMaileGrammerGmbH.json\n", + "./data/Unternehmensregister/export\\MainovaAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\MainovaBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MainovaErneuerbareEnergienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaErneuerbareEnergienManagementGmbH.json\n", + "./data/Unternehmensregister/export\\MainovaErneuerbareEnergienVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MainovaGemeinschaftswindparkHohenahrGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaPVPark1GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaPVPark3GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaServiceDiensteGesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MainovaWebHouseGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaWebHouseManagementGmbH.json\n", + "./data/Unternehmensregister/export\\MainovaWindOnshoreVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MainovaWindparkHohenloheGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaWindparkKaistenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaWindparkKloppenheimGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaWindparkNiederhambachGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaWindparkRemlingenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MainovaWindparkSiegbachGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MANBrandGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MANGHHImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\MANGrundstücksgesellschaftmbHCoEpsilonKG.json\n", + "./data/Unternehmensregister/export\\MANMarkenGmbH.json\n", + "./data/Unternehmensregister/export\\MANTruckBusDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\MANTruckBusSE.json\n", + "./data/Unternehmensregister/export\\MaragonVVGmbH.json\n", + "./data/Unternehmensregister/export\\MarienApothekeInhaberinMartinaUngereK.json\n", + "./data/Unternehmensregister/export\\MarkusSchäfflerBauunternehmungBaustoffeeK.json\n", + "./data/Unternehmensregister/export\\MaschinenfabrikBernerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MassivhausparkKaarstVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\MasterBuildersSolutionsDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\MATINAGmbH.json\n", + "./data/Unternehmensregister/export\\MATISImmobilienOHG.json\n", + "./data/Unternehmensregister/export\\MaxLobenhoferGmbH.json\n", + "./data/Unternehmensregister/export\\MBraunInertgasSystemeGmbH.json\n", + "./data/Unternehmensregister/export\\MBSOldenburgerGrundbesitzGmbH.json\n", + "./data/Unternehmensregister/export\\MCCGrundstücksverwaltungsgesellschaftmbHCoObjektBerlinFriedrichshainKG.json\n", + "./data/Unternehmensregister/export\\MCCGrundstücksverwaltungsgesellschaftmbHCoObjektHamburgAltonaKG.json\n", + "./data/Unternehmensregister/export\\MCCGrundstücksverwaltungsgesellschaftmbHCoObjektMünchenPasingKG.json\n", + "./data/Unternehmensregister/export\\MCCGrundstücksverwaltungsgesellschaftmbHCoObjektPortaWestfalicaKG.json\n", + "./data/Unternehmensregister/export\\MCCGrundstücksverwaltungsgesellschaftmbHCoObjektSchwelmKG.json\n", + "./data/Unternehmensregister/export\\MCCTradingDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\MCCTradingInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\McKessonEuropeHoldingsGmbHCoKGaA.json\n", + "./data/Unternehmensregister/export\\McKessonEuropeServicesGmbH.json\n", + "./data/Unternehmensregister/export\\MDHSecundusGmbH.json\n", + "./data/Unternehmensregister/export\\MECMETROECECentermanagementGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MECMETROECECentermanagementVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\medgooneK.json\n", + "./data/Unternehmensregister/export\\MEDIABROADCASTGmbH.json\n", + "./data/Unternehmensregister/export\\MediaBroadcastTVServicesGmbH.json\n", + "./data/Unternehmensregister/export\\MediaDirektserviceGmbH.json\n", + "./data/Unternehmensregister/export\\MEdigitalGmbH.json\n", + "./data/Unternehmensregister/export\\MediMetropoleGmbH.json\n", + "./data/Unternehmensregister/export\\MedproPersonalGmbH.json\n", + "./data/Unternehmensregister/export\\MEGMarineElectronicsHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MEMBERSONLINEeK.json\n", + "./data/Unternehmensregister/export\\MenacheruSchäfflerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MenacheruSchäfflerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MercedesBenzAG.json\n", + "./data/Unternehmensregister/export\\MercedesBenzMobilityBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MercedesBenzVermögensundBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\Merck12AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck13AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck15AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck20AllgemeineBeteiligungsGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 65%|██████▌ | 2211/3381 [00:03<00:01, 665.33it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\Merck21AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck24AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck25AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck26AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck27AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck28AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck29AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck37AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck38AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck39AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck40AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck41AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck42AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck43AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck44AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck45AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck46AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck47AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck48AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\Merck49AllgemeineBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\MerckBKK.json\n", + "./data/Unternehmensregister/export\\MerckChemicalsGmbH.json\n", + "./data/Unternehmensregister/export\\MerckConsumerHealthHoldingGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\MerckDisplayTradingGmbH.json\n", + "./data/Unternehmensregister/export\\MerckElectronicsKGaA.json\n", + "./data/Unternehmensregister/export\\merckensdevelopmentsupportGmbH.json\n", + "./data/Unternehmensregister/export\\MerckExportGmbH.json\n", + "./data/Unternehmensregister/export\\MerckFamilyFoundationgGmbH.json\n", + "./data/Unternehmensregister/export\\MerckFinancialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\MerckFinancialTradingGmbH.json\n", + "./data/Unternehmensregister/export\\MerckFinckaQuintetPrivateBankEuropeSAbranch.json\n", + "./data/Unternehmensregister/export\\MerckFinckPrivatbankiersUnterstützungskasseGmbH.json\n", + "./data/Unternehmensregister/export\\MerckFoundationgGmbH.json\n", + "./data/Unternehmensregister/export\\MerckGernsheimHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MerckGmbH.json\n", + "./data/Unternehmensregister/export\\MerckHealthcareGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\MerckHealthcareHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MerckHealthcareKGaA.json\n", + "./data/Unternehmensregister/export\\MerckHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MerckInternationaleBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\MerckInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\MERCKKommanditgesellschaftaufAktien.json\n", + "./data/Unternehmensregister/export\\MerckLifeScienceHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MerckLifeScienceKGaA.json\n", + "./data/Unternehmensregister/export\\MerckLSRTUGmbH.json\n", + "./data/Unternehmensregister/export\\MerckPatentGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\MerckPerformanceMaterialsGmbH.json\n", + "./data/Unternehmensregister/export\\MerckPerformanceMaterialsHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MerckRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\MerckSchuchardtOHG.json\n", + "./data/Unternehmensregister/export\\MerckSiteManagementGmbH.json\n", + "./data/Unternehmensregister/export\\MerckSurfaceSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\MerckVierteAllgemeineBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MerckWohnungsundGrundstücksverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MerkUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\MerkVerwaltungsUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\MERKWohnbauGmbH.json\n", + "./data/Unternehmensregister/export\\MesutronicGerätebauGmbH.json\n", + "./data/Unternehmensregister/export\\METROAbbruchBaumanagementGmbH.json\n", + "./data/Unternehmensregister/export\\METROAchteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MetroAdministrationGmbH.json\n", + "./data/Unternehmensregister/export\\MetroAdministrationGmbHCoGrundbesitzKG.json\n", + "./data/Unternehmensregister/export\\METROAdvertisingGmbH.json\n", + "./data/Unternehmensregister/export\\METROAG.json\n", + "./data/Unternehmensregister/export\\METROAsiaInvestmentGmbH.json\n", + "./data/Unternehmensregister/export\\METROAssetManagementServicesGmbH.json\n", + "./data/Unternehmensregister/export\\METROBAUUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\MetrocabTaxiundHandelsGmbH.json\n", + "./data/Unternehmensregister/export\\METROCampusServicesGmbH.json\n", + "./data/Unternehmensregister/export\\METROCashCarryChinaHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MetroCashCarryGrundstücksverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\METROCashCarryInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\METROCLOUDProviderGmbH.json\n", + "./data/Unternehmensregister/export\\METRODeutschlandConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\METRODeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\METRODienstleistungsHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\METRODigitalGmbH.json\n", + "./data/Unternehmensregister/export\\METRODritteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MetroerAluminiumGlassSystemsGmbH.json\n", + "./data/Unternehmensregister/export\\METROErsteErwerbsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\METROFinancialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\METROFSDHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\METROFulfillmentGmbH.json\n", + "./data/Unternehmensregister/export\\METROFünfteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\METROGastroEquipmentHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\METROGastronomieGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\MetroGroßhandelsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\METROGroßundLebensmitteleinzelhandelHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MetroGrundbesitzBeteiligungsundVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MetroGrundbesitzundBeteiligungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MetroHopTechnikGmbH.json\n", + "./data/Unternehmensregister/export\\METROHospitalityDigitalHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\MetroHotelVillaGmbH.json\n", + "./data/Unternehmensregister/export\\METROImmobilienGesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\METROImmobilienVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\METROInsuranceBrokerGmbH.json\n", + "./data/Unternehmensregister/export\\METROINTERNATIONALSUPPLYGmbH.json\n", + "./data/Unternehmensregister/export\\METROLeasingGmbH.json\n", + "./data/Unternehmensregister/export\\METROLOGISTICSGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\metrologxGmbH.json\n", + "./data/Unternehmensregister/export\\METROMarketsGmbH.json\n", + "./data/Unternehmensregister/export\\MetroMediaUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\METROMETROSchuheinternationalGmbH.json\n", + "./data/Unternehmensregister/export\\MetroModelsGmbH.json\n", + "./data/Unternehmensregister/export\\METRONeunteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\metronomEisenbahngesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MetroOberflächentechnikGmbH.json\n", + "./data/Unternehmensregister/export\\MetroPolDienstleistungenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MetroPolisGrundstücksoHG.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 67%|██████▋ | 2279/3381 [00:03<00:02, 476.94it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\MetroPolVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\metropresspresseagenturgesellschaftmitbeschränkterhaftung.json\n", + "./data/Unternehmensregister/export\\metropresspresseagenturGmbHCoKGAgenturfürKommunikation.json\n", + "./data/Unternehmensregister/export\\METROPROPERTIESGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\METROPROPERTIESHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\METROPROPERTIESManagementGmbH.json\n", + "./data/Unternehmensregister/export\\METROReAG.json\n", + "./data/Unternehmensregister/export\\METRORetailRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\MetroSBGroßmärkteGmbHCoKommanditgesellschaft.json\n", + "./data/Unternehmensregister/export\\METROSechsteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\METROSiebteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\METROSourcingGmbH.json\n", + "./data/Unternehmensregister/export\\metrotekGmbH.json\n", + "./data/Unternehmensregister/export\\METROVierteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\METROWholesaleRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\METROZehnteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\METROZwölfteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MEWESTAHydraulikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MFIAssetManagementGmbH.json\n", + "./data/Unternehmensregister/export\\mgAltersversorgungGmbH.json\n", + "./data/Unternehmensregister/export\\mgcapitalgmbh.json\n", + "./data/Unternehmensregister/export\\MGCMETROGroupClearingGmbH.json\n", + "./data/Unternehmensregister/export\\MGLMETROGroupLogisticsGmbH.json\n", + "./data/Unternehmensregister/export\\MGLMETROGroupLogisticsWarehousingBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\MGrammerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MichaelSchäfflerGmbH.json\n", + "./data/Unternehmensregister/export\\MIGUAFugensystemeGmbH.json\n", + "./data/Unternehmensregister/export\\MilesMoreGmbH.json\n", + "./data/Unternehmensregister/export\\MinebeaIntecAachenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MinebeaIntecAachenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MinebeaIntecBovendenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MinebeaIntecBovendenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\MinebeaIntecGmbH.json\n", + "./data/Unternehmensregister/export\\MINIKITMerchandisingGmbH.json\n", + "./data/Unternehmensregister/export\\MIPMETROGroupIntellectualPropertyGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MIPMETROGroupIntellectualPropertyManagementGmbH.json\n", + "./data/Unternehmensregister/export\\MIPMETROHoldingManagementGmbH.json\n", + "./data/Unternehmensregister/export\\MIRAGmbH.json\n", + "./data/Unternehmensregister/export\\MMSRetailInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\MNMünsterlandNetzgesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MNVMünsterlandNetzVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MobilComMultimediaGmbH.json\n", + "./data/Unternehmensregister/export\\ModellbauHenkelGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\MODMediaOnDemandHansKleinereKfm.json\n", + "./data/Unternehmensregister/export\\MOLSTANDAVermietungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\MORCARGrundstücksgesellschaftmbHCooHG.json\n", + "./data/Unternehmensregister/export\\MOTEONGmbH.json\n", + "./data/Unternehmensregister/export\\MSEMobileSchlammentwässerungsGmbH.json\n", + "./data/Unternehmensregister/export\\MSHELLASchiffahrtsgesellschaftmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MSLeonieJensuWallerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MSMotorserviceDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\MSMotorserviceInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\MSN1359GmbH.json\n", + "./data/Unternehmensregister/export\\MTUAeroEnginesAG.json\n", + "./data/Unternehmensregister/export\\MTUMaintenanceBerlinBrandenburgGmbH.json\n", + "./data/Unternehmensregister/export\\MTUMaintenanceHannoverGmbH.json\n", + "./data/Unternehmensregister/export\\MuhrbeckApothekeHellaRiebeseKfrInhaberClaudiaSemlow.json\n", + "./data/Unternehmensregister/export\\MultiCenterWarenvertriebsGmbH.json\n", + "./data/Unternehmensregister/export\\MVVAlphadreiGmbH.json\n", + "./data/Unternehmensregister/export\\MVVAlphafünfzehnGmbH.json\n", + "./data/Unternehmensregister/export\\MVVAlphazweiGmbH.json\n", + "./data/Unternehmensregister/export\\MVVEnamicGmbH.json\n", + "./data/Unternehmensregister/export\\MVVEnamicKorbachGmbH.json\n", + "./data/Unternehmensregister/export\\MVVEnergieAG.json\n", + "./data/Unternehmensregister/export\\MVVEnergySolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\MVVGrüneWärmeGmbH.json\n", + "./data/Unternehmensregister/export\\MVVIndustrieparkGersthofenGmbH.json\n", + "./data/Unternehmensregister/export\\MVVNetzeGmbH.json\n", + "./data/Unternehmensregister/export\\MVVRHEGmbH.json\n", + "./data/Unternehmensregister/export\\MVVUmweltAssetGmbH.json\n", + "./data/Unternehmensregister/export\\MVVUmweltGmbH.json\n", + "./data/Unternehmensregister/export\\MVVUmweltRessourcenGmbH.json\n", + "./data/Unternehmensregister/export\\MVVWindenergieGmbH.json\n", + "./data/Unternehmensregister/export\\MVZDaVitaSalzgitterSeesenGmbH.json\n", + "./data/Unternehmensregister/export\\MWFSZwischenholdingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\MWFSZwischenholdingManagementGmbH.json\n", + "./data/Unternehmensregister/export\\MöbelhausWStarkeInhHellaLorenzeK.json\n", + "./data/Unternehmensregister/export\\MönchKunststofftechnikGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\MönnichGmbH.json\n", + "./data/Unternehmensregister/export\\NAGrammEEGmbH.json\n", + "./data/Unternehmensregister/export\\NatürlichSonneTrogenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NeckarwerkeStuttgartGmbH.json\n", + "./data/Unternehmensregister/export\\neogrammGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\neogrammVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\NetComBWGmbH.json\n", + "./data/Unternehmensregister/export\\NetzeBWWasserGmbH.json\n", + "./data/Unternehmensregister/export\\NetzeHechingenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NetzeigentumsgesellschaftRheinstettenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NetzePforzheimRegionVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NetzgesellschaftBesigheimVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NetzgesellschaftElzNeckarVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NetzgesellschaftLeinfeldenEchterdingenGmbH.json\n", + "./data/Unternehmensregister/export\\NetzgesellschaftSchwetzingenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NetzgesellschaftVaihingenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NeueApothekeundApothekeamRathausInhaberMarkusBelleK.json\n", + "./data/Unternehmensregister/export\\NeunteLXSGmbH.json\n", + "./data/Unternehmensregister/export\\NIGRAVerwaltungGmbHCoObjektNeunkirchenKG.json\n", + "./data/Unternehmensregister/export\\NisterhammerMaschinenbauGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\NNFTradingGmbH.json\n", + "./data/Unternehmensregister/export\\NorbertHenkeleK.json\n", + "./data/Unternehmensregister/export\\NordexBaueK.json\n", + "./data/Unternehmensregister/export\\NordexBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\NORDEXeK.json\n", + "./data/Unternehmensregister/export\\NordexEmployeeHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\NordexEnergySECoKG.json\n", + "./data/Unternehmensregister/export\\NordexFoodDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\NordexForumIIGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\NordexForumIIVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\NordexGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\NordexGlasoHG.json\n", + "./data/Unternehmensregister/export\\NordexGrundstücksverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\NORDEXHandelGmbH.json\n", + "./data/Unternehmensregister/export\\NordexInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\NordexManufacturingGmbH.json\n", + "./data/Unternehmensregister/export\\NordexSE.json\n", + "./data/Unternehmensregister/export\\NordexWindparkBeteiligungGmbH.json\n", + "./data/Unternehmensregister/export\\NORDEXWindparkHochfeldGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\NordexWindparkVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\novotegraGmbH.json\n", + "./data/Unternehmensregister/export\\nuggadGmbH.json\n", + "./data/Unternehmensregister/export\\NWindGmbH.json\n", + "./data/Unternehmensregister/export\\NWindWindparkbetriebsgesellschaftOedelummbH.json\n", + "./data/Unternehmensregister/export\\NWSFinanzierungGmbH.json\n", + "./data/Unternehmensregister/export\\NWSGrundstücksmanagementGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\NWSREGBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\OBUKHaustürfüllungenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\OfaBambergGmbH.json\n", + "./data/Unternehmensregister/export\\OnBoardCourierLandWasserLuftVolkerRauheK.json\n", + "./data/Unternehmensregister/export\\ONGrundstücksverwaltungeK.json\n", + "./data/Unternehmensregister/export\\OnPointAgencyeK.json\n", + "./data/Unternehmensregister/export\\OnTrackInhThomasJohanterwageeK.json\n", + "./data/Unternehmensregister/export\\OptikSchäfflerWalterSchäffler.json\n", + "./data/Unternehmensregister/export\\OPUSPersonaldienstleistungenGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\OSDSCHÄFERVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\OSPTIPPoolGmbH.json\n", + "./data/Unternehmensregister/export\\OSRAMBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\OSRAMBeteiligungsverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\OSRAMGmbH.json\n", + "./data/Unternehmensregister/export\\OSRAMLichtAG.json\n", + "./data/Unternehmensregister/export\\OSRAMOLEDGmbH.json\n", + "./data/Unternehmensregister/export\\OSRAMSLGmbH.json\n", + "./data/Unternehmensregister/export\\OTCOnTheChineK.json\n", + "./data/Unternehmensregister/export\\OttoFinanzplusGmbHVersicherungsvermittlung.json\n", + "./data/Unternehmensregister/export\\PABPumpenundArmaturenBeteiligungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\PaulGerdHartmannZimmereiHolzbauundHolzhandelGmbH.json\n", + "./data/Unternehmensregister/export\\PAULHARTMANNAG.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 76%|███████▌ | 2563/3381 [00:03<00:01, 758.53it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\PaulHartmannAGCoLogistikzentrumSüdoHG.json\n", + "./data/Unternehmensregister/export\\PaulHartmannCoGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\PaulHartmannSpenglereiundInstallationsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\PCIAugsburgGmbH.json\n", + "./data/Unternehmensregister/export\\PeiselerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\PeiselerHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\PellogGmbH.json\n", + "./data/Unternehmensregister/export\\PerlonMonofilGmbH.json\n", + "./data/Unternehmensregister/export\\PeterFreyGmbH.json\n", + "./data/Unternehmensregister/export\\PETERGOHGMenWomen.json\n", + "./data/Unternehmensregister/export\\PetitRUNGISexpressGmbH.json\n", + "./data/Unternehmensregister/export\\PHOENIXHoldingsVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\PhotoDrogerieHellaPeterHellendahlFarbengroßhandelInhKätheHellendahl.json\n", + "./data/Unternehmensregister/export\\PierburgGmbH.json\n", + "./data/Unternehmensregister/export\\PierburgPumpTechnologyGmbH.json\n", + "./data/Unternehmensregister/export\\planetrollGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\Plankenstein8GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\PLIXXENTGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\PLIXXENTVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\PlusnetGmbH.json\n", + "./data/Unternehmensregister/export\\PlusnetInfrastrukturGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\PONTUSGrundstücksVermietungsgesellschaftmbHCoObjektBMWMünchenKG.json\n", + "./data/Unternehmensregister/export\\PortfolioEDLGmbH.json\n", + "./data/Unternehmensregister/export\\PortokaliPropertyDevelopmentIIISECoKG.json\n", + "./data/Unternehmensregister/export\\PreussagBeteiligungsverwaltungsGmbHIX.json\n", + "./data/Unternehmensregister/export\\PRIMAWohnbautenPrivatisierungsManagementGmbH.json\n", + "./data/Unternehmensregister/export\\Prinz5GmbH.json\n", + "./data/Unternehmensregister/export\\PrivatkinderheimHellaDollGmbH.json\n", + "./data/Unternehmensregister/export\\ProGrammaInformationssystemeGmbH.json\n", + "./data/Unternehmensregister/export\\ProgroupPower1GmbH.json\n", + "./data/Unternehmensregister/export\\ProjektAichachS7GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\ProjektentwicklungsGmbHFriesenheimerInsel.json\n", + "./data/Unternehmensregister/export\\ProjektgesellschaftKonradAdenauerUferKölnGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\ProTelGesellschaftfürKommunikationmbH.json\n", + "./data/Unternehmensregister/export\\PROTEXiONeK.json\n", + "./data/Unternehmensregister/export\\ProVerMaGmbH.json\n", + "./data/Unternehmensregister/export\\PROVISSteuerungstechnikGmbH.json\n", + "./data/Unternehmensregister/export\\pumaArchitektenPundtMardersteigPartnerschaftsgesellschaftmbB.json\n", + "./data/Unternehmensregister/export\\PUMABlueSeaGmbH.json\n", + "./data/Unternehmensregister/export\\pumabärGmbH.json\n", + "./data/Unternehmensregister/export\\PUMAEuropeGmbH.json\n", + "./data/Unternehmensregister/export\\PUMAGmbHIPSolingen.json\n", + "./data/Unternehmensregister/export\\PUMAInternationalTradingGmbH.json\n", + "./data/Unternehmensregister/export\\PuMaKulturbetriebeGmbH.json\n", + "./data/Unternehmensregister/export\\PUMAMostroGmbH.json\n", + "./data/Unternehmensregister/export\\PumaMusikverlagGmbH.json\n", + "./data/Unternehmensregister/export\\PuMAPflegeundManagementAkademieUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\PUMASE.json\n", + "./data/Unternehmensregister/export\\PUMAshGmbH.json\n", + "./data/Unternehmensregister/export\\PUMASpielautomatenGmbH.json\n", + "./data/Unternehmensregister/export\\PUMASprintGmbH.json\n", + "./data/Unternehmensregister/export\\PUMATradingGmbH.json\n", + "./data/Unternehmensregister/export\\PUMAVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\PuMaVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\PumaWerkLauterjungSohnBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\PumaxUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\PumaXXGmbH.json\n", + "./data/Unternehmensregister/export\\PuMaZanderGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\PunaUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\QimondaDresdenGmbHCooHG.json\n", + "./data/Unternehmensregister/export\\RaguseGesellschaftfürmedizinischeProduktembH.json\n", + "./data/Unternehmensregister/export\\RaiffeisenWarenGmbHHallertauJura.json\n", + "./data/Unternehmensregister/export\\RavensbergerHeimstättengesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\RBSwaveGmbH.json\n", + "./data/Unternehmensregister/export\\RCLTUICruisesGermanHoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\RCLTUICruisesGermanVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\reBioenergieBetriebsGmbHCoZehnteBiogasKG.json\n", + "./data/Unternehmensregister/export\\recucareGmbH.json\n", + "./data/Unternehmensregister/export\\recusanaGmbH.json\n", + "./data/Unternehmensregister/export\\ReedereiDeymannGmbHCoKGTMSLeonieDeymann.json\n", + "./data/Unternehmensregister/export\\RegalitGmbH.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-09-20.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-11-43.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-11-53.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-16-55.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-21-38.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-22-31.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-29-27.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-36-13.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-37-35.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-37-44.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-41-12.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-47-27.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-13.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-15.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-19.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-23.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-29.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-32.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-37.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-40.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-46.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-49.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-53.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-49-57.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-05.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-10.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-16.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-19.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-24.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-29.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-34.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-37.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-41.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-46.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-50-56.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-51-05.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-51-10.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-51-13.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-51-18.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-51-21.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-53-34.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-53-40.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-53-43.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-53-47.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-53-52.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-53-55.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-00.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-05.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-10.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-14.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-17.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-23.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-26.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-31.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-39.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-48.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-52.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-54-58.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-06.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-12.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-17.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-23.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-27.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-30.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-36.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-39.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-45.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-48.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-55-55.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-59-33.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-59-39.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-59-43.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-59-48.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-59-52.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-19-59-58.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-02.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-08.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-12.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-27.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-36.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-43.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-46.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-00-53.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-01-11.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-01-15.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-01-22.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-01-25.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-01-32.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-01-53.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-01-59.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-03.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-10.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-13.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-20.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-24.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-31.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-40.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-49.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-02-56.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-03-03.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-03-08.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-03-15.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-05.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-11.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-16.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-30.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-36.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-40.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-47.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-51.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-04-58.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-04.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-11.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-25.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-32.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-36.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-40.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-48.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-52.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-05-59.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-06-14.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-06-22.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-06-26.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-06-33.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-06-37.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-06-45.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-06-53.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-07-01.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-07-32.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-07-43.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-07-50.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-08-06.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-08-12.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-08-16.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 78%|███████▊ | 2647/3381 [00:03<00:00, 747.08it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-08-24.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-08-32.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-08-40.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-08-54.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-09-01.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-09-11.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-09-25.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-09-33.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-09-57.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-01.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-09.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-20.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-27.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-32.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-43.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-47.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-55.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-10-59.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-07.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-15.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-23.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-28.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-35.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-39.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-52.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-11-59.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-12-12.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-12-16.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-12-19.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-06.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-11.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-18.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-23.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-30.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-35.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-43.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-13-53.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-14-01.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-14-05.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-14-14.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-14-18.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-14-27.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-14-36.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-14-54.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-15-08.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-15-16.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-15-28.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-15-35.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-15-53.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-16-00.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-16-14.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-16-22.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-16-42.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-17-02.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-17-20.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-17-50.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-18-02.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-18-08.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-18-18.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-18-28.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-18-33.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-18-41.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-19-44.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-19-55.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-20-08.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-20-17.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-20-23.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-20-30.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-20-46.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-20-51.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-20-58.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-21-24.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-21-32.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-21-37.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-21-45.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-22-17.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-22-22.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-22-31.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-22-47.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-22-52.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-23-01.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-23-06.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-23-42.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-23-46.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-23-50.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-23-58.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-24-07.json\n", + "./data/Unternehmensregister/export\\registerdocument-2023-06-23-20-24-13.json\n", + "./data/Unternehmensregister/export\\RehaServiceLooseGmbH.json\n", + "./data/Unternehmensregister/export\\RehaundRollstuhlHandelsGmbH.json\n", + "./data/Unternehmensregister/export\\ReinhardGrammesPartnermbBWirtschaftsprüferSteuerberater.json\n", + "./data/Unternehmensregister/export\\ReisebüroBönischGmbH.json\n", + "./data/Unternehmensregister/export\\ReisecenterReinwaldeK.json\n", + "./data/Unternehmensregister/export\\REMKOGmbHCoKGKlimaundWärmetechnik.json\n", + "./data/Unternehmensregister/export\\renercoplanconsultGmbH.json\n", + "./data/Unternehmensregister/export\\REsourceWhitePumaGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\RetailinMotionGmbH.json\n", + "./data/Unternehmensregister/export\\RetailMediaGroupGmbH.json\n", + "./data/Unternehmensregister/export\\REWEMarktStröerOHG.json\n", + "./data/Unternehmensregister/export\\RheinLippeWohnenGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\RheinMainWohnenGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\RheinmetallAutomotiveAG.json\n", + "./data/Unternehmensregister/export\\RheinmetallAviationServicesGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallBerlinVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallBrandtGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallDermalogSensorTecGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallEasternMarketsGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallElectronicsGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallFinancialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienFlensburgGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienHafenmoleGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienHamburgFriedensalleeGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienHamburgGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienKasselGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienNeckarsulmGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienNeussGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienStLeonRotGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallImmobilienVEGAGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\RheinmetallIndustrietechnikGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallInsuranceServicesGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallInventGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallITSolutionsGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 81%|████████ | 2728/3381 [00:04<00:01, 574.26it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\RheinmetallLandsystemeGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallMANMilitaryVehiclesGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallMaschinenbauGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallPolyChargeGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallProjectSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallProtectionSystemsGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallSoldierElectronicsGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallTechnicalAssistanceGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallTechnicalPublicationsGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallTechnologyCenterGmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\RheinmetallWaffeMunitionGmbH.json\n", + "./data/Unternehmensregister/export\\RheinMoselWohnenGmbH.json\n", + "./data/Unternehmensregister/export\\RheinPfalzWohnenGmbH.json\n", + "./data/Unternehmensregister/export\\RheinwegGrundstücksgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\RHZHandwerksZentrumGmbH.json\n", + "./data/Unternehmensregister/export\\RichardHenkelGmbH.json\n", + "./data/Unternehmensregister/export\\RingeltaubeAirportMarktGmbH.json\n", + "./data/Unternehmensregister/export\\RMWProjektGmbH.json\n", + "./data/Unternehmensregister/export\\RobertDeckerWohnbauMünchenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\RobertRöhlingerGmbH.json\n", + "./data/Unternehmensregister/export\\RobinsonClubGmbH.json\n", + "./data/Unternehmensregister/export\\RocknBowleK.json\n", + "./data/Unternehmensregister/export\\RolkoKohlgrüberGmbH.json\n", + "./data/Unternehmensregister/export\\RollsRoyceMotorCarsGmbH.json\n", + "./data/Unternehmensregister/export\\ROSATAGrundstücksVermietungsgesellschaftmbHCoObjektDieselstraßeKG.json\n", + "./data/Unternehmensregister/export\\ROSATAGrundstücksVermietungsgesellschaftmbHCoObjektMetzingenKG.json\n", + "./data/Unternehmensregister/export\\RPFinanzGmbH.json\n", + "./data/Unternehmensregister/export\\RRSMITCOSRheinmetallRohdeSchwarzMilitaryITandCommunicationsSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\RUDUVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\RuhlandKallenbornCoGmbH.json\n", + "./data/Unternehmensregister/export\\RuhrEnergieGmbHEVR.json\n", + "./data/Unternehmensregister/export\\RuhrLippeWohnungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\RundschauVerlagsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\RUNGISexpressGmbH.json\n", + "./data/Unternehmensregister/export\\RWEAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\RWEBriseWindparkbetriebsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\RWEPowerAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\RWESupplyTradingGmbH.json\n", + "./data/Unternehmensregister/export\\RWETradingServicesGmbH.json\n", + "./data/Unternehmensregister/export\\RWEWindOnshorePVDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\SabenaMaintenanceInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\SafetecGmbH.json\n", + "./data/Unternehmensregister/export\\SaloodoGmbH.json\n", + "./data/Unternehmensregister/export\\SALTIGOGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\SalzgitterAnlagenbauGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterAutomotiveEngineeringBeteiligungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SalzgitterAutomotiveEngineeringGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SalzgitterAutomotiveEngineeringImmobilienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SalzgitterAutomotiveEngineeringImmobilienVerwaltungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SalzgitterAutomotiveEngineeringVerwaltungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SalzgitterBusinessServiceGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterClassicsUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\SalzgitterDigitalSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterEnergyServicesGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterEurologistikGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterEuroplatinenGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SalzgitterFlachstahlGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterForschungswasserkraftanlageBannetzeHornbostelGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterGüterverwaltungGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SalzgitterHydroformingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SalzgitterHydroformingVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterKesselserviceGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterKlöcknerWerkeGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannDritteVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannForschungGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannGrobblechGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannHandelGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannInternationalGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannRenewablesGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannStahlhandelGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannStahlserviceGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMannesmannStainlessTubesDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\SalzgitterMaschinenbauAG.json\n", + "./data/Unternehmensregister/export\\SalzgitterPanschebergNr17ProjektGmbH.json\n", + "./data/Unternehmensregister/export\\SAMStephanAlbertMagneticProductseK.json\n", + "./data/Unternehmensregister/export\\SANIMEDGmbH.json\n", + "./data/Unternehmensregister/export\\SanitärHeizungsbauManfredSchäfflereKInhaberRalfWenkenbach.json\n", + "./data/Unternehmensregister/export\\sapeK.json\n", + "./data/Unternehmensregister/export\\SartoriusAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\SartoriusCellGenixGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusCorporateAdministrationGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusFassadenGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusHerbstBeteiligungenIGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusHerbstBeteiligungenIIGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusHerbstVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusImmobilienUGhaftungsbeschränktCoKG.json\n", + "./data/Unternehmensregister/export\\SARTORIUSInvestGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SartoriusKG.json\n", + "./data/Unternehmensregister/export\\SartoriusLabHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusLabInstrumentsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SartoriusMetalltechnikGmbH.json\n", + "./data/Unternehmensregister/export\\SARTORIUSNOVASIGNALGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusStedimBiotechGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 85%|████████▌ | 2883/3381 [00:04<00:00, 657.53it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\SartoriusStedimCellcaGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusStedimNorthAmericaHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusStedimPlasticsGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusStedimSystemsGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusVenturesGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusVerwaltungsGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SARTORIUSVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SartoriusVerwaltungsUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\SartoriusWeighingTechnologyGmbH.json\n", + "./data/Unternehmensregister/export\\SARTORIUSWerkzeugeBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SARTORIUSWerkzeugeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SartoriusXellGmbH.json\n", + "./data/Unternehmensregister/export\\SasseBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SBBSolarGmbH.json\n", + "./data/Unternehmensregister/export\\SBDSeniorenberatungDeutschlandeK.json\n", + "./data/Unternehmensregister/export\\ScaniaCVDeutschlandHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\SCANIADEUTSCHLANDGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SCANIARealEstateDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\SCANIAVertriebundServiceGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerAerospaceGermanyBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerAerospaceGermanyGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerAG.json\n", + "./data/Unternehmensregister/export\\SchaefflerAreal1LiegenschaftenGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerAreal2LiegenschaftenGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerASAuslandsholdingGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerAutomotiveAftermarketGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerAutomotiveBuehlGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerBeteiligungsverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerByWireManagementGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerByWireTechnologieGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerBühlAuslandsholdingGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerBühlBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerBühlHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerBühlVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerDigitalSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerELMOTECSTATOMATGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerEngineeringGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerEuropaLogistikGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerFrictionProductsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerIABBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerIABVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerIDAMBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerImmobilienAGCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerIndustrialRemanufacturingServicesAGCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerInvestGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerKWKVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerMonitoringServicesGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerRaytechVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerSchweinfurtBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerServicesGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerSondermaschinenbauAGCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerTechnologiesAGCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerTeppichwerkeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchaefflerUltraPrecisionDrivesGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerVersicherungsVermittlungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerVerwaltungsholdingDreiGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerVerwaltungsholdingEinsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerVerwaltungsholdingSechsGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerVerwaltungsholdingVierGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerVerwaltungsholdingZweiGmbH.json\n", + "./data/Unternehmensregister/export\\SchaefflerWälzlagerBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SchaperGrundbesitzVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SchefflerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchefflerManagementGmbH.json\n", + "./data/Unternehmensregister/export\\SCHERDELWiesauplastDeutschlandGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SCHERDELWiesauplastGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchiffahrtsGmbHCoKGMSLeonieP.json\n", + "./data/Unternehmensregister/export\\SchleicherElectronicGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchlossApothekeInhDrStefanieKloseeKfr.json\n", + "./data/Unternehmensregister/export\\SchmidtsLeoniStubenEuniceSchmidt.json\n", + "./data/Unternehmensregister/export\\SchonheimGmbH.json\n", + "./data/Unternehmensregister/export\\SchradenbiogasGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchuhhausPetereKInhSchäffler.json\n", + "./data/Unternehmensregister/export\\SCHUKOMetallbedachungGmbH.json\n", + "./data/Unternehmensregister/export\\SchusterKlimaLüftungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchwanApothekeDietmarBohlmanneK.json\n", + "./data/Unternehmensregister/export\\SCHWohnungsverwaltungeK.json\n", + "./data/Unternehmensregister/export\\SchäferGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchäferHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflerBauträgerundBaubetreuungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchäfflerBauundMöbelschreinereiGmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflerGmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchäfflerGmbHMalerundLackierermeisterbetrieb.json\n", + "./data/Unternehmensregister/export\\SchäfflerImmobilienBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflerImmobilienGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SchäfflerPräzisionsschleifereiGmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflerSteuerberatungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflerTransportGmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflerundLüneborgPartnerschaftKrankengymnastPhysiotherapeut.json\n", + "./data/Unternehmensregister/export\\SchäfflerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SchäfflHausundGartenUGhaftungsbeschränkt.json\n", + "./data/Unternehmensregister/export\\SCIsolierungenSaschaCelaneK.json\n", + "./data/Unternehmensregister/export\\SDembitzereK.json\n", + "./data/Unternehmensregister/export\\SecopBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SecopVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\sehblickAugenoptikerMeisterFriedemannSorgeK.json\n", + "./data/Unternehmensregister/export\\SelzerFertigungstechnikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SelzerHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\SelzerSystemtechnikGmbH.json\n", + "./data/Unternehmensregister/export\\SemetMaschinenbauGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SeniorenWohnparkMeppenNödikeStröerGorslerKG.json\n", + "./data/Unternehmensregister/export\\seo2bGmbH.json\n", + "./data/Unternehmensregister/export\\SFreiburgeKWSKreativesHolzInhWolfgangScheffer.json\n", + "./data/Unternehmensregister/export\\SGSSchwarzheiderGastronomieundServiceGmbH.json\n", + "./data/Unternehmensregister/export\\SGörigSöhneeK.json\n", + "./data/Unternehmensregister/export\\SiebteVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SiedlungNiederrheinGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SiemensAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\SiemensElectronicDesignAutomationGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensEnergyPowerControlGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensFinanceLeasingGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensFinancialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensGerüstbauGesellschaftmitbeschränkterHaftung.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 87%|████████▋ | 2956/3381 [00:04<00:00, 480.15it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\SiemensGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemensHealthcareDiagnosticsProductsGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensHealthineersAG.json\n", + "./data/Unternehmensregister/export\\SiemensHealthineersBeteiligungenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemensHealthineersBeteiligungenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensHealthineersHoldingIGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensHealthineersHoldingIIIGmbH.json\n", + "./data/Unternehmensregister/export\\SiemensHealthineersInnovationGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemensHealthineersInnovationVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SiemerBeteiligungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SiemerElektroGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SiemerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemerJachtserviceHunteEmsGmbH.json\n", + "./data/Unternehmensregister/export\\SiemersElektroGmbH.json\n", + "./data/Unternehmensregister/export\\SiemersGmbH.json\n", + "./data/Unternehmensregister/export\\SiemersGrundbesitzGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemersHausKGGmbHCo.json\n", + "./data/Unternehmensregister/export\\SiemersPetShopTierfutterZubehörInhJanSiemerseK.json\n", + "./data/Unternehmensregister/export\\SiemersTransporttechnikGmbH.json\n", + "./data/Unternehmensregister/export\\SiemerVermögensverwaltungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemerVerpackungGmbH.json\n", + "./data/Unternehmensregister/export\\SiemerVerwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\SiemerVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SiemerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SiemesBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SiemesCo.json\n", + "./data/Unternehmensregister/export\\SiemesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemesGmbHCoKommanditgesellschaftSandundKiesbaggerei.json\n", + "./data/Unternehmensregister/export\\SiemesGrundbesitzGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemesSchuhcenterGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SiemesSchuhTreffVerpachtungGmbH.json\n", + "./data/Unternehmensregister/export\\SiemesVerwaltungsgesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SiemesVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SiemsfenstertürenGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SiltronicAG.json\n", + "./data/Unternehmensregister/export\\SILVerwaltungGmbHCoObjektHaidachKG.json\n", + "./data/Unternehmensregister/export\\SimonSinterlutionsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SimonSystemsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SIVGrone1GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SIVWeendeGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SKAGmbHElektroserviceundGebäudemanagement.json\n", + "./data/Unternehmensregister/export\\SKAnlagentechnikGmbH.json\n", + "./data/Unternehmensregister/export\\SKAutoverwertungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\SKBeteiligungenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SKBeteiligungsundVerwaltungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SKConsultingEventsGmbH.json\n", + "./data/Unternehmensregister/export\\SKConsultingGmbH.json\n", + "./data/Unternehmensregister/export\\SKEuropeGmbH.json\n", + "./data/Unternehmensregister/export\\SKGastrobetriebsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SKGmbHHausundEnergietechnik.json\n", + "./data/Unternehmensregister/export\\SKGmbHIndustrieserviceundBeratung.json\n", + "./data/Unternehmensregister/export\\SKGmbHTrockenausbau.json\n", + "./data/Unternehmensregister/export\\SKHandelsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SKHandelsGmbH.json\n", + "./data/Unternehmensregister/export\\SKHandelsundVermittlungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SKHoldingInternationalGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SKHoldingInternationalVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKHoldingVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKIImmobilienBirgitSalzeK.json\n", + "./data/Unternehmensregister/export\\SKInternationalBeteiligungenGmbH.json\n", + "./data/Unternehmensregister/export\\SKIPDatentechnikGmbHSystemKonzepteFürInnovativeProdukte.json\n", + "./data/Unternehmensregister/export\\SKIVerwaltungsGmbHSkikonstruktionsinstitut.json\n", + "./data/Unternehmensregister/export\\SKManagementGmbH.json\n", + "./data/Unternehmensregister/export\\SKManagementundBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKMarineSuppliesGmbH.json\n", + "./data/Unternehmensregister/export\\SKMetallverarbeitungVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKMInformatikGmbH.json\n", + "./data/Unternehmensregister/export\\SKPhysioServiceGmbHMeuselwitz.json\n", + "./data/Unternehmensregister/export\\SKRetailGmbH.json\n", + "./data/Unternehmensregister/export\\SKRobotertechnikGmbH.json\n", + "./data/Unternehmensregister/export\\SKSauerundKrewettGmbH.json\n", + "./data/Unternehmensregister/export\\SKSAutozubehörProdukteVertriebsGmbH.json\n", + "./data/Unternehmensregister/export\\SKTextilServiceGmbH.json\n", + "./data/Unternehmensregister/export\\SKUBFotostudioGmbH.json\n", + "./data/Unternehmensregister/export\\SKVerkaufsförderungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SKVermögensverwaltungBeteiligungsundVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKVermögensverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\SKVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKVerwaltungsundBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\SKVerwaltungsundHandelsGmbH.json\n", + "./data/Unternehmensregister/export\\SKÖSchornsteinelementeKamineinsätzeÖfenLuftheizungsbauVertriebundMontageGmbH.json\n", + "./data/Unternehmensregister/export\\sKüferHusWeinundSpirituosenhandlungBranntweinBrennereiSpezialitätenInhChristianStüdleeK.json\n", + "./data/Unternehmensregister/export\\SLDieTanzschuleeK.json\n", + "./data/Unternehmensregister/export\\SMAMetalltechnikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SMIGHTGmbH.json\n", + "./data/Unternehmensregister/export\\SNStefanNeistVersicherungsmaklereK.json\n", + "./data/Unternehmensregister/export\\SODIASGmbH.json\n", + "./data/Unternehmensregister/export\\SolarparkAquariusGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SolarparkAriesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SolarparkLupusGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SolarparkSamasGmbH.json\n", + "./data/Unternehmensregister/export\\Solutions30FieldServicesSüdGmbH.json\n", + "./data/Unternehmensregister/export\\SOttoMüllerInhaberFrankMüllereK.json\n", + "./data/Unternehmensregister/export\\SOwusuSekyereeK.json\n", + "./data/Unternehmensregister/export\\SPECHTSonnenschutztechnikGmbH.json\n", + "./data/Unternehmensregister/export\\SPIEEnergySolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\SPIEEnergySolutionsHarburgGmbH.json\n", + "./data/Unternehmensregister/export\\SpieluSportHellauGünterGrobSpielwarenundSportartikelInhRainerBliefernicht.json\n", + "./data/Unternehmensregister/export\\SpitzlbergGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SPKMixHandelsGmbH.json\n", + "./data/Unternehmensregister/export\\SPVSolarpark102GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SPVSolarpark103GmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SRahvareK.json\n", + "./data/Unternehmensregister/export\\SSchulteeKApparatebauInhWLiebing.json\n", + "./data/Unternehmensregister/export\\SSDienstleistungsundLogistikunternehmenSandySchattmanneKInhaberinSandyWagner.json\n", + "./data/Unternehmensregister/export\\SSKMalergesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\SStutzenbacherInhaberGuidoWekemanneK.json\n", + "./data/Unternehmensregister/export\\StadtwerkeRecklinghausenGmbH.json\n", + "./data/Unternehmensregister/export\\StadtwerkeVoerdeGasnetzVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\StadtwerkeWieslochStromVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\Stage10GmbH.json\n", + "./data/Unternehmensregister/export\\StanniolGmbHfürITPR.json\n", + "./data/Unternehmensregister/export\\StarkenbergerBaustoffwerkeGmbH.json\n", + "./data/Unternehmensregister/export\\STEAGGmbH.json\n", + "./data/Unternehmensregister/export\\SteindammGrundstücksundMetroHotelgesellschaftmitbeschränkterHaftung.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 91%|█████████ | 3066/3381 [00:04<00:00, 381.77it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\STILLFinancialServicesGmbH.json\n", + "./data/Unternehmensregister/export\\STILLGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\STKNBMarketingSalesSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\STOCKGmbH.json\n", + "./data/Unternehmensregister/export\\STOKfzMeisterbetriebeK.json\n", + "./data/Unternehmensregister/export\\STRATOAG.json\n", + "./data/Unternehmensregister/export\\STRATOCustomerServiceGmbH.json\n", + "./data/Unternehmensregister/export\\StreetScooterGmbH.json\n", + "./data/Unternehmensregister/export\\StromamAntoniusbergGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\StromnetzgesellschaftAlbershausenVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\StromnetzgesellschaftEbersbachVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\StromnetzgesellschaftHeilbronnVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\STronicseK.json\n", + "./data/Unternehmensregister/export\\StröerAussenwerbungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\StröerBegrünungenGmbH.json\n", + "./data/Unternehmensregister/export\\StröerContentGroupGmbH.json\n", + "./data/Unternehmensregister/export\\StröerContentGroupProductTechGmbH.json\n", + "./data/Unternehmensregister/export\\StröerContentGroupSalesGmbH.json\n", + "./data/Unternehmensregister/export\\StröerContentGroupXGmbH.json\n", + "./data/Unternehmensregister/export\\StröerCoreGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\StröerCoreVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\StröerDERGMediaGmbH.json\n", + "./data/Unternehmensregister/export\\StröerDeutscheStädteMedienGmbH.json\n", + "./data/Unternehmensregister/export\\StröerDigitalCommerceGmbH.json\n", + "./data/Unternehmensregister/export\\StröerDigitalGroupGmbH.json\n", + "./data/Unternehmensregister/export\\StröerDigitalMediaGmbH.json\n", + "./data/Unternehmensregister/export\\StröerDigitalPublishingGmbH.json\n", + "./data/Unternehmensregister/export\\StröerManagementSE.json\n", + "./data/Unternehmensregister/export\\StröermediabrandsGmbH.json\n", + "./data/Unternehmensregister/export\\StröerMediaDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\StröerNewsPublishingGmbH.json\n", + "./data/Unternehmensregister/export\\StröerNextPublishingGmbH.json\n", + "./data/Unternehmensregister/export\\StröerPrecisionXGmbH.json\n", + "./data/Unternehmensregister/export\\StröerSalesGroupGmbH.json\n", + "./data/Unternehmensregister/export\\StröerSalesServicesGmbH.json\n", + "./data/Unternehmensregister/export\\StröerSECoKGaA.json\n", + "./data/Unternehmensregister/export\\StröerSocialPublishingGmbH.json\n", + "./data/Unternehmensregister/export\\StröerSSPGmbH.json\n", + "./data/Unternehmensregister/export\\StröerVermögensverwaltungGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\StröerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\StröerWerbeträgerverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\StudienkreisHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\StuttgartNetzeGmbH.json\n", + "./data/Unternehmensregister/export\\STWGrundstücksverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\SuFSchwengelInhFalkSchwengeleK.json\n", + "./data/Unternehmensregister/export\\SunChemicalColorsEffectsGmbH.json\n", + "./data/Unternehmensregister/export\\SunChemicalColorSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\SUPRENUMGesellschaftfürnumerischeSuperrechnermbH.json\n", + "./data/Unternehmensregister/export\\SVGSteinwerderVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SwisslogGmbH.json\n", + "./data/Unternehmensregister/export\\SWWestfalenInvestGmbH.json\n", + "./data/Unternehmensregister/export\\synexsGmbH.json\n", + "./data/Unternehmensregister/export\\SüddeutscheWohnenGebäudeGmbH.json\n", + "./data/Unternehmensregister/export\\SüddeutscheWohnenGmbH.json\n", + "./data/Unternehmensregister/export\\SüddeutscheWohnenGrundstücksgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\SüdtransGmbH.json\n", + "./data/Unternehmensregister/export\\SüdwestdeutscheNuklearEntsorgungsGesellschaftmbHSNE.json\n", + "./data/Unternehmensregister/export\\SüdwestPresseHapagLloydReisebüroGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\SüdwestPresseHapagLloydReisebüroVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\SüdzuckerAG.json\n", + "./data/Unternehmensregister/export\\SüdzuckerBKK.json\n", + "./data/Unternehmensregister/export\\SüdzuckerHoldingGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 92%|█████████▏| 3111/3381 [00:05<00:00, 360.97it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\SüdzuckerInternationalFinanceBV.json\n", + "./data/Unternehmensregister/export\\SüdzuckerVersicherungsVermittlungsGmbH.json\n", + "./data/Unternehmensregister/export\\SüdzuckerVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\TARONAVerwaltungGmbHCoAlphaKG.json\n", + "./data/Unternehmensregister/export\\TatinGmbH.json\n", + "./data/Unternehmensregister/export\\TaubernetzeVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\TaunusBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\TBDigitalServicesGmbH.json\n", + "./data/Unternehmensregister/export\\TECALEMITGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\TECHoldingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\TectarealAssetServicesGmbH.json\n", + "./data/Unternehmensregister/export\\TectarealPropertyManagementGmbH.json\n", + "./data/Unternehmensregister/export\\TelefónicaDeutschlandHoldingAG.json\n", + "./data/Unternehmensregister/export\\TelefónicaGermanyGmbHCoOHG.json\n", + "./data/Unternehmensregister/export\\TESSOLKraftstoffeMineralöleundTankanlagenGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\TextilwarenJosefGrammInhRositaGrammeK.json\n", + "./data/Unternehmensregister/export\\TheCloudNetworksGermanyGmbH.json\n", + "./data/Unternehmensregister/export\\THESEODeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\ThyssenKruppSteelEuropeAG.json\n", + "./data/Unternehmensregister/export\\ThyssenStahlGmbH.json\n", + "./data/Unternehmensregister/export\\TICSGmbHTouristischeInternetundCallCenterServices.json\n", + "./data/Unternehmensregister/export\\TilmanSartoriusGmbH.json\n", + "./data/Unternehmensregister/export\\timemattersGmbH.json\n", + "./data/Unternehmensregister/export\\TivoliGardenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\TKAufzugswerkeGmbH.json\n", + "./data/Unternehmensregister/export\\TKHDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\TKSTelepostKabelServiceKaiserslauternGmbH.json\n", + "./data/Unternehmensregister/export\\TLTUrlaubsreisenGmbH.json\n", + "./data/Unternehmensregister/export\\TobiasSchäfflerGmbHPCsandmore.json\n", + "./data/Unternehmensregister/export\\TPLUSGmbH.json\n", + "./data/Unternehmensregister/export\\TradebyteSoftwareGmbH.json\n", + "./data/Unternehmensregister/export\\TransnetBWGmbH.json\n", + "./data/Unternehmensregister/export\\TRATONBeteiligungsverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\TRATONDritteBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\TRATONSE.json\n", + "./data/Unternehmensregister/export\\tricontes360BremerhavenGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360FrankfurtOderGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360GeraGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360HamburgGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360HofGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360ItzehoeGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360MünsterGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360solutionsGmbH.json\n", + "./data/Unternehmensregister/export\\tricontes360VerwaltungHamburgGmbH.json\n", + "./data/Unternehmensregister/export\\TRINACGmbH.json\n", + "./data/Unternehmensregister/export\\trinamiXGmbH.json\n", + "./data/Unternehmensregister/export\\TSPTechnikServicePlusGmbH.json\n", + "./data/Unternehmensregister/export\\TSystemsInternationalGmbH.json\n", + "./data/Unternehmensregister/export\\TUI4UGmbH.json\n", + "./data/Unternehmensregister/export\\TUIAG.json\n", + "./data/Unternehmensregister/export\\TUIAirlineServiceGmbH.json\n", + "./data/Unternehmensregister/export\\TUIAssetManagementandAdvisoryGmbH.json\n", + "./data/Unternehmensregister/export\\TUIAviationGmbH.json\n", + "./data/Unternehmensregister/export\\TUIAviationHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\TUIBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\TUIBKK.json\n", + "./data/Unternehmensregister/export\\TUIBLUEDEGmbH.json\n", + "./data/Unternehmensregister/export\\TUIBusinessServicesGmbH.json\n", + "./data/Unternehmensregister/export\\TUICruisesGmbH.json\n", + "./data/Unternehmensregister/export\\TUICustomerOperationsGmbH.json\n", + "./data/Unternehmensregister/export\\TUIDeutschlandGmbH.json\n", + "./data/Unternehmensregister/export\\TUIflyGmbH.json\n", + "./data/Unternehmensregister/export\\TUIflyVermarktungsGmbH.json\n", + "./data/Unternehmensregister/export\\TUIGroupServicesGmbH.json\n", + "./data/Unternehmensregister/export\\TUIHotelBetriebsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\TUIImmobilienServicesGmbH.json\n", + "./data/Unternehmensregister/export\\TUIInfoTecGmbH.json\n", + "./data/Unternehmensregister/export\\TUIInsuranceFinancialGmbH.json\n", + "./data/Unternehmensregister/export\\TUILeisureTravelServiceGmbH.json\n", + "./data/Unternehmensregister/export\\TUIReiseCenterJürgenJehleeK.json\n", + "./data/Unternehmensregister/export\\TUITRAVELStarReisebüroBattermannGmbH.json\n", + "./data/Unternehmensregister/export\\TurmbauSteffensNölleGmbH.json\n", + "./data/Unternehmensregister/export\\TWSKernkraftGmbH.json\n", + "./data/Unternehmensregister/export\\UangyihImmobilienGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 94%|█████████▍| 3192/3381 [00:05<00:00, 361.10it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\UISUnitedInternetServiceInhaberinJacquelineZielkeeKff.json\n", + "./data/Unternehmensregister/export\\UlrikeTheophileAlbrechtundHellaAlbrechtGrundstücksverwaltungsGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\UmspannwerkKleinBünsdorfGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\UnionBauzentrumHornbachGmbH.json\n", + "./data/Unternehmensregister/export\\UniperAnlagenserviceGmbH.json\n", + "./data/Unternehmensregister/export\\UnitedInternetAG.json\n", + "./data/Unternehmensregister/export\\UnitedInternetCorporateHoldingSE.json\n", + "./data/Unternehmensregister/export\\UnitedInternetCorporateServicesGmbH.json\n", + "./data/Unternehmensregister/export\\UnitedInternetInvestmentsHoldingAGCoKG.json\n", + "./data/Unternehmensregister/export\\UnitedInternetManagementHoldingSE.json\n", + "./data/Unternehmensregister/export\\UnitedInternetMediaGmbH.json\n", + "./data/Unternehmensregister/export\\UnitedInternetServiceSE.json\n", + "./data/Unternehmensregister/export\\UnitedInternetSourcingApprenticeshipGmbH.json\n", + "./data/Unternehmensregister/export\\UnternehmerstadtGmbH.json\n", + "./data/Unternehmensregister/export\\UnternehmerstadtVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\UnterstützungseinrichtungderBayWaAktiengesellschaftinMünchenGmbH.json\n", + "./data/Unternehmensregister/export\\uplusUmweltserviceGmbH.json\n", + "./data/Unternehmensregister/export\\UrbanaTeleunionRostockGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\VenteloGmbH.json\n", + "./data/Unternehmensregister/export\\VersorgungskassederAngestelltenderGEAGroupAGVVaG.json\n", + "./data/Unternehmensregister/export\\VerwaltungMSLeoniePGmbH.json\n", + "./data/Unternehmensregister/export\\ViA6WestServiceGmbH.json\n", + "./data/Unternehmensregister/export\\vitradoGmbH.json\n", + "./data/Unternehmensregister/export\\VivawestGmbH.json\n", + "./data/Unternehmensregister/export\\VivawestRuhrGmbH.json\n", + "./data/Unternehmensregister/export\\VivelloGmbH.json\n", + "./data/Unternehmensregister/export\\VLIVivianneLegerImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\VodafoneCustomerCareGmbH.json\n", + "./data/Unternehmensregister/export\\VogelVerzahntechnikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\VolkswagenAirServiceGmbH.json\n", + "./data/Unternehmensregister/export\\VOLKSWAGENAKTIENGESELLSCHAFT.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutomobileBerlinGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutomobileFrankfurtGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutomobileHamburgGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutomobileHannoverGmbH.json\n", + "./data/Unternehmensregister/export\\VOLKSWAGENAutomobileLeipzigGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutomobileRheinNeckarGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutomobileStuttgartGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutoversicherungAG.json\n", + "./data/Unternehmensregister/export\\VolkswagenAutoversicherungHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenBankGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\VolkswagenBelegschaftsgenossenschaftfürregenerativeEnergienamStandortEmdeneG.json\n", + "./data/Unternehmensregister/export\\VolkswagenBeteiligungsverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenDritteLeasingobjektGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenEconomyServiceErdleBernhardErdleGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenErsteLeasingobjektGmbH.json\n", + "./data/Unternehmensregister/export\\VOLKSWAGENFINANCIALSERVICESAKTIENGESELLSCHAFT.json\n", + "./data/Unternehmensregister/export\\VolkswagenFinancialServicesDigitalSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenFünfteLeasingobjektGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenGebrauchtfahrzeughandelsundServiceGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupChargingGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupFutureCenterEuropeGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupInfoServicesAG.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupITSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupLogisticsGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupPartnerServicesGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupRealEstateGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\VolkswagenGroupServicesGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenImmobilienBLUEGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\VolkswagenImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenImmobilienInvestmentGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenImmobilienManagementGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenInfotainmentGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenInsuranceBrokersGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenKonzernlogistikGmbHCoOHG.json\n", + "./data/Unternehmensregister/export\\VolkswagenLeasingGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\VolkswagennuwoteamVertriebsgesellschaftfürNutzundFreizeitfahrzeugeKoblenzmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenOriginalTeileLogistikBeteiligungsGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenOriginalTeileLogistikGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\VolkswagenOsnabrückGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenRetailDienstleistungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenSachsenGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenSechsteLeasingobjektGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenSiebteLeasingobjektGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenSoftwareAssetManagementGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenVermögensverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenVersicherungAktiengesellschaft.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 96%|█████████▌| 3231/3381 [00:05<00:00, 357.20it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\VolkswagenVersicherungsdienstGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\VolkswagenVierteLeasingobjektGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenZentrumAachenJacobsAutomobileGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenZentrumKarlsruheGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenZentrumNürnbergMarienbergGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenZentrumOldenburgGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenZentrumOsnabrückGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\VolkswagenZubehörGmbH.json\n", + "./data/Unternehmensregister/export\\VolkswagenZweiteLeasingobjektGmbH.json\n", + "./data/Unternehmensregister/export\\VollkornbäckereiSartoriusInhaberStraußundKaleskeOHG.json\n", + "./data/Unternehmensregister/export\\VonoviaDritteBerlinGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaEigentumsserviceGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaEigentumsverwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaElbeBerlinIIGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaElbeBerlinIIIGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaElbeDresdenIGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaElbeGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaElbeOstGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaElbeWannseeIGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaElbeWohnenGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaEnergieServiceGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaEngineeringGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaImmobilienmanagementGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaImmobilienmanagementoneGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaImmobilienmanagementtwoGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaImmobilienserviceGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaKundenserviceGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaManagementverwaltungGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaMessServiceGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaModernisierungsGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaOperationsGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaProBestandNordGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaProBestandNordInvestGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaProBestandNordRealEstateGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaSE.json\n", + "./data/Unternehmensregister/export\\VonoviaTechnischerServiceNordGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaTechnischerServiceSüdGmbH.json\n", + "./data/Unternehmensregister/export\\VonoviaWohnumfeldServiceGmbH.json\n", + "./data/Unternehmensregister/export\\VULKANINOXGmbH.json\n", + "./data/Unternehmensregister/export\\VWRInternationalGmbH.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 99%|█████████▉| 3358/3381 [00:05<00:00, 367.03it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\VWRInternationalImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\WackerBiotechGmbH.json\n", + "./data/Unternehmensregister/export\\WackerChemieAchteVentureGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\WackerChemieAG.json\n", + "./data/Unternehmensregister/export\\WackerChemieElfteVentureGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\WackerChemieVersicherungsvermittlungGmbH.json\n", + "./data/Unternehmensregister/export\\WackerChemieZwölfteVentureGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\WackerNeusonAftermarketServicesGmbH.json\n", + "./data/Unternehmensregister/export\\WackerNeusonImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\WackerNeusonPGMVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\WackerNeusonProduktionGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WackerNeusonSE.json\n", + "./data/Unternehmensregister/export\\WackerNeusonSGMVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\WackerNeusonVertriebDeutschlandGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WaldhusenKSBVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\WalsumImmobilienGmbH.json\n", + "./data/Unternehmensregister/export\\WealthCapObjektBogenhausenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\webcareLBJGmbH.json\n", + "./data/Unternehmensregister/export\\WeidemannGmbH.json\n", + "./data/Unternehmensregister/export\\WeigandBauGmbH.json\n", + "./data/Unternehmensregister/export\\WEINERTFiberOpticsGmbH.json\n", + "./data/Unternehmensregister/export\\WeinischGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WeinkellereiThomasRathGmbH.json\n", + "./data/Unternehmensregister/export\\WenczelZahntechnikGmbH.json\n", + "./data/Unternehmensregister/export\\WerkzeugbauWalldürnGesellschaftmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\WestconnectGmbH.json\n", + "./data/Unternehmensregister/export\\WestenergieAquaGmbH.json\n", + "./data/Unternehmensregister/export\\WestfälischeHochtiefundStraßenbauGmbH.json\n", + "./data/Unternehmensregister/export\\WIBGGmbH.json\n", + "./data/Unternehmensregister/export\\WiechAutohandelsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\WilhelmshöheInfrastrukturGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WillibaldGrammerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WilliGöttlingGmbH.json\n", + "./data/Unternehmensregister/export\\WindfeldHohenfeldeVierGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkBellaGmbH.json\n", + "./data/Unternehmensregister/export\\WindparkFinkenbachGersweilerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkFreimersheimGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkGrüntalGmbH.json\n", + "./data/Unternehmensregister/export\\WindparkHessenweilerGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkHettstadtGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkHolleSilliumGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkKamionkaGmbH.json\n", + "./data/Unternehmensregister/export\\WindparkLindchenGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkPferdsfeldGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkQuelkhornGmbH.json\n", + "./data/Unternehmensregister/export\\WindparkSanLupoGmbH.json\n", + "./data/Unternehmensregister/export\\WindparkSchnellwetternGmbH.json\n", + "./data/Unternehmensregister/export\\WindparkSpechenwaldGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkUphuserMarkGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkVelgenBornsenGmbH.json\n", + "./data/Unternehmensregister/export\\WindparkWilhelmshöheGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkWilhelmshöheIIGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WindparkWilhelmshöheIIIGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WINGASHoldingGmbH.json\n", + "./data/Unternehmensregister/export\\WintershallAktiengesellschaft.json\n", + "./data/Unternehmensregister/export\\WintershallDeaMiddleEastGmbH.json\n", + "./data/Unternehmensregister/export\\WintershallDeaVermögensverwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\WintershallLibyenOilGasGmbH.json\n", + "./data/Unternehmensregister/export\\WiproBusinessSolutionsGmbH.json\n", + "./data/Unternehmensregister/export\\WohnanlageLeonbergerRingGmbH.json\n", + "./data/Unternehmensregister/export\\WohnbauAugusteVictoriaGmbH.json\n", + "./data/Unternehmensregister/export\\WohnbauWestfalenGmbH.json\n", + "./data/Unternehmensregister/export\\WohnenamLerchenbergGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WohnenamTiergartenDeutschEvernGmbH.json\n", + "./data/Unternehmensregister/export\\WohnServicePlusGmbH.json\n", + "./data/Unternehmensregister/export\\WohnStadtbauWohnungsunternehmenderStadtMünsterGmbH.json\n", + "./data/Unternehmensregister/export\\WohnungsbaugesellschaftmitbeschränkterHaftungGlückauf.json\n", + "./data/Unternehmensregister/export\\WohnungsgesellschaftMünsterlandmitbeschränkterHaftung.json\n", + "./data/Unternehmensregister/export\\WolfgangSartoriusGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WolmanWoodandFireProtectionGmbH.json\n", + "./data/Unternehmensregister/export\\WolteritzerAgrarGmbH.json\n", + "./data/Unternehmensregister/export\\WoltersRundreisenGmbH.json\n", + "./data/Unternehmensregister/export\\WPBWaterPumpBearingGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\WZWundZentrenGmbH.json\n", + "./data/Unternehmensregister/export\\WürthLeasingVerwaltungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\XXONLINUXServicesHuhleeK.json\n", + "./data/Unternehmensregister/export\\YelloSolarGmbH.json\n", + "./data/Unternehmensregister/export\\YelloStromGmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoBeautyStoreGmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoBTD003GmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoBTD007SECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoBTD009SECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoBTD010SECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoBTD011SECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoCustomerCareCentralServicesSECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoCustomerCareDACHSECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoCustomerCareInternationalSECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoLogisticsGießenSECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoLogisticsMönchengladbachSECoKG.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 3381/3381 [00:05<00:00, 574.25it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "./data/Unternehmensregister/export\\ZalandoLogisticsSüdSECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoLoungeContentSolutionsSECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoLoungeLogisticsSECoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoLoungeServiceGmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoMarketingServicesGmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoOperationsGmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoOutletsGmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoPaymentsGmbH.json\n", + "./data/Unternehmensregister/export\\ZalandoSE.json\n", + "./data/Unternehmensregister/export\\ZalandoStoresGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\ZalandoStudiosBerlinGmbH.json\n", + "./data/Unternehmensregister/export\\zebotecGmbH.json\n", + "./data/Unternehmensregister/export\\ZentraVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\zLabelsCreationSalesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\zLabelsGmbH.json\n", + "./data/Unternehmensregister/export\\zLabelsPlatformServicesGmbHCoKG.json\n", + "./data/Unternehmensregister/export\\zooplusSE.json\n", + "./data/Unternehmensregister/export\\ZweckverbandWasserversorgungGrammeAue.json\n", + "./data/Unternehmensregister/export\\ZweiPumaGmbH.json\n", + "./data/Unternehmensregister/export\\ZweiteBadKreuznacherSonnenparkBetriebGmbHCoKGKSBII.json\n", + "./data/Unternehmensregister/export\\ZweiteHapagLloydSchiffsvermietungsgesellschaftmbH.json\n", + "./data/Unternehmensregister/export\\ZweiteMainovaErneuerbareEnergienVerwaltungsGmbH.json\n", + "./data/Unternehmensregister/export\\ZwiebelzwergVerlagInhaberLeonieLaufenburgeK.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" ] } ], "source": [ - "import json\n", - "import dataclasses\n", - "from tqdm import tqdm\n", - "\n", "for file in tqdm(glob.glob1(\"./data/Unternehmensregister/export\", \"*.json\")):\n", " path = os.path.join(\"./data/Unternehmensregister/export\", file)\n", " with open(path, \"r\", encoding=\"utf-8\") as file_object:\n", + " print(path)\n", " data = json.loads(file_object.read())\n", " company: Company = map_unternehmensregister_json(data)\n", "\n", @@ -4216,56 +8117,55 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 17, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mongodb://root:pR0R0v2e2@trisnol.tech:27017\n" - ] - } - ], + "outputs": [], "source": [ - "from News.utils.mongodb.mongo import MongoConnector\n", - "from Unternehmensregister.utils.CompanyMongoService import CompanyMongoService\n", + "from aki_prj23_transparenzregister.utils.mongo.connector import (\n", + " MongoConnector,\n", + " MongoConnection,\n", + ")\n", + "from aki_prj23_transparenzregister.utils.mongo.company_mongo_service import (\n", + " CompanyMongoService,\n", + ")\n", "\n", - "connector = MongoConnector(\n", - " hostname=\"trisnol.tech\",\n", + "conn_string = MongoConnection(\n", + " hostname=\"localhost\",\n", " database=\"transparenzregister\",\n", - " username=\"root\",\n", - " password=\"pR0R0v2e2\",\n", + " username=\"username\",\n", + " password=\"password\",\n", " port=27017,\n", ")\n", "\n", + "connector = MongoConnector(conn_string)\n", + "\n", "service = CompanyMongoService(connector)" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - " 0%| | 0/3147 [00:00=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "ansi2html" version = "1.8.0" description = "" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -32,7 +30,6 @@ test = ["pytest", "pytest-cov"] name = "anyio" version = "4.0.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -53,7 +50,6 @@ trio = ["trio (>=0.22)"] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" -category = "dev" optional = false python-versions = "*" files = [ @@ -65,7 +61,6 @@ files = [ name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -86,7 +81,6 @@ typing = ["mypy"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -124,7 +118,6 @@ tests = ["pytest"] name = "arrow" version = "1.2.3" description = "Better dates & times for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -139,7 +132,6 @@ python-dateutil = ">=2.7.0" name = "asttokens" version = "2.4.0" description = "Annotate AST trees with source code positions" -category = "dev" optional = false python-versions = "*" files = [ @@ -157,7 +149,6 @@ test = ["astroid", "pytest"] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -169,7 +160,6 @@ files = [ name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -188,7 +178,6 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "babel" version = "2.12.1" description = "Internationalization utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -200,7 +189,6 @@ files = [ name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" -category = "dev" optional = false python-versions = "*" files = [ @@ -212,7 +200,6 @@ files = [ name = "beautifulsoup4" version = "4.12.2" description = "Screen-scraping library" -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -231,7 +218,6 @@ lxml = ["lxml"] name = "black" version = "23.9.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -258,7 +244,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "bleach" version = "6.0.0" description = "An easy safelist-based HTML-sanitizing tool." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -277,7 +262,6 @@ css = ["tinycss2 (>=1.1.0,<1.2)"] name = "boolean-py" version = "4.0" description = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL." -category = "dev" optional = false python-versions = "*" files = [ @@ -289,7 +273,6 @@ files = [ name = "cachecontrol" version = "0.13.1" description = "httplib2 caching for requests" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -311,7 +294,6 @@ redis = ["redis (>=2.10.5)"] name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -323,7 +305,6 @@ files = [ name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false python-versions = "*" files = [ @@ -400,7 +381,6 @@ pycparser = "*" name = "cfgv" version = "3.4.0" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -412,7 +392,6 @@ files = [ name = "charset-normalizer" version = "3.2.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -497,7 +476,6 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -512,7 +490,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -524,7 +501,6 @@ files = [ name = "coloredlogs" version = "15.0.1" description = "Colored terminal output for Python's logging module" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -542,7 +518,6 @@ cron = ["capturer (>=2.4)"] name = "comm" version = "0.1.4" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -562,7 +537,6 @@ typing = ["mypy (>=0.990)"] name = "contourpy" version = "1.1.0" description = "Python library for calculating contours of 2D quadrilateral grids" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -621,7 +595,6 @@ test-no-images = ["pytest", "pytest-cov", "wurlitzer"] name = "coverage" version = "7.3.1" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -686,7 +659,6 @@ toml = ["tomli"] name = "cryptography" version = "41.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -732,7 +704,6 @@ test-randomorder = ["pytest-randomly"] name = "cycler" version = "0.11.0" description = "Composable style cycles" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -744,7 +715,6 @@ files = [ name = "cyclonedx-python-lib" version = "4.2.1" description = "A library for producing CycloneDX SBOM (Software Bill of Materials) files." -category = "dev" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -762,7 +732,6 @@ sortedcontainers = ">=2.4.0,<3.0.0" name = "dash" version = "2.13.0" description = "A Python framework for building reactive web-apps. Developed by Plotly." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -796,7 +765,6 @@ testing = ["beautifulsoup4 (>=4.8.2)", "cryptography (<3.4)", "dash-testing-stub name = "dash-bootstrap-components" version = "1.5.0" description = "Bootstrap themed components for use in Plotly Dash" -category = "main" optional = false python-versions = ">=3.7, <4" files = [ @@ -814,7 +782,6 @@ pandas = ["numpy", "pandas"] name = "dash-core-components" version = "2.0.0" description = "Core component suite for Dash" -category = "main" optional = false python-versions = "*" files = [ @@ -826,7 +793,6 @@ files = [ name = "dash-html-components" version = "2.0.0" description = "Vanilla HTML components for Dash" -category = "main" optional = false python-versions = "*" files = [ @@ -838,7 +804,6 @@ files = [ name = "dash-table" version = "5.0.0" description = "Dash table" -category = "main" optional = false python-versions = "*" files = [ @@ -850,7 +815,6 @@ files = [ name = "dateparser" version = "1.1.8" description = "Date parsing library designed to parse dates from HTML pages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -873,7 +837,6 @@ langdetect = ["langdetect"] name = "de-autobahn" version = "1.0.4" description = "Autobahn App API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -889,7 +852,6 @@ urllib3 = ">=1.25.3" name = "de-bundesrat" version = "0.1.0" description = "Bundesrat: Live Informationen" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -905,7 +867,6 @@ urllib3 = ">=1.25.3" name = "de-bundestag" version = "0.1.0" description = "Bundestag: Live Informationen" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -921,7 +882,6 @@ urllib3 = ">=1.25.3" name = "de-dwd" version = "1.0.1" description = "Deutscher Wetterdienst: API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -937,7 +897,6 @@ urllib3 = ">=1.25.3" name = "de-interpol" version = "0.1.0" description = "Interpol: Interpol Red Notices API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -953,7 +912,6 @@ urllib3 = ">=1.25.3" name = "de-jobsuche" version = "0.1.0" description = "Arbeitsagentur Jobsuche API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -969,7 +927,6 @@ urllib3 = ">=1.25.3" name = "de-ladestationen" version = "1.0.5" description = "Bundesnetzagentur: Ladesäulenregister" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -985,7 +942,6 @@ urllib3 = ">=1.25.3" name = "de-mudab" version = "0.1.0" description = "Umweltbundesamt: Meeresumweltdatenbank (MUDAB)" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1001,7 +957,6 @@ urllib3 = ">=1.25.3" name = "de-nina" version = "1.1.0" description = "Bundesamt für Bevölkerungsschutz: NINA API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1017,7 +972,6 @@ urllib3 = ">=1.25.3" name = "de-polizei-brandenburg" version = "0.1.0" description = "Polizei Brandenburg: App" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1033,7 +987,6 @@ urllib3 = ">=1.25.3" name = "de-risikogebiete" version = "0.1.0" description = "Robert Koch Institut: Corona Risikogebiete API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1049,7 +1002,6 @@ urllib3 = ">=1.25.3" name = "de-smard" version = "0.1.0" description = "Bundesnetzagentur Strommarktdaten" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1065,7 +1017,6 @@ urllib3 = ">=1.25.3" name = "de-strahlenschutz" version = "1.0.0" description = "ODL-Info API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1081,7 +1032,6 @@ urllib3 = ">=1.25.3" name = "de-travelwarning" version = "0.1.0" description = "Auswärtiges Amt: Reisewarnungen OpenData Schnittstelle" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1097,7 +1047,6 @@ urllib3 = ">=1.25.3" name = "de-zoll" version = "0.1.0" description = "Einfuhrzoll API" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1113,7 +1062,6 @@ urllib3 = ">=1.25.3" name = "debugpy" version = "1.7.0" description = "An implementation of the Debug Adapter Protocol for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1145,7 +1093,6 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1157,7 +1104,6 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1169,7 +1115,6 @@ files = [ name = "deutschland" version = "0.3.1" description = "" -category = "main" optional = false python-versions = "^3.11" files = [] @@ -1238,7 +1183,6 @@ resolved_reference = "507901b95cffa8dede08b69adab23dd8eda92d87" name = "distlib" version = "0.3.7" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" files = [ @@ -1250,7 +1194,6 @@ files = [ name = "dnspython" version = "2.4.2" description = "DNS toolkit" -category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -1270,7 +1213,6 @@ wmi = ["wmi (>=1.5.1,<2.0.0)"] name = "docutils" version = "0.18.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1282,7 +1224,6 @@ files = [ name = "exceptiongroup" version = "1.1.3" description = "Backport of PEP 654 (exception groups)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1297,7 +1238,6 @@ test = ["pytest (>=6)"] name = "executing" version = "1.2.0" description = "Get the currently executing AST node of a frame, and other information" -category = "dev" optional = false python-versions = "*" files = [ @@ -1312,7 +1252,6 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] name = "fastjsonschema" version = "2.18.0" description = "Fastest Python implementation of JSON schema" -category = "dev" optional = false python-versions = "*" files = [ @@ -1327,7 +1266,6 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc name = "filelock" version = "3.12.3" description = "A platform independent file lock." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1343,7 +1281,6 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pyt name = "flask" version = "2.2.5" description = "A simple framework for building complex web applications." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1365,7 +1302,6 @@ dotenv = ["python-dotenv"] name = "flatbuffers" version = "23.5.26" description = "The FlatBuffers serialization format for Python" -category = "main" optional = false python-versions = "*" files = [ @@ -1377,7 +1313,6 @@ files = [ name = "fonttools" version = "4.42.1" description = "Tools to manipulate font files" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1435,7 +1370,6 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" -category = "dev" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -1447,7 +1381,6 @@ files = [ name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" -category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1458,7 +1391,6 @@ files = [ name = "gql" version = "2.0.0" description = "GraphQL client for Python" -category = "main" optional = false python-versions = "*" files = [ @@ -1480,7 +1412,6 @@ test = ["coveralls (==2.0.0)", "mock (==4.0.2)", "pytest (==5.4.2)", "pytest-asy name = "graphql-core" version = "2.3.2" description = "GraphQL implementation for Python" -category = "main" optional = false python-versions = "*" files = [ @@ -1501,7 +1432,6 @@ test = ["coveralls (==1.11.1)", "cython (==0.29.17)", "gevent (==1.5.0)", "pyann name = "greenlet" version = "2.0.2" description = "Lightweight in-process concurrent programming" -category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -1575,7 +1505,6 @@ test = ["objgraph", "psutil"] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1587,7 +1516,6 @@ files = [ name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1609,7 +1537,6 @@ lxml = ["lxml"] name = "humanfriendly" version = "10.0" description = "Human friendly output for text interfaces using Python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1624,7 +1551,6 @@ pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_ve name = "identify" version = "2.5.27" description = "File identification library for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1639,7 +1565,6 @@ license = ["ukkonen"] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1651,7 +1576,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1663,7 +1587,6 @@ files = [ name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1675,7 +1598,6 @@ files = [ name = "ipykernel" version = "6.25.2" description = "IPython Kernel for Jupyter" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1689,7 +1611,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -1709,7 +1631,6 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" name = "ipython" version = "8.15.0" description = "IPython: Productive Interactive Computing" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -1748,7 +1669,6 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" -category = "dev" optional = false python-versions = "*" files = [ @@ -1760,7 +1680,6 @@ files = [ name = "ipywidgets" version = "8.1.0" description = "Jupyter interactive widgets" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1782,7 +1701,6 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1797,7 +1715,6 @@ arrow = ">=0.15.0" name = "itsdangerous" version = "2.1.2" description = "Safely pass data to untrusted environments and back." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1809,7 +1726,6 @@ files = [ name = "jedi" version = "0.19.0" description = "An autocompletion tool for Python that can be used for text editors." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1829,7 +1745,6 @@ testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1847,7 +1762,6 @@ i18n = ["Babel (>=2.7)"] name = "json5" version = "0.9.14" description = "A Python implementation of the JSON5 data format." -category = "dev" optional = false python-versions = "*" files = [ @@ -1862,7 +1776,6 @@ dev = ["hypothesis"] name = "jsonpointer" version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ @@ -1874,7 +1787,6 @@ files = [ name = "jsonschema" version = "4.19.0" description = "An implementation of JSON Schema validation for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1904,7 +1816,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.7.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1919,7 +1830,6 @@ referencing = ">=0.28.0" name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." -category = "dev" optional = false python-versions = "*" files = [ @@ -1940,7 +1850,6 @@ qtconsole = "*" name = "jupyter-client" version = "8.3.1" description = "Jupyter protocol implementation and client libraries" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1949,7 +1858,7 @@ files = [ ] [package.dependencies] -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -1963,7 +1872,6 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1975,7 +1883,7 @@ files = [ ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" @@ -1988,7 +1896,6 @@ test = ["flaky", "pexpect", "pytest"] name = "jupyter-core" version = "5.3.1" description = "Jupyter core package. A base package on which Jupyter projects rely." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2009,7 +1916,6 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] name = "jupyter-events" version = "0.7.0" description = "Jupyter Event System library" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2035,7 +1941,6 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p name = "jupyter-lsp" version = "2.2.0" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2050,7 +1955,6 @@ jupyter-server = ">=1.1.2" name = "jupyter-server" version = "2.7.3" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2063,7 +1967,7 @@ anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" jupyter-events = ">=0.6.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" @@ -2087,7 +1991,6 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc name = "jupyter-server-terminals" version = "0.4.4" description = "A Jupyter Server Extension Providing Terminals." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2107,7 +2010,6 @@ test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", name = "jupyterlab" version = "4.0.5" description = "JupyterLab computational environment" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2138,7 +2040,6 @@ test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-cons name = "jupyterlab-pygments" version = "0.2.2" description = "Pygments theme using JupyterLab CSS variables" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2150,7 +2051,6 @@ files = [ name = "jupyterlab-server" version = "2.24.0" description = "A set of server components for JupyterLab and JupyterLab like applications." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2176,7 +2076,6 @@ test = ["hatch", "ipykernel", "jupyterlab-server[openapi]", "openapi-spec-valida name = "jupyterlab-widgets" version = "3.0.8" description = "Jupyter interactive widgets for JupyterLab" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2188,7 +2087,6 @@ files = [ name = "kiwisolver" version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2302,7 +2200,6 @@ files = [ name = "license-expression" version = "30.1.1" description = "license-expression is a comprehensive utility library to parse, compare, simplify and normalize license expressions (such as SPDX license expressions) using boolean logic." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2321,7 +2218,6 @@ testing = ["black", "isort", "pytest (>=6,!=7.0.0)", "pytest-xdist (>=2)", "twin name = "loguru" version = "0.7.1" description = "Python logging made (stupidly) simple" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2340,7 +2236,6 @@ dev = ["Sphinx (==7.2.5)", "colorama (==0.4.5)", "colorama (==0.4.6)", "freezegu name = "lxml" version = "4.9.3" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -2448,7 +2343,6 @@ source = ["Cython (>=0.29.35)"] name = "mapbox-vector-tile" version = "1.2.1" description = "Mapbox Vector Tile" -category = "main" optional = false python-versions = "*" files = [ @@ -2466,7 +2360,6 @@ shapely = "*" name = "markdown-it-py" version = "2.2.0" description = "Python port of markdown-it. Markdown parsing, done right!" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2491,7 +2384,6 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2551,7 +2443,6 @@ files = [ name = "matplotlib" version = "3.7.2" description = "Python plotting package" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2613,7 +2504,6 @@ python-dateutil = ">=2.7" name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2628,7 +2518,6 @@ traitlets = "*" name = "mdit-py-plugins" version = "0.3.5" description = "Collection of plugins for markdown-it-py" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2648,7 +2537,6 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2660,7 +2548,6 @@ files = [ name = "mistune" version = "3.0.1" description = "A sane and fast Markdown parser with useful plugins and renderers" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2672,7 +2559,6 @@ files = [ name = "more-itertools" version = "8.14.0" description = "More routines for operating on iterables, beyond itertools" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2684,7 +2570,6 @@ files = [ name = "mpmath" version = "1.3.0" description = "Python library for arbitrary-precision floating-point arithmetic" -category = "main" optional = false python-versions = "*" files = [ @@ -2702,7 +2587,6 @@ tests = ["pytest (>=4.6)"] name = "msgpack" version = "1.0.5" description = "MessagePack serializer" -category = "dev" optional = false python-versions = "*" files = [ @@ -2775,7 +2659,6 @@ files = [ name = "mypy" version = "1.5.1" description = "Optional static typing for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2821,7 +2704,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2833,7 +2715,6 @@ files = [ name = "myst-parser" version = "1.0.0" description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2860,7 +2741,6 @@ testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4, name = "nbclient" version = "0.8.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -2870,7 +2750,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" nbformat = ">=5.1" traitlets = ">=5.4" @@ -2883,7 +2763,6 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= name = "nbconvert" version = "7.8.0" description = "Converting Jupyter Notebooks" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2921,7 +2800,6 @@ webpdf = ["playwright"] name = "nbformat" version = "5.9.2" description = "The Jupyter Notebook format" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2943,7 +2821,6 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "nbsphinx" version = "0.9.3" description = "Jupyter Notebook Tools for Sphinx" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2963,7 +2840,6 @@ traitlets = ">=5" name = "nest-asyncio" version = "1.5.7" description = "Patch asyncio to allow nested event loops" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2975,7 +2851,6 @@ files = [ name = "nodeenv" version = "1.8.0" description = "Node.js virtual environment builder" -category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -2990,7 +2865,6 @@ setuptools = "*" name = "notebook" version = "7.0.3" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3014,7 +2888,6 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 name = "notebook-shim" version = "0.2.3" description = "A shim layer for notebook traits and config" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3032,7 +2905,6 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" name = "numpy" version = "1.25.2" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3067,7 +2939,6 @@ files = [ name = "onnxruntime" version = "1.15.1" description = "ONNX Runtime is a runtime accelerator for Machine Learning models" -category = "main" optional = false python-versions = "*" files = [ @@ -3109,7 +2980,6 @@ sympy = "*" name = "outcome" version = "1.2.0" description = "Capture the outcome of Python function calls." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3124,7 +2994,6 @@ attrs = ">=19.2.0" name = "overrides" version = "7.4.0" description = "A decorator to automatically detect mismatch when overriding a method." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3136,7 +3005,6 @@ files = [ name = "packageurl-python" version = "0.11.2" description = "A purl aka. Package URL parser and builder" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3154,7 +3022,6 @@ test = ["pytest"] name = "packaging" version = "23.1" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3166,7 +3033,6 @@ files = [ name = "pandas" version = "2.1.0" description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3225,7 +3091,6 @@ xml = ["lxml (>=4.8.0)"] name = "pandas-stubs" version = "2.0.3.230814" description = "Type annotations for pandas" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3241,7 +3106,6 @@ types-pytz = ">=2022.1.1" name = "pandocfilters" version = "1.5.0" description = "Utilities for writing pandoc filters in python" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3253,7 +3117,6 @@ files = [ name = "parso" version = "0.8.3" description = "A Python Parser" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3269,7 +3132,6 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3281,7 +3143,6 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." -category = "dev" optional = false python-versions = "*" files = [ @@ -3296,7 +3157,6 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" -category = "dev" optional = false python-versions = "*" files = [ @@ -3308,7 +3168,6 @@ files = [ name = "pillow" version = "10.0.0" description = "Python Imaging Library (Fork)" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3378,7 +3237,6 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "pip" version = "23.2.1" description = "The PyPA recommended tool for installing Python packages." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3390,7 +3248,6 @@ files = [ name = "pip-api" version = "0.0.30" description = "An unofficial, importable pip API" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3405,7 +3262,6 @@ pip = "*" name = "pip-audit" version = "2.6.1" description = "A tool for scanning Python environments for known vulnerabilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3434,7 +3290,6 @@ test = ["coverage[toml]", "pretend", "pytest", "pytest-cov"] name = "pip-licenses" version = "4.3.2" description = "Dump the software license list of Python packages installed with pip." -category = "dev" optional = false python-versions = "~=3.8" files = [ @@ -3452,7 +3307,6 @@ test = ["docutils", "mypy", "pytest-cov", "pytest-pycodestyle", "pytest-runner"] name = "pip-requirements-parser" version = "32.0.1" description = "pip requirements parser - a mostly correct pip requirements parsing library because it uses pip's own code." -category = "dev" optional = false python-versions = ">=3.6.0" files = [ @@ -3472,7 +3326,6 @@ testing = ["aboutcode-toolkit (>=6.0.0)", "black", "pytest (>=6,!=7.0.0)", "pyte name = "platformdirs" version = "3.10.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3488,7 +3341,6 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co name = "plotly" version = "5.16.1" description = "An open-source, interactive data visualization library for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3504,7 +3356,6 @@ tenacity = ">=6.2.0" name = "pluggy" version = "1.3.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3520,7 +3371,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pockets" version = "0.9.1" description = "A collection of helpful Python tools!" -category = "dev" optional = false python-versions = "*" files = [ @@ -3535,7 +3385,6 @@ six = ">=1.5.2" name = "pprintpp" version = "0.4.0" description = "A drop-in replacement for pprint that's actually pretty" -category = "dev" optional = false python-versions = "*" files = [ @@ -3547,7 +3396,6 @@ files = [ name = "pre-commit" version = "3.4.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3566,7 +3414,6 @@ virtualenv = ">=20.10.0" name = "prettytable" version = "3.8.0" description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3584,7 +3431,6 @@ tests = ["pytest", "pytest-cov", "pytest-lazy-fixture"] name = "prometheus-client" version = "0.17.1" description = "Python client for the Prometheus monitoring system." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3599,7 +3445,6 @@ twisted = ["twisted"] name = "promise" version = "2.3" description = "Promises/A+ implementation for Python" -category = "main" optional = false python-versions = "*" files = [ @@ -3616,7 +3461,6 @@ test = ["coveralls", "futures", "mock", "pytest (>=2.7.3)", "pytest-benchmark", name = "prompt-toolkit" version = "3.0.39" description = "Library for building powerful interactive command lines in Python" -category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -3631,7 +3475,6 @@ wcwidth = "*" name = "protobuf" version = "3.20.3" description = "Protocol Buffers" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3663,7 +3506,6 @@ files = [ name = "psutil" version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3690,7 +3532,6 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "psycopg2-binary" version = "2.9.7" description = "psycopg2 - Python-PostgreSQL Database Adapter" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3760,7 +3601,6 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" -category = "dev" optional = false python-versions = "*" files = [ @@ -3772,7 +3612,6 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" -category = "dev" optional = false python-versions = "*" files = [ @@ -3787,7 +3626,6 @@ tests = ["pytest"] name = "py-serializable" version = "0.11.1" description = "Library for serializing and deserializing Python Objects to and from JSON and XML." -category = "dev" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -3802,7 +3640,6 @@ defusedxml = ">=0.7.1,<0.8.0" name = "pyclipper" version = "1.3.0.post5" description = "Cython wrapper for the C++ translation of the Angus Johnson's Clipper library (ver. 6.4.2)" -category = "main" optional = false python-versions = "*" files = [ @@ -3856,7 +3693,6 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3868,7 +3704,6 @@ files = [ name = "pygments" version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3883,7 +3718,6 @@ plugins = ["importlib-metadata"] name = "pymongo" version = "4.5.0" description = "Python driver for MongoDB " -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3985,7 +3819,6 @@ zstd = ["zstandard"] name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -4000,7 +3833,6 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyreadline3" version = "3.4.1" description = "A python implementation of GNU readline." -category = "main" optional = false python-versions = "*" files = [ @@ -4012,7 +3844,6 @@ files = [ name = "pysocks" version = "1.7.1" description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4025,7 +3856,6 @@ files = [ name = "pytest" version = "7.4.2" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4046,7 +3876,6 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-clarity" version = "1.0.1" description = "A plugin providing an alternative, colourful diff output for failing assertions." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4062,7 +3891,6 @@ rich = ">=8.0.0" name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4081,7 +3909,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-mock" version = "3.11.1" description = "Thin-wrapper around the mock package for easier use with pytest" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4099,7 +3926,6 @@ dev = ["pre-commit", "pytest-asyncio", "tox"] name = "pytest-repeat" version = "0.9.1" description = "pytest plugin for repeating tests" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4114,7 +3940,6 @@ pytest = ">=3.6" name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -4129,7 +3954,6 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4144,7 +3968,6 @@ cli = ["click (>=5.0)"] name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4156,7 +3979,6 @@ files = [ name = "pytz" version = "2023.3.post1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -4168,7 +3990,6 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" -category = "dev" optional = false python-versions = "*" files = [ @@ -4192,7 +4013,6 @@ files = [ name = "pywinpty" version = "2.0.11" description = "Pseudo terminal support for Windows from Python." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4207,7 +4027,6 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4257,7 +4076,6 @@ files = [ name = "pyzmq" version = "25.1.1" description = "Python bindings for 0MQ" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4363,7 +4181,6 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "qtconsole" version = "5.4.4" description = "Jupyter Qt console" -category = "dev" optional = false python-versions = ">= 3.7" files = [ @@ -4390,7 +4207,6 @@ test = ["flaky", "pytest", "pytest-qt"] name = "qtpy" version = "2.4.0" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4408,7 +4224,6 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] name = "referencing" version = "0.30.2" description = "JSON Referencing + Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4424,7 +4239,6 @@ rpds-py = ">=0.7.0" name = "regex" version = "2023.8.8" description = "Alternative regular expression module, to replace re." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4522,7 +4336,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4544,7 +4357,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "retrying" version = "1.3.4" description = "Retrying" -category = "main" optional = false python-versions = "*" files = [ @@ -4559,7 +4371,6 @@ six = ">=1.7.0" name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4574,7 +4385,6 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4586,7 +4396,6 @@ files = [ name = "rich" version = "13.5.2" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -4605,7 +4414,6 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] name = "rise" version = "5.7.1" description = "Reveal.js - Jupyter/IPython Slideshow Extension" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4" files = [ @@ -4620,7 +4428,6 @@ notebook = ">=6.0" name = "rpds-py" version = "0.10.2" description = "Python bindings to Rust's persistent data structures (rpds)" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4727,7 +4534,6 @@ files = [ name = "ruff" version = "0.0.287" description = "An extremely fast Python linter, written in Rust." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4754,7 +4560,6 @@ files = [ name = "rx" version = "1.6.3" description = "Reactive Extensions (Rx) for Python" -category = "main" optional = false python-versions = "*" files = [ @@ -4765,7 +4570,6 @@ files = [ name = "seaborn" version = "0.12.2" description = "Statistical data visualization" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4787,7 +4591,6 @@ stats = ["scipy (>=1.3)", "statsmodels (>=0.10)"] name = "selenium" version = "4.12.0" description = "" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4805,7 +4608,6 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} name = "send2trash" version = "1.8.2" description = "Send file to trash natively under Mac OS X, Windows and Linux" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -4822,7 +4624,6 @@ win32 = ["pywin32"] name = "setuptools" version = "68.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4839,7 +4640,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "shapely" version = "1.8.5.post1" description = "Geometric objects, predicates, and operations" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4896,7 +4696,6 @@ vectorized = ["numpy"] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -4908,7 +4707,6 @@ files = [ name = "slugify" version = "0.0.1" description = "A generic slugifier." -category = "main" optional = false python-versions = "*" files = [ @@ -4919,7 +4717,6 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4931,7 +4728,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" files = [ @@ -4943,7 +4739,6 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" -category = "main" optional = false python-versions = "*" files = [ @@ -4955,7 +4750,6 @@ files = [ name = "soupsieve" version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4967,7 +4761,6 @@ files = [ name = "sphinx" version = "6.2.1" description = "Python documentation generator" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5002,7 +4795,6 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] name = "sphinx-autodoc-typehints" version = "1.23.0" description = "Type hints (PEP 484) support for the Sphinx autodoc extension" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5022,7 +4814,6 @@ type-comment = ["typed-ast (>=1.5.4)"] name = "sphinx-copybutton" version = "0.5.2" description = "Add a copy button to each of your code cells." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5041,7 +4832,6 @@ rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] name = "sphinx-rtd-theme" version = "1.3.0" description = "Read the Docs theme for Sphinx" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -5061,7 +4851,6 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] name = "sphinxcontrib-applehelp" version = "1.0.7" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5080,7 +4869,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.5" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5099,7 +4887,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.4" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5118,7 +4905,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -5133,7 +4919,6 @@ Sphinx = ">=1.8" name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -5148,7 +4933,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-mermaid" version = "0.9.2" description = "Mermaid diagrams in yours Sphinx powered docs" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5160,7 +4944,6 @@ files = [ name = "sphinxcontrib-napoleon" version = "0.7" description = "Sphinx \"napoleon\" extension." -category = "dev" optional = false python-versions = "*" files = [ @@ -5176,7 +4959,6 @@ six = ">=1.5.2" name = "sphinxcontrib-qthelp" version = "1.0.6" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5195,7 +4977,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.9" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5214,7 +4995,6 @@ test = ["pytest"] name = "sqlalchemy" version = "1.4.49" description = "Database Abstraction Library" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -5259,7 +5039,7 @@ files = [ ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and platform_machine == \"aarch64\" or python_version >= \"3\" and platform_machine == \"ppc64le\" or python_version >= \"3\" and platform_machine == \"x86_64\" or python_version >= \"3\" and platform_machine == \"amd64\" or python_version >= \"3\" and platform_machine == \"AMD64\" or python_version >= \"3\" and platform_machine == \"win32\" or python_version >= \"3\" and platform_machine == \"WIN32\""} +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\")"} mypy = {version = ">=0.910", optional = true, markers = "python_version >= \"3\" and extra == \"mypy\""} sqlalchemy2-stubs = {version = "*", optional = true, markers = "extra == \"mypy\""} @@ -5288,7 +5068,6 @@ sqlcipher = ["sqlcipher3-binary"] name = "sqlalchemy2-stubs" version = "0.0.2a35" description = "Typing Stubs for SQLAlchemy 1.4" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -5303,7 +5082,6 @@ typing-extensions = ">=3.7.4" name = "stack-data" version = "0.6.2" description = "Extract data from python stack frames and tracebacks for informative displays" -category = "dev" optional = false python-versions = "*" files = [ @@ -5323,7 +5101,6 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "sympy" version = "1.12" description = "Computer algebra system (CAS) in Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5338,7 +5115,6 @@ mpmath = ">=0.19" name = "tenacity" version = "8.2.3" description = "Retry code until it succeeds" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5353,7 +5129,6 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] name = "terminado" version = "0.17.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5374,7 +5149,6 @@ test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5393,7 +5167,6 @@ test = ["flake8", "isort", "pytest"] name = "tokenize-rt" version = "5.2.0" description = "A wrapper around the stdlib `tokenize` which roundtrips." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5405,7 +5178,6 @@ files = [ name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -5417,7 +5189,6 @@ files = [ name = "tornado" version = "6.3.3" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -5438,7 +5209,6 @@ files = [ name = "tqdm" version = "4.66.1" description = "Fast, Extensible Progress Meter" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5459,7 +5229,6 @@ telegram = ["requests"] name = "traitlets" version = "5.9.0" description = "Traitlets Python configuration system" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5475,7 +5244,6 @@ test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] name = "trio" version = "0.22.2" description = "A friendly Python library for async concurrency and I/O" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5495,7 +5263,6 @@ sortedcontainers = "*" name = "trio-websocket" version = "0.10.4" description = "WebSocket library for Trio" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5512,7 +5279,6 @@ wsproto = ">=0.14" name = "types-pyopenssl" version = "23.2.0.2" description = "Typing stubs for pyOpenSSL" -category = "dev" optional = false python-versions = "*" files = [ @@ -5527,7 +5293,6 @@ cryptography = ">=35.0.0" name = "types-pytz" version = "2023.3.0.1" description = "Typing stubs for pytz" -category = "dev" optional = false python-versions = "*" files = [ @@ -5539,7 +5304,6 @@ files = [ name = "types-requests" version = "2.31.0.2" description = "Typing stubs for requests" -category = "dev" optional = false python-versions = "*" files = [ @@ -5554,7 +5318,6 @@ types-urllib3 = "*" name = "types-setuptools" version = "68.2.0.0" description = "Typing stubs for setuptools" -category = "dev" optional = false python-versions = "*" files = [ @@ -5566,7 +5329,6 @@ files = [ name = "types-tqdm" version = "4.66.0.2" description = "Typing stubs for tqdm" -category = "dev" optional = false python-versions = "*" files = [ @@ -5578,7 +5340,6 @@ files = [ name = "types-urllib3" version = "1.26.25.14" description = "Typing stubs for urllib3" -category = "dev" optional = false python-versions = "*" files = [ @@ -5590,7 +5351,6 @@ files = [ name = "typing-extensions" version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5602,7 +5362,6 @@ files = [ name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ @@ -5614,7 +5373,6 @@ files = [ name = "tzlocal" version = "5.0.1" description = "tzinfo object for the local timezone" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5632,7 +5390,6 @@ devenv = ["black", "check-manifest", "flake8", "pyroma", "pytest (>=4.3)", "pyte name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5647,7 +5404,6 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake name = "urllib3" version = "2.0.4" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5668,7 +5424,6 @@ zstd = ["zstandard (>=0.18.0)"] name = "virtualenv" version = "20.24.5" description = "Virtual Python Environment builder" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5689,7 +5444,6 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess name = "wcwidth" version = "0.2.6" description = "Measures the displayed width of unicode strings in a terminal" -category = "dev" optional = false python-versions = "*" files = [ @@ -5701,7 +5455,6 @@ files = [ name = "webcolors" version = "1.13" description = "A library for working with the color formats defined by HTML and CSS." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5717,7 +5470,6 @@ tests = ["pytest", "pytest-cov"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" -category = "dev" optional = false python-versions = "*" files = [ @@ -5729,7 +5481,6 @@ files = [ name = "websocket-client" version = "1.6.2" description = "WebSocket client for Python with low level API options" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5746,7 +5497,6 @@ test = ["websockets"] name = "werkzeug" version = "2.2.3" description = "The comprehensive WSGI web application library." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5764,7 +5514,6 @@ watchdog = ["watchdog"] name = "widgetsnbextension" version = "4.0.8" description = "Jupyter interactive widgets for Jupyter Notebook" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5776,7 +5525,6 @@ files = [ name = "win32-setctime" version = "1.1.0" description = "A small Python utility to set file creation time on Windows" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -5791,7 +5539,6 @@ dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"] name = "wsproto" version = "1.2.0" description = "WebSockets state-machine based protocol implementation" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -5802,10 +5549,21 @@ files = [ [package.dependencies] h11 = ">=0.9.0,<1" +[[package]] +name = "xmltodict" +version = "0.13.0" +description = "Makes working with XML feel like you are working with JSON" +optional = false +python-versions = ">=3.4" +files = [ + {file = "xmltodict-0.13.0-py2.py3-none-any.whl", hash = "sha256:aa89e8fd76320154a40d19a0df04a4695fb9dc5ba977cbb68ab3e4eb225e7852"}, + {file = "xmltodict-0.13.0.tar.gz", hash = "sha256:341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"}, +] + [extras] ingest = ["selenium"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "05d03e1ed3bdaa638f75c853dd28fb501a92d9209e757daf732abd56c78f8332" +content-hash = "ca7006861e8580466abc2a7e0555ef97365754f6406e83a777ee0a87bc8c1dc0" diff --git a/pyproject.toml b/pyproject.toml index 99f7e31..b6b5291 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,6 +49,7 @@ python-dotenv = "^1.0.0" seaborn = "^0.12.2" selenium = "^4.10.0" tqdm = "^4.65.0" +xmltodict = "^0.13.0" [tool.poetry.extras] ingest = ["selenium"] diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index d160826..93072c2 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -90,6 +90,16 @@ class YearlyResult: kpis: dict[FinancialKPIEnum, float] +@dataclass +class ShareCapital: + """Share Capital of company.""" + + value: float + currency: str # TODO define Enum + # TODO define Enum + type: str # noqa: A003 + + @dataclass class Company: """Company dataclass.""" @@ -99,7 +109,11 @@ class Company: name: str last_update: str relationships: list[CompanyRelationship] - # yearly_results: list[FinancialResults] + # yearly_results: Optional[list[FinancialResults]] + company_type: str # TODO define Enum + share_capital: ShareCapital | None + business_purpose: str + founding_date: str def to_dict(self) -> dict: """_summary_. From 413b43c615c40e63870896f2d3b30f6117539c9f Mon Sep 17 00:00:00 2001 From: TrisNol Date: Thu, 14 Sep 2023 16:47:11 +0200 Subject: [PATCH 02/20] checkpoint(data-ingestion): Unify date format in data --- .../Unternehmensregister/notebook.ipynb | 741 ++++++++---------- 1 file changed, 329 insertions(+), 412 deletions(-) diff --git a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb index e02e63c..f69136c 100644 --- a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb +++ b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb @@ -3963,7 +3963,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -4213,19 +4213,34 @@ " return None\n", "\n", "\n", + "from datetime import datetime\n", + "\n", + "\n", + "def transform_date_to_iso(date: str) -> str:\n", + " regex_yy = r\"^\\d{1,2}\\.\\d{1,2}\\.\\d{2}$\"\n", + "\n", + " if re.match(regex_yy, date):\n", + " input_format = \"%d.%m.%y\"\n", + " else:\n", + " input_format = \"%d.%m.%Y\"\n", + " date_temp = datetime.strptime(date, input_format)\n", + " return date_temp.strftime(\"%Y-%m-%d\")\n", + "\n", + "\n", + "# TODO transform date to iso format (YYYY-MM-DD)\n", "def map_founding_date(data: dict) -> str:\n", " text = str(data)\n", " entry_date = re.findall(\n", " r\".Tag der ersten Eintragung:(\\\\n| )?(\\d{1,2}\\.\\d{1,2}\\.\\d{2,4})\", text\n", " )\n", " if len(entry_date) == 1:\n", - " return entry_date[0][1]\n", + " return transform_date_to_iso(entry_date[0][1])\n", "\n", " entry_date = re.findall(\n", " r\".Gesellschaftsvertrag vom (\\d{1,2}\\.\\d{1,2}\\.\\d{2,4})\", text\n", " )\n", " if len(entry_date) == 1:\n", - " return entry_date[0]\n", + " return transform_date_to_iso(entry_date[0])\n", "\n", " if \"Eintragungstext\" in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Auszug\"]:\n", " if (\n", @@ -4239,7 +4254,7 @@ " ][0][\"Text\"]\n", " results = re.findall(r\"\\d{1,2}\\.\\d{1,2}\\.\\d{2,4}\", temp)\n", " if len(temp) == 1:\n", - " return results[0]\n", + " return transform_date_to_iso(results[0])\n", " if (\n", " \"Gruendungsmetadaten\"\n", " in data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Basisdaten_Register\"]\n", @@ -4247,7 +4262,7 @@ " temp = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Basisdaten_Register\"][\n", " \"Gruendungsmetadaten\"\n", " ][\"Gruendungsdatum\"]\n", - " return \".\".join(reversed(temp.split(\"-\")))\n", + " return temp\n", " # No reliable answer\n", " # raise ValueError()\n", " return None\n", @@ -4314,27 +4329,21 @@ "source": [ "import os\n", "import json\n", + "import glob\n", "import dataclasses\n", "from tqdm import tqdm" ] }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - " 0%| | 0/3381 [00:00 Date: Thu, 14 Sep 2023 18:17:02 +0200 Subject: [PATCH 03/20] checkpoint --- .../Unternehmensregister/notebook.ipynb | 625 +++++++++--------- .../models/company.py | 6 +- .../models/temp.md | 0 3 files changed, 319 insertions(+), 312 deletions(-) create mode 100644 src/aki_prj23_transparenzregister/models/temp.md diff --git a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb index f69136c..8c015c7 100644 --- a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb +++ b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb @@ -3963,7 +3963,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -4307,7 +4307,7 @@ " ]\n", " # TODO New features --> to be tested\n", " result[\"company_type\"] = map_rechtsform(result[\"name\"], data)\n", - " result[\"share_capital\"] = map_stammkapital(data, result[\"company_type\"])\n", + " result[\"capital\"] = map_stammkapital(data, result[\"company_type\"])\n", " result[\"business_purpose\"] = map_geschaeftszweck(data)\n", " result[\"founding_date\"] = map_founding_date(data)\n", "\n", @@ -4323,7 +4323,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -4336,14 +4336,21 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - " 2%|▏ | 55/3381 [00:00<00:06, 541.19it/s]" + " 0%| | 0/3381 [00:00 Date: Fri, 15 Sep 2023 15:39:42 +0200 Subject: [PATCH 04/20] checkpoint(data-ingestion): Include type in company relations, fix issue in capital for KGs --- .../Unternehmensregister/notebook.ipynb | 3781 +---------------- poetry.lock | 482 ++- 2 files changed, 334 insertions(+), 3929 deletions(-) diff --git a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb index 8c015c7..50cbbcb 100644 --- a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb +++ b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb @@ -3963,42 +3963,66 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "import re\n", "from aki_prj23_transparenzregister.models.company import Company\n", "\n", + "content = {\n", + " \"type\": \"Person | Company\",\n", + "}\n", + "\n", "\n", "def parse_stakeholder(data: dict) -> list:\n", " if \"Natuerliche_Person\" in data[\"Beteiligter\"]:\n", - " return {\n", - " \"name\": {\n", - " \"firstname\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Voller_Name\"][\n", - " \"Vorname\"\n", - " ],\n", - " \"lastname\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Voller_Name\"][\n", + " # It's a Compnay serving as a \"Kommanditist\" or similar\n", + " if data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Voller_Name\"][\"Vorname\"] is None:\n", + " return {\n", + " \"description\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Voller_Name\"][\n", " \"Nachname\"\n", " ],\n", - " },\n", - " \"date_of_birth\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Geburt\"][\n", - " \"Geburtsdatum\"\n", - " ]\n", - " if \"Geburt\" in data[\"Beteiligter\"][\"Natuerliche_Person\"]\n", - " else None,\n", - " \"location\": {\n", - " \"city\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"][-1][\n", - " \"Ort\"\n", + " \"location\": {\n", + " \"city\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"][-1][\n", + " \"Ort\"\n", + " ]\n", + " if type(data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"])\n", + " == list\n", + " else data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"][\"Ort\"]\n", + " },\n", + " \"role\": data[\"Rolle\"][\"Rollenbezeichnung\"][\"content\"],\n", + " \"type\": \"Company\",\n", + " }\n", + " else:\n", + " return {\n", + " \"name\": {\n", + " \"firstname\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\n", + " \"Voller_Name\"\n", + " ][\"Vorname\"],\n", + " \"lastname\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\n", + " \"Voller_Name\"\n", + " ][\"Nachname\"],\n", + " },\n", + " \"date_of_birth\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Geburt\"][\n", + " \"Geburtsdatum\"\n", " ]\n", - " if type(data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"]) == list\n", - " else data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"][\"Ort\"]\n", - " },\n", - " \"role\": data[\"Rolle\"][\"Rollenbezeichnung\"][\"content\"],\n", - " }\n", + " if \"Geburt\" in data[\"Beteiligter\"][\"Natuerliche_Person\"]\n", + " else None,\n", + " \"location\": {\n", + " \"city\": data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"][-1][\n", + " \"Ort\"\n", + " ]\n", + " if type(data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"])\n", + " == list\n", + " else data[\"Beteiligter\"][\"Natuerliche_Person\"][\"Anschrift\"][\"Ort\"]\n", + " },\n", + " \"role\": data[\"Rolle\"][\"Rollenbezeichnung\"][\"content\"],\n", + " \"type\": \"Person\",\n", + " }\n", " if \"Organisation\" in data[\"Beteiligter\"]:\n", " return {\n", - " \"role\": \"Organisation\",\n", + " \"role\": data[\"Rolle\"][\"Rollenbezeichnung\"][\"content\"],\n", " \"description\": data[\"Beteiligter\"][\"Organisation\"][\"Bezeichnung\"][\n", " \"Bezeichnung_Aktuell\"\n", " ],\n", @@ -4016,6 +4040,7 @@ " \"Postleitzahl\"\n", " ],\n", " },\n", + " \"type\": \"Company\",\n", " }\n", "\n", "\n", @@ -4147,12 +4172,12 @@ " base = data[\"XJustiz_Daten\"][\"Fachdaten_Register\"][\"Zusatzangaben\"][\n", " \"Personengesellschaft\"\n", " ][\"Zusatz_KG\"][\"Daten_Kommanditist\"]\n", - " if type(base) == \"list\":\n", + " if isinstance(base, list):\n", " for entry in base:\n", " # TODO link to persons using Ref_Rollennummer then extract [\"Hafteinlage\"] as below\n", - " capital[\"Zahl\"] = capital[\"Zahl\"] + entry[\"Zahl\"]\n", + " capital[\"Zahl\"] = capital[\"Zahl\"] + float(entry[\"Hafteinlage\"][\"Zahl\"])\n", " # TODO Improve multi assignment\n", - " capital[\"Waehrung\"] = entry[\"Waehrung\"]\n", + " capital[\"Waehrung\"] = entry[\"Hafteinlage\"][\"Waehrung\"]\n", " elif type(base) == \"dict\":\n", " capital = base[\"Hafteinlage\"]\n", " elif company_type in [\n", @@ -4198,7 +4223,7 @@ " else:\n", " return None\n", " return {\n", - " \"value\": capital[\"Zahl\"],\n", + " \"value\": float(capital[\"Zahl\"]),\n", " \"currency\": capital[\"Waehrung\"],\n", " \"type\": capital_type,\n", " }\n", @@ -4323,7 +4348,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -4336,3688 +4361,21 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - " 0%| | 0/3381 [00:00=3.8" files = [ - {file = "black-23.9.0-py3-none-any.whl", hash = "sha256:9366c1f898981f09eb8da076716c02fd021f5a0e63581c66501d68a2e4eab844"}, - {file = "black-23.9.0.tar.gz", hash = "sha256:3511c8a7e22ce653f89ae90dfddaf94f3bb7e2587a245246572d3b9c92adf066"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, + {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, + {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, + {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, + {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, + {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, + {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, + {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, + {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, + {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, + {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, ] [package.dependencies] @@ -713,13 +733,13 @@ files = [ [[package]] name = "cyclonedx-python-lib" -version = "4.2.1" +version = "4.2.2" description = "A library for producing CycloneDX SBOM (Software Bill of Materials) files." optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "cyclonedx_python_lib-4.2.1-py3-none-any.whl", hash = "sha256:b6b3818d48ed932545d3c5c819cbfe9a1fe452fba363388d2005ba9b054c81cb"}, - {file = "cyclonedx_python_lib-4.2.1.tar.gz", hash = "sha256:adcb074d00e5171754fc2f04269987cdf11342d2dbce2b9eeee7ebb218b1ed94"}, + {file = "cyclonedx_python_lib-4.2.2-py3-none-any.whl", hash = "sha256:fabc09bedc1e5aa2244d16bb72faaf88d2ff918c9a5f5c1a9026f75d1f896015"}, + {file = "cyclonedx_python_lib-4.2.2.tar.gz", hash = "sha256:d8fd40a94ab9130e9d1292ecebd35bd081f8a2d589c5259eaf7ec5caa5e95a43"}, ] [package.dependencies] @@ -1060,33 +1080,29 @@ urllib3 = ">=1.25.3" [[package]] name = "debugpy" -version = "1.7.0" +version = "1.8.0" description = "An implementation of the Debug Adapter Protocol for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "debugpy-1.7.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:17ad9a681aca1704c55b9a5edcb495fa8f599e4655c9872b7f9cf3dc25890d48"}, - {file = "debugpy-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1285920a3f9a75f5d1acf59ab1b9da9ae6eb9a05884cd7674f95170c9cafa4de"}, - {file = "debugpy-1.7.0-cp310-cp310-win32.whl", hash = "sha256:a6f43a681c5025db1f1c0568069d1d1bad306a02e7c36144912b26d9c90e4724"}, - {file = "debugpy-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:9e9571d831ad3c75b5fb6f3efcb71c471cf2a74ba84af6ac1c79ce00683bed4b"}, - {file = "debugpy-1.7.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:538765a41198aa88cc089295b39c7322dd598f9ef1d52eaae12145c63bf9430a"}, - {file = "debugpy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7e8cf91f8f3f9b5fad844dd88427b85d398bda1e2a0cd65d5a21312fcbc0c6f"}, - {file = "debugpy-1.7.0-cp311-cp311-win32.whl", hash = "sha256:18a69f8e142a716310dd0af6d7db08992aed99e2606108732efde101e7c65e2a"}, - {file = "debugpy-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7515a5ba5ee9bfe956685909c5f28734c1cecd4ee813523363acfe3ca824883a"}, - {file = "debugpy-1.7.0-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:bc8da67ade39d9e75608cdb8601d07e63a4e85966e0572c981f14e2cf42bcdef"}, - {file = "debugpy-1.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5036e918c6ba8fc4c4f1fd0207d81db634431a02f0dc2ba51b12fd793c8c9de"}, - {file = "debugpy-1.7.0-cp37-cp37m-win32.whl", hash = "sha256:d5be95b3946a4d7b388e45068c7b75036ac5a610f41014aee6cafcd5506423ad"}, - {file = "debugpy-1.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0e90314a078d4e3f009520c8387aba8f74c3034645daa7a332a3d1bb81335756"}, - {file = "debugpy-1.7.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:1565fd904f9571c430adca597771255cff4f92171486fced6f765dcbdfc8ec8d"}, - {file = "debugpy-1.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6516f36a2e95b3be27f171f12b641e443863f4ad5255d0fdcea6ae0be29bb912"}, - {file = "debugpy-1.7.0-cp38-cp38-win32.whl", hash = "sha256:2b0e489613bc066051439df04c56777ec184b957d6810cb65f235083aef7a0dc"}, - {file = "debugpy-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:7bf0b4bbd841b2397b6a8de15da9227f1164f6d43ceee971c50194eaed930a9d"}, - {file = "debugpy-1.7.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:ad22e1095b9977af432465c1e09132ba176e18df3834b1efcab1a449346b350b"}, - {file = "debugpy-1.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f625e427f21423e5874139db529e18cb2966bdfcc1cb87a195538c5b34d163d1"}, - {file = "debugpy-1.7.0-cp39-cp39-win32.whl", hash = "sha256:18bca8429d6632e2d3435055416d2d88f0309cc39709f4f6355c8d412cc61f24"}, - {file = "debugpy-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:dc8a12ac8b97ef3d6973c6679a093138c7c9b03eb685f0e253269a195f651559"}, - {file = "debugpy-1.7.0-py2.py3-none-any.whl", hash = "sha256:f6de2e6f24f62969e0f0ef682d78c98161c4dca29e9fb05df4d2989005005502"}, - {file = "debugpy-1.7.0.zip", hash = "sha256:676911c710e85567b17172db934a71319ed9d995104610ce23fd74a07f66e6f6"}, + {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, + {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, + {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, + {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, + {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, + {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, + {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, + {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, + {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, + {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, + {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, + {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, + {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, + {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, + {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, + {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, + {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, + {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, ] [[package]] @@ -1264,18 +1280,19 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.12.3" +version = "3.12.4" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.12.3-py3-none-any.whl", hash = "sha256:f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb"}, - {file = "filelock-3.12.3.tar.gz", hash = "sha256:0ecc1dd2ec4672a10c8550a8182f1bd0c0a5088470ecd5a125e45f49472fac3d"}, + {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, + {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, ] [package.extras] docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] +typing = ["typing-extensions (>=4.7.1)"] [[package]] name = "flask" @@ -1549,13 +1566,13 @@ pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_ve [[package]] name = "identify" -version = "2.5.27" +version = "2.5.28" description = "File identification library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.5.27-py2.py3-none-any.whl", hash = "sha256:fdb527b2dfe24602809b2201e033c2a113d7bdf716db3ca8e3243f735dcecaba"}, - {file = "identify-2.5.27.tar.gz", hash = "sha256:287b75b04a0e22d727bc9a41f0d4f3c1bcada97490fa6eabb5b28f0e9097e733"}, + {file = "identify-2.5.28-py2.py3-none-any.whl", hash = "sha256:87816de144bf46d161bd5b3e8f5596b16cade3b80be537087334b26bc5c177f3"}, + {file = "identify-2.5.28.tar.gz", hash = "sha256:94bb59643083ebd60dc996d043497479ee554381fbc5307763915cda49b0e78f"}, ] [package.extras] @@ -1678,21 +1695,21 @@ files = [ [[package]] name = "ipywidgets" -version = "8.1.0" +version = "8.1.1" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.0-py3-none-any.whl", hash = "sha256:6c8396cc7b8c95dfb4e9ab0054f48c002f045e7e5d7ae523f559d64e525a98ab"}, - {file = "ipywidgets-8.1.0.tar.gz", hash = "sha256:ce97dd90525b3066fd00094690964e7eac14cf9b7745d35565b5eeac20cce687"}, + {file = "ipywidgets-8.1.1-py3-none-any.whl", hash = "sha256:2b88d728656aea3bbfd05d32c747cfd0078f9d7e159cf982433b58ad717eed7f"}, + {file = "ipywidgets-8.1.1.tar.gz", hash = "sha256:40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.7,<3.1.0" +jupyterlab-widgets = ">=3.0.9,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.7,<4.1.0" +widgetsnbextension = ">=4.0.9,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -2049,38 +2066,38 @@ files = [ [[package]] name = "jupyterlab-server" -version = "2.24.0" +version = "2.25.0" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "jupyterlab_server-2.24.0-py3-none-any.whl", hash = "sha256:5f077e142bb8dc9b843d960f940c513581bceca3793a0d80f9c67d9522c4e876"}, - {file = "jupyterlab_server-2.24.0.tar.gz", hash = "sha256:4e6f99e0a5579bbbc32e449c4dbb039561d4f1a7827d5733273ed56738f21f07"}, + {file = "jupyterlab_server-2.25.0-py3-none-any.whl", hash = "sha256:c9f67a98b295c5dee87f41551b0558374e45d449f3edca153dd722140630dcb2"}, + {file = "jupyterlab_server-2.25.0.tar.gz", hash = "sha256:77c2f1f282d610f95e496e20d5bf1d2a7706826dfb7b18f3378ae2870d272fb7"}, ] [package.dependencies] babel = ">=2.10" jinja2 = ">=3.0.3" json5 = ">=0.9.0" -jsonschema = ">=4.17.3" +jsonschema = ">=4.18.0" jupyter-server = ">=1.21,<3" packaging = ">=21.3" -requests = ">=2.28" +requests = ">=2.31" [package.extras] docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] -openapi = ["openapi-core (>=0.16.1,<0.17.0)", "ruamel-yaml"] -test = ["hatch", "ipykernel", "jupyterlab-server[openapi]", "openapi-spec-validator (>=0.5.1,<0.7.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.7.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] [[package]] name = "jupyterlab-widgets" -version = "3.0.8" +version = "3.0.9" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.8-py3-none-any.whl", hash = "sha256:4715912d6ceab839c9db35953c764b3214ebbc9161c809f6e0510168845dfdf5"}, - {file = "jupyterlab_widgets-3.0.8.tar.gz", hash = "sha256:d428ab97b8d87cc7c54cbf37644d6e0f0e662f23876e05fa460a73ec3257252a"}, + {file = "jupyterlab_widgets-3.0.9-py3-none-any.whl", hash = "sha256:3cf5bdf5b897bf3bccf1c11873aa4afd776d7430200f765e0686bd352487b58d"}, + {file = "jupyterlab_widgets-3.0.9.tar.gz", hash = "sha256:6005a4e974c7beee84060fdfba341a3218495046de8ae3ec64888e5fe19fdb4c"}, ] [[package]] @@ -2216,13 +2233,13 @@ testing = ["black", "isort", "pytest (>=6,!=7.0.0)", "pytest-xdist (>=2)", "twin [[package]] name = "loguru" -version = "0.7.1" +version = "0.7.2" description = "Python logging made (stupidly) simple" optional = false python-versions = ">=3.5" files = [ - {file = "loguru-0.7.1-py3-none-any.whl", hash = "sha256:046bf970cb3cad77a28d607cbf042ac25a407db987a1e801c7f7e692469982f9"}, - {file = "loguru-0.7.1.tar.gz", hash = "sha256:7ba2a7d81b79a412b0ded69bd921e012335e80fd39937a633570f273a343579e"}, + {file = "loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb"}, + {file = "loguru-0.7.2.tar.gz", hash = "sha256:e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac"}, ] [package.dependencies] @@ -2230,7 +2247,7 @@ colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""} win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""} [package.extras] -dev = ["Sphinx (==7.2.5)", "colorama (==0.4.5)", "colorama (==0.4.6)", "freezegun (==1.1.0)", "freezegun (==1.2.2)", "mypy (==v0.910)", "mypy (==v0.971)", "mypy (==v1.4.1)", "pre-commit (==3.3.1)", "pytest (==6.1.2)", "pytest (==7.4.0)", "pytest-cov (==2.12.1)", "pytest-cov (==4.1.0)", "pytest-mypy-plugins (==1.9.3)", "pytest-mypy-plugins (==3.0.0)", "sphinx-autobuild (==2021.3.14)", "sphinx-rtd-theme (==1.3.0)", "tox (==3.27.1)", "tox (==4.11.0)"] +dev = ["Sphinx (==7.2.5)", "colorama (==0.4.5)", "colorama (==0.4.6)", "exceptiongroup (==1.1.3)", "freezegun (==1.1.0)", "freezegun (==1.2.2)", "mypy (==v0.910)", "mypy (==v0.971)", "mypy (==v1.4.1)", "mypy (==v1.5.1)", "pre-commit (==3.4.0)", "pytest (==6.1.2)", "pytest (==7.4.0)", "pytest-cov (==2.12.1)", "pytest-cov (==4.1.0)", "pytest-mypy-plugins (==1.9.3)", "pytest-mypy-plugins (==3.0.0)", "sphinx-autobuild (==2021.3.14)", "sphinx-rtd-theme (==1.3.0)", "tox (==3.27.1)", "tox (==4.11.0)"] [[package]] name = "lxml" @@ -2441,52 +2458,58 @@ files = [ [[package]] name = "matplotlib" -version = "3.7.2" +version = "3.7.3" description = "Python plotting package" optional = false python-versions = ">=3.8" files = [ - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:2699f7e73a76d4c110f4f25be9d2496d6ab4f17345307738557d345f099e07de"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a8035ba590658bae7562786c9cc6ea1a84aa49d3afab157e414c9e2ea74f496d"}, - {file = "matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f8e4a49493add46ad4a8c92f63e19d548b2b6ebbed75c6b4c7f46f57d36cdd1"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71667eb2ccca4c3537d9414b1bc00554cb7f91527c17ee4ec38027201f8f1603"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:152ee0b569a37630d8628534c628456b28686e085d51394da6b71ef84c4da201"}, - {file = "matplotlib-3.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:070f8dddd1f5939e60aacb8fa08f19551f4b0140fab16a3669d5cd6e9cb28fc8"}, - {file = "matplotlib-3.7.2-cp310-cp310-win32.whl", hash = "sha256:fdbb46fad4fb47443b5b8ac76904b2e7a66556844f33370861b4788db0f8816a"}, - {file = "matplotlib-3.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:23fb1750934e5f0128f9423db27c474aa32534cec21f7b2153262b066a581fd1"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:30e1409b857aa8a747c5d4f85f63a79e479835f8dffc52992ac1f3f25837b544"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:50e0a55ec74bf2d7a0ebf50ac580a209582c2dd0f7ab51bc270f1b4a0027454e"}, - {file = "matplotlib-3.7.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ac60daa1dc83e8821eed155796b0f7888b6b916cf61d620a4ddd8200ac70cd64"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:305e3da477dc8607336ba10bac96986d6308d614706cae2efe7d3ffa60465b24"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c308b255efb9b06b23874236ec0f10f026673ad6515f602027cc8ac7805352d"}, - {file = "matplotlib-3.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c521e21031632aa0d87ca5ba0c1c05f3daacadb34c093585a0be6780f698e4"}, - {file = "matplotlib-3.7.2-cp311-cp311-win32.whl", hash = "sha256:26bede320d77e469fdf1bde212de0ec889169b04f7f1179b8930d66f82b30cbc"}, - {file = "matplotlib-3.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:af4860132c8c05261a5f5f8467f1b269bf1c7c23902d75f2be57c4a7f2394b3e"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:a1733b8e84e7e40a9853e505fe68cc54339f97273bdfe6f3ed980095f769ddc7"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d9881356dc48e58910c53af82b57183879129fa30492be69058c5b0d9fddf391"}, - {file = "matplotlib-3.7.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f081c03f413f59390a80b3e351cc2b2ea0205839714dbc364519bcf51f4b56ca"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1cd120fca3407a225168238b790bd5c528f0fafde6172b140a2f3ab7a4ea63e9"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2c1590b90aa7bd741b54c62b78de05d4186271e34e2377e0289d943b3522273"}, - {file = "matplotlib-3.7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d2ff3c984b8a569bc1383cd468fc06b70d7b59d5c2854ca39f1436ae8394117"}, - {file = "matplotlib-3.7.2-cp38-cp38-win32.whl", hash = "sha256:5dea00b62d28654b71ca92463656d80646675628d0828e08a5f3b57e12869e13"}, - {file = "matplotlib-3.7.2-cp38-cp38-win_amd64.whl", hash = "sha256:0f506a1776ee94f9e131af1ac6efa6e5bc7cb606a3e389b0ccb6e657f60bb676"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:6515e878f91894c2e4340d81f0911857998ccaf04dbc1bba781e3d89cbf70608"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:71f7a8c6b124e904db550f5b9fe483d28b896d4135e45c4ea381ad3b8a0e3256"}, - {file = "matplotlib-3.7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12f01b92ecd518e0697da4d97d163b2b3aa55eb3eb4e2c98235b3396d7dad55f"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7e28d6396563955f7af437894a36bf2b279462239a41028323e04b85179058b"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbcf59334ff645e6a67cd5f78b4b2cdb76384cdf587fa0d2dc85f634a72e1a3e"}, - {file = "matplotlib-3.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:318c89edde72ff95d8df67d82aca03861240512994a597a435a1011ba18dbc7f"}, - {file = "matplotlib-3.7.2-cp39-cp39-win32.whl", hash = "sha256:ce55289d5659b5b12b3db4dc9b7075b70cef5631e56530f14b2945e8836f2d20"}, - {file = "matplotlib-3.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:2ecb5be2b2815431c81dc115667e33da0f5a1bcf6143980d180d09a717c4a12e"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fdcd28360dbb6203fb5219b1a5658df226ac9bebc2542a9e8f457de959d713d0"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3cca3e842b11b55b52c6fb8bd6a4088693829acbfcdb3e815fa9b7d5c92c1b"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebf577c7a6744e9e1bd3fee45fc74a02710b214f94e2bde344912d85e0c9af7c"}, - {file = "matplotlib-3.7.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:936bba394682049919dda062d33435b3be211dc3dcaa011e09634f060ec878b2"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bc221ffbc2150458b1cd71cdd9ddd5bb37962b036e41b8be258280b5b01da1dd"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35d74ebdb3f71f112b36c2629cf32323adfbf42679e2751252acd468f5001c07"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717157e61b3a71d3d26ad4e1770dc85156c9af435659a25ee6407dc866cb258d"}, - {file = "matplotlib-3.7.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:20f844d6be031948148ba49605c8b96dfe7d3711d1b63592830d650622458c11"}, - {file = "matplotlib-3.7.2.tar.gz", hash = "sha256:a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b"}, + {file = "matplotlib-3.7.3-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:085c33b27561d9c04386789d5aa5eb4a932ddef43cfcdd0e01735f9a6e85ce0c"}, + {file = "matplotlib-3.7.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c568e80e1c17f68a727f30f591926751b97b98314d8e59804f54f86ae6fa6a22"}, + {file = "matplotlib-3.7.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7baf98c5ad59c5c4743ea884bb025cbffa52dacdfdac0da3e6021a285a90377e"}, + {file = "matplotlib-3.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:236024f582e40dac39bca592258888b38ae47a9fed7b8de652d68d3d02d47d2b"}, + {file = "matplotlib-3.7.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12b4f6795efea037ce2d41e7c417ad8bd02d5719c6ad4a8450a0708f4a1cfb89"}, + {file = "matplotlib-3.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b2136cc6c5415b78977e0e8c608647d597204b05b1d9089ccf513c7d913733"}, + {file = "matplotlib-3.7.3-cp310-cp310-win32.whl", hash = "sha256:122dcbf9be0086e2a95d9e5e0632dbf3bd5b65eaa68c369363310a6c87753059"}, + {file = "matplotlib-3.7.3-cp310-cp310-win_amd64.whl", hash = "sha256:4aab27d9e33293389e3c1d7c881d414a72bdfda0fedc3a6bf46c6fa88d9b8015"}, + {file = "matplotlib-3.7.3-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:d5adc743de91e8e0b13df60deb1b1c285b8effea3d66223afceb14b63c9b05de"}, + {file = "matplotlib-3.7.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:55de4cf7cd0071b8ebf203981b53ab64f988a0a1f897a2dff300a1124e8bcd8b"}, + {file = "matplotlib-3.7.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ac03377fd908aaee2312d0b11735753e907adb6f4d1d102de5e2425249693f6c"}, + {file = "matplotlib-3.7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:755bafc10a46918ce9a39980009b54b02dd249594e5adf52f9c56acfddb5d0b7"}, + {file = "matplotlib-3.7.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a6094c6f8e8d18db631754df4fe9a34dec3caf074f6869a7db09f18f9b1d6b2"}, + {file = "matplotlib-3.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:272dba2f1b107790ed78ebf5385b8d14b27ad9e90419de340364b49fe549a993"}, + {file = "matplotlib-3.7.3-cp311-cp311-win32.whl", hash = "sha256:591c123bed1cb4b9996fb60b41a6d89c2ec4943244540776c5f1283fb6960a53"}, + {file = "matplotlib-3.7.3-cp311-cp311-win_amd64.whl", hash = "sha256:3bf3a178c6504694cee8b88b353df0051583f2f6f8faa146f67115c27c856881"}, + {file = "matplotlib-3.7.3-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:edf54cac8ee3603f3093616b40a931e8c063969756a4d78a86e82c2fea9659f7"}, + {file = "matplotlib-3.7.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:91e36a85ea639a1ba9f91427041eac064b04829945fe331a92617b6cb21d27e5"}, + {file = "matplotlib-3.7.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:caf5eaaf7c68f8d7df269dfbcaf46f48a70ff482bfcebdcc97519671023f2a7d"}, + {file = "matplotlib-3.7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74bf57f505efea376097e948b7cdd87191a7ce8180616390aef496639edf601f"}, + {file = "matplotlib-3.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee152a88a0da527840a426535514b6ed8ac4240eb856b1da92cf48124320e346"}, + {file = "matplotlib-3.7.3-cp312-cp312-win_amd64.whl", hash = "sha256:67a410a9c9e07cbc83581eeea144bbe298870bf0ac0ee2f2e10a015ab7efee19"}, + {file = "matplotlib-3.7.3-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:259999c05285cb993d7f2a419cea547863fa215379eda81f7254c9e932963729"}, + {file = "matplotlib-3.7.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3f4e7fd5a6157e1d018ce2166ec8e531a481dd4a36f035b5c23edfe05a25419a"}, + {file = "matplotlib-3.7.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:faa3d12d8811d08d14080a8b7b9caea9a457dc495350166b56df0db4b9909ef5"}, + {file = "matplotlib-3.7.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:336e88900c11441e458da01c8414fc57e04e17f9d3bb94958a76faa2652bcf6b"}, + {file = "matplotlib-3.7.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:12f4c0dd8aa280d796c8772ea8265a14f11a04319baa3a16daa5556065e8baea"}, + {file = "matplotlib-3.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1990955b11e7918d256cf3b956b10997f405b7917a3f1c7d8e69c1d15c7b1930"}, + {file = "matplotlib-3.7.3-cp38-cp38-win32.whl", hash = "sha256:e78707b751260b42b721507ad7aa60fe4026d7f51c74cca6b9cd8b123ebb633a"}, + {file = "matplotlib-3.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:e594ee43c59ea39ca5c6244667cac9d017a3527febc31f5532ad9135cf7469ec"}, + {file = "matplotlib-3.7.3-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:6eaa1cf0e94c936a26b78f6d756c5fbc12e0a58c8a68b7248a2a31456ce4e234"}, + {file = "matplotlib-3.7.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0a97af9d22e8ebedc9f00b043d9bbd29a375e9e10b656982012dded44c10fd77"}, + {file = "matplotlib-3.7.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f9c6c16597af660433ab330b59ee2934b832ee1fabcaf5cbde7b2add840f31e"}, + {file = "matplotlib-3.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7240259b4b9cbc62381f6378cff4d57af539162a18e832c1e48042fabc40b6b"}, + {file = "matplotlib-3.7.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:747c6191d2e88ae854809e69aa358dbf852ff1a5738401b85c1cc9012309897a"}, + {file = "matplotlib-3.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec726b08a5275d827aa91bb951e68234a4423adb91cf65bc0fcdc0f2777663f7"}, + {file = "matplotlib-3.7.3-cp39-cp39-win32.whl", hash = "sha256:40e3b9b450c6534f07278310c4e34caff41c2a42377e4b9d47b0f8d3ac1083a2"}, + {file = "matplotlib-3.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfc118642903a23e309b1da32886bb39a4314147d013e820c86b5fb4cb2e36d0"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:165c8082bf8fc0360c24aa4724a22eaadbfd8c28bf1ccf7e94d685cad48261e4"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ebd8470cc2a3594746ff0513aecbfa2c55ff6f58e6cef2efb1a54eb87c88ffa2"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7153453669c9672b52095119fd21dd032d19225d48413a2871519b17db4b0fde"}, + {file = "matplotlib-3.7.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:498a08267dc69dd8f24c4b5d7423fa584d7ce0027ba71f7881df05fc09b89bb7"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48999c4b19b5a0c058c9cd828ff6fc7748390679f6cf9a2ad653a3e802c87d3"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22d65d18b4ee8070a5fea5761d59293f1f9e2fac37ec9ce090463b0e629432fd"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c40cde976c36693cc0767e27cf5f443f91c23520060bd9496678364adfafe9c"}, + {file = "matplotlib-3.7.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:39018a2b17592448fbfdf4b8352955e6c3905359939791d4ff429296494d1a0c"}, + {file = "matplotlib-3.7.3.tar.gz", hash = "sha256:f09b3dd6bdeb588de91f853bbb2d6f0ff8ab693485b0c49035eaa510cb4f142e"}, ] [package.dependencies] @@ -2494,11 +2517,12 @@ contourpy = ">=1.0.1" cycler = ">=0.10" fonttools = ">=4.22.0" kiwisolver = ">=1.0.1" -numpy = ">=1.20" +numpy = ">=1.20,<2" packaging = ">=20.0" pillow = ">=6.2.0" -pyparsing = ">=2.3.1,<3.1" +pyparsing = ">=2.3.1" python-dateutil = ">=2.7" +setuptools_scm = ">=7" [[package]] name = "matplotlib-inline" @@ -3412,13 +3436,13 @@ virtualenv = ">=20.10.0" [[package]] name = "prettytable" -version = "3.8.0" +version = "3.9.0" description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" optional = false python-versions = ">=3.8" files = [ - {file = "prettytable-3.8.0-py3-none-any.whl", hash = "sha256:03481bca25ae0c28958c8cd6ac5165c159ce89f7ccde04d5c899b24b68bb13b7"}, - {file = "prettytable-3.8.0.tar.gz", hash = "sha256:031eae6a9102017e8c7c7906460d150b7ed78b20fd1d8c8be4edaf88556c07ce"}, + {file = "prettytable-3.9.0-py3-none-any.whl", hash = "sha256:a71292ab7769a5de274b146b276ce938786f56c31cf7cea88b6f3775d82fe8c8"}, + {file = "prettytable-3.9.0.tar.gz", hash = "sha256:f4ed94803c23073a90620b201965e5dc0bccf1760b7a7eaf3158cab8aaffdf34"}, ] [package.dependencies] @@ -3817,13 +3841,13 @@ zstd = ["zstandard"] [[package]] name = "pyparsing" -version = "3.0.9" +version = "3.1.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.6.8" files = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, ] [package.extras] @@ -4426,108 +4450,108 @@ notebook = ">=6.0" [[package]] name = "rpds-py" -version = "0.10.2" +version = "0.10.3" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c"}, - {file = "rpds_py-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08"}, - {file = "rpds_py-0.10.2-cp310-none-win32.whl", hash = "sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a"}, - {file = "rpds_py-0.10.2-cp310-none-win_amd64.whl", hash = "sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2"}, - {file = "rpds_py-0.10.2-cp311-none-win32.whl", hash = "sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214"}, - {file = "rpds_py-0.10.2-cp311-none-win_amd64.whl", hash = "sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab"}, - {file = "rpds_py-0.10.2-cp38-none-win32.whl", hash = "sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a"}, - {file = "rpds_py-0.10.2-cp38-none-win_amd64.whl", hash = "sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09"}, - {file = "rpds_py-0.10.2-cp39-none-win32.whl", hash = "sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968"}, - {file = "rpds_py-0.10.2-cp39-none-win_amd64.whl", hash = "sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1"}, - {file = "rpds_py-0.10.2.tar.gz", hash = "sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b"}, + {file = "rpds_py-0.10.3-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:485747ee62da83366a44fbba963c5fe017860ad408ccd6cd99aa66ea80d32b2e"}, + {file = "rpds_py-0.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c55f9821f88e8bee4b7a72c82cfb5ecd22b6aad04033334f33c329b29bfa4da0"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3b52a67ac66a3a64a7e710ba629f62d1e26ca0504c29ee8cbd99b97df7079a8"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3aed39db2f0ace76faa94f465d4234aac72e2f32b009f15da6492a561b3bbebd"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:271c360fdc464fe6a75f13ea0c08ddf71a321f4c55fc20a3fe62ea3ef09df7d9"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef5fddfb264e89c435be4adb3953cef5d2936fdeb4463b4161a6ba2f22e7b740"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a771417c9c06c56c9d53d11a5b084d1de75de82978e23c544270ab25e7c066ff"}, + {file = "rpds_py-0.10.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:52b5cbc0469328e58180021138207e6ec91d7ca2e037d3549cc9e34e2187330a"}, + {file = "rpds_py-0.10.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6ac3fefb0d168c7c6cab24fdfc80ec62cd2b4dfd9e65b84bdceb1cb01d385c33"}, + {file = "rpds_py-0.10.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8d54bbdf5d56e2c8cf81a1857250f3ea132de77af543d0ba5dce667183b61fec"}, + {file = "rpds_py-0.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cd2163f42868865597d89399a01aa33b7594ce8e2c4a28503127c81a2f17784e"}, + {file = "rpds_py-0.10.3-cp310-none-win32.whl", hash = "sha256:ea93163472db26ac6043e8f7f93a05d9b59e0505c760da2a3cd22c7dd7111391"}, + {file = "rpds_py-0.10.3-cp310-none-win_amd64.whl", hash = "sha256:7cd020b1fb41e3ab7716d4d2c3972d4588fdfbab9bfbbb64acc7078eccef8860"}, + {file = "rpds_py-0.10.3-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:1d9b5ee46dcb498fa3e46d4dfabcb531e1f2e76b477e0d99ef114f17bbd38453"}, + {file = "rpds_py-0.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:563646d74a4b4456d0cf3b714ca522e725243c603e8254ad85c3b59b7c0c4bf0"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e626b864725680cd3904414d72e7b0bd81c0e5b2b53a5b30b4273034253bb41f"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485301ee56ce87a51ccb182a4b180d852c5cb2b3cb3a82f7d4714b4141119d8c"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:42f712b4668831c0cd85e0a5b5a308700fe068e37dcd24c0062904c4e372b093"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c9141af27a4e5819d74d67d227d5047a20fa3c7d4d9df43037a955b4c748ec5"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef750a20de1b65657a1425f77c525b0183eac63fe7b8f5ac0dd16f3668d3e64f"}, + {file = "rpds_py-0.10.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e1a0ffc39f51aa5f5c22114a8f1906b3c17eba68c5babb86c5f77d8b1bba14d1"}, + {file = "rpds_py-0.10.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f4c179a7aeae10ddf44c6bac87938134c1379c49c884529f090f9bf05566c836"}, + {file = "rpds_py-0.10.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:176287bb998fd1e9846a9b666e240e58f8d3373e3bf87e7642f15af5405187b8"}, + {file = "rpds_py-0.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6446002739ca29249f0beaaf067fcbc2b5aab4bc7ee8fb941bd194947ce19aff"}, + {file = "rpds_py-0.10.3-cp311-none-win32.whl", hash = "sha256:c7aed97f2e676561416c927b063802c8a6285e9b55e1b83213dfd99a8f4f9e48"}, + {file = "rpds_py-0.10.3-cp311-none-win_amd64.whl", hash = "sha256:8bd01ff4032abaed03f2db702fa9a61078bee37add0bd884a6190b05e63b028c"}, + {file = "rpds_py-0.10.3-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:4cf0855a842c5b5c391dd32ca273b09e86abf8367572073bd1edfc52bc44446b"}, + {file = "rpds_py-0.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:69b857a7d8bd4f5d6e0db4086da8c46309a26e8cefdfc778c0c5cc17d4b11e08"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:975382d9aa90dc59253d6a83a5ca72e07f4ada3ae3d6c0575ced513db322b8ec"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35fbd23c1c8732cde7a94abe7fb071ec173c2f58c0bd0d7e5b669fdfc80a2c7b"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:106af1653007cc569d5fbb5f08c6648a49fe4de74c2df814e234e282ebc06957"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce5e7504db95b76fc89055c7f41e367eaadef5b1d059e27e1d6eabf2b55ca314"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aca759ada6b1967fcfd4336dcf460d02a8a23e6abe06e90ea7881e5c22c4de6"}, + {file = "rpds_py-0.10.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b5d4bdd697195f3876d134101c40c7d06d46c6ab25159ed5cbd44105c715278a"}, + {file = "rpds_py-0.10.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a657250807b6efd19b28f5922520ae002a54cb43c2401e6f3d0230c352564d25"}, + {file = "rpds_py-0.10.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:177c9dd834cdf4dc39c27436ade6fdf9fe81484758885f2d616d5d03c0a83bd2"}, + {file = "rpds_py-0.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e22491d25f97199fc3581ad8dd8ce198d8c8fdb8dae80dea3512e1ce6d5fa99f"}, + {file = "rpds_py-0.10.3-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:2f3e1867dd574014253b4b8f01ba443b9c914e61d45f3674e452a915d6e929a3"}, + {file = "rpds_py-0.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c22211c165166de6683de8136229721f3d5c8606cc2c3d1562da9a3a5058049c"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40bc802a696887b14c002edd43c18082cb7b6f9ee8b838239b03b56574d97f71"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e271dd97c7bb8eefda5cca38cd0b0373a1fea50f71e8071376b46968582af9b"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95cde244e7195b2c07ec9b73fa4c5026d4a27233451485caa1cd0c1b55f26dbd"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08a80cf4884920863623a9ee9a285ee04cef57ebedc1cc87b3e3e0f24c8acfe5"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763ad59e105fca09705d9f9b29ecffb95ecdc3b0363be3bb56081b2c6de7977a"}, + {file = "rpds_py-0.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:187700668c018a7e76e89424b7c1042f317c8df9161f00c0c903c82b0a8cac5c"}, + {file = "rpds_py-0.10.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:5267cfda873ad62591b9332fd9472d2409f7cf02a34a9c9cb367e2c0255994bf"}, + {file = "rpds_py-0.10.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:2ed83d53a8c5902ec48b90b2ac045e28e1698c0bea9441af9409fc844dc79496"}, + {file = "rpds_py-0.10.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:255f1a10ae39b52122cce26ce0781f7a616f502feecce9e616976f6a87992d6b"}, + {file = "rpds_py-0.10.3-cp38-none-win32.whl", hash = "sha256:a019a344312d0b1f429c00d49c3be62fa273d4a1094e1b224f403716b6d03be1"}, + {file = "rpds_py-0.10.3-cp38-none-win_amd64.whl", hash = "sha256:efb9ece97e696bb56e31166a9dd7919f8f0c6b31967b454718c6509f29ef6fee"}, + {file = "rpds_py-0.10.3-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:570cc326e78ff23dec7f41487aa9c3dffd02e5ee9ab43a8f6ccc3df8f9327623"}, + {file = "rpds_py-0.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cff7351c251c7546407827b6a37bcef6416304fc54d12d44dbfecbb717064717"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:177914f81f66c86c012311f8c7f46887ec375cfcfd2a2f28233a3053ac93a569"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:448a66b8266de0b581246ca7cd6a73b8d98d15100fb7165974535fa3b577340e"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bbac1953c17252f9cc675bb19372444aadf0179b5df575ac4b56faaec9f6294"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9dd9d9d9e898b9d30683bdd2b6c1849449158647d1049a125879cb397ee9cd12"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8c71ea77536149e36c4c784f6d420ffd20bea041e3ba21ed021cb40ce58e2c9"}, + {file = "rpds_py-0.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16a472300bc6c83fe4c2072cc22b3972f90d718d56f241adabc7ae509f53f154"}, + {file = "rpds_py-0.10.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9255e7165083de7c1d605e818025e8860636348f34a79d84ec533546064f07e"}, + {file = "rpds_py-0.10.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:53d7a3cd46cdc1689296348cb05ffd4f4280035770aee0c8ead3bbd4d6529acc"}, + {file = "rpds_py-0.10.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22da15b902f9f8e267020d1c8bcfc4831ca646fecb60254f7bc71763569f56b1"}, + {file = "rpds_py-0.10.3-cp39-none-win32.whl", hash = "sha256:850c272e0e0d1a5c5d73b1b7871b0a7c2446b304cec55ccdb3eaac0d792bb065"}, + {file = "rpds_py-0.10.3-cp39-none-win_amd64.whl", hash = "sha256:de61e424062173b4f70eec07e12469edde7e17fa180019a2a0d75c13a5c5dc57"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:af247fd4f12cca4129c1b82090244ea5a9d5bb089e9a82feb5a2f7c6a9fe181d"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3ad59efe24a4d54c2742929001f2d02803aafc15d6d781c21379e3f7f66ec842"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642ed0a209ced4be3a46f8cb094f2d76f1f479e2a1ceca6de6346a096cd3409d"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37d0c59548ae56fae01c14998918d04ee0d5d3277363c10208eef8c4e2b68ed6"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad6ed9e70ddfb34d849b761fb243be58c735be6a9265b9060d6ddb77751e3e8"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f94fdd756ba1f79f988855d948ae0bad9ddf44df296770d9a58c774cfbcca72"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77076bdc8776a2b029e1e6ffbe6d7056e35f56f5e80d9dc0bad26ad4a024a762"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:87d9b206b1bd7a0523375dc2020a6ce88bca5330682ae2fe25e86fd5d45cea9c"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:8efaeb08ede95066da3a3e3c420fcc0a21693fcd0c4396d0585b019613d28515"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a4d9bfda3f84fc563868fe25ca160c8ff0e69bc4443c5647f960d59400ce6557"}, + {file = "rpds_py-0.10.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:d27aa6bbc1f33be920bb7adbb95581452cdf23005d5611b29a12bb6a3468cc95"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:ed8313809571a5463fd7db43aaca68ecb43ca7a58f5b23b6e6c6c5d02bdc7882"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:e10e6a1ed2b8661201e79dff5531f8ad4cdd83548a0f81c95cf79b3184b20c33"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:015de2ce2af1586ff5dc873e804434185199a15f7d96920ce67e50604592cae9"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae87137951bb3dc08c7d8bfb8988d8c119f3230731b08a71146e84aaa919a7a9"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0bb4f48bd0dd18eebe826395e6a48b7331291078a879295bae4e5d053be50d4c"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:09362f86ec201288d5687d1dc476b07bf39c08478cde837cb710b302864e7ec9"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821392559d37759caa67d622d0d2994c7a3f2fb29274948ac799d496d92bca73"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7170cbde4070dc3c77dec82abf86f3b210633d4f89550fa0ad2d4b549a05572a"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:5de11c041486681ce854c814844f4ce3282b6ea1656faae19208ebe09d31c5b8"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:4ed172d0c79f156c1b954e99c03bc2e3033c17efce8dd1a7c781bc4d5793dfac"}, + {file = "rpds_py-0.10.3-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:11fdd1192240dda8d6c5d18a06146e9045cb7e3ba7c06de6973000ff035df7c6"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:f602881d80ee4228a2355c68da6b296a296cd22bbb91e5418d54577bbf17fa7c"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:691d50c99a937709ac4c4cd570d959a006bd6a6d970a484c84cc99543d4a5bbb"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24cd91a03543a0f8d09cb18d1cb27df80a84b5553d2bd94cba5979ef6af5c6e7"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fc2200e79d75b5238c8d69f6a30f8284290c777039d331e7340b6c17cad24a5a"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea65b59882d5fa8c74a23f8960db579e5e341534934f43f3b18ec1839b893e41"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:829e91f3a8574888b73e7a3feb3b1af698e717513597e23136ff4eba0bc8387a"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eab75a8569a095f2ad470b342f2751d9902f7944704f0571c8af46bede438475"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:061c3ff1f51ecec256e916cf71cc01f9975af8fb3af9b94d3c0cc8702cfea637"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:39d05e65f23a0fe897b6ac395f2a8d48c56ac0f583f5d663e0afec1da89b95da"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:4eca20917a06d2fca7628ef3c8b94a8c358f6b43f1a621c9815243462dcccf97"}, + {file = "rpds_py-0.10.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e8d0f0eca087630d58b8c662085529781fd5dc80f0a54eda42d5c9029f812599"}, + {file = "rpds_py-0.10.3.tar.gz", hash = "sha256:fcc1ebb7561a3e24a6588f7c6ded15d80aec22c66a070c757559b57b17ffd1cb"}, ] [[package]] @@ -4622,19 +4646,39 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "68.2.0" +version = "68.2.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-68.2.0-py3-none-any.whl", hash = "sha256:af3d5949030c3f493f550876b2fd1dd5ec66689c4ee5d5344f009746f71fd5a8"}, - {file = "setuptools-68.2.0.tar.gz", hash = "sha256:00478ca80aeebeecb2f288d3206b0de568df5cd2b8fada1209843cc9a8d88a48"}, + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "setuptools-scm" +version = "7.1.0" +description = "the blessed package to manage your versions by scm tags" +optional = false +python-versions = ">=3.7" +files = [ + {file = "setuptools_scm-7.1.0-py3-none-any.whl", hash = "sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e"}, + {file = "setuptools_scm-7.1.0.tar.gz", hash = "sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27"}, +] + +[package.dependencies] +packaging = ">=20.0" +setuptools = "*" +typing-extensions = "*" + +[package.extras] +test = ["pytest (>=6.2)", "virtualenv (>20)"] +toml = ["setuptools (>=42)"] [[package]] name = "shapely" @@ -5227,18 +5271,18 @@ telegram = ["requests"] [[package]] name = "traitlets" -version = "5.9.0" +version = "5.10.0" description = "Traitlets Python configuration system" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, - {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, + {file = "traitlets-5.10.0-py3-none-any.whl", hash = "sha256:417745a96681fbb358e723d5346a547521f36e9bd0d50ba7ab368fff5d67aa54"}, + {file = "traitlets-5.10.0.tar.gz", hash = "sha256:f584ea209240466e66e91f3c81aa7d004ba4cf794990b0c775938a1544217cd1"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.5.1)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "trio" @@ -5479,13 +5523,13 @@ files = [ [[package]] name = "websocket-client" -version = "1.6.2" +version = "1.6.3" description = "WebSocket client for Python with low level API options" optional = false python-versions = ">=3.8" files = [ - {file = "websocket-client-1.6.2.tar.gz", hash = "sha256:53e95c826bf800c4c465f50093a8c4ff091c7327023b10bfaff40cf1ef170eaa"}, - {file = "websocket_client-1.6.2-py3-none-any.whl", hash = "sha256:ce54f419dfae71f4bdba69ebe65bf7f0a93fe71bc009ad3a010aacc3eebad537"}, + {file = "websocket-client-1.6.3.tar.gz", hash = "sha256:3aad25d31284266bcfcfd1fd8a743f63282305a364b8d0948a43bd606acc652f"}, + {file = "websocket_client-1.6.3-py3-none-any.whl", hash = "sha256:6cfc30d051ebabb73a5fa246efdcc14c8fbebbd0330f8984ac3bb6d9edd2ad03"}, ] [package.extras] @@ -5512,13 +5556,13 @@ watchdog = ["watchdog"] [[package]] name = "widgetsnbextension" -version = "4.0.8" +version = "4.0.9" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.8-py3-none-any.whl", hash = "sha256:2e37f0ce9da11651056280c7efe96f2db052fe8fc269508e3724f5cbd6c93018"}, - {file = "widgetsnbextension-4.0.8.tar.gz", hash = "sha256:9ec291ba87c2dfad42c3d5b6f68713fa18be1acd7476569516b2431682315c17"}, + {file = "widgetsnbextension-4.0.9-py3-none-any.whl", hash = "sha256:91452ca8445beb805792f206e560c1769284267a30ceb1cec9f5bcc887d15175"}, + {file = "widgetsnbextension-4.0.9.tar.gz", hash = "sha256:3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385"}, ] [[package]] From bfe50ac76d7f33f223b73cb638aedca019aad002 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Fri, 15 Sep 2023 17:22:54 +0200 Subject: [PATCH 05/20] checkpoint(data-ingestion): Move Unternehmensregister code to .py --- .../Unternehmensregister/notebook.ipynb | 34 +- .../models/company.py | 40 +- .../unternehmensregister/extract.py | 4 +- .../unternehmensregister/load.py | 34 ++ .../unternehmensregister/transform.py | 464 ++++++++++++++++++ 5 files changed, 563 insertions(+), 13 deletions(-) rename Jupyter/API-tests/Unternehmensregister/main.py => src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py (98%) create mode 100644 src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py create mode 100644 src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py diff --git a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb index 50cbbcb..1b5e7a5 100644 --- a/Jupyter/API-tests/Unternehmensregister/notebook.ipynb +++ b/Jupyter/API-tests/Unternehmensregister/notebook.ipynb @@ -3970,10 +3970,6 @@ "import re\n", "from aki_prj23_transparenzregister.models.company import Company\n", "\n", - "content = {\n", - " \"type\": \"Person | Company\",\n", - "}\n", - "\n", "\n", "def parse_stakeholder(data: dict) -> list:\n", " if \"Natuerliche_Person\" in data[\"Beteiligter\"]:\n", @@ -4427,6 +4423,36 @@ "service = CompanyMongoService(connector)" ] }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Die Gesellschaft hat am 31.03.2022 mit der BayWa Aktiengesellschaft mit dem Sitz in München (Amtsgericht München HRB 4921) ']\n", + "['Zwischen der E.ON Kraftwerke GmbH mit dem Sitz in Hannover (Amtsgericht Hannover HRB 58691) ']\n" + ] + } + ], + "source": [ + "import re\n", + "\n", + "texts = [\n", + " \"\"\"\n", + "Die Gesellschaft hat am 31.03.2022 mit der BayWa Aktiengesellschaft mit dem Sitz in M\\u00fcnchen (Amtsgericht M\\u00fcnchen HRB 4921) als herrschender Gesellschaft einen Gewinnabf\\u00fchrungsvertrag geschlossen. \n", + "Die Gesellschafterversammlung hat mit Beschluss vom 31.03.2022 zugestimmt.\"\n", + "\"\"\",\n", + " \"\"\"Zwischen der E.ON Kraftwerke GmbH mit dem Sitz in Hannover (Amtsgericht Hannover HRB 58691) als herrschender Gesellschaft und der Gesellschaft als beherrschter Gesellschaft ist am 26.10.2004 und 08.11.2004 ein Beherrschungs- und Gewinnabf\\u00fchrungsvertrag abgeschlossen worden. \n", + "Die Gesellschafterversammlung der herrschenden Gesellschaft hat dem Vertrag am 08.11.2004 und die Gesellschafterversammlung der beherrschten Gesellschaft hat dem Vertrag am 08.11.2004 zugestimmt.\"\"\",\n", + "]\n", + "\n", + "for text in texts:\n", + " print(re.findall(r\"(.*)als herrschender Gesellschaft\", text))" + ] + }, { "cell_type": "code", "execution_count": 22, diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 7454d02..69972be 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -1,5 +1,4 @@ """Company model.""" -from abc import ABC from dataclasses import asdict, dataclass from enum import Enum @@ -33,16 +32,43 @@ class Location: zip_code: str | None = None -@dataclass -class CompanyRelationship(ABC): - """_summary_. +class CompanyRelationshipEnum(Enum): + """Type of companyrelations.""" - Args: - ABC (_type_): _description_ - """ + PERSON = "Person" + COMPANY = "Company" + + +@dataclass +class CompanyRelationship: + """Relation of a Company to a person or another company.""" role: RelationshipRoleEnum location: Location + type: CompanyRelationshipEnum # noqa: A003 + + +@dataclass +class PersonName: + """Combination of first and lastname as a class.""" + + firstname: str + lastname: str + + +@dataclass +class PersonToCompanyRelationship(CompanyRelationship): + """Extension of CompanyRelationship with extras for Person.""" + + name: PersonName + date_of_birth: str + + +@dataclass +class CompanyToCompanyRelationship(CompanyRelationship): + """Extension of CompanyRelationship with extras for Company.""" + + description: str class FinancialKPIEnum(Enum): diff --git a/Jupyter/API-tests/Unternehmensregister/main.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py similarity index 98% rename from Jupyter/API-tests/Unternehmensregister/main.py rename to src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py index 4d8e8c6..9095445 100644 --- a/Jupyter/API-tests/Unternehmensregister/main.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py @@ -14,7 +14,7 @@ from tqdm import tqdm logger = logging.getLogger() -def scrape(query: str, download_dir: list[str]): +def scrape(query: str, download_dir: list[str]) -> None: """Fetch results from Unternehmensregister for given query. Args: @@ -152,7 +152,7 @@ def get_num_files(path: str, pattern: str = "*.xml") -> int: return len(glob.glob1(path, pattern)) -def rename_latest_file(path: str, filename: str, pattern: str = "*.xml"): +def rename_latest_file(path: str, filename: str, pattern: str = "*.xml") -> None: """Rename file in dir with latest change date. Args: diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py new file mode 100644 index 0000000..79be6a4 --- /dev/null +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py @@ -0,0 +1,34 @@ +"""Load processed Unternehmensregister data into MongoDB.""" +import glob +import json +import os + +from tqdm import tqdm + +from aki_prj23_transparenzregister.models.company import Company +from aki_prj23_transparenzregister.utils.mongo.company_mongo_service import ( + CompanyMongoService, +) +from aki_prj23_transparenzregister.utils.mongo.connector import ( + MongoConnection, + MongoConnector, +) + +if __name__ == "__main__": + conn_string = MongoConnection( + hostname="localhost", + database="transparenzregister", + username="username", + password="", + port=27017, + ) + connector = MongoConnector(conn_string) + service = CompanyMongoService(connector) + + for file in tqdm(glob.glob1("./data/Unternehmensregister/transformed", "*.json")): + path = os.path.join("./data/Unternehmensregister/transformed", file) + with open(path, encoding="utf-8") as file_object: + data = json.loads(file_object.read()) + company: Company = Company(**data) + + service.insert(company) diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py new file mode 100644 index 0000000..2d0eea2 --- /dev/null +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -0,0 +1,464 @@ +"""Transform raw Unternehmensregister export (*.xml) to processed .json files for loading.""" +import dataclasses +import glob +import json +import os +import re +from datetime import datetime + +import xmltodict +from tqdm import tqdm + +from aki_prj23_transparenzregister.models.company import ( + Capital, + Company, + CompanyRelationship, + CompanyToCompanyRelationship, + Location, + PersonToCompanyRelationship, +) + + +def transform_xml_to_json(source_dir: str, target_dir: str) -> None: + """Convert all xml files in a directory to json files. + + Args: + source_dir (str): Directory hosting the xml files + target_dir (str): Target directory to move json files to + """ + for source_path in [ + os.path.normpath(i) for i in glob.glob(source_dir + "**/*.xml", recursive=True) + ]: + target_path = os.path.join( + target_dir, source_path.split("\\")[-1].replace(".xml", ".json") + ) + + with open(source_path, encoding="utf-8") as source_file: + # deepcode ignore HandleUnicode: Weird XML format no other solution + data = xmltodict.parse(source_file.read().encode()) + with open(target_path, "w", encoding="utf-8") as json_file: + json_file.write(json.dumps(data)) + + +def parse_stakeholder(data: dict) -> CompanyRelationship | None: + """Extract the company stakeholder/relation from a single "Beteiligung". + + Args: + data (dict): Data export + + Returns: + CompanyRelationship | None: Relationship if it could be processed + """ + if "Natuerliche_Person" in data["Beteiligter"]: + # It's a Compnay serving as a "Kommanditist" or similar + if data["Beteiligter"]["Natuerliche_Person"]["Voller_Name"]["Vorname"] is None: + return CompanyToCompanyRelationship( + **{ + "description": data["Beteiligter"]["Natuerliche_Person"][ + "Voller_Name" + ]["Nachname"], + "location": { + "city": data["Beteiligter"]["Natuerliche_Person"]["Anschrift"][ + -1 + ]["Ort"] + if isinstance( + data["Beteiligter"]["Natuerliche_Person"]["Anschrift"], list + ) + else data["Beteiligter"]["Natuerliche_Person"]["Anschrift"][ + "Ort" + ] + }, + "role": data["Rolle"]["Rollenbezeichnung"]["content"], + "type": "Company", + } + ) + return PersonToCompanyRelationship( + **{ + "name": { + "firstname": data["Beteiligter"]["Natuerliche_Person"][ + "Voller_Name" + ]["Vorname"], + "lastname": data["Beteiligter"]["Natuerliche_Person"][ + "Voller_Name" + ]["Nachname"], + }, + "date_of_birth": data["Beteiligter"]["Natuerliche_Person"]["Geburt"][ + "Geburtsdatum" + ] + if "Geburt" in data["Beteiligter"]["Natuerliche_Person"] + else None, + "location": { + "city": data["Beteiligter"]["Natuerliche_Person"]["Anschrift"][-1][ + "Ort" + ] + if isinstance( + data["Beteiligter"]["Natuerliche_Person"]["Anschrift"], list + ) + else data["Beteiligter"]["Natuerliche_Person"]["Anschrift"]["Ort"] + }, + "role": data["Rolle"]["Rollenbezeichnung"]["content"], + "type": "Person", + } + ) + if "Organisation" in data["Beteiligter"]: + return CompanyToCompanyRelationship( + **{ + "role": data["Rolle"]["Rollenbezeichnung"]["content"], + "description": data["Beteiligter"]["Organisation"]["Bezeichnung"][ + "Bezeichnung_Aktuell" + ], + "location": { + "city": data["Beteiligter"]["Organisation"]["Anschrift"]["Ort"], + "street": data["Beteiligter"]["Organisation"]["Anschrift"][ + "Strasse" + ] + if "Strasse" in data["Beteiligter"]["Organisation"]["Anschrift"] + else None, + "house_number": data["Beteiligter"]["Organisation"]["Anschrift"][ + "Hausnummer" + ] + if "Hausnummer" in data["Beteiligter"]["Organisation"]["Anschrift"] + else None, + "zip_code": data["Beteiligter"]["Organisation"]["Anschrift"][ + "Postleitzahl" + ], + }, + "type": "Company", + } + ) + return None + + +def loc_from_beteiligung(data: dict) -> Location: + """Extract the company location from the first relationship in the export. + + Args: + data (dict): Data export + + Returns: + Location: location + """ + return Location( + **{ + "city": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][0]["Beteiligter"]["Organisation"]["Anschrift"]["Ort"], + "zip_code": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][0]["Beteiligter"]["Organisation"]["Anschrift"]["Postleitzahl"], + "street": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][0]["Beteiligter"]["Organisation"]["Anschrift"]["Strasse"] + if "Strasse" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][0][ + "Beteiligter" + ]["Organisation"]["Anschrift"] + else None, + "house_number": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][0]["Beteiligter"]["Organisation"]["Anschrift"]["Hausnummer"] + if "Hausnummer" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][0][ + "Beteiligter" + ]["Organisation"]["Anschrift"] + else None, + } + ) + + +def name_from_organisation(data: dict) -> str: + """Extract the company from the description. + + Args: + data (dict): Data export + + Returns: + str: Company name + """ + return data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ + "Organisation" + ]["Bezeichnung"]["Bezeichnung_Aktuell"] + + +def name_from_beteiligung(data: dict) -> str: + """Extract the Company name from an Unternehmensregister export by using the first relationship found. + + Args: + data (dict): Data export + + Returns: + str: Company name + """ + return data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][0][ + "Beteiligter" + ]["Organisation"]["Bezeichnung"]["Bezeichnung_Aktuell"] + + +def map_rechtsform(company_name: str, data: dict) -> str | None: + """Extracts the company type from a given Unternehmensregister export. + + Args: + company_name (str): Name of the company as a fallback solution + data (dict): Data export + + Returns: + str | None: Company type if found + """ + try: + return data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ + "Rechtstraeger" + ]["Rechtsform"]["content"] + except Exception: + if ( + company_name.endswith("GmbH") + or company_name.endswith("UG") + or company_name.endswith("UG (haftungsbeschränkt)") + ): + return "Gesellschaft mit beschränkter Haftung" + if company_name.endswith("SE"): + return "Europäische Aktiengesellschaft (SE)" + if company_name.endswith("KG"): + return "Kommanditgesellschaft" + return None + + +def map_capital(data: dict, company_type: str) -> Capital | None: + """Extracts the company capital from the given Unternehmensregister export. + + Args: + data (dict): Data export + company_type (str): Type of company (e.g., 'Gesellschaft mit beschränkter Haftung') + + Returns: + Capital | None: Company Capital if found + """ + capital: dict = {"Zahl": 0.0, "Waehrung": ""} + if company_type == "Kommanditgesellschaft": + if "Zusatzangaben" not in data["XJustiz_Daten"]["Fachdaten_Register"]: + return None + capital_type = "Hafteinlage" + base = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ + "Personengesellschaft" + ]["Zusatz_KG"]["Daten_Kommanditist"] + if isinstance(base, list): + for entry in base: + # TODO link to persons using Ref_Rollennummer then extract ["Hafteinlage"] as below + capital["Zahl"] = capital["Zahl"] + float(entry["Hafteinlage"]["Zahl"]) + capital["Waehrung"] = entry["Hafteinlage"]["Waehrung"] + elif type(base) == "dict": + capital = base["Hafteinlage"] + elif company_type in [ + "Gesellschaft mit beschränkter Haftung", + "Europäische Aktiengesellschaft (SE)", + "Aktiengesellschaft", + "Kommanditgesellschaft auf Aktien", + "Rechtsform ausländischen Rechts HRB", + ]: + if "Zusatzangaben" not in data["XJustiz_Daten"]["Fachdaten_Register"]: + return None + if ( + "Zusatz_GmbH" + in data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ + "Kapitalgesellschaft" + ] + ): + capital_type = "Stammkapital" + capital = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ + "Kapitalgesellschaft" + ]["Zusatz_GmbH"]["Stammkapital"] + elif ( + "Zusatz_Aktiengesellschaft" + in data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ + "Kapitalgesellschaft" + ] + ): + capital_type = "Grundkapital" + capital = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ + "Kapitalgesellschaft" + ]["Zusatz_Aktiengesellschaft"]["Grundkapital"]["Hoehe"] + elif company_type in [ + "Einzelkaufmann", + "Einzelkauffrau", + "eingetragene Genossenschaft", + "Partnerschaft", + "Einzelkaufmann / Einzelkauffrau", + "Offene Handelsgesellschaft", + "Partnerschaftsgesellschaft", + None, + ]: + return None + else: + return None + return Capital( + **{ + "value": capital["Zahl"], + "currency": capital["Waehrung"], + "type": capital_type, + } + ) + + +def map_business_purpose(data: dict) -> str | None: + """Extracts the "Geschäftszweck" from a given Unternehmensregister export. + + Args: + data (dict): Data export + + Returns: + str | None: Business purpose if found + """ + try: + return data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ + "Gegenstand_oder_Geschaeftszweck" + ] + except Exception: + return None + + +def transform_date_to_iso(date: str) -> str: + """Transform a date in `DD.MM.YY(YY)` to `YYYY-MM-DD`. + + Args: + date (str): Input date + + Returns: + str: ISO date + """ + regex_yy = r"^\d{1,2}\.\d{1,2}\.\d{2}$" + + input_format = "%d.%m.%y" if re.match(regex_yy, date) else "%d.%m.%Y" + date_temp = datetime.strptime(date, input_format) + return date_temp.strftime("%Y-%m-%d") + + +def map_founding_date(data: dict) -> str | None: + """Extracts the founding date from a given Unternehmensregister export. + + Args: + data (dict): Data export + + Returns: + str | None: Founding date if found + """ + text = str(data) + entry_date = re.findall( + r".Tag der ersten Eintragung:(\\n| )?(\d{1,2}\.\d{1,2}\.\d{2,4})", text + ) + if len(entry_date) == 1: + return transform_date_to_iso(entry_date[0][1]) + + entry_date = re.findall( + r".Gesellschaftsvertrag vom (\d{1,2}\.\d{1,2}\.\d{2,4})", text + ) + if len(entry_date) == 1: + return transform_date_to_iso(entry_date[0]) + + if "Eintragungstext" in data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"] and ( + type(data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"]["Eintragungstext"]) + == "list" + ): + temp = data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"]["Eintragungstext"][ + 0 + ]["Text"] + results = re.findall(r"\d{1,2}\.\d{1,2}\.\d{2,4}", temp) + if len(temp) == 1: + return transform_date_to_iso(results[0]) + if ( + "Gruendungsmetadaten" + in data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"] + ): + return data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ + "Gruendungsmetadaten" + ]["Gruendungsdatum"] + # No reliable answer + return None + + +def map_unternehmensregister_json(data: dict) -> Company: + """Processes the Unternehmensregister structured export to a Company by using several helper methods. + + Args: + data (dict): Data export + + Returns: + Company: Transformed data + """ + result: dict = {"relationships": []} + + # TODO Refactor mapping - this is a nightmare... + result["id"] = { + "hr_number": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Instanzdaten" + ]["Aktenzeichen"], + "district_court": { + "name": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Organisation"]["Bezeichnung"]["Bezeichnung_Aktuell"] + if "Organisation" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][1][ + "Beteiligter" + ] + else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][ + 1 + ]["Beteiligter"]["Natuerliche_Person"]["Voller_Name"]["Nachname"], + "city": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Organisation"]["Sitz"]["Ort"] + if "Organisation" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][1][ + "Beteiligter" + ] + else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][ + 1 + ]["Beteiligter"]["Natuerliche_Person"]["Anschrift"]["Ort"], + }, + } + result["name"] = name_from_beteiligung(data) + + result["location"] = loc_from_beteiligung(data) + result["last_update"] = data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"][ + "letzte_Eintragung" + ] + # TODO New features --> to be tested + result["company_type"] = map_rechtsform(result["name"], data) + result["capital"] = map_capital(data, result["company_type"]) + result["business_purpose"] = map_business_purpose(data) + result["founding_date"] = map_founding_date(data) + + for i in range( + 2, len(data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"]) + ): + people = parse_stakeholder( + data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][i] + ) + result["relationships"].append(people) + return Company(**result) + + +if __name__ == "__main__": + from loguru import logger + + transform_xml_to_json( + "./data/Unternehmensregister/scraping/", "./data/Unternehmensregister/export/" + ) + + for file in tqdm(glob.glob1("./data/Unternehmensregister/export", "*.json")): + path = os.path.join("./data/Unternehmensregister/export", file) + with open(path, encoding="utf-8") as file_object: + try: + data = json.loads(file_object.read()) + company: Company = map_unternehmensregister_json(data) + + name = "".join(e for e in company.name if e.isalnum())[:50] + + with open( + f"./data/Unternehmensregister/transformed/{name}.json", + "w+", + encoding="utf-8", + ) as export_file: + json.dump( + dataclasses.asdict(company), export_file, ensure_ascii=False + ) + except Exception as e: + logger.error(f"Error in processing {path}\n{e}") + break From febcd59e395934d88d8861742f6c56a7efb0590e Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sun, 17 Sep 2023 19:20:28 +0200 Subject: [PATCH 06/20] test(data-extraction): Include first unit tests --- Jupyter/API-tests/News/notebook.ipynb | 34 +-- poetry.lock | 14 +- pyproject.toml | 1 + .../models/company.py | 37 ++- .../unternehmensregister/__init__.py | 1 + .../unternehmensregister/transform.py | 219 ++++++++++-------- tests/models/company_test.py | 20 +- tests/utils/data_extraction/__init__.py | 1 - .../unternehmensregister/extract_test.py | 81 +++++++ .../unternehmensregister/load_test.py | 0 .../unternehmensregister/transform_test.py | 208 +++++++++++++++++ 11 files changed, 492 insertions(+), 124 deletions(-) create mode 100644 src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/__init__.py delete mode 100644 tests/utils/data_extraction/__init__.py create mode 100644 tests/utils/data_extraction/unternehmensregister/extract_test.py create mode 100644 tests/utils/data_extraction/unternehmensregister/load_test.py create mode 100644 tests/utils/data_extraction/unternehmensregister/transform_test.py diff --git a/Jupyter/API-tests/News/notebook.ipynb b/Jupyter/API-tests/News/notebook.ipynb index 981ba18..f61b9c6 100644 --- a/Jupyter/API-tests/News/notebook.ipynb +++ b/Jupyter/API-tests/News/notebook.ipynb @@ -607,7 +607,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -638,24 +638,32 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'title': 'BMP Greengas: Gläubiger fordern knapp eine Dreiviertelmilliarde Euro von insolventer EnBW-Tochter', 'link': 'https://www.handelsblatt.com/unternehmen/energie/bmp-greengas-glaeubiger-fordern-mehr-als-700-millionen-euro-von-insolventer-enbw-tochter/29394600.html', 'description': 'BMP Greengas verkaufte Biomethan an Stadtwerke und Energieversorger in ganz Deutschland. Die Insolvenz des Gashändlers könnte die öffentliche Hand Hunderte Millionen Euro kosten.', 'category': 'Energie', 'pubDate': 'Fri, 15 Sep 2023 20:26:51 +0200', 'guid': 'https://www.handelsblatt.com/29394600.html', 'content:encoded': '\"\"BMP Greengas verkaufte Biomethan an Stadtwerke und Energieversorger in ganz Deutschland. Die Insolvenz des Gashändlers könnte die öffentliche Hand Hunderte Millionen Euro kosten.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/biogasanlage/29394638/3-format2020.jpg', '@type': 'image/jpeg', '@length': '852752'}}, {'title': 'Pharma- und Agrarchemiekonzern: Weniger Hierarchien, weniger Manager: Bayer-Chef startet erste Phase des Umbaus', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/pharma-und-agrarchemiekonzern-bayer-chef-bill-anderson-startet-erste-phase-des-umbaus/29393764.html', 'description': 'Bill Anderson hat der Bürokratie im eigenen Konzern den Kampf angesagt. Der neue CEO plant die Straffung der Bayer-Organisation – inklusive Stellenabbau. Führungskräfte sind verunsichert.', 'category': 'Industrie', 'pubDate': 'Fri, 15 Sep 2023 15:24:06 +0200', 'guid': 'https://www.handelsblatt.com/29393764.html', 'content:encoded': '\"\"Bill Anderson hat der Bürokratie im eigenen Konzern den Kampf angesagt. Der neue CEO plant die Straffung der Bayer-Organisation – inklusive Stellenabbau. Führungskräfte sind verunsichert.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/chempark-leverkusen/29394336/2-format2020.jpg', '@type': 'image/jpeg', '@length': '792899'}}, {'title': 'Offshore: Vattenfall will trotz Krise einen Mega-Windpark in der Nordsee bauen', 'link': 'https://www.handelsblatt.com/unternehmen/energie/offshore-vattenfall-will-trotz-krise-einen-mega-windpark-in-der-nordsee-bauen/29393316.html', 'description': 'Kurz nachdem der Konzern ein Windprojekt in Großbritannien gestoppt hat, kündigt er einen neuen Offshore-Park\\xa0in der Nordsee an. Der Unterschied liegt im System.', 'category': 'Energie', 'pubDate': 'Fri, 15 Sep 2023 20:01:15 +0200', 'guid': 'https://www.handelsblatt.com/29393316.html', 'content:encoded': '\"\"Kurz nachdem der Konzern ein Windprojekt in Großbritannien gestoppt hat, kündigt er einen neuen Offshore-Park\\xa0in der Nordsee an. Der Unterschied liegt im System.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/offshore/29394452/2-format2020.jpg', '@type': 'image/jpeg', '@length': '791043'}}, {'title': 'Anwälte: Probleme beseitigen, bevor sie entstehen: Das sind die Top-Dealmaker in Deutschlands Wirtschaftskanzleien', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/anwaelte-das-sind-die-top-dealmaker-in-deutschlands-wirtschaftskanzleien/29391254.html', 'description': 'Gute Wirtschaftsanwälte sind heute weit mehr als bloße Rechtsberater. Das Handelsblatt portraitiert die neue Elite unter den Topjuristen.', 'category': 'Dienstleister', 'pubDate': 'Sat, 16 Sep 2023 14:38:56 +0200', 'guid': 'https://www.handelsblatt.com/29391254.html', 'content:encoded': '\"\"Gute Wirtschaftsanwälte sind heute weit mehr als bloße Rechtsberater. Das Handelsblatt portraitiert die neue Elite unter den Topjuristen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/rechtsanwaelte/29392486/3-format2020.jpg', '@type': 'image/jpeg', '@length': '14415400'}}, {'title': 'Start-up-Check: Buntes Craft Beer aus Berlin: Vorreiter Fuerst Wiacek will auf dem deutschen Markt expandieren', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/start-up-check-craft-beer-vorreiter-fuerst-wiacek-will-auf-dem-deutschen-markt-expandieren/29390886.html', 'description': 'Das Start-up zählt zu den bekanntesten deutschen Namen in der Brauerszene. Mit Geld aus einer Crowdinvesting-Kampagne wollen die Gründer nun das Geschäft auf dem Heimatmarkt vorantreiben.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Sat, 16 Sep 2023 13:53:10 +0200', 'guid': 'https://www.handelsblatt.com/29390886.html', 'content:encoded': '\"\"Das Start-up zählt zu den bekanntesten deutschen Namen in der Brauerszene. Mit Geld aus einer Crowdinvesting-Kampagne wollen die Gründer nun das Geschäft auf dem Heimatmarkt vorantreiben.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/bierdosen-von-fuerst-wiacek/29391684/2-format2020.jpg', '@type': 'image/jpeg', '@length': '428952'}}, {'title': 'Interview: Berliner Hostel-Chef zur Adlon-Chefin: „Wir müssen gucken, ob unsere Gäste bald noch Geld haben, um zu verreisen“', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/interview-berliner-hostel-chef-zur-adlon-chefin-wir-muessen-gucken-ob-unsere-gaeste-bald-noch-geld-haben-um-zu-verreisen/29390926.html', 'description': 'Karina Ansos vom Berliner Hotel Adlon und Oliver Winter von den a&o-Hostels sprechen über den zurückliegenden Sommer, leere Betten und die neuen Ansprüche ihrer Gäste.', 'category': 'Dienstleister', 'pubDate': 'Sat, 16 Sep 2023 12:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29390926.html', 'content:encoded': '\"\"Karina Ansos vom Berliner Hotel Adlon und Oliver Winter von den a&o-Hostels sprechen über den zurückliegenden Sommer, leere Betten und die neuen Ansprüche ihrer Gäste.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/das-hotel-adlon-in-berlin/29391130/2-format2020.jpg', '@type': 'image/jpeg', '@length': '505831'}}, {'title': 'Metall- und Elektroindustrie: IG Metall sieht Vier-Tage-Woche nicht als Priorität', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/metall-und-elektroindustrie-ig-metall-sieht-vier-tage-woche-nicht-als-prioritaet/29395094.html', 'description': 'Der derzeitige\\xa0Tarifvertrag\\xa0läuft noch bis Herbst 2024. Die IG Metall wird bei den\\xa0Verhandlungen im November\\xa0den Schwerpunkt\\xa0auf höhere Löhne und Gehälter\\xa0legen.', 'category': 'Industrie', 'pubDate': 'Sat, 16 Sep 2023 11:56:46 +0200', 'guid': 'https://www.handelsblatt.com/29395094.html', 'content:encoded': '\"\"Der derzeitige\\xa0Tarifvertrag\\xa0läuft noch bis Herbst 2024. Die IG Metall wird bei den\\xa0Verhandlungen im November\\xa0den Schwerpunkt\\xa0auf höhere Löhne und Gehälter\\xa0legen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/ig-metall/29395102/2-format2020.jpg', '@type': 'image/jpeg', '@length': '253352'}}, {'title': 'Autoindustrie: Stellantis bietet in US-Autostreik 19,5 Prozent mehr Lohn', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/autoindustrie-stellantis-bietet-in-us-autostreik-19-5-prozent-mehr-lohn/29395018.html', 'description': 'Zuvor hatte der Autobauer seinen Angestellten einen 17,5 Prozent-Zuschlag zugesichert. Die Gewerkschaft UAW bestreikte daraufhin erstmals gleichzeitig GM, Ford und Chrysler.', 'category': 'Industrie', 'pubDate': 'Sat, 16 Sep 2023 09:20:19 +0200', 'guid': 'https://www.handelsblatt.com/29395018.html', 'content:encoded': '\"\"Zuvor hatte der Autobauer seinen Angestellten einen 17,5 Prozent-Zuschlag zugesichert. Die Gewerkschaft UAW bestreikte daraufhin erstmals gleichzeitig GM, Ford und Chrysler.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/uaw-gewerkschaftsstreik/29395020/2-format2020.jpg', '@type': 'image/jpeg', '@length': '1225813'}}, {'title': 'Private-Equity-Manager: Heuschrecken oder Mehrwert-Schaffer? Das sind die wichtigsten Köpfe der Private-Equity-Branche in Deutschland', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/private-equity-manager-das-sind-die-wichtigsten-koepfe-der-private-equity-branche-in-deutschland/29391250.html', 'description': 'Ihr Image ist ausbaufähig, ihr Gewerbe verschwiegen. Erfolgreiche Private-Equity-Manager erwirtschaften Millionen. Wir zeigen, wer das Geschäft vorantreibt.', 'category': 'Dienstleister', 'pubDate': 'Sat, 16 Sep 2023 08:14:23 +0200', 'guid': 'https://www.handelsblatt.com/29391250.html', 'content:encoded': '\"\"Ihr Image ist ausbaufähig, ihr Gewerbe verschwiegen. Erfolgreiche Private-Equity-Manager erwirtschaften Millionen. Wir zeigen, wer das Geschäft vorantreibt.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/private-equity-manager/29392528/2-format2020.jpg', '@type': 'image/jpeg', '@length': '16140205'}}, {'title': 'Vor Börsengang: Sandalen-Hersteller Birkenstock steigert Umsatz', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/vor-boersengang-sandalen-hersteller-birkenstock-steigert-umsatz/29394738.html', 'description': 'Vor allem die gestiegenen Preise haben den Umsatz des Unternehmens deutlich angekurbelt. Am Dienstag hatte Birkenstock seinen Börsengang in den USA angekündigt.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Fri, 15 Sep 2023 19:18:00 +0200', 'guid': 'https://www.handelsblatt.com/29394738.html', 'content:encoded': '\"\"Vor allem die gestiegenen Preise haben den Umsatz des Unternehmens deutlich angekurbelt. Am Dienstag hatte Birkenstock seinen Börsengang in den USA angekündigt.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/birkenstock-/29394746/2-format2020.jpg', '@type': 'image/jpeg', '@length': '567008'}}, {'title': 'Getränkehersteller: Beschäftigte bei Coca-Cola Deutschland erhalten mehr Geld', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/getraenkehersteller-beschaeftigte-bei-coca-cola-deutschland-erhalten-mehr-geld/29394378.html', 'description': 'Beide Seiten profitieren vom Ergebnis der Tarifverhandlungen des Getränkeherstellers. Während das Gehalt der Beschäftigten steigt, weitet der Konzern seine Produktion aus.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Fri, 15 Sep 2023 16:29:01 +0200', 'guid': 'https://www.handelsblatt.com/29394378.html', 'content:encoded': '\"\"Beide Seiten profitieren vom Ergebnis der Tarifverhandlungen des Getränkeherstellers. Während das Gehalt der Beschäftigten steigt, weitet der Konzern seine Produktion aus.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/coca-cola/29394398/4-format2020.jpg', '@type': 'image/jpeg', '@length': '423214'}}, {'title': 'Medien: Disney erhält Zehn-Milliarden-Angebot für TV-Geschäft – Streaming soll teurer werden', 'link': 'https://www.handelsblatt.com/unternehmen/it-medien/disney-disneys-streaming-angebot-soll-deutlich-teurer-werden/29393708.html', 'description': 'Im Juli hat Konzernchef Iger angedeutet, das klassische Fernsehgeschäft veräußern zu wollen. Nun gibt es erste Interessenten. Beim Streaming will der Konzern sparen.', 'category': 'Medien', 'pubDate': 'Fri, 15 Sep 2023 14:16:05 +0200', 'guid': 'https://www.handelsblatt.com/29393708.html', 'content:encoded': '\"\"Im Juli hat Konzernchef Iger angedeutet, das klassische Fernsehgeschäft veräußern zu wollen. Nun gibt es erste Interessenten. Beim Streaming will der Konzern sparen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/szene-aus-der-star-wars-serie-ahsoka/29394038/2-format2020.jpg', '@type': 'image/jpeg', '@length': '381338'}}, {'title': 'Familienunternehmen: „Unterschiedliche Auffassungen“ über Strategie: Haniel-Chef Thomas Schmidt geht', 'link': 'https://www.handelsblatt.com/unternehmen/mittelstand/familienunternehmer/familienunternehmen-haniel-chef-thomas-schmidt-geht-nachfolgersuche-laeuft/29392702.html', 'description': 'Der Vertrag von Thomas Schmidt wird nicht verlängert. Der Manager sollte Haniel neu aufstellen, brachte aber keine Stabilität in den Konzern. Der Wechsel kommt zu einem heiklen Zeitpunkt.', 'category': 'Familienunternehmer', 'pubDate': 'Fri, 15 Sep 2023 14:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29392702.html', 'content:encoded': '\"\"Der Vertrag von Thomas Schmidt wird nicht verlängert. Der Manager sollte Haniel neu aufstellen, brachte aber keine Stabilität in den Konzern. Der Wechsel kommt zu einem heiklen Zeitpunkt.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/thomas-schmidt/29393538/3-format2020.jpg', '@type': 'image/jpeg', '@length': '628007'}}, {'title': 'Fußball: Hertha-Investor übernimmt Premier-League-Club Everton', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/fussball-hertha-investor-uebernimmt-premier-league-club-everton/29393828.html', 'description': 'Der bisherige Besitzer Farhad Moshiri verkauft 777 Partners seine gesamte Beteiligung. Damit gehört der US-Investmentfirma nun eine ganze Reihe internationaler Klubs.', 'category': 'Dienstleister', 'pubDate': 'Fri, 15 Sep 2023 13:06:26 +0200', 'guid': 'https://www.handelsblatt.com/29393828.html', 'content:encoded': '\"\"Der bisherige Besitzer Farhad Moshiri verkauft 777 Partners seine gesamte Beteiligung. Damit gehört der US-Investmentfirma nun eine ganze Reihe internationaler Klubs.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/spiel-von-everton-gegen-manchester-city/29393854/2-format2020.jpg', '@type': 'image/jpeg', '@length': '419103'}}, {'title': 'Pharmakonzern: Novartis-Aktionäre stimmen für Sandoz-Abspaltung', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/pharmakonzern-novartis-aktionaere-stimmen-fuer-sandoz-abspaltung/29393702.html', 'description': 'Die Generikatochter des Schweizer Pharmakonzerns startet wohl im Index mittelgroßer Firmen. Die Schätzungen zum Börsenwert von Sandoz weichen stark voneinander ab.', 'category': 'Industrie', 'pubDate': 'Fri, 15 Sep 2023 12:49:04 +0200', 'guid': 'https://www.handelsblatt.com/29393702.html', 'content:encoded': '\"\"Die Generikatochter des Schweizer Pharmakonzerns startet wohl im Index mittelgroßer Firmen. Die Schätzungen zum Börsenwert von Sandoz weichen stark voneinander ab.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/novartis/29393800/2-format2020.jpg', '@type': 'image/jpeg', '@length': '284440'}}, {'title': 'Fraport: Betreiber von Frankfurter Flughafen verlängert Vertrag mit Chef', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/fraport-betreiber-von-frankfurter-flughafen-verlaengert-vertrag-mit-chef/29393576.html', 'description': 'Stefan Schulte bleibt Vorstandsvorsitzender von Fraport. Er muss in den kommenden Jahren die hohe Verschuldung des Konzerns abbauen – und dessen Weg zur Klimaneutralität ebnen.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Fri, 15 Sep 2023 12:39:52 +0200', 'guid': 'https://www.handelsblatt.com/29393576.html', 'content:encoded': '\"\"Stefan Schulte bleibt Vorstandsvorsitzender von Fraport. Er muss in den kommenden Jahren die hohe Verschuldung des Konzerns abbauen – und dessen Weg zur Klimaneutralität ebnen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/stefan-schulte-im-terminal-1-des-frankfurter-flughafens/29393602/2-format2020.jpg', '@type': 'image/jpeg', '@length': '509793'}}, {'title': 'Autoindustrie: Preiskampf in China bremst Absatz von Volkswagen', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/autoindustrie-preiskampf-in-china-bremst-absatz-von-volkswagen/29393448.html', 'description': 'Europas größter Autokonzern musste sein Absatzziel für das laufende Jahr bereits nach unten korrigieren. In anderen Märkten entwickelt sich das Geschäft von VW positiv.', 'category': 'Industrie', 'pubDate': 'Fri, 15 Sep 2023 11:55:27 +0200', 'guid': 'https://www.handelsblatt.com/29393448.html', 'content:encoded': '\"\"Europas größter Autokonzern musste sein Absatzziel für das laufende Jahr bereits nach unten korrigieren. In anderen Märkten entwickelt sich das Geschäft von VW positiv.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/volkswagen-werk-in-shanghai/29393522/2-format2020.jpg', '@type': 'image/jpeg', '@length': '28972'}}, {'title': 'Nationalmannschaft: Rettig wird Geschäftsführer Sport beim DFB', 'link': 'https://www.handelsblatt.com/unternehmen/management/nationalmannschaft-andreas-rettig-wird-geschaeftsfuehrer-sport-beim-dfb-/29393462.html', 'description': 'Der Deutsche Fußball-Bund hat einen Nachfolger für Oliver Bierhoff gefunden. Der ehemalige DFL-Geschäftsführer Rettig soll den Bereich der Nationalmannschaft übernehmen.', 'category': 'Management', 'pubDate': 'Fri, 15 Sep 2023 11:38:02 +0200', 'guid': 'https://www.handelsblatt.com/29393462.html', 'content:encoded': '\"\"Der Deutsche Fußball-Bund hat einen Nachfolger für Oliver Bierhoff gefunden. Der ehemalige DFL-Geschäftsführer Rettig soll den Bereich der Nationalmannschaft übernehmen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/andreas-rettig/29393518/2-format2020.jpg', '@type': 'image/jpeg', '@length': '395783'}}, {'title': 'Rüstungsindustrie: Lufthansa beteiligt sich an Rheinmetall-Konsortium für Kampfjet', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/ruestungsindustrie-lufthansa-beteiligt-sich-an-rheinmetall-konsortium-fuer-kampfjet/29393382.html', 'description': 'Rheinmetall produziert künftig Teile des Rumpfs des Lockheed-Kampfjets. Nun hat die Lufthansa bestätigt, dass sie sich an Fertigung und Wartung der Flugzeuge beteiligt.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Fri, 15 Sep 2023 11:22:21 +0200', 'guid': 'https://www.handelsblatt.com/29393382.html', 'content:encoded': '\"\"Rheinmetall produziert künftig Teile des Rumpfs des Lockheed-Kampfjets. Nun hat die Lufthansa bestätigt, dass sie sich an Fertigung und Wartung der Flugzeuge beteiligt.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/kampfjet-f-35/29393442/2-format2020.jpg', '@type': 'image/jpeg', '@length': '375575'}}, {'title': 'Dieselskandal: Verpflichtender Rückruf droht: Neue Vorwürfe gegen Mercedes im Dieselskandal', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/dieselskandal-mercedes-droht-neuer-behoerdenaerger-wegen-e-klasse/29393172.html', 'description': 'In einer wichtigen Baureihe soll der Konzern mehrere Abschalteinrichtungen genutzt haben. Ein freiwilliges Software-Update von Mercedes könnte dem Kraftfahrt-Bundesamt nicht ausreichen.', 'category': 'Industrie', 'pubDate': 'Fri, 15 Sep 2023 10:31:01 +0200', 'guid': 'https://www.handelsblatt.com/29393172.html', 'content:encoded': '\"\"In einer wichtigen Baureihe soll der Konzern mehrere Abschalteinrichtungen genutzt haben. Ein freiwilliges Software-Update von Mercedes könnte dem Kraftfahrt-Bundesamt nicht ausreichen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/mercedes-logo/29393210/3-format2020.jpg', '@type': 'image/jpeg', '@length': '534599'}}, {'title': 'Luftfahrt: Lufthansa lässt den Großraumjet A380 länger fliegen', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/luftfahrt-lufthansa-laesst-den-grossraumjet-a380-laenger-fliegen/29393056.html', 'description': 'Der Konzern leidet unter Lieferengpässen bei neuen Flugzeugen. Daher wird der Riesenjet A380 länger im Einsatz sein – und soll nun sogar eine neue Businessklasse bekommen.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Fri, 15 Sep 2023 10:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29393056.html', 'content:encoded': '\"\"Der Konzern leidet unter Lieferengpässen bei neuen Flugzeugen. Daher wird der Riesenjet A380 länger im Einsatz sein – und soll nun sogar eine neue Businessklasse bekommen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/a380-der-lufthansa/29393088/3-format2020.jpg', '@type': 'image/jpeg', '@length': '297925'}}, {'title': 'Bahn-Pünktlichkeit: Bahn-Pünktlichkeit auf Tiefpunkt: Jeder dritte Passagier war 2022 mit über 15 Minuten Verspätung am Ziel', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/bahn-puenktlichkeit-jeder-dritte-bahnreisende-war-2022-mit-mehr-als-15-minuten-verspaetung-am-ziel/29392970.html', 'description': 'Die pünktliche Ankunft ist entscheidend für ein gutes Bahn-Erlebnis, doch allzu oft scheitert es daran. Ein bestimmter Grund sticht dabei heraus.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Fri, 15 Sep 2023 07:58:20 +0200', 'guid': 'https://www.handelsblatt.com/29392970.html', 'content:encoded': '\"\"Die pünktliche Ankunft ist entscheidend für ein gutes Bahn-Erlebnis, doch allzu oft scheitert es daran. Ein bestimmter Grund sticht dabei heraus.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/ice/29392990/2-format2020.jpg', '@type': 'image/jpeg', '@length': '507442'}}, {'title': 'Unternehmensberater: Netzwerker und Problemlöser: So gewinnen Deutschlands Top-Berater das Vertrauen ihrer Auftraggeber', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/unternehmensberater-so-gewinnen-deutschlands-top-berater-das-vertrauen-ihrer-auftraggeber/29391258.html', 'description': 'Kaum ein Konzern kommt ohne Unternehmensberater aus. Doch einige wenige stechen aus der Masse heraus, weil selbst Vorstandschefs auf sie hören. Das sind die wichtigsten Köpfe.', 'category': 'Dienstleister', 'pubDate': 'Fri, 15 Sep 2023 04:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29391258.html', 'content:encoded': '\"\"Kaum ein Konzern kommt ohne Unternehmensberater aus. Doch einige wenige stechen aus der Masse heraus, weil selbst Vorstandschefs auf sie hören. Das sind die wichtigsten Köpfe.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/unternehmensberater/29392472/2-format2020.jpg', '@type': 'image/jpeg', '@length': '8070157'}}, {'title': 'Investmentbanking: Dienstleister statt „Master of the Universe“: Wie eine frische Generation von Bankern ihren Job neu definiert', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/investmentbanking-wie-eine-frische-generation-von-bankern-ihren-job-neu-definiert/29391262.html', 'description': 'Dealmaker und Newcomer: Die deutsche Elite der Investmentbanker tickt anders als ihre Vorgänger bis vor wenigen Jahren. Das sind die spannendsten Köpfe.', 'category': 'Dienstleister', 'pubDate': 'Fri, 15 Sep 2023 04:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29391262.html', 'content:encoded': '\"\"Dealmaker und Newcomer: Die deutsche Elite der Investmentbanker tickt anders als ihre Vorgänger bis vor wenigen Jahren. Das sind die spannendsten Köpfe.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/frankfurter-bankenviertel/29393596/2-format2020.jpg', '@type': 'image/jpeg', '@length': '1711319'}}, {'title': 'Management: Deutschlands neue Dealmaker: Wie Profis heute Vertrauen aufbauen und Geschäfte anbahnen', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/management-deutschlands-neue-dealmaker-wie-profis-heute-vertrauen-aufbauen-und-geschaefte-anbahnen/29343370.html', 'description': 'Große Bugwelle und eindrucksvoller Titel? Das zieht beim Kontakteknüpfen immer seltener. So knüpfen Deutschlands neue Dealmaker heute ihre Netzwerke.', 'category': 'Dienstleister', 'pubDate': 'Fri, 15 Sep 2023 04:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29343370.html', 'content:encoded': '\"\"Große Bugwelle und eindrucksvoller Titel? Das zieht beim Kontakteknüpfen immer seltener. So knüpfen Deutschlands neue Dealmaker heute ihre Netzwerke.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/die-dealmaker-der-deutschen-wirtschaft/29391896/4-format2020.png', '@type': 'image/png', '@length': '2299085'}}, {'title': 'Logistik: Frühere Haniel-Chefkontrolleurin Nowotne steigt bei der Kühne Holding ein', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/logistik-fruehere-haniel-chefkontrolleurin-doreen-nowotne-steigt-bei-der-kuehne-holding-ein/29392438.html', 'description': 'Die 50-Jährige wechselt ins Management der Beteiligungsgesellschaft von Milliardär Klaus Michael Kühne. Damit dürfte sie direkt mit einem großen Logistik-Deal beschäftigt sein.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Thu, 14 Sep 2023 18:56:10 +0200', 'guid': 'https://www.handelsblatt.com/29392438.html', 'content:encoded': '\"\"Die 50-Jährige wechselt ins Management der Beteiligungsgesellschaft von Milliardär Klaus Michael Kühne. Damit dürfte sie direkt mit einem großen Logistik-Deal beschäftigt sein.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/doreen-nowotne/28296996/4-format2020.jpg', '@type': 'image/jpeg', '@length': '164622'}}, {'title': 'HHLA-Deal: Hapag-Lloyd droht mit Abzug von Transportvolumen aus Hamburg', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/hhla-deal-hapag-lloyd-droht-mit-abzug-von-transportvolumen-aus-hamburg/29392196.html', 'description': 'Der Teilverkauf des Hafenbetreibers HHLA an MSC könnten der Reederei neue Konkurrenz vor der Haustür bescheren. Der Hapag-Chef droht mit Konsequenzen.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Thu, 14 Sep 2023 17:06:25 +0200', 'guid': 'https://www.handelsblatt.com/29392196.html', 'content:encoded': '\"\"Der Teilverkauf des Hafenbetreibers HHLA an MSC könnten der Reederei neue Konkurrenz vor der Haustür bescheren. Der Hapag-Chef droht mit Konsequenzen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/reederei-hapag-lloyd/29392238/2-format2020.jpg', '@type': 'image/jpeg', '@length': '465839'}}, {'title': 'Tabakbranche: Zigaretten-Nachfrage sinkt, elektronische Alternativen sind im Trend', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/tabakbranche-zigaretten-nachfrage-sinkt-elektronische-alternativen-sind-im-trend/29392122.html', 'description': 'E-Zigaretten werden in Deutschland immer beliebter. Experten warnen allerdings davor, die gesundheitlichen Folgen zu unterschätzen. Auch von Umweltschützern gibt es Kritik.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Thu, 14 Sep 2023 16:51:57 +0200', 'guid': 'https://www.handelsblatt.com/29392122.html', 'content:encoded': '\"\"E-Zigaretten werden in Deutschland immer beliebter. Experten warnen allerdings davor, die gesundheitlichen Folgen zu unterschätzen. Auch von Umweltschützern gibt es Kritik.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/e-zigarette/29392160/2-format2020.jpg', '@type': 'image/jpeg', '@length': '1303227'}}, {'title': 'Logistik: Auch Eurogate-Aktionär erwägt Gegenangebot zum HHLA-Deal', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/logistik-auch-eurogate-aktionaer-erwaegt-gegenangebot-zum-hhla-deal/29392116.html', 'description': 'Nach dem Milliardär Kühne reagiert auch der Unternehmer Thomas Eckelmann mit scharfer Kritik am Teilverkauf des Hafenbetreibers. Er bringt ebenfalls eine Gegenofferte ins Spiel.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Thu, 14 Sep 2023 16:40:00 +0200', 'guid': 'https://www.handelsblatt.com/29392116.html', 'content:encoded': '\"\"Nach dem Milliardär Kühne reagiert auch der Unternehmer Thomas Eckelmann mit scharfer Kritik am Teilverkauf des Hafenbetreibers. Er bringt ebenfalls eine Gegenofferte ins Spiel.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/eurogate-containerschiff/29392164/2-format2020.jpg', '@type': 'image/jpeg', '@length': '797989'}}, {'title': 'Erneuerbare Energien: Vattenfall plant weiteren Windpark in der Nordsee bei Borkum', 'link': 'https://www.handelsblatt.com/unternehmen/energie/erneuerbare-energien-vattenfall-plant-weiteren-windpark-in-der-nordsee-bei-borkum/29391822.html', 'description': 'Es ist bereits das zweite Offshore-Projekt des schwedischen Konzerns in der Nähe der Insel. Zusammen sollen beide Anlagen Strom für mehr als 1,7 Millionen Haushalte produzieren.', 'category': 'Energie', 'pubDate': 'Thu, 14 Sep 2023 15:22:23 +0200', 'guid': 'https://www.handelsblatt.com/29391822.html', 'content:encoded': '\"\"Es ist bereits das zweite Offshore-Projekt des schwedischen Konzerns in der Nähe der Insel. Zusammen sollen beide Anlagen Strom für mehr als 1,7 Millionen Haushalte produzieren.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/offshore-windpark/29391886/3-format2020.jpg', '@type': 'image/jpeg', '@length': '523248'}}, {'title': 'Elektromobilität: Volkswagen baut in Zwickau Stellen ab – Zukunft von 2000 weiteren Befristeten ungewiss', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/elektromobilitaet-volkswagen-baut-in-zwickau-hunderte-befristete-stellen-ab/29390984.html', 'description': 'Die Elektrowende bei Volkswagen stockt – das schlägt sich auch auf die Produktion nieder. Erste befristet Beschäftigte an VWs Haupt-Elektrostandort müssen nun gehen.', 'category': 'Industrie', 'pubDate': 'Thu, 14 Sep 2023 15:09:09 +0200', 'guid': 'https://www.handelsblatt.com/29390984.html', 'content:encoded': '\"\"Die Elektrowende bei Volkswagen stockt – das schlägt sich auch auf die Produktion nieder. Erste befristet Beschäftigte an VWs Haupt-Elektrostandort müssen nun gehen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/vw-produktion-in-zwickau/29393960/2-format2020.jpg', '@type': 'image/jpeg', '@length': '562332'}}, {'title': 'Rechtsstreit: Gute Aussichten für VW in Streit um italienische Millionenstrafe', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/rechtsstreit-gute-aussichten-fuer-vw-in-streit-um-italienische-millionenstrafe/29391826.html', 'description': 'Der Autobauer konnte im Verfahren um eine mögliche Doppelbestrafung einen Teilerfolg erzielen. In dem Rechtsstreit geht es um mutmaßlich illegale Abschalteinrichtungen.', 'category': 'Industrie', 'pubDate': 'Thu, 14 Sep 2023 15:04:00 +0200', 'guid': 'https://www.handelsblatt.com/29391826.html', 'content:encoded': '\"\"Der Autobauer konnte im Verfahren um eine mögliche Doppelbestrafung einen Teilerfolg erzielen. In dem Rechtsstreit geht es um mutmaßlich illegale Abschalteinrichtungen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/volkswagen/29391842/2-format2020.jpg', '@type': 'image/jpeg', '@length': '408014'}}, {'title': 'Bärchenwurst-Produzent: Deutscher Hersteller beantragt als erster in der EU Zulassung von Fleisch aus Zellkulturen', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/baerchenwurst-firma-erstmals-verkauf-von-laborfleisch-in-der-eu-beantragt/29391370.html', 'description': 'Fleisch, das im Bioreaktor gezüchtet wird, ist bisher nur in Singapur und den USA zugelassen. Nun will ein deutsches Familienunternehmen in der EU zum Pionier werden.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Thu, 14 Sep 2023 14:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29391370.html', 'content:encoded': '\"\"Fleisch, das im Bioreaktor gezüchtet wird, ist bisher nur in Singapur und den USA zugelassen. Nun will ein deutsches Familienunternehmen in der EU zum Pionier werden.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/symbolbild-hotdogs/29391650/3-format2020.jpg', '@type': 'image/jpeg', '@length': '478283'}}, {'title': 'Branchenverband VCI: „Keine Erholung in Sicht“: Chemieindustrie erwartet weitere Einbußen', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/branchenverband-vci-keine-erholung-in-sicht-chemieindustrie-erwartet-weitere-einbussen/29391256.html', 'description': 'Die deutsche Chemieindustrie drosselt ihre Produktion noch stärker als erwartet. In besonders betroffenen Bereichen steht bereits Kurzarbeit auf der Agenda.', 'category': 'Industrie', 'pubDate': 'Thu, 14 Sep 2023 11:32:00 +0200', 'guid': 'https://www.handelsblatt.com/29391256.html', 'content:encoded': '\"\"Die deutsche Chemieindustrie drosselt ihre Produktion noch stärker als erwartet. In besonders betroffenen Bereichen steht bereits Kurzarbeit auf der Agenda.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/chemieanlage-in-sachsen/29391314/2-format2020.jpg', '@type': 'image/jpeg', '@length': '289018'}}, {'title': 'Einzelhandel: Versteckte Preiserhöhungen: Carrefour prangert Nestlé, Pepsi und Unilever an', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/einzelhandel-carrefour-prangert-nestle-pepsi-und-unilever-wegen-versteckter-preiserhoehungen-an/29391006.html', 'description': 'Frankreich kämpft seit Monaten gegen steigende Lebensmittelpreise. Nun warnt die Kette Carrefour die Kunden vor gewissen Produkten. Das soll den Druck auf die Großkonzerne erhöhen.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Thu, 14 Sep 2023 10:35:49 +0200', 'guid': 'https://www.handelsblatt.com/29391006.html', 'content:encoded': '\"\"Frankreich kämpft seit Monaten gegen steigende Lebensmittelpreise. Nun warnt die Kette Carrefour die Kunden vor gewissen Produkten. Das soll den Druck auf die Großkonzerne erhöhen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/carrefour-markt/29391138/3-format2020.jpg', '@type': 'image/jpeg', '@length': '541675'}}, {'title': 'Industriekonzern: Thyssen-Krupp macht Klimaschutz zum Geschäft: Konzern bündelt grüne Technologien', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/greentech-thyssen-krupp-buendelt-technologien-in-neuer-sparte-decarbon/29390636.html', 'description': 'Thyssen-Krupp gründet eine neue Sparte. Bei der Umsetzung des Effizienzprogramms für den Konzern schlägt Vorstandschef Lopez zudem einen anderen Kurs ein als seine Vorgängerin.', 'category': 'Industrie', 'pubDate': 'Thu, 14 Sep 2023 08:02:42 +0200', 'guid': 'https://www.handelsblatt.com/29390636.html', 'content:encoded': '\"\"Thyssen-Krupp gründet eine neue Sparte. Bei der Umsetzung des Effizienzprogramms für den Konzern schlägt Vorstandschef Lopez zudem einen anderen Kurs ein als seine Vorgängerin.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/thyssen-krupp-setzt-auf-gruen/29390700/2-format2020.jpg', '@type': 'image/jpeg', '@length': '515385'}}, {'title': 'Gas: Chevron-Streik in Australien könnte sich auf LNG-Versorgung in Europa auswirken', 'link': 'https://www.handelsblatt.com/unternehmen/energie/gas-chevron-streik-in-australien-koennte-sich-auf-lng-versorgung-in-europa-auswirken/29390458.html', 'description': 'Zwei Wochen sollen zwei LNG-Projekte bestreikt werden. Dass der Ausfall länger anhält und zu einem anhaltenden Anstieg der Gaspreise führt, sei jedoch unwahrscheinlich.', 'category': 'Energie', 'pubDate': 'Thu, 14 Sep 2023 03:30:00 +0200', 'guid': 'https://www.handelsblatt.com/29390458.html', 'content:encoded': '\"\"Zwei Wochen sollen zwei LNG-Projekte bestreikt werden. Dass der Ausfall länger anhält und zu einem anhaltenden Anstieg der Gaspreise führt, sei jedoch unwahrscheinlich.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/chevron/29390470/2-format2020.jpg', '@type': 'image/jpeg', '@length': '501369'}}, {'title': 'Biotechkonzern: Moderna punktet mit Daten zu mRNA-Grippeimpfstoff – Aktie steigt um sieben Prozent', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/biotechkonzern-moderna-punktet-mit-daten-zu-mrna-grippeimpfstoff/29389474.html', 'description': 'Aufgrund der sinkenden Nachfrage nach Covid-Vakzinen setzt der US-Konzern auf neue Mittel. Der Grippeimpfstoff könnte nun schon in einem Jahr auf den Markt kommen.', 'category': 'Industrie', 'pubDate': 'Wed, 13 Sep 2023 16:35:04 +0200', 'guid': 'https://www.handelsblatt.com/29389474.html', 'content:encoded': '\"\"Aufgrund der sinkenden Nachfrage nach Covid-Vakzinen setzt der US-Konzern auf neue Mittel. Der Grippeimpfstoff könnte nun schon in einem Jahr auf den Markt kommen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/moderna/29389522/3-format2020.jpg', '@type': 'image/jpeg', '@length': '285836'}}, {'title': 'E-Autobauer: Vietnam: VinFast will in Asien expandieren', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/e-autobauer-vietnam-vinfast-will-in-asien-expandieren/29388566.html', 'description': 'Das Unternehmen plant eine Expansion in sieben asiatische Märkte und ein Werk in Indonesien. Zudem will der Autobauer noch weitere Märkte im Ausland erschließen.', 'category': 'Industrie', 'pubDate': 'Wed, 13 Sep 2023 12:06:00 +0200', 'guid': 'https://www.handelsblatt.com/29388566.html', 'content:encoded': '\"\"Das Unternehmen plant eine Expansion in sieben asiatische Märkte und ein Werk in Indonesien. Zudem will der Autobauer noch weitere Märkte im Ausland erschließen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/-vinfast-/29388568/2-format2020.jpg', '@type': 'image/jpeg', '@length': '613900'}}, {'title': 'Hamburger Hafen: „Diese Lösung ist ein Affront“ – Kühne erwägt Gegenofferte für Hamburger Hafenbetreiber', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/hamburger-hafen-kuehne-erwaegt-gegenofferte-fuer-hamburger-hafenbetreiber-hhla/29388256.html', 'description': 'Der Milliardär will sich mit dem Teilverkauf des Hamburger Hafenbetreibers an MSC nicht abfinden. Dabei könnte Kühne auch über seine eigene Holding eingreifen.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Wed, 13 Sep 2023 11:04:29 +0200', 'guid': 'https://www.handelsblatt.com/29388256.html', 'content:encoded': '\"\"Der Milliardär will sich mit dem Teilverkauf des Hamburger Hafenbetreibers an MSC nicht abfinden. Dabei könnte Kühne auch über seine eigene Holding eingreifen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/containerschiff-von-msc-in-hamburg/29388468/2-format2020.jpg', '@type': 'image/jpeg', '@length': '624341'}}, {'title': 'Luftfahrt: Führung der Kabinengewerkschaft UFO tritt zurück', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/luftfahrt-fuehrung-der-kabinengewerkschaft-ufo-tritt-zurueck/29388142.html', 'description': 'Beide UFO-Vorsitzende haben nach eigenen Angaben einen neuen Job. Ihre Aufgabe, die angeschlagene Arbeitnehmervertretung auf Kurs zu bringen, sei erfüllt.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Wed, 13 Sep 2023 10:30:00 +0200', 'guid': 'https://www.handelsblatt.com/29388142.html', 'content:encoded': '\"\"Beide UFO-Vorsitzende haben nach eigenen Angaben einen neuen Job. Ihre Aufgabe, die angeschlagene Arbeitnehmervertretung auf Kurs zu bringen, sei erfüllt.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/daniel-kassa-mbuambi/29388200/2-format2020.jpg', '@type': 'image/jpeg', '@length': '24852'}}, {'title': 'E-Autos: Sorge vor Jobabbau bei VW in Zwickau – Betriebsversammlung geplant', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/e-autos-sorge-vor-jobabbau-bei-vw-in-zwickau-betriebsversammlung-geplant/29388148.html', 'description': 'Die geringe Nachfrage nach Elektroautos könnte VW-Mitarbeitende mit befristeten Verträgen ihre Anstellung kosten. Vertrauensleute der IG Metall wenden sich jetzt mit einem Brief an die Geschäftsführung.', 'category': 'Industrie', 'pubDate': 'Wed, 13 Sep 2023 10:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29388148.html', 'content:encoded': '\"\"Die geringe Nachfrage nach Elektroautos könnte VW-Mitarbeitende mit befristeten Verträgen ihre Anstellung kosten. Vertrauensleute der IG Metall wenden sich jetzt mit einem Brief an die Geschäftsführung.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/vw-werk-in-zwickau/29388166/2-format2020.jpg', '@type': 'image/jpeg', '@length': '629358'}}, {'title': 'Automatisierung: ABB baut neues Roboterwerk: „Produktion in Europa wird nur mit mehr Automatisierung überleben“', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/automatisierung-abb-baut-neues-roboterwerk-in-schweden/29384396.html', 'description': 'Der Konzern investiert 280 Millionen Dollar in einen neuen Robotik-Campus. Experten rechnen mit weiter wachsender Nachfrage in Europa – noch haben sich einige Hoffnungen aber nicht erfüllt.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Wed, 13 Sep 2023 09:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29384396.html', 'content:encoded': '\"\"Der Konzern investiert 280 Millionen Dollar in einen neuen Robotik-Campus. Experten rechnen mit weiter wachsender Nachfrage in Europa – noch haben sich einige Hoffnungen aber nicht erfüllt.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/roboter-von-abb-im-einsatz/29387076/2-format2020.jpg', '@type': 'image/jpeg', '@length': '1040732'}}, {'title': 'Truck-Hersteller: Teurer als gedacht – Entwicklung selbstfahrender Lkw geht nur langsam voran', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/truck-hersteller-teurer-als-gedacht-entwicklung-selbstfahrender-lkw-geht-nur-langsam-voran/29386888.html', 'description': 'Autonomes Fahren auf der Straße kommt auch bei Lkw\\xa0später als geplant. Die Branche klagt über hohe Entwicklungskosten und den fehlenden politischen Willen.', 'category': 'Industrie', 'pubDate': 'Wed, 13 Sep 2023 04:00:00 +0200', 'guid': 'https://www.handelsblatt.com/29386888.html', 'content:encoded': '\"\"Autonomes Fahren auf der Straße kommt auch bei Lkw\\xa0später als geplant. Die Branche klagt über hohe Entwicklungskosten und den fehlenden politischen Willen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/selbstfahrender-lkw-von-daimler/29387132/2-format2020.jpg', '@type': 'image/jpeg', '@length': '314682'}}, {'title': 'IPO: Birkenstock beantragt Börsengang in den USA – Als Luxusmarke winkt eine hohe Bewertung', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/ipo-birkenstock-beantragt-boersengang-in-den-usa/29387586.html', 'description': 'Der deutsche Sandalenhersteller geht in der zweiten Oktoberwoche an die New Yorker Börse. Ein französischer Luxuskonzern spielt dabei eine entscheidende Rolle.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Tue, 12 Sep 2023 23:41:00 +0200', 'guid': 'https://www.handelsblatt.com/29387586.html', 'content:encoded': '\"\"Der deutsche Sandalenhersteller geht in der zweiten Oktoberwoche an die New Yorker Börse. Ein französischer Luxuskonzern spielt dabei eine entscheidende Rolle.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/sandalette-von-birkenstock/29388854/3-format2020.jpg', '@type': 'image/jpeg', '@length': '323255'}}, {'title': 'Bernard Looney: Verstöße gegen Verhaltenskodex: BP-Chef tritt mit sofortiger Wirkung zurück', 'link': 'https://www.handelsblatt.com/unternehmen/energie/oelkonzern-bp-chef-looney-tritt-mit-sofortiger-wirkung-zurueck/29387528.html', 'description': 'Bernard Looney hatte frühere Beziehungen zu Arbeitskollegen nicht vollständig transparent gemacht. Finanzchef Murray Auchincloss wird übergangsweise den Vorstandsvorsitz übernehmen.', 'category': 'Energie', 'pubDate': 'Tue, 12 Sep 2023 21:27:00 +0200', 'guid': 'https://www.handelsblatt.com/29387528.html', 'content:encoded': '\"\"Bernard Looney hatte frühere Beziehungen zu Arbeitskollegen nicht vollständig transparent gemacht. Finanzchef Murray Auchincloss wird übergangsweise den Vorstandsvorsitz übernehmen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/bernard-looney/29387530/2-format2020.jpg', '@type': 'image/jpeg', '@length': '348761'}}, {'title': 'Syntellix AG: Verdacht auf Insolvenzverschleppung: Ermittlungen gegen Utz Claassen', 'link': 'https://www.handelsblatt.com/unternehmen/industrie/syntellix-ag-verdacht-auf-insolvenzverschleppung-ermittlungen-gegen-utz-claassen/29386436.html', 'description': 'Mitarbeiter warten auf Gehälter, Anwälte auf Honorare. Jetzt ist der Vorstandschef im Visier der Justiz. Er weist die Vorwürfe als haltlos zurück.', 'category': 'Industrie', 'pubDate': 'Tue, 12 Sep 2023 18:31:56 +0200', 'guid': 'https://www.handelsblatt.com/29386436.html', 'content:encoded': '\"\"Mitarbeiter warten auf Gehälter, Anwälte auf Honorare. Jetzt ist der Vorstandschef im Visier der Justiz. Er weist die Vorwürfe als haltlos zurück.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/utz-claassen/29389318/2-format2020.jpg', '@type': 'image/jpeg', '@length': '518491'}}, {'title': 'Luftfahrt: Lufthansa lässt 20 Flugzeuge wegen Triebwerksproblem am Boden', 'link': 'https://www.handelsblatt.com/unternehmen/handel-konsumgueter/luftfahrt-lufthansa-laesst-20-flugzeuge-wegen-triebwerksproblem-am-boden/29387380.html', 'description': 'Wegen Mängeln müssen zahlreiche Triebwerke des Herstellers Pratt & Whitney überarbeitet werden. Das trifft auch die größte deutsche Fluggesellschaft.', 'category': 'Handel + Konsumgüter', 'pubDate': 'Tue, 12 Sep 2023 18:17:09 +0200', 'guid': 'https://www.handelsblatt.com/29387380.html', 'content:encoded': '\"\"Wegen Mängeln müssen zahlreiche Triebwerke des Herstellers Pratt & Whitney überarbeitet werden. Das trifft auch die größte deutsche Fluggesellschaft.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/lufthansa-flugzeug-des-modells-a320-neo/29389166/2-format2020.jpg', '@type': 'image/jpeg', '@length': '275726'}}, {'title': 'Pay-TV-Sender: Barny Mills steigt zum Chef von Sky Deutschland auf', 'link': 'https://www.handelsblatt.com/unternehmen/it-medien/pay-tv-sender-barny-mills-steigt-zum-chef-von-sky-deutschland-auf/29387120.html', 'description': 'Der bisherige Finanzvorstand wird Nachfolger von Devesh Raj. Dem Bezahlsender setzt vor allem die Konkurrenz durch Streaming-Dienste stark zu.', 'category': 'Medien', 'pubDate': 'Tue, 12 Sep 2023 17:04:57 +0200', 'guid': 'https://www.handelsblatt.com/29387120.html', 'content:encoded': '\"\"Der bisherige Finanzvorstand wird Nachfolger von Devesh Raj. Dem Bezahlsender setzt vor allem die Konkurrenz durch Streaming-Dienste stark zu.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/hauptsitz-von-sky-deutschland-in-unterfoehring-bei-muenchen/29387158/2-format2020.jpg', '@type': 'image/jpeg', '@length': '756209'}}, {'title': 'Detecon: „Das ist nicht unser Wachstumsweg“: Neuer Chef will Telekom-Beratertochter breiter aufstellen', 'link': 'https://www.handelsblatt.com/unternehmen/dienstleister/juergen-schaefer-neuer-chef-will-telekom-beratertochter-detecon-breiter-aufstellen-/29380426.html', 'description': 'Mit oder ohne die Telekom? Der ehemalige Roland-Berger-Berater Jürgen Schäfer will mehr Synergien mit dem Mutterkonzern nutzen – und gleichzeitig externe Kunden gewinnen.', 'category': 'Dienstleister', 'pubDate': 'Tue, 12 Sep 2023 15:47:29 +0200', 'guid': 'https://www.handelsblatt.com/29380426.html', 'content:encoded': '\"\"Mit oder ohne die Telekom? Der ehemalige Roland-Berger-Berater Jürgen Schäfer will mehr Synergien mit dem Mutterkonzern nutzen – und gleichzeitig externe Kunden gewinnen.', 'enclosure': {'@url': 'https://www.handelsblatt.com/images/juergen-schaefer/29384144/3-format2020.jpg', '@type': 'image/jpeg', '@length': '253142'}}]\n" + ] + } + ], "source": [ "handelsblatt = HandelsblattRSS()\n", "\n", "items = handelsblatt.get_news_for_category()\n", + "print(items)\n", + "# from utils.mongodb.mongo import MongoConnector, MongoNewsService\n", "\n", - "from utils.mongodb.mongo import MongoConnector, MongoNewsService\n", + "# connector = MongoConnector(\n", + "# hostname=\"trisnol.tech\",\n", + "# database=\"transparenzregister\",\n", + "# username=\"root\",\n", + "# password=\"pR0R0v2e2\",\n", + "# )\n", "\n", - "connector = MongoConnector(\n", - " hostname=\"trisnol.tech\",\n", - " database=\"transparenzregister\",\n", - " username=\"root\",\n", - " password=\"pR0R0v2e2\",\n", - ")\n", - "\n", - "service = MongoNewsService(connector)" + "# service = MongoNewsService(connector)" ] }, { @@ -870,7 +878,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.7" + "version": "3.11.3" }, "orig_nbformat": 4 }, diff --git a/poetry.lock b/poetry.lock index f5ed50a..06d4b01 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,5 +1,17 @@ # This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +[[package]] +name = "aenum" +version = "3.1.15" +description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants" +optional = false +python-versions = "*" +files = [ + {file = "aenum-3.1.15-py2-none-any.whl", hash = "sha256:27b1710b9d084de6e2e695dab78fe9f269de924b51ae2850170ee7e1ca6288a5"}, + {file = "aenum-3.1.15-py3-none-any.whl", hash = "sha256:e0dfaeea4c2bd362144b87377e2c61d91958c5ed0b4daf89cb6f45ae23af6288"}, + {file = "aenum-3.1.15.tar.gz", hash = "sha256:8cbd76cd18c4f870ff39b24284d3ea028fbe8731a58df3aa581e434c575b9559"}, +] + [[package]] name = "alabaster" version = "0.7.13" @@ -5610,4 +5622,4 @@ ingest = ["selenium"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "ca7006861e8580466abc2a7e0555ef97365754f6406e83a777ee0a87bc8c1dc0" +content-hash = "f8728eee18c7402c68901a65631c2f3c0bd1a04fb1fb952f3746a12f47a9b9a4" diff --git a/pyproject.toml b/pyproject.toml index b6b5291..bd3f5a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,7 @@ version = "0.1.0" [tool.poetry.dependencies] SQLAlchemy = {version = "^1.4.46", extras = ["mypy"]} +aenum = "^3.1.15" dash = "^2.11.1" dash-bootstrap-components = "^1.4.2" deutschland = {git = "https://github.com/TrisNol/deutschland.git", branch = "hotfix/python-3.11-support"} diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 69972be..0668b5f 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -2,16 +2,31 @@ from dataclasses import asdict, dataclass from enum import Enum +from aenum import MultiValueEnum -class RelationshipRoleEnum(Enum): - """_summary_. - Args: - Enum (_type_): _description_ - """ +class RelationshipRoleEnum(str, MultiValueEnum): + """Roles taken by entities in relationships to a Company.""" - STAKEHOLDER = "" ORGANISATION = "ORGANISATION" + KOMMANDITIST = "Kommanditist(in)", "Kommanditist" + GESCHAEFTSFUEHRER = "Geschäftsführer(in)", "Geschäftsführer" + PROKURIST = "Prokurist(in)", "Prokurist" + VORSTAND = "Vorstand" + INHABER = "Inhaber(in)", "Inhaber" + HAFTENDER_GESELLSCHAFTER = ( + "Persönlich haftende(r) Gesellschafter(in)", + "Persönlich haftender Gesellschafter", + ) + LIQUIDATOR = "Liquidator(in)", "Liquidator" + PARTNER = "Partner(in)", "Partner" + DIREKTOR = "Geschäftsführende(r) Direktor(in)", "Geschäftsführender Direktor" + LEITUNG = "Mitglied des Leitungsorgans" + VORSTANDSVORSITZENDER = "Vorstandsvorsitzende(r)", "Vorstandsvorsitzender" + NACHFOLGER = "Rechtsnachfolger" + STAENDIGER_VERTRETER = "Ständige(r) Vertreter(in)" + SONSTIGER_VERTRETER = "Sonstige(r) Vertreter(in)", "Sonstiger Vertreter" + GESCHAEFTSLEITER = "Geschäftsleiter(in)", "Geschäftsleiter" @dataclass @@ -32,7 +47,7 @@ class Location: zip_code: str | None = None -class CompanyRelationshipEnum(Enum): +class CompanyRelationshipEnum(str, Enum): """Type of companyrelations.""" PERSON = "Person" @@ -136,10 +151,10 @@ class Company: last_update: str relationships: list[CompanyRelationship] # yearly_results: Optional[list[FinancialResults]] - company_type: str # TODO define Enum - capital: Capital | None - business_purpose: str - founding_date: str + company_type: str | None = None # TODO define Enum + capital: Capital | None | None = None + business_purpose: str | None = None + founding_date: str | None = None def to_dict(self) -> dict: """_summary_. diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/__init__.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/__init__.py new file mode 100644 index 0000000..9cc8256 --- /dev/null +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/__init__.py @@ -0,0 +1 @@ +"""Everything regarding data extraction from the Unternehmensregister.""" diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index 2d0eea2..2f599a4 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -12,10 +12,14 @@ from tqdm import tqdm from aki_prj23_transparenzregister.models.company import ( Capital, Company, + CompanyID, CompanyRelationship, + CompanyRelationshipEnum, CompanyToCompanyRelationship, Location, + PersonName, PersonToCompanyRelationship, + RelationshipRoleEnum, ) @@ -57,7 +61,45 @@ def parse_stakeholder(data: dict) -> CompanyRelationship | None: "description": data["Beteiligter"]["Natuerliche_Person"][ "Voller_Name" ]["Nachname"], - "location": { + "location": Location( + **{ + "city": data["Beteiligter"]["Natuerliche_Person"][ + "Anschrift" + ][-1]["Ort"] + if isinstance( + data["Beteiligter"]["Natuerliche_Person"]["Anschrift"], + list, + ) + else data["Beteiligter"]["Natuerliche_Person"]["Anschrift"][ + "Ort" + ] + } + ), + "role": RelationshipRoleEnum( + data["Rolle"]["Rollenbezeichnung"]["content"] + ), + "type": CompanyRelationshipEnum.COMPANY, + } + ) + return PersonToCompanyRelationship( + **{ + "name": PersonName( + **{ + "firstname": data["Beteiligter"]["Natuerliche_Person"][ + "Voller_Name" + ]["Vorname"], + "lastname": data["Beteiligter"]["Natuerliche_Person"][ + "Voller_Name" + ]["Nachname"], + } + ), + "date_of_birth": data["Beteiligter"]["Natuerliche_Person"]["Geburt"][ + "Geburtsdatum" + ] + if "Geburt" in data["Beteiligter"]["Natuerliche_Person"] + else None, + "location": Location( + **{ "city": data["Beteiligter"]["Natuerliche_Person"]["Anschrift"][ -1 ]["Ort"] @@ -67,37 +109,12 @@ def parse_stakeholder(data: dict) -> CompanyRelationship | None: else data["Beteiligter"]["Natuerliche_Person"]["Anschrift"][ "Ort" ] - }, - "role": data["Rolle"]["Rollenbezeichnung"]["content"], - "type": "Company", - } - ) - return PersonToCompanyRelationship( - **{ - "name": { - "firstname": data["Beteiligter"]["Natuerliche_Person"][ - "Voller_Name" - ]["Vorname"], - "lastname": data["Beteiligter"]["Natuerliche_Person"][ - "Voller_Name" - ]["Nachname"], - }, - "date_of_birth": data["Beteiligter"]["Natuerliche_Person"]["Geburt"][ - "Geburtsdatum" - ] - if "Geburt" in data["Beteiligter"]["Natuerliche_Person"] - else None, - "location": { - "city": data["Beteiligter"]["Natuerliche_Person"]["Anschrift"][-1][ - "Ort" - ] - if isinstance( - data["Beteiligter"]["Natuerliche_Person"]["Anschrift"], list - ) - else data["Beteiligter"]["Natuerliche_Person"]["Anschrift"]["Ort"] - }, - "role": data["Rolle"]["Rollenbezeichnung"]["content"], - "type": "Person", + } + ), + "role": RelationshipRoleEnum( + data["Rolle"]["Rollenbezeichnung"]["content"] + ), + "type": CompanyRelationshipEnum.PERSON, } ) if "Organisation" in data["Beteiligter"]: @@ -107,23 +124,29 @@ def parse_stakeholder(data: dict) -> CompanyRelationship | None: "description": data["Beteiligter"]["Organisation"]["Bezeichnung"][ "Bezeichnung_Aktuell" ], - "location": { - "city": data["Beteiligter"]["Organisation"]["Anschrift"]["Ort"], - "street": data["Beteiligter"]["Organisation"]["Anschrift"][ - "Strasse" - ] - if "Strasse" in data["Beteiligter"]["Organisation"]["Anschrift"] - else None, - "house_number": data["Beteiligter"]["Organisation"]["Anschrift"][ - "Hausnummer" - ] - if "Hausnummer" in data["Beteiligter"]["Organisation"]["Anschrift"] - else None, - "zip_code": data["Beteiligter"]["Organisation"]["Anschrift"][ - "Postleitzahl" - ], - }, - "type": "Company", + "location": Location( + **{ + "city": data["Beteiligter"]["Organisation"]["Anschrift"]["Ort"], + "street": data["Beteiligter"]["Organisation"]["Anschrift"][ + "Strasse" + ] + if "Strasse" in data["Beteiligter"]["Organisation"]["Anschrift"] + else None, + "house_number": data["Beteiligter"]["Organisation"][ + "Anschrift" + ]["Hausnummer"] + if "Hausnummer" + in data["Beteiligter"]["Organisation"]["Anschrift"] + else None, + "zip_code": data["Beteiligter"]["Organisation"]["Anschrift"][ + "Postleitzahl" + ] + if "Postleitzahl" + in data["Beteiligter"]["Organisation"]["Anschrift"] + else None, + } + ), + "type": CompanyRelationshipEnum.COMPANY, } ) return None @@ -166,20 +189,6 @@ def loc_from_beteiligung(data: dict) -> Location: ) -def name_from_organisation(data: dict) -> str: - """Extract the company from the description. - - Args: - data (dict): Data export - - Returns: - str: Company name - """ - return data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ - "Organisation" - ]["Bezeichnung"]["Bezeichnung_Aktuell"] - - def name_from_beteiligung(data: dict) -> str: """Extract the Company name from an Unternehmensregister export by using the first relationship found. @@ -374,6 +383,48 @@ def map_founding_date(data: dict) -> str | None: return None +def map_company_id(data: dict) -> CompanyID: + """Retrieve Company ID from export. + + Args: + data (dict): Data export + + Returns: + CompanyID: ID of the company + """ + return CompanyID( + **{ + "hr_number": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Instanzdaten" + ]["Aktenzeichen"], + "district_court": { + "name": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Organisation"]["Bezeichnung"][ + "Bezeichnung_Aktuell" + ] + if "Organisation" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"] + else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Natuerliche_Person"]["Voller_Name"]["Nachname"], + "city": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Organisation"]["Sitz"]["Ort"] + if "Organisation" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"] + else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Natuerliche_Person"]["Anschrift"]["Ort"], + }, + } + ) + + def map_unternehmensregister_json(data: dict) -> Company: """Processes the Unternehmensregister structured export to a Company by using several helper methods. @@ -386,33 +437,7 @@ def map_unternehmensregister_json(data: dict) -> Company: result: dict = {"relationships": []} # TODO Refactor mapping - this is a nightmare... - result["id"] = { - "hr_number": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Instanzdaten" - ]["Aktenzeichen"], - "district_court": { - "name": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"]["Organisation"]["Bezeichnung"]["Bezeichnung_Aktuell"] - if "Organisation" - in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][1][ - "Beteiligter" - ] - else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][ - 1 - ]["Beteiligter"]["Natuerliche_Person"]["Voller_Name"]["Nachname"], - "city": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"]["Organisation"]["Sitz"]["Ort"] - if "Organisation" - in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][1][ - "Beteiligter" - ] - else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"]["Beteiligung"][ - 1 - ]["Beteiligter"]["Natuerliche_Person"]["Anschrift"]["Ort"], - }, - } + result["id"] = map_company_id(data) result["name"] = name_from_beteiligung(data) result["location"] = loc_from_beteiligung(data) @@ -438,12 +463,12 @@ def map_unternehmensregister_json(data: dict) -> Company: if __name__ == "__main__": from loguru import logger - transform_xml_to_json( - "./data/Unternehmensregister/scraping/", "./data/Unternehmensregister/export/" - ) - - for file in tqdm(glob.glob1("./data/Unternehmensregister/export", "*.json")): - path = os.path.join("./data/Unternehmensregister/export", file) + # transform_xml_to_json( + # "./data/Unternehmensregister/scraping/", "./data/Unternehmensregister/export/" + # ) + base_path = "./Jupyter/API-tests/Unternehmensregister/data/Unternehmensregister" + for file in tqdm(glob.glob1(f"{base_path}/export", "*.json")): + path = os.path.join(f"{base_path}/export", file) with open(path, encoding="utf-8") as file_object: try: data = json.loads(file_object.read()) @@ -452,7 +477,7 @@ if __name__ == "__main__": name = "".join(e for e in company.name if e.isalnum())[:50] with open( - f"./data/Unternehmensregister/transformed/{name}.json", + f"{base_path}/transformed/{name}.json", "w+", encoding="utf-8", ) as export_file: diff --git a/tests/models/company_test.py b/tests/models/company_test.py index a044492..df0a0f7 100644 --- a/tests/models/company_test.py +++ b/tests/models/company_test.py @@ -1,7 +1,12 @@ """Test Models.company.""" -from aki_prj23_transparenzregister.models.company import Company, CompanyID, Location +from aki_prj23_transparenzregister.models.company import ( + Capital, + Company, + CompanyID, + Location, +) def test_to_dict() -> None: @@ -10,12 +15,17 @@ def test_to_dict() -> None: location = Location( city="Insmouth", house_number="19", street="Harbor", zip_code="1890" ) + capital = Capital(currency="BTC", type="Virtual assets", value=42) company = Company( id=company_id, last_update="Tomorrow", location=location, name="BLANK GmbH", relationships=[], + business_purpose="Blockchain and NFTs", + capital=capital, + company_type="Something", + founding_date="Yesterday", ) assert company.to_dict() == { @@ -32,4 +42,12 @@ def test_to_dict() -> None: }, "name": "BLANK GmbH", "relationships": [], + "business_purpose": "Blockchain and NFTs", + "capital": { + "value": capital.value, + "currency": capital.currency, + "type": capital.type, + }, + "company_type": "Something", + "founding_date": "Yesterday", } diff --git a/tests/utils/data_extraction/__init__.py b/tests/utils/data_extraction/__init__.py deleted file mode 100644 index 0388525..0000000 --- a/tests/utils/data_extraction/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Tests for data_extraction.""" diff --git a/tests/utils/data_extraction/unternehmensregister/extract_test.py b/tests/utils/data_extraction/unternehmensregister/extract_test.py new file mode 100644 index 0000000..21d4c50 --- /dev/null +++ b/tests/utils/data_extraction/unternehmensregister/extract_test.py @@ -0,0 +1,81 @@ +import glob +import os +from tempfile import TemporaryDirectory + +from aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister import ( + extract, +) + + +def prepare_temporary_dir(directory: str, formats: list[str]) -> None: + for index in range(len(formats)): + test_file = os.path.join(directory, f"file-{index}.{formats[index]}") + with open(test_file, "w") as file: + file.write(f"Hello There {index}") + + +def test_rename_latest_file() -> None: + with TemporaryDirectory() as temp_dir: + # Create some test files in the temporary directory + test_file1 = os.path.join(temp_dir, "file1.xml") + test_file2 = os.path.join(temp_dir, "file2.xml") + test_file3 = os.path.join(temp_dir, "file3.xml") + + # Create files with different modification times + with open(test_file1, "w") as f: + f.write("Content 1") + with open(test_file2, "w") as f: + f.write("Content 2") + with open(test_file3, "w") as f: + f.write("Content 3") + + # Rename the latest file to 'new_file.xml' + extract.rename_latest_file(temp_dir, "new_file.xml") + + glob.glob1(temp_dir, "*.xml") + # Verify that 'file3.xml' is renamed to 'new_file.xml' + assert not os.path.exists(test_file3) + assert os.path.exists(os.path.join(temp_dir, "new_file.xml")) + + # Verify that 'file1.xml' and 'file2.xml' are still present + assert os.path.exists(test_file1) + assert os.path.exists(test_file2) + + # Verify that renaming with a different pattern works + with open(test_file1, "w") as f: + f.write("Content 4") + with open(os.path.join(temp_dir, "file4.txt"), "w") as f: + f.write("Content 5") + + # Rename the latest .txt file to 'new_file.txt' + extract.rename_latest_file(temp_dir, "new_file.txt", pattern="*.txt") + + # Verify that 'file4.txt' is renamed to 'new_file.txt' + assert not os.path.exists(os.path.join(temp_dir, "file4.txt")) + assert os.path.exists(os.path.join(temp_dir, "new_file.txt")) + + # Verify that 'file1.xml' is still present and unchanged + with open(test_file1) as f: + assert f.read() == "Content 4" + + +def test_get_num_files_default_pattern() -> None: + with TemporaryDirectory() as temp_dir: + prepare_temporary_dir(temp_dir, ["xml", "xml", "xml"]) + + expected_result = 3 + assert extract.get_num_files(temp_dir) == expected_result + + +def test_get_num_files_different_pattern() -> None: + with TemporaryDirectory() as temp_dir: + prepare_temporary_dir(temp_dir, ["xml", "txt", "json"]) + + num_files = extract.get_num_files(temp_dir, "*.txt") + assert num_files == 1 + + +def test_wait_for_download_condition() -> None: + with TemporaryDirectory() as temp_dir: + prepare_temporary_dir(temp_dir, ["xml", "txt"]) + assert extract.wait_for_download_condition(temp_dir, 2) is False diff --git a/tests/utils/data_extraction/unternehmensregister/load_test.py b/tests/utils/data_extraction/unternehmensregister/load_test.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/utils/data_extraction/unternehmensregister/transform_test.py b/tests/utils/data_extraction/unternehmensregister/transform_test.py new file mode 100644 index 0000000..091f861 --- /dev/null +++ b/tests/utils/data_extraction/unternehmensregister/transform_test.py @@ -0,0 +1,208 @@ +import json +import os +from tempfile import TemporaryDirectory + +from aki_prj23_transparenzregister.models.company import ( + CompanyRelationshipEnum, + CompanyToCompanyRelationship, + Location, + PersonName, + PersonToCompanyRelationship, + RelationshipRoleEnum, +) +from aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister import ( + transform, +) + + +def test_transform_xml_to_json() -> None: + with TemporaryDirectory() as temp_source_dir: + with open(os.path.join(temp_source_dir, "test.xml"), "w") as file: + xml_input = """ + + Hello World! + + """ + file.write(xml_input) + with TemporaryDirectory() as temp_target_dir: + transform.transform_xml_to_json(temp_source_dir, temp_target_dir) + with open(os.path.join(temp_target_dir, "test.json")) as file: + json_output = json.load(file) + assert json_output == {"test": {"message": "Hello World!"}} + + +def test_parse_stakeholder_org_hidden_in_person() -> None: + data = { + "Beteiligter": { + "Natuerliche_Person": { + "Voller_Name": {"Vorname": None, "Nachname": "Some Company KG"}, + "Anschrift": {"Ort": "Area 51"}, + } + }, + "Rolle": {"Rollenbezeichnung": {"content": "Kommanditist(in)"}}, + } + expected_result = CompanyToCompanyRelationship( + role=RelationshipRoleEnum.KOMMANDITIST, # type: ignore + description="Some Company KG", + type=CompanyRelationshipEnum.COMPANY, + location=Location(**{"city": "Area 51"}), + ) + assert transform.parse_stakeholder(data) == expected_result + + +def test_parse_stakeholder_person() -> None: + data = { + "Beteiligter": { + "Natuerliche_Person": { + "Voller_Name": {"Vorname": "Stephen", "Nachname": "King"}, + "Anschrift": {"Ort": "Maine"}, + "Geburt": {"Geburtsdatum": "1947-09-21"}, + } + }, + "Rolle": {"Rollenbezeichnung": {"content": "Geschäftsleiter(in)"}}, + } + expected_result = PersonToCompanyRelationship( + role=RelationshipRoleEnum.GESCHAEFTSLEITER, # type: ignore + date_of_birth="1947-09-21", + name=PersonName(**{"firstname": "Stephen", "lastname": "King"}), + type=CompanyRelationshipEnum.PERSON, + location=Location(**{"city": "Maine"}), + ) + assert transform.parse_stakeholder(data) == expected_result + + +def test_parse_stakeholder_org() -> None: + data = { + "Beteiligter": { + "Organisation": { + "Bezeichnung": {"Bezeichnung_Aktuell": "Transparenzregister kG"}, + "Anschrift": { + "Ort": "Iserlohn", + "Strasse": "Hauptstrasse", + "Hausnummer": "42", + "Postleitzahl": "58636", + }, + "Geburt": {"Geburtsdatum": "1947-09-21"}, + } + }, + "Rolle": {"Rollenbezeichnung": {"content": "Geschäftsführender Direktor"}}, + } + expected_result = CompanyToCompanyRelationship( + description="Transparenzregister kG", + role=RelationshipRoleEnum.DIREKTOR, # type: ignore + type=CompanyRelationshipEnum.COMPANY, + location=Location( + **{ + "city": "Iserlohn", + "zip_code": "58636", + "house_number": "42", + "street": "Hauptstrasse", + } + ), + ) + assert transform.parse_stakeholder(data) == expected_result + + +def test_parse_stakeholder_no_result() -> None: + data: dict = {"Beteiligter": {}} + assert transform.parse_stakeholder(data) is None + + +def test_loc_from_beteiligung() -> None: + data = { + "XJustiz_Daten": { + "Grunddaten": { + "Verfahrensdaten": { + "Beteiligung": [ + { + "Beteiligter": { + "Beteiligtennummer": "1", + "Organisation": { + "Bezeichnung": { + "Bezeichnung_Aktuell": "1 A Autenrieth Kunststofftechnik GmbH & Co. KG" + }, + "Sitz": { + "Ort": "Heroldstatt", + "Staat": { + "@xsi:type": "WL_Staaten", + "@wl_version": "1.5", + "@wl_fassung": "2", + "content": "DE", + }, + }, + "Anschrift": { + "Strasse": "Gewerbestraße", + "Hausnummer": "8", + "Postleitzahl": "72535", + "Ort": "Heroldstatt", + }, + }, + } + }, + ] + } + } + } + } + + expected_result = Location( + city="Heroldstatt", house_number="8", street="Gewerbestraße", zip_code="72535" + ) + assert transform.loc_from_beteiligung(data) == expected_result + + +def test_name_from_beteiligung() -> None: + data = { + "XJustiz_Daten": { + "Grunddaten": { + "Verfahrensdaten": { + "Beteiligung": [ + { + "Beteiligter": { + "Beteiligtennummer": "1", + "Organisation": { + "Bezeichnung": { + "Bezeichnung_Aktuell": "1 A Autenrieth Kunststofftechnik GmbH & Co. KG" + }, + }, + } + }, + ] + } + } + } + } + + expected_result = "1 A Autenrieth Kunststofftechnik GmbH & Co. KG" + assert transform.name_from_beteiligung(data) == expected_result + + +def test_map_rechtsform() -> None: + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Basisdaten_Register": { + "Aktuelles_Satzungsdatum": "1952-07-15", + "Rechtstraeger": { + "Rechtsform": { + "content": "Gesellschaft mit beschränkter Haftung" + }, + }, + } + } + } + } + expected_result = "Gesellschaft mit beschränkter Haftung" + assert transform.map_rechtsform("", data) == expected_result + + +def test_map_rechtsform_from_name() -> None: + data = [ + ("GEA Farm Technologies GmbH", "Gesellschaft mit beschränkter Haftung"), + ("Atos SE", "Europäische Aktiengesellschaft (SE)"), + ("Bilkenroth KG", "Kommanditgesellschaft"), + ("jfoiahfo8sah 98548902 öhz ö", None), + ] + + for company_name, expected_result in data: + assert transform.map_rechtsform(company_name, {}) == expected_result From d54c1cd17dfd08bd65534b10c51c2187fa497eb3 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sun, 17 Sep 2023 19:25:30 +0200 Subject: [PATCH 07/20] test(data-extraction): Adapt to extended enum --- src/aki_prj23_transparenzregister/models/company.py | 2 ++ .../utils/data_extraction/unternehmensregister/transform.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 0668b5f..66f671a 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -27,6 +27,8 @@ class RelationshipRoleEnum(str, MultiValueEnum): STAENDIGER_VERTRETER = "Ständige(r) Vertreter(in)" SONSTIGER_VERTRETER = "Sonstige(r) Vertreter(in)", "Sonstiger Vertreter" GESCHAEFTSLEITER = "Geschäftsleiter(in)", "Geschäftsleiter" + ZWEIGNIEDERLASSUNG = "Zweigniederlassung" + HAUPTNIEDERLASSUNG = "Hauptniederlassung" @dataclass diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index 2f599a4..8f5a51c 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -120,7 +120,9 @@ def parse_stakeholder(data: dict) -> CompanyRelationship | None: if "Organisation" in data["Beteiligter"]: return CompanyToCompanyRelationship( **{ - "role": data["Rolle"]["Rollenbezeichnung"]["content"], + "role": RelationshipRoleEnum( + data["Rolle"]["Rollenbezeichnung"]["content"] + ), "description": data["Beteiligter"]["Organisation"]["Bezeichnung"][ "Bezeichnung_Aktuell" ], From 92ea72249cd8ccc68d7786e453382b1de091fcbb Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sun, 17 Sep 2023 19:43:22 +0200 Subject: [PATCH 08/20] refactor(data-extraction): Bind company type to an enum --- .../models/company.py | 24 ++++++++++++++++++- .../models/temp.md | 0 .../unternehmensregister/transform.py | 24 +++++++++++-------- 3 files changed, 37 insertions(+), 11 deletions(-) delete mode 100644 src/aki_prj23_transparenzregister/models/temp.md diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 66f671a..67806a9 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -31,6 +31,28 @@ class RelationshipRoleEnum(str, MultiValueEnum): HAUPTNIEDERLASSUNG = "Hauptniederlassung" +class CompanyTypeEnum(str, MultiValueEnum): + """Type of Company.""" + + GMBH = "Gesellschaft mit beschränkter Haftung" + SE = "Europäische Aktiengesellschaft (SE)" + KG = "Kommanditgesellschaft" + EINZELKAUFMANN = ( + "Einzelkaufmann", + "Einzelkauffrau", + "Einzelkaufmann / Einzelkauffrau", + ) + EG = "eingetragene Genossenschaft" + AG = "Aktiengesellschaft" + PARTNERSCHAFTSGESELLSCHAFT = "Partnerschaftsgesellschaft" + PARTNERGESELLSCHAFT = "Partnergesellschaft" + PARTNERSCHAFT = "Partnerschaft" + KGaA = "Kommanditgesellschaft auf Aktien" + OHG = "Offene Handelsgesellschaft" + AUSLAENDISCHE_RECHTSFORM = "Rechtsform ausländischen Rechts HRB" + JURISTISCHE_PERSON = "HRA Juristische Person" + + @dataclass class CompanyID: """_summary_.""" @@ -153,7 +175,7 @@ class Company: last_update: str relationships: list[CompanyRelationship] # yearly_results: Optional[list[FinancialResults]] - company_type: str | None = None # TODO define Enum + company_type: CompanyTypeEnum | None = None capital: Capital | None | None = None business_purpose: str | None = None founding_date: str | None = None diff --git a/src/aki_prj23_transparenzregister/models/temp.md b/src/aki_prj23_transparenzregister/models/temp.md deleted file mode 100644 index e69de29..0000000 diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index 8f5a51c..a95667f 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -16,6 +16,7 @@ from aki_prj23_transparenzregister.models.company import ( CompanyRelationship, CompanyRelationshipEnum, CompanyToCompanyRelationship, + CompanyTypeEnum, Location, PersonName, PersonToCompanyRelationship, @@ -205,7 +206,7 @@ def name_from_beteiligung(data: dict) -> str: ]["Organisation"]["Bezeichnung"]["Bezeichnung_Aktuell"] -def map_rechtsform(company_name: str, data: dict) -> str | None: +def map_rechtsform(company_name: str, data: dict) -> CompanyTypeEnum | None: """Extracts the company type from a given Unternehmensregister export. Args: @@ -213,23 +214,25 @@ def map_rechtsform(company_name: str, data: dict) -> str | None: data (dict): Data export Returns: - str | None: Company type if found + CompanyTypeEnum | None: Company type if found """ try: - return data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ - "Rechtstraeger" - ]["Rechtsform"]["content"] - except Exception: + return CompanyTypeEnum( + data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ + "Rechtstraeger" + ]["Rechtsform"]["content"] + ) + except KeyError: if ( company_name.endswith("GmbH") or company_name.endswith("UG") or company_name.endswith("UG (haftungsbeschränkt)") ): - return "Gesellschaft mit beschränkter Haftung" + return CompanyTypeEnum("Gesellschaft mit beschränkter Haftung") if company_name.endswith("SE"): - return "Europäische Aktiengesellschaft (SE)" + return CompanyTypeEnum("Europäische Aktiengesellschaft (SE)") if company_name.endswith("KG"): - return "Kommanditgesellschaft" + return CompanyTypeEnum("Kommanditgesellschaft") return None @@ -487,5 +490,6 @@ if __name__ == "__main__": dataclasses.asdict(company), export_file, ensure_ascii=False ) except Exception as e: - logger.error(f"Error in processing {path}\n{e}") + logger.error(f"Error in processing {path}") + logger.error(e) break From 7269e7e6a4d5441e48e072c13aadf13f0140ae4c Mon Sep 17 00:00:00 2001 From: TrisNol Date: Mon, 18 Sep 2023 20:23:19 +0200 Subject: [PATCH 09/20] test(data-extraction): Cover transform.py --- .../models/company.py | 37 +- .../unternehmensregister/load.py | 5 +- .../unternehmensregister/transform.py | 160 +++---- .../unternehmensregister/transform_test.py | 397 ++++++++++++++++++ 4 files changed, 511 insertions(+), 88 deletions(-) diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 67806a9..11b2ec9 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -54,16 +54,24 @@ class CompanyTypeEnum(str, MultiValueEnum): @dataclass -class CompanyID: - """_summary_.""" +class DistrictCourt: + """DistrictCourt.""" - district_court: str + name: str + city: str + + +@dataclass +class CompanyID: + """CompanyID.""" + + district_court: DistrictCourt hr_number: str @dataclass class Location: - """_summary_.""" + """Location.""" city: str street: str | None = None @@ -155,14 +163,29 @@ class YearlyResult: kpis: dict[FinancialKPIEnum, float] +class CurrencyEnum(str, MultiValueEnum): + """Enum of possible currencies.""" + + EURO = "EUR" + DEUTSCHE_MARK = "DM", "DEM" + KEINE_ANGABE = "" + + +class CapitalTypeEnum(str, Enum): + """Enum of possible capital types.""" + + HAFTEINLAGE = "Hafteinlage" + STAMMKAPITAL = "Stammkapital" + GRUNDKAPITAL = "Grundkapital" + + @dataclass class Capital: """Capital of company.""" value: float - currency: str # TODO define Enum - # TODO define Enum - type: str # noqa: A003 + currency: CurrencyEnum + type: CapitalTypeEnum # noqa: A003 @dataclass diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py index 79be6a4..52bf304 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py @@ -25,8 +25,9 @@ if __name__ == "__main__": connector = MongoConnector(conn_string) service = CompanyMongoService(connector) - for file in tqdm(glob.glob1("./data/Unternehmensregister/transformed", "*.json")): - path = os.path.join("./data/Unternehmensregister/transformed", file) + base_path = "./Jupyter/API-tests/Unternehmensregister/data/Unternehmensregister" + for file in tqdm(glob.glob1(f"{base_path}/transformed", "*.json")): + path = os.path.join(f"{base_path}/transformed", file) with open(path, encoding="utf-8") as file_object: data = json.loads(file_object.read()) company: Company = Company(**data) diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index a95667f..29db73a 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -11,12 +11,15 @@ from tqdm import tqdm from aki_prj23_transparenzregister.models.company import ( Capital, + CapitalTypeEnum, Company, CompanyID, CompanyRelationship, CompanyRelationshipEnum, CompanyToCompanyRelationship, CompanyTypeEnum, + CurrencyEnum, + DistrictCourt, Location, PersonName, PersonToCompanyRelationship, @@ -236,20 +239,21 @@ def map_rechtsform(company_name: str, data: dict) -> CompanyTypeEnum | None: return None -def map_capital(data: dict, company_type: str) -> Capital | None: +def map_capital(data: dict, company_type: CompanyTypeEnum) -> Capital | None: """Extracts the company capital from the given Unternehmensregister export. Args: data (dict): Data export - company_type (str): Type of company (e.g., 'Gesellschaft mit beschränkter Haftung') + company_type (CompanyTypeEnum): Type of company (e.g., 'Gesellschaft mit beschränkter Haftung') Returns: Capital | None: Company Capital if found """ + # Early return + if "Zusatzangaben" not in data["XJustiz_Daten"]["Fachdaten_Register"]: + return None capital: dict = {"Zahl": 0.0, "Waehrung": ""} - if company_type == "Kommanditgesellschaft": - if "Zusatzangaben" not in data["XJustiz_Daten"]["Fachdaten_Register"]: - return None + if company_type == CompanyTypeEnum.KG: capital_type = "Hafteinlage" base = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ "Personengesellschaft" @@ -259,55 +263,50 @@ def map_capital(data: dict, company_type: str) -> Capital | None: # TODO link to persons using Ref_Rollennummer then extract ["Hafteinlage"] as below capital["Zahl"] = capital["Zahl"] + float(entry["Hafteinlage"]["Zahl"]) capital["Waehrung"] = entry["Hafteinlage"]["Waehrung"] - elif type(base) == "dict": + elif isinstance(base, dict): capital = base["Hafteinlage"] elif company_type in [ - "Gesellschaft mit beschränkter Haftung", - "Europäische Aktiengesellschaft (SE)", - "Aktiengesellschaft", - "Kommanditgesellschaft auf Aktien", - "Rechtsform ausländischen Rechts HRB", + CompanyTypeEnum.GMBH, + CompanyTypeEnum.SE, + CompanyTypeEnum.AG, + CompanyTypeEnum.KGaA, + CompanyTypeEnum.AUSLAENDISCHE_RECHTSFORM, + CompanyTypeEnum.OHG, ]: - if "Zusatzangaben" not in data["XJustiz_Daten"]["Fachdaten_Register"]: - return None if ( - "Zusatz_GmbH" - in data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ + "Kapitalgesellschaft" + not in data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"] + ): + base = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ + "Personengesellschaft" + ] + else: + base = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ "Kapitalgesellschaft" ] - ): + if "Zusatz_GmbH" in base: capital_type = "Stammkapital" - capital = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ - "Kapitalgesellschaft" - ]["Zusatz_GmbH"]["Stammkapital"] - elif ( - "Zusatz_Aktiengesellschaft" - in data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ - "Kapitalgesellschaft" - ] - ): + capital = base["Zusatz_GmbH"]["Stammkapital"] + elif "Zusatz_Aktiengesellschaft" in base: capital_type = "Grundkapital" - capital = data["XJustiz_Daten"]["Fachdaten_Register"]["Zusatzangaben"][ - "Kapitalgesellschaft" - ]["Zusatz_Aktiengesellschaft"]["Grundkapital"]["Hoehe"] + capital = base["Zusatz_Aktiengesellschaft"]["Grundkapital"]["Hoehe"] elif company_type in [ - "Einzelkaufmann", - "Einzelkauffrau", - "eingetragene Genossenschaft", - "Partnerschaft", - "Einzelkaufmann / Einzelkauffrau", - "Offene Handelsgesellschaft", - "Partnerschaftsgesellschaft", + CompanyTypeEnum.EINZELKAUFMANN, + CompanyTypeEnum.EG, + CompanyTypeEnum.PARTNERSCHAFT, + CompanyTypeEnum.PARTNERGESELLSCHAFT, + CompanyTypeEnum.PARTNERSCHAFTSGESELLSCHAFT, None, ]: return None - else: + # Catch entries having the dict but with null values + if not all(capital.values()): return None return Capital( - **{ - "value": capital["Zahl"], - "currency": capital["Waehrung"], - "type": capital_type, + **{ # type: ignore + "value": float(capital["Zahl"]), + "currency": CurrencyEnum(capital["Waehrung"]), + "type": CapitalTypeEnum(capital_type), } ) @@ -366,17 +365,6 @@ def map_founding_date(data: dict) -> str | None: ) if len(entry_date) == 1: return transform_date_to_iso(entry_date[0]) - - if "Eintragungstext" in data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"] and ( - type(data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"]["Eintragungstext"]) - == "list" - ): - temp = data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"]["Eintragungstext"][ - 0 - ]["Text"] - results = re.findall(r"\d{1,2}\.\d{1,2}\.\d{2,4}", temp) - if len(temp) == 1: - return transform_date_to_iso(results[0]) if ( "Gruendungsmetadaten" in data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"] @@ -402,34 +390,50 @@ def map_company_id(data: dict) -> CompanyID: "hr_number": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ "Instanzdaten" ]["Aktenzeichen"], - "district_court": { - "name": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"]["Organisation"]["Bezeichnung"][ - "Bezeichnung_Aktuell" - ] - if "Organisation" - in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"] - else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"]["Natuerliche_Person"]["Voller_Name"]["Nachname"], - "city": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"]["Organisation"]["Sitz"]["Ort"] - if "Organisation" - in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"] - else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ - "Beteiligung" - ][1]["Beteiligter"]["Natuerliche_Person"]["Anschrift"]["Ort"], - }, + "district_court": DistrictCourt( + **{ + "name": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Organisation"]["Bezeichnung"][ + "Bezeichnung_Aktuell" + ] + if "Organisation" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"] + else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Natuerliche_Person"]["Voller_Name"][ + "Nachname" + ], + "city": data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Organisation"]["Sitz"]["Ort"] + if "Organisation" + in data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"] + else data["XJustiz_Daten"]["Grunddaten"]["Verfahrensdaten"][ + "Beteiligung" + ][1]["Beteiligter"]["Natuerliche_Person"]["Anschrift"]["Ort"], + } + ), } ) +def map_last_update(data: dict) -> str: + """Extract last update date from export. + + Args: + data (dict): Unternehmensregister export + + Returns: + str: Last update date + """ + return data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"]["letzte_Eintragung"] + + def map_unternehmensregister_json(data: dict) -> Company: """Processes the Unternehmensregister structured export to a Company by using several helper methods. @@ -446,10 +450,8 @@ def map_unternehmensregister_json(data: dict) -> Company: result["name"] = name_from_beteiligung(data) result["location"] = loc_from_beteiligung(data) - result["last_update"] = data["XJustiz_Daten"]["Fachdaten_Register"]["Auszug"][ - "letzte_Eintragung" - ] - # TODO New features --> to be tested + result["last_update"] = map_last_update(data) + result["company_type"] = map_rechtsform(result["name"], data) result["capital"] = map_capital(data, result["company_type"]) result["business_purpose"] = map_business_purpose(data) diff --git a/tests/utils/data_extraction/unternehmensregister/transform_test.py b/tests/utils/data_extraction/unternehmensregister/transform_test.py index 091f861..4865880 100644 --- a/tests/utils/data_extraction/unternehmensregister/transform_test.py +++ b/tests/utils/data_extraction/unternehmensregister/transform_test.py @@ -1,10 +1,18 @@ import json import os from tempfile import TemporaryDirectory +from unittest.mock import Mock, patch from aki_prj23_transparenzregister.models.company import ( + Capital, + CapitalTypeEnum, + Company, + CompanyID, CompanyRelationshipEnum, CompanyToCompanyRelationship, + CompanyTypeEnum, + CurrencyEnum, + DistrictCourt, Location, PersonName, PersonToCompanyRelationship, @@ -206,3 +214,392 @@ def test_map_rechtsform_from_name() -> None: for company_name, expected_result in data: assert transform.map_rechtsform(company_name, {}) == expected_result + + +def test_map_capital_kg_single() -> None: + capital = Capital( + currency=CurrencyEnum.EURO, value=69000, type=CapitalTypeEnum.HAFTEINLAGE # type: ignore + ) + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Zusatzangaben": { + "Personengesellschaft": { + "Zusatz_KG": { + "Daten_Kommanditist": { + "Hafteinlage": { + "Zahl": str(capital.value), + "Waehrung": capital.currency, + }, + } + } + } + } + } + } + } + + result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore + assert result == capital + + +def test_map_capital_kg_sum() -> None: + capital = Capital( + currency=CurrencyEnum.EURO, value=20000, type=CapitalTypeEnum.HAFTEINLAGE # type: ignore + ) + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Zusatzangaben": { + "Personengesellschaft": { + "Zusatz_KG": { + "Daten_Kommanditist": [ + { + "Hafteinlage": { + "Zahl": str(10000), + "Waehrung": capital.currency, + } + }, + { + "Hafteinlage": { + "Zahl": str(10000), + "Waehrung": capital.currency, + }, + }, + ] + } + } + } + } + } + } + + result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore + assert result == capital + + +def test_map_capital_no_fachdaten() -> None: + data = {"XJustiz_Daten": {"Fachdaten_Register": {}}} # type: ignore + + result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore + assert result is None + + +def test_map_capital_gmbh() -> None: + capital = Capital( + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + ) + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Zusatzangaben": { + "Kapitalgesellschaft": { + "Zusatz_GmbH": { + "Stammkapital": { + "Zahl": str(capital.value), + "Waehrung": capital.currency, + }, + } + } + } + } + } + } + + result = transform.map_capital(data, CompanyTypeEnum.GMBH) # type: ignore + assert result == capital + + +def test_map_capital_ag() -> None: + capital = Capital( + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.GRUNDKAPITAL # type: ignore + ) + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Zusatzangaben": { + "Kapitalgesellschaft": { + "Zusatz_Aktiengesellschaft": { + "Grundkapital": { + "Hoehe": { + "Zahl": str(capital.value), + "Waehrung": capital.currency, + } + }, + } + } + } + } + } + } + + result = transform.map_capital(data, CompanyTypeEnum.SE) # type: ignore + assert result == capital + + +def test_map_capital_personengesellschaft() -> None: + capital = Capital( + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + ) + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Zusatzangaben": { + "Personengesellschaft": { + "Zusatz_GmbH": { + "Stammkapital": { + "Zahl": str(capital.value), + "Waehrung": capital.currency, + }, + } + } + } + } + } + } + + result = transform.map_capital(data, CompanyTypeEnum.OHG) # type: ignore + assert result == capital + + +def test_map_capital_einzelkaufmann() -> None: + capital = Capital( + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + ) + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Zusatzangaben": { + "Personengesellschaft": { + "Zusatz_GmbH": { + "Stammkapital": { + "Zahl": str(capital.value), + "Waehrung": capital.currency, + }, + } + } + } + } + } + } + + result = transform.map_capital(data, CompanyTypeEnum.EINZELKAUFMANN) # type: ignore + assert result is None + + +def test_map_capital_partial_null_values() -> None: + capital = Capital( + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + ) + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Zusatzangaben": { + "Personengesellschaft": { + "Zusatz_GmbH": { + "Stammkapital": { + "Zahl": None, + "Waehrung": capital.currency, + }, + } + } + } + } + } + } + + result = transform.map_capital(data, CompanyTypeEnum.OHG) # type: ignore + assert result is None + + +def test_map_business_purpose() -> None: + business_purpose = "Handel mit Betäubungsmitteln aller Art" + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Basisdaten_Register": { + "Gegenstand_oder_Geschaeftszweck": business_purpose + } + } + } + } + + result = transform.map_business_purpose(data) + assert result == business_purpose + + +def test_map_business_purpose_no_result() -> None: + data: dict = {"XJustiz_Daten": {}} + + result = transform.map_business_purpose(data) + assert result is None + + +def test_transform_date_to_iso() -> None: + date = "10.10.1111" + expected_result = "1111-10-10" + result = transform.transform_date_to_iso(date) + assert result == expected_result + + +def test_transform_date_to_iso_2_char_year() -> None: + date = "10.10.98" + expected_result = "1998-10-10" + result = transform.transform_date_to_iso(date) + assert result == expected_result + + +def test_map_founding_date_from_tag_der_ersten_eintragung() -> None: + data = { + "some entry": "Tag der ersten Eintragung: 01.05.2004", + "some other entry": "hfjdoöiashföahöf iodsazo8 5z4o fdsha8oü gfdsö", + } + expected_result = "2004-05-01" + result = transform.map_founding_date(data) + assert result == expected_result + + +def test_map_founding_date_from_gesellschaftsvertrag() -> None: + data = { + "some entry": "hfjdoöiashföahöf iodsazo8 5z4o fdsha8oü gfdsö", + "some other entry": "Das Wesen der Rekursion ist der Selbstaufruf Gesellschaftsvertrag vom 22.12.1996 Hallo Welt", + } + expected_result = "1996-12-22" + result = transform.map_founding_date(data) + assert result == expected_result + + +def test_map_founding_date_from_gruendungsdatum() -> None: + data = { + "XJustiz_Daten": { + "Fachdaten_Register": { + "Basisdaten_Register": { + "Gruendungsmetadaten": {"Gruendungsdatum": "1998-01-01"} + } + } + } + } + expected_result = "1998-01-01" + result = transform.map_founding_date(data) + assert result == expected_result + + +def test_map_founding_date_no_result() -> None: + data: dict = {"XJustiz_Daten": {"Fachdaten_Register": {"Basisdaten_Register": {}}}} + result = transform.map_founding_date(data) + assert result is None + + +def test_map_company_id() -> None: + district_court = DistrictCourt("Amtsgericht Ulm", "Ulm") + company_id = CompanyID(district_court, "HRA 4711") + data = { + "XJustiz_Daten": { + "Grunddaten": { + "@XJustizVersion": "1.20.0", + "Verfahrensdaten": { + "Instanzdaten": { + "Aktenzeichen": company_id.hr_number, + }, + "Beteiligung": [ + {}, + { + "Beteiligter": { + "Organisation": { + "Bezeichnung": { + "Bezeichnung_Aktuell": district_court.name + }, + "Sitz": { + "Ort": district_court.city, + }, + } + }, + }, + ], + }, + }, + } + } + result = transform.map_company_id(data) + assert result == company_id + + +def test_map_last_update() -> None: + date = "2024-01-01" + data = { + "XJustiz_Daten": {"Fachdaten_Register": {"Auszug": {"letzte_Eintragung": date}}} + } + result = transform.map_last_update(data) + assert result == date + + +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.map_company_id" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.name_from_beteiligung" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.loc_from_beteiligung" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.map_last_update" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.map_rechtsform" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.map_capital" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.map_business_purpose" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.map_founding_date" +) +@patch( + "aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister.transform.parse_stakeholder" +) +def test_map_unternehmensregister_json( # noqa: PLR0913 + mock_map_parse_stakeholder: Mock, + mock_map_founding_date: Mock, + mock_map_business_purpose: Mock, + mock_map_capital: Mock, + mock_map_rechtsform: Mock, + mock_map_last_update: Mock, + mock_loc_from_beteiligung: Mock, + mock_map_name_from_beteiligung: Mock, + mock_map_company_id: Mock, +) -> None: + expected_result = Company( + **{ + "id": Mock(), # type: ignore + "name": Mock(), + "location": Mock(), + "last_update": Mock(), + "company_type": Mock(), + "capital": Mock(), + "business_purpose": Mock(), + "founding_date": Mock(), + "relationships": [Mock()], + } + ) + + mock_map_company_id.return_value = expected_result.id + mock_map_name_from_beteiligung.return_value = expected_result.name + mock_loc_from_beteiligung.return_value = expected_result.location + mock_map_last_update.return_value = expected_result.last_update + mock_map_rechtsform.return_value = expected_result.company_type + mock_map_capital.return_value = expected_result.capital + mock_map_business_purpose.return_value = expected_result.business_purpose + mock_map_founding_date.return_value = expected_result.founding_date + mock_map_parse_stakeholder.return_value = expected_result.relationships[0] + + data: dict = { + "XJustiz_Daten": { + "Grunddaten": {"Verfahrensdaten": {"Beteiligung": [{}, {}, {}]}} + } + } + + result = transform.map_unternehmensregister_json(data) + assert result == expected_result From 56c2ed55ecb97d120f6417a47da8577c224e18ea Mon Sep 17 00:00:00 2001 From: TrisNol Date: Thu, 21 Sep 2023 16:54:23 +0200 Subject: [PATCH 10/20] test(data-extraction): Delay file creation in test_rename_latest_file to avoid same timestamps --- .../unternehmensregister/extract_test.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/tests/utils/data_extraction/unternehmensregister/extract_test.py b/tests/utils/data_extraction/unternehmensregister/extract_test.py index 21d4c50..e7cbe47 100644 --- a/tests/utils/data_extraction/unternehmensregister/extract_test.py +++ b/tests/utils/data_extraction/unternehmensregister/extract_test.py @@ -1,4 +1,3 @@ -import glob import os from tempfile import TemporaryDirectory @@ -15,7 +14,9 @@ def prepare_temporary_dir(directory: str, formats: list[str]) -> None: def test_rename_latest_file() -> None: - with TemporaryDirectory() as temp_dir: + import time + + with TemporaryDirectory("-4711") as temp_dir: # Create some test files in the temporary directory test_file1 = os.path.join(temp_dir, "file1.xml") test_file2 = os.path.join(temp_dir, "file2.xml") @@ -24,15 +25,16 @@ def test_rename_latest_file() -> None: # Create files with different modification times with open(test_file1, "w") as f: f.write("Content 1") + time.sleep(0.15) with open(test_file2, "w") as f: f.write("Content 2") + time.sleep(0.15) with open(test_file3, "w") as f: f.write("Content 3") + time.sleep(0.15) # Rename the latest file to 'new_file.xml' extract.rename_latest_file(temp_dir, "new_file.xml") - - glob.glob1(temp_dir, "*.xml") # Verify that 'file3.xml' is renamed to 'new_file.xml' assert not os.path.exists(test_file3) assert os.path.exists(os.path.join(temp_dir, "new_file.xml")) @@ -60,7 +62,7 @@ def test_rename_latest_file() -> None: def test_get_num_files_default_pattern() -> None: - with TemporaryDirectory() as temp_dir: + with TemporaryDirectory("-4712") as temp_dir: prepare_temporary_dir(temp_dir, ["xml", "xml", "xml"]) expected_result = 3 @@ -68,7 +70,7 @@ def test_get_num_files_default_pattern() -> None: def test_get_num_files_different_pattern() -> None: - with TemporaryDirectory() as temp_dir: + with TemporaryDirectory("-4713") as temp_dir: prepare_temporary_dir(temp_dir, ["xml", "txt", "json"]) num_files = extract.get_num_files(temp_dir, "*.txt") @@ -76,6 +78,6 @@ def test_get_num_files_different_pattern() -> None: def test_wait_for_download_condition() -> None: - with TemporaryDirectory() as temp_dir: + with TemporaryDirectory("-4714") as temp_dir: prepare_temporary_dir(temp_dir, ["xml", "txt"]) assert extract.wait_for_download_condition(temp_dir, 2) is False From 535c31fc9f5282149c7c396b4e58eccc8f2cbf6a Mon Sep 17 00:00:00 2001 From: TrisNol Date: Thu, 21 Sep 2023 17:16:25 +0200 Subject: [PATCH 11/20] test(data-extraction): Change use of TemporaryDirection --- .../data_extraction/unternehmensregister/extract_test.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/utils/data_extraction/unternehmensregister/extract_test.py b/tests/utils/data_extraction/unternehmensregister/extract_test.py index e7cbe47..136f256 100644 --- a/tests/utils/data_extraction/unternehmensregister/extract_test.py +++ b/tests/utils/data_extraction/unternehmensregister/extract_test.py @@ -16,7 +16,7 @@ def prepare_temporary_dir(directory: str, formats: list[str]) -> None: def test_rename_latest_file() -> None: import time - with TemporaryDirectory("-4711") as temp_dir: + with TemporaryDirectory(dir="./") as temp_dir: # Create some test files in the temporary directory test_file1 = os.path.join(temp_dir, "file1.xml") test_file2 = os.path.join(temp_dir, "file2.xml") @@ -62,7 +62,7 @@ def test_rename_latest_file() -> None: def test_get_num_files_default_pattern() -> None: - with TemporaryDirectory("-4712") as temp_dir: + with TemporaryDirectory(dir="./") as temp_dir: prepare_temporary_dir(temp_dir, ["xml", "xml", "xml"]) expected_result = 3 @@ -70,7 +70,7 @@ def test_get_num_files_default_pattern() -> None: def test_get_num_files_different_pattern() -> None: - with TemporaryDirectory("-4713") as temp_dir: + with TemporaryDirectory(dir="./") as temp_dir: prepare_temporary_dir(temp_dir, ["xml", "txt", "json"]) num_files = extract.get_num_files(temp_dir, "*.txt") @@ -78,6 +78,6 @@ def test_get_num_files_different_pattern() -> None: def test_wait_for_download_condition() -> None: - with TemporaryDirectory("-4714") as temp_dir: + with TemporaryDirectory(dir="./") as temp_dir: prepare_temporary_dir(temp_dir, ["xml", "txt"]) assert extract.wait_for_download_condition(temp_dir, 2) is False From e6af96ea6d7d9e3661b48bee107632dfef967528 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Thu, 21 Sep 2023 17:25:41 +0200 Subject: [PATCH 12/20] test(data-extraction): Host temporary_dir in local env --- .../unternehmensregister/transform_test.py | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/utils/data_extraction/unternehmensregister/transform_test.py b/tests/utils/data_extraction/unternehmensregister/transform_test.py index 4865880..5d7ab59 100644 --- a/tests/utils/data_extraction/unternehmensregister/transform_test.py +++ b/tests/utils/data_extraction/unternehmensregister/transform_test.py @@ -24,7 +24,7 @@ from aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister im def test_transform_xml_to_json() -> None: - with TemporaryDirectory() as temp_source_dir: + with TemporaryDirectory(dir="./") as temp_source_dir: with open(os.path.join(temp_source_dir, "test.xml"), "w") as file: xml_input = """ @@ -32,7 +32,7 @@ def test_transform_xml_to_json() -> None: """ file.write(xml_input) - with TemporaryDirectory() as temp_target_dir: + with TemporaryDirectory(dir="./") as temp_target_dir: transform.transform_xml_to_json(temp_source_dir, temp_target_dir) with open(os.path.join(temp_target_dir, "test.json")) as file: json_output = json.load(file) @@ -50,7 +50,7 @@ def test_parse_stakeholder_org_hidden_in_person() -> None: "Rolle": {"Rollenbezeichnung": {"content": "Kommanditist(in)"}}, } expected_result = CompanyToCompanyRelationship( - role=RelationshipRoleEnum.KOMMANDITIST, # type: ignore + role=RelationshipRoleEnum.KOMMANDITIST, description="Some Company KG", type=CompanyRelationshipEnum.COMPANY, location=Location(**{"city": "Area 51"}), @@ -70,7 +70,7 @@ def test_parse_stakeholder_person() -> None: "Rolle": {"Rollenbezeichnung": {"content": "Geschäftsleiter(in)"}}, } expected_result = PersonToCompanyRelationship( - role=RelationshipRoleEnum.GESCHAEFTSLEITER, # type: ignore + role=RelationshipRoleEnum.GESCHAEFTSLEITER, date_of_birth="1947-09-21", name=PersonName(**{"firstname": "Stephen", "lastname": "King"}), type=CompanyRelationshipEnum.PERSON, @@ -97,7 +97,7 @@ def test_parse_stakeholder_org() -> None: } expected_result = CompanyToCompanyRelationship( description="Transparenzregister kG", - role=RelationshipRoleEnum.DIREKTOR, # type: ignore + role=RelationshipRoleEnum.DIREKTOR, type=CompanyRelationshipEnum.COMPANY, location=Location( **{ @@ -218,7 +218,7 @@ def test_map_rechtsform_from_name() -> None: def test_map_capital_kg_single() -> None: capital = Capital( - currency=CurrencyEnum.EURO, value=69000, type=CapitalTypeEnum.HAFTEINLAGE # type: ignore + currency=CurrencyEnum.EURO, value=69000, type=CapitalTypeEnum.HAFTEINLAGE ) data = { "XJustiz_Daten": { @@ -239,13 +239,13 @@ def test_map_capital_kg_single() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.KG) assert result == capital def test_map_capital_kg_sum() -> None: capital = Capital( - currency=CurrencyEnum.EURO, value=20000, type=CapitalTypeEnum.HAFTEINLAGE # type: ignore + currency=CurrencyEnum.EURO, value=20000, type=CapitalTypeEnum.HAFTEINLAGE ) data = { "XJustiz_Daten": { @@ -274,20 +274,20 @@ def test_map_capital_kg_sum() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.KG) assert result == capital def test_map_capital_no_fachdaten() -> None: - data = {"XJustiz_Daten": {"Fachdaten_Register": {}}} # type: ignore + data: dict = {"XJustiz_Daten": {"Fachdaten_Register": {}}} - result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.KG) assert result is None def test_map_capital_gmbh() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL ) data = { "XJustiz_Daten": { @@ -306,13 +306,13 @@ def test_map_capital_gmbh() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.GMBH) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.GMBH) assert result == capital def test_map_capital_ag() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.GRUNDKAPITAL # type: ignore + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.GRUNDKAPITAL ) data = { "XJustiz_Daten": { @@ -333,13 +333,13 @@ def test_map_capital_ag() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.SE) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.SE) assert result == capital def test_map_capital_personengesellschaft() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL ) data = { "XJustiz_Daten": { @@ -358,13 +358,13 @@ def test_map_capital_personengesellschaft() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.OHG) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.OHG) assert result == capital def test_map_capital_einzelkaufmann() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL ) data = { "XJustiz_Daten": { @@ -383,13 +383,13 @@ def test_map_capital_einzelkaufmann() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.EINZELKAUFMANN) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.EINZELKAUFMANN) assert result is None def test_map_capital_partial_null_values() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL ) data = { "XJustiz_Daten": { @@ -408,7 +408,7 @@ def test_map_capital_partial_null_values() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.OHG) # type: ignore + result = transform.map_capital(data, CompanyTypeEnum.OHG) assert result is None @@ -573,7 +573,7 @@ def test_map_unternehmensregister_json( # noqa: PLR0913 ) -> None: expected_result = Company( **{ - "id": Mock(), # type: ignore + "id": Mock(), "name": Mock(), "location": Mock(), "last_update": Mock(), From 365f74edc180242601b8ea865d29ce49bce6b378 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Thu, 21 Sep 2023 17:47:30 +0200 Subject: [PATCH 13/20] test(data-extraction): Replace hard-coded seperator with OS specific --- .../utils/data_extraction/unternehmensregister/transform.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index 29db73a..dd0d381 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -38,7 +38,7 @@ def transform_xml_to_json(source_dir: str, target_dir: str) -> None: os.path.normpath(i) for i in glob.glob(source_dir + "**/*.xml", recursive=True) ]: target_path = os.path.join( - target_dir, source_path.split("\\")[-1].replace(".xml", ".json") + target_dir, source_path.split(os.sep)[-1].replace(".xml", ".json") ) with open(source_path, encoding="utf-8") as source_file: From 3a11a926879662eca2c110acdf0f95479ed2d354 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Thu, 21 Sep 2023 17:55:20 +0200 Subject: [PATCH 14/20] test(data-extraction): Ignore mypy args errors --- .../utils/data_extraction/unternehmensregister/transform.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index dd0d381..315bbd1 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -1,4 +1,5 @@ """Transform raw Unternehmensregister export (*.xml) to processed .json files for loading.""" +# mypy: ignore-errors import dataclasses import glob import json From d7f167a868c7e0d43be53109a84439273d927c11 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Thu, 21 Sep 2023 18:08:20 +0200 Subject: [PATCH 15/20] ignore types mypy --- .../models/company.py | 8 ++++ .../unternehmensregister/transform.py | 1 - tests/models/company_test.py | 17 ++++++--- .../unternehmensregister/transform_test.py | 38 +++++++++---------- .../utils/mongo/company_mongo_service_test.py | 2 +- 5 files changed, 40 insertions(+), 26 deletions(-) diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 11b2ec9..7d3fe43 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -60,6 +60,14 @@ class DistrictCourt: name: str city: str + def to_dict(self) -> dict: + """Transform to dict. + + Returns: + dict: Dictionary + """ + return asdict(self) + @dataclass class CompanyID: diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index 315bbd1..dd0d381 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -1,5 +1,4 @@ """Transform raw Unternehmensregister export (*.xml) to processed .json files for loading.""" -# mypy: ignore-errors import dataclasses import glob import json diff --git a/tests/models/company_test.py b/tests/models/company_test.py index df0a0f7..9f70590 100644 --- a/tests/models/company_test.py +++ b/tests/models/company_test.py @@ -3,19 +3,26 @@ from aki_prj23_transparenzregister.models.company import ( Capital, + CapitalTypeEnum, Company, CompanyID, + CompanyTypeEnum, + CurrencyEnum, + DistrictCourt, Location, ) def test_to_dict() -> None: """Tests if the version tag is entered.""" - company_id = CompanyID("The Shire", "420") + district_court = DistrictCourt("abc", "abc") + company_id = CompanyID(district_court=district_court, hr_number="HRB 123") location = Location( city="Insmouth", house_number="19", street="Harbor", zip_code="1890" ) - capital = Capital(currency="BTC", type="Virtual assets", value=42) + capital = Capital( + currency=CurrencyEnum.DEUTSCHE_MARK, type=CapitalTypeEnum.GRUNDKAPITAL, value=42 # type: ignore + ) company = Company( id=company_id, last_update="Tomorrow", @@ -24,13 +31,13 @@ def test_to_dict() -> None: relationships=[], business_purpose="Blockchain and NFTs", capital=capital, - company_type="Something", + company_type=CompanyTypeEnum.AG, # type: ignore founding_date="Yesterday", ) assert company.to_dict() == { "id": { - "district_court": company_id.district_court, + "district_court": district_court.to_dict(), "hr_number": company_id.hr_number, }, "last_update": company.last_update, @@ -48,6 +55,6 @@ def test_to_dict() -> None: "currency": capital.currency, "type": capital.type, }, - "company_type": "Something", + "company_type": company.company_type, "founding_date": "Yesterday", } diff --git a/tests/utils/data_extraction/unternehmensregister/transform_test.py b/tests/utils/data_extraction/unternehmensregister/transform_test.py index 5d7ab59..3d9cf42 100644 --- a/tests/utils/data_extraction/unternehmensregister/transform_test.py +++ b/tests/utils/data_extraction/unternehmensregister/transform_test.py @@ -50,7 +50,7 @@ def test_parse_stakeholder_org_hidden_in_person() -> None: "Rolle": {"Rollenbezeichnung": {"content": "Kommanditist(in)"}}, } expected_result = CompanyToCompanyRelationship( - role=RelationshipRoleEnum.KOMMANDITIST, + role=RelationshipRoleEnum.KOMMANDITIST, # type: ignore description="Some Company KG", type=CompanyRelationshipEnum.COMPANY, location=Location(**{"city": "Area 51"}), @@ -70,7 +70,7 @@ def test_parse_stakeholder_person() -> None: "Rolle": {"Rollenbezeichnung": {"content": "Geschäftsleiter(in)"}}, } expected_result = PersonToCompanyRelationship( - role=RelationshipRoleEnum.GESCHAEFTSLEITER, + role=RelationshipRoleEnum.GESCHAEFTSLEITER, # type: ignore date_of_birth="1947-09-21", name=PersonName(**{"firstname": "Stephen", "lastname": "King"}), type=CompanyRelationshipEnum.PERSON, @@ -97,7 +97,7 @@ def test_parse_stakeholder_org() -> None: } expected_result = CompanyToCompanyRelationship( description="Transparenzregister kG", - role=RelationshipRoleEnum.DIREKTOR, + role=RelationshipRoleEnum.DIREKTOR, # type: ignore type=CompanyRelationshipEnum.COMPANY, location=Location( **{ @@ -218,7 +218,7 @@ def test_map_rechtsform_from_name() -> None: def test_map_capital_kg_single() -> None: capital = Capital( - currency=CurrencyEnum.EURO, value=69000, type=CapitalTypeEnum.HAFTEINLAGE + currency=CurrencyEnum.EURO, value=69000, type=CapitalTypeEnum.HAFTEINLAGE # type: ignore ) data = { "XJustiz_Daten": { @@ -239,13 +239,13 @@ def test_map_capital_kg_single() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.KG) + result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore assert result == capital def test_map_capital_kg_sum() -> None: capital = Capital( - currency=CurrencyEnum.EURO, value=20000, type=CapitalTypeEnum.HAFTEINLAGE + currency=CurrencyEnum.EURO, value=20000, type=CapitalTypeEnum.HAFTEINLAGE # type: ignore ) data = { "XJustiz_Daten": { @@ -274,20 +274,20 @@ def test_map_capital_kg_sum() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.KG) + result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore assert result == capital def test_map_capital_no_fachdaten() -> None: data: dict = {"XJustiz_Daten": {"Fachdaten_Register": {}}} - result = transform.map_capital(data, CompanyTypeEnum.KG) + result = transform.map_capital(data, CompanyTypeEnum.KG) # type: ignore assert result is None def test_map_capital_gmbh() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore ) data = { "XJustiz_Daten": { @@ -306,13 +306,13 @@ def test_map_capital_gmbh() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.GMBH) + result = transform.map_capital(data, CompanyTypeEnum.GMBH) # type: ignore assert result == capital def test_map_capital_ag() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.GRUNDKAPITAL + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.GRUNDKAPITAL # type: ignore ) data = { "XJustiz_Daten": { @@ -333,13 +333,13 @@ def test_map_capital_ag() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.SE) + result = transform.map_capital(data, CompanyTypeEnum.SE) # type: ignore assert result == capital def test_map_capital_personengesellschaft() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore ) data = { "XJustiz_Daten": { @@ -358,13 +358,13 @@ def test_map_capital_personengesellschaft() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.OHG) + result = transform.map_capital(data, CompanyTypeEnum.OHG) # type: ignore assert result == capital def test_map_capital_einzelkaufmann() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore ) data = { "XJustiz_Daten": { @@ -383,13 +383,13 @@ def test_map_capital_einzelkaufmann() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.EINZELKAUFMANN) + result = transform.map_capital(data, CompanyTypeEnum.EINZELKAUFMANN) # type: ignore assert result is None def test_map_capital_partial_null_values() -> None: capital = Capital( - currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL + currency=CurrencyEnum.DEUTSCHE_MARK, value=42, type=CapitalTypeEnum.STAMMKAPITAL # type: ignore ) data = { "XJustiz_Daten": { @@ -408,7 +408,7 @@ def test_map_capital_partial_null_values() -> None: } } - result = transform.map_capital(data, CompanyTypeEnum.OHG) + result = transform.map_capital(data, CompanyTypeEnum.OHG) # type: ignore assert result is None @@ -572,7 +572,7 @@ def test_map_unternehmensregister_json( # noqa: PLR0913 mock_map_company_id: Mock, ) -> None: expected_result = Company( - **{ + **{ # type: ignore "id": Mock(), "name": Mock(), "location": Mock(), diff --git a/tests/utils/mongo/company_mongo_service_test.py b/tests/utils/mongo/company_mongo_service_test.py index aa75949..1a1c98d 100644 --- a/tests/utils/mongo/company_mongo_service_test.py +++ b/tests/utils/mongo/company_mongo_service_test.py @@ -103,7 +103,7 @@ def test_insert(mock_mongo_connector: Mock, mock_collection: Mock) -> None: mock_collection.insert_one.return_value = mock_result assert ( service.insert( - Company(CompanyID("", ""), Location("Hier und Dort"), "", "", []) + Company(CompanyID("", ""), Location("Hier und Dort"), "", "", []) # type: ignore ) == mock_result ) From 4e25be5466f047d3902aa5f8962ba2553ade1f63 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sat, 23 Sep 2023 10:07:15 +0200 Subject: [PATCH 16/20] test(data-extraction): Introduct load.py test and scrape test --- .../data_extraction/unternehmensregister/extract_test.py | 5 +++++ .../data_extraction/unternehmensregister/load_test.py | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/tests/utils/data_extraction/unternehmensregister/extract_test.py b/tests/utils/data_extraction/unternehmensregister/extract_test.py index 136f256..1df4233 100644 --- a/tests/utils/data_extraction/unternehmensregister/extract_test.py +++ b/tests/utils/data_extraction/unternehmensregister/extract_test.py @@ -81,3 +81,8 @@ def test_wait_for_download_condition() -> None: with TemporaryDirectory(dir="./") as temp_dir: prepare_temporary_dir(temp_dir, ["xml", "txt"]) assert extract.wait_for_download_condition(temp_dir, 2) is False + + +def test_scrape() -> None: + with TemporaryDirectory(dir="./") as temp_dir: + extract.scrape("GEA Farm Technologies GmbH", [temp_dir]) diff --git a/tests/utils/data_extraction/unternehmensregister/load_test.py b/tests/utils/data_extraction/unternehmensregister/load_test.py index e69de29..6f6b58b 100644 --- a/tests/utils/data_extraction/unternehmensregister/load_test.py +++ b/tests/utils/data_extraction/unternehmensregister/load_test.py @@ -0,0 +1,8 @@ +"""Test load utils from Unternehmensregister.""" +from aki_prj23_transparenzregister.utils.data_extraction.unternehmensregister import ( + load, +) + + +def test_smoke() -> None: + assert load From d6223b41923a60b7234256819e7fabeb3fecacb3 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sat, 23 Sep 2023 10:21:26 +0200 Subject: [PATCH 17/20] refactor(data-extraction): Improve variable naming and exception handling --- .../models/company.py | 2 +- .../unternehmensregister/transform.py | 16 ++++++++-------- .../unternehmensregister/transform_test.py | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 7d3fe43..1f272fd 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -123,7 +123,7 @@ class PersonToCompanyRelationship(CompanyRelationship): class CompanyToCompanyRelationship(CompanyRelationship): """Extension of CompanyRelationship with extras for Company.""" - description: str + name: str class FinancialKPIEnum(Enum): diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index dd0d381..5707564 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -4,6 +4,7 @@ import glob import json import os import re +import sys from datetime import datetime import xmltodict @@ -62,9 +63,9 @@ def parse_stakeholder(data: dict) -> CompanyRelationship | None: if data["Beteiligter"]["Natuerliche_Person"]["Voller_Name"]["Vorname"] is None: return CompanyToCompanyRelationship( **{ - "description": data["Beteiligter"]["Natuerliche_Person"][ - "Voller_Name" - ]["Nachname"], + "name": data["Beteiligter"]["Natuerliche_Person"]["Voller_Name"][ + "Nachname" + ], "location": Location( **{ "city": data["Beteiligter"]["Natuerliche_Person"][ @@ -127,7 +128,7 @@ def parse_stakeholder(data: dict) -> CompanyRelationship | None: "role": RelationshipRoleEnum( data["Rolle"]["Rollenbezeichnung"]["content"] ), - "description": data["Beteiligter"]["Organisation"]["Bezeichnung"][ + "name": data["Beteiligter"]["Organisation"]["Bezeichnung"][ "Bezeichnung_Aktuell" ], "location": Location( @@ -324,7 +325,7 @@ def map_business_purpose(data: dict) -> str | None: return data["XJustiz_Daten"]["Fachdaten_Register"]["Basisdaten_Register"][ "Gegenstand_oder_Geschaeftszweck" ] - except Exception: + except KeyError: return None @@ -491,7 +492,6 @@ if __name__ == "__main__": json.dump( dataclasses.asdict(company), export_file, ensure_ascii=False ) - except Exception as e: + except Exception: logger.error(f"Error in processing {path}") - logger.error(e) - break + sys.exit(1) diff --git a/tests/utils/data_extraction/unternehmensregister/transform_test.py b/tests/utils/data_extraction/unternehmensregister/transform_test.py index 3d9cf42..9fa0028 100644 --- a/tests/utils/data_extraction/unternehmensregister/transform_test.py +++ b/tests/utils/data_extraction/unternehmensregister/transform_test.py @@ -51,7 +51,7 @@ def test_parse_stakeholder_org_hidden_in_person() -> None: } expected_result = CompanyToCompanyRelationship( role=RelationshipRoleEnum.KOMMANDITIST, # type: ignore - description="Some Company KG", + name="Some Company KG", type=CompanyRelationshipEnum.COMPANY, location=Location(**{"city": "Area 51"}), ) @@ -96,7 +96,7 @@ def test_parse_stakeholder_org() -> None: "Rolle": {"Rollenbezeichnung": {"content": "Geschäftsführender Direktor"}}, } expected_result = CompanyToCompanyRelationship( - description="Transparenzregister kG", + name="Transparenzregister kG", role=RelationshipRoleEnum.DIREKTOR, # type: ignore type=CompanyRelationshipEnum.COMPANY, location=Location( From 1e23a8d5a3c045e93f954cc6d0ee41a53dc8151a Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sat, 23 Sep 2023 10:51:54 +0200 Subject: [PATCH 18/20] refactor(data-extraction): Move date_to_iso function to string_tools --- .../unternehmensregister/transform.py | 18 +----------------- .../utils/string_tools.py | 18 ++++++++++++++++++ .../unternehmensregister/extract_test.py | 1 + .../unternehmensregister/transform_test.py | 15 +-------------- tests/utils/string_tools_test.py | 12 ++++++++++++ 5 files changed, 33 insertions(+), 31 deletions(-) diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py index 5707564..8129c28 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/transform.py @@ -5,7 +5,6 @@ import json import os import re import sys -from datetime import datetime import xmltodict from tqdm import tqdm @@ -26,6 +25,7 @@ from aki_prj23_transparenzregister.models.company import ( PersonToCompanyRelationship, RelationshipRoleEnum, ) +from aki_prj23_transparenzregister.utils.string_tools import transform_date_to_iso def transform_xml_to_json(source_dir: str, target_dir: str) -> None: @@ -329,22 +329,6 @@ def map_business_purpose(data: dict) -> str | None: return None -def transform_date_to_iso(date: str) -> str: - """Transform a date in `DD.MM.YY(YY)` to `YYYY-MM-DD`. - - Args: - date (str): Input date - - Returns: - str: ISO date - """ - regex_yy = r"^\d{1,2}\.\d{1,2}\.\d{2}$" - - input_format = "%d.%m.%y" if re.match(regex_yy, date) else "%d.%m.%Y" - date_temp = datetime.strptime(date, input_format) - return date_temp.strftime("%Y-%m-%d") - - def map_founding_date(data: dict) -> str | None: """Extracts the founding date from a given Unternehmensregister export. diff --git a/src/aki_prj23_transparenzregister/utils/string_tools.py b/src/aki_prj23_transparenzregister/utils/string_tools.py index be399f0..f56fbc7 100644 --- a/src/aki_prj23_transparenzregister/utils/string_tools.py +++ b/src/aki_prj23_transparenzregister/utils/string_tools.py @@ -1,4 +1,6 @@ """Contains functions fot string manipulation.""" +import re +from datetime import datetime def simplify_string(string_to_simplify: str | None) -> str | None: @@ -16,3 +18,19 @@ def simplify_string(string_to_simplify: str | None) -> str | None: else: raise TypeError("The string to simplify is not a string.") return string_to_simplify if string_to_simplify else None + + +def transform_date_to_iso(date: str) -> str: + """Transform a date in `DD.MM.YY(YY)` to `YYYY-MM-DD`. + + Args: + date (str): Input date + + Returns: + str: ISO date + """ + regex_yy = r"^\d{1,2}\.\d{1,2}\.\d{2}$" + + input_format = "%d.%m.%y" if re.match(regex_yy, date) else "%d.%m.%Y" + date_temp = datetime.strptime(date, input_format) + return date_temp.strftime("%Y-%m-%d") diff --git a/tests/utils/data_extraction/unternehmensregister/extract_test.py b/tests/utils/data_extraction/unternehmensregister/extract_test.py index 1df4233..14f3763 100644 --- a/tests/utils/data_extraction/unternehmensregister/extract_test.py +++ b/tests/utils/data_extraction/unternehmensregister/extract_test.py @@ -1,3 +1,4 @@ +"""Testing utisl/data_extraction/unternehmensregister/extract.py.""" import os from tempfile import TemporaryDirectory diff --git a/tests/utils/data_extraction/unternehmensregister/transform_test.py b/tests/utils/data_extraction/unternehmensregister/transform_test.py index 9fa0028..e1a68ec 100644 --- a/tests/utils/data_extraction/unternehmensregister/transform_test.py +++ b/tests/utils/data_extraction/unternehmensregister/transform_test.py @@ -1,3 +1,4 @@ +"""Testing utils/data_extraction/unternehmensregister/transform.py.""" import json import os from tempfile import TemporaryDirectory @@ -435,20 +436,6 @@ def test_map_business_purpose_no_result() -> None: assert result is None -def test_transform_date_to_iso() -> None: - date = "10.10.1111" - expected_result = "1111-10-10" - result = transform.transform_date_to_iso(date) - assert result == expected_result - - -def test_transform_date_to_iso_2_char_year() -> None: - date = "10.10.98" - expected_result = "1998-10-10" - result = transform.transform_date_to_iso(date) - assert result == expected_result - - def test_map_founding_date_from_tag_der_ersten_eintragung() -> None: data = { "some entry": "Tag der ersten Eintragung: 01.05.2004", diff --git a/tests/utils/string_tools_test.py b/tests/utils/string_tools_test.py index 26a7b1b..e19b488 100644 --- a/tests/utils/string_tools_test.py +++ b/tests/utils/string_tools_test.py @@ -33,3 +33,15 @@ def test_simplify_string_type_error(value: Any) -> None: """Tests if the type error is thrown when the value is the wrong type.""" with pytest.raises(TypeError): assert string_tools.simplify_string(value) + + +@pytest.mark.parametrize( + ("value", "expected"), + [ + ("10.10.1111", "1111-10-10"), + ("10.10.98", "1998-10-10"), + ], +) +def test_transform_date_to_iso(value: str, expected: str) -> None: + result = string_tools.transform_date_to_iso(value) + assert result == expected From 5a7472cd3cf0061ff0d61737cb40b5fb244a15b9 Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sat, 23 Sep 2023 12:07:07 +0200 Subject: [PATCH 19/20] checkpoint(data-extraction): Adapt load to update exisitng entries in order to keep yearly_results --- .../models/company.py | 8 ++++ .../unternehmensregister/load.py | 13 ++---- .../utils/mongo/company_mongo_service.py | 42 ++++++++++++++++--- .../utils/mongo/company_mongo_service_test.py | 17 +++++--- 4 files changed, 61 insertions(+), 19 deletions(-) diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index 9c2e446..e52afd5 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -76,6 +76,14 @@ class CompanyID: district_court: DistrictCourt hr_number: str + def to_dict(self) -> dict: + """Transform to dict. + + Returns: + dict: Dictionary + """ + return asdict(self) + @dataclass class Location: diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py index 52bf304..621b723 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/load.py @@ -5,23 +5,18 @@ import os from tqdm import tqdm +from aki_prj23_transparenzregister.config.config_providers import JsonFileConfigProvider from aki_prj23_transparenzregister.models.company import Company from aki_prj23_transparenzregister.utils.mongo.company_mongo_service import ( CompanyMongoService, ) from aki_prj23_transparenzregister.utils.mongo.connector import ( - MongoConnection, MongoConnector, ) if __name__ == "__main__": - conn_string = MongoConnection( - hostname="localhost", - database="transparenzregister", - username="username", - password="", - port=27017, - ) + provider = JsonFileConfigProvider("secrets.json") + conn_string = provider.get_mongo_connection_string() connector = MongoConnector(conn_string) service = CompanyMongoService(connector) @@ -32,4 +27,4 @@ if __name__ == "__main__": data = json.loads(file_object.read()) company: Company = Company(**data) - service.insert(company) + service.migrations_of_base_data(company) diff --git a/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py b/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py index c2641bb..a2f0012 100644 --- a/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py +++ b/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py @@ -24,23 +24,37 @@ class CompanyMongoService: """_summary_. Returns: - list[Company]: _description_ + list[Company]: List of retrieved companies """ with self.lock: result = self.collection.find() return list(result) - def get_by_id(self, id: str) -> Company | None: + def get_by_id(self, id: dict) -> dict | None: """_summary_. Args: - id (str): _description_ + id (CompanyID): CompanyID Returns: - Company | None: _description_ + dict | None: Company if found """ with self.lock: - result = list(self.collection.find({"id": id})) + result = list( + self.collection.find( + { + "id": { + "$eq": { + "hr_number": id["hr_number"], + "district_court": { + "name": id["district_court"]["name"], + "city": id["district_court"]["city"], + }, + } + } + } + ) + ) if len(result) == 1: return result[0] return None @@ -106,3 +120,21 @@ class CompanyMongoService: return self.collection.update_one( {"_id": ObjectId(_id)}, {"$set": {"yearly_results": yearly_results}} ) + + def migrations_of_base_data(self, data: Company) -> InsertOneResult | UpdateResult: + """Updates or inserts a document of type company depending on whether an entry with the same id (CompanyID) can be found. + + Args: + data (Company): Company related data to persist + + Returns: + InsertOneResult | UpdateResult: Result depending on action + """ + entry = self.get_by_id(data.id.to_dict()) + if entry is None: + return self.insert(data) + statement = {"$set": dict(data.to_dict().items())} + with self.lock: + return self.collection.update_one( + {"_id": ObjectId(entry["_id"])}, statement + ) diff --git a/tests/utils/mongo/company_mongo_service_test.py b/tests/utils/mongo/company_mongo_service_test.py index 1a1c98d..ed45849 100644 --- a/tests/utils/mongo/company_mongo_service_test.py +++ b/tests/utils/mongo/company_mongo_service_test.py @@ -3,7 +3,12 @@ from unittest.mock import Mock import pytest -from aki_prj23_transparenzregister.models.company import Company, CompanyID, Location +from aki_prj23_transparenzregister.models.company import ( + Company, + CompanyID, + DistrictCourt, + Location, +) from aki_prj23_transparenzregister.utils.mongo.company_mongo_service import ( CompanyMongoService, ) @@ -73,21 +78,23 @@ def test_by_id_no_result(mock_mongo_connector: Mock, mock_collection: Mock) -> N mock_mongo_connector.database = {"companies": mock_collection} service = CompanyMongoService(mock_mongo_connector) mock_collection.find.return_value = [] - assert service.get_by_id("Does not exist") is None + id = CompanyID(DistrictCourt("a", "b"), "c").to_dict() + assert service.get_by_id(id) is None def test_by_id_result(mock_mongo_connector: Mock, mock_collection: Mock) -> None: """Test CompanyMongoService get_by_id with result. Args: - mock_mongo_connector (Mock): Mocked MongoConnector library - mock_collection (Mock): Mocked pymongo collection + mock_mongo_connector (Mock): Mocked MongoConnector library + mock_collection (Mock): Mocked pymongo collection. """ mock_mongo_connector.database = {"companies": mock_collection} service = CompanyMongoService(mock_mongo_connector) mock_entry = {"id": "Does exist", "vaue": 42} mock_collection.find.return_value = [mock_entry] - assert service.get_by_id("Does exist") == mock_entry + id = CompanyID(DistrictCourt("a", "b"), "c").to_dict() + assert service.get_by_id(id) == mock_entry def test_insert(mock_mongo_connector: Mock, mock_collection: Mock) -> None: From 282d638c11433e4eb51245f954011dc464a106fc Mon Sep 17 00:00:00 2001 From: TrisNol Date: Sun, 24 Sep 2023 13:46:19 +0200 Subject: [PATCH 20/20] refactor: Implement PR feedback --- .../models/auditor.py | 2 +- .../models/company.py | 8 +++----- .../unternehmensregister/extract.py | 4 +--- .../utils/mongo/company_mongo_service.py | 10 +++++----- .../utils/mongo/connector.py | 4 ++-- .../utils/mongo/news_mongo_service.py | 20 ++++++------------- .../utils/mongo/company_mongo_service_test.py | 4 ++-- 7 files changed, 20 insertions(+), 32 deletions(-) diff --git a/src/aki_prj23_transparenzregister/models/auditor.py b/src/aki_prj23_transparenzregister/models/auditor.py index 28856a8..1e36b22 100644 --- a/src/aki_prj23_transparenzregister/models/auditor.py +++ b/src/aki_prj23_transparenzregister/models/auditor.py @@ -10,7 +10,7 @@ class Auditor: company: str | None def to_dict(self) -> dict: - """_summary_. + """Transform to dict. Returns: dict: _description_ diff --git a/src/aki_prj23_transparenzregister/models/company.py b/src/aki_prj23_transparenzregister/models/company.py index e52afd5..6cadbdc 100644 --- a/src/aki_prj23_transparenzregister/models/company.py +++ b/src/aki_prj23_transparenzregister/models/company.py @@ -206,8 +206,6 @@ class Capital: @dataclass class Company: - """_summary_.""" - """Company dataclass.""" id: CompanyID @@ -215,12 +213,12 @@ class Company: name: str last_update: str relationships: list[CompanyRelationship] - # yearly_results: Optional[list[FinancialResults]] + # yearly_results: list[FinancialResults]] | None company_type: CompanyTypeEnum | None = None - capital: Capital | None | None = None + capital: Capital | None = None business_purpose: str | None = None founding_date: str | None = None def to_dict(self) -> dict: - """_summary_.""" + """Transform class to dict.""" return asdict(self) diff --git a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py index 9095445..6fd3174 100644 --- a/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py +++ b/src/aki_prj23_transparenzregister/utils/data_extraction/unternehmensregister/extract.py @@ -1,18 +1,16 @@ """Unternehmensregister Scraping.""" import glob -import logging import multiprocessing import os from pathlib import Path +from loguru import logger from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as ec from selenium.webdriver.support.ui import WebDriverWait from tqdm import tqdm -logger = logging.getLogger() - def scrape(query: str, download_dir: list[str]) -> None: """Fetch results from Unternehmensregister for given query. diff --git a/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py b/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py index a2f0012..03354f4 100644 --- a/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py +++ b/src/aki_prj23_transparenzregister/utils/mongo/company_mongo_service.py @@ -9,10 +9,10 @@ from aki_prj23_transparenzregister.utils.mongo.connector import MongoConnector class CompanyMongoService: - """_summary_.""" + """Wrapper for MongoDB regarding management of Company documents.""" def __init__(self, connector: MongoConnector): - """_summary_. + """Constructor. Args: connector (MongoConnector): _description_ @@ -21,7 +21,7 @@ class CompanyMongoService: self.lock = Lock() # Create a lock for synchronization def get_all(self) -> list[Company]: - """_summary_. + """Get all Company documents. Returns: list[Company]: List of retrieved companies @@ -31,7 +31,7 @@ class CompanyMongoService: return list(result) def get_by_id(self, id: dict) -> dict | None: - """_summary_. + """Get a Company document by the given id. Args: id (CompanyID): CompanyID @@ -95,7 +95,7 @@ class CompanyMongoService: return list(self.collection.find({"yearly_results": {"$gt": {}}})) def insert(self, company: Company) -> InsertOneResult: - """_summary_. + """Insert a new Company document. Args: company (Company): _description_ diff --git a/src/aki_prj23_transparenzregister/utils/mongo/connector.py b/src/aki_prj23_transparenzregister/utils/mongo/connector.py index 0a84806..18763cf 100644 --- a/src/aki_prj23_transparenzregister/utils/mongo/connector.py +++ b/src/aki_prj23_transparenzregister/utils/mongo/connector.py @@ -6,7 +6,7 @@ import pymongo @dataclass class MongoConnection: - """_summary_.""" + """Wrapper for MongoDB connection string.""" hostname: str database: str @@ -36,7 +36,7 @@ class MongoConnector: """Wrapper for establishing a connection to a MongoDB instance.""" def __init__(self, connection: MongoConnection): - """_summary_. + """Wrapper for MongoDB collection. Args: connection (MongoConnection): Wrapper for connection string diff --git a/src/aki_prj23_transparenzregister/utils/mongo/news_mongo_service.py b/src/aki_prj23_transparenzregister/utils/mongo/news_mongo_service.py index 0857207..2bf80c3 100644 --- a/src/aki_prj23_transparenzregister/utils/mongo/news_mongo_service.py +++ b/src/aki_prj23_transparenzregister/utils/mongo/news_mongo_service.py @@ -6,14 +6,10 @@ from aki_prj23_transparenzregister.utils.mongo.connector import MongoConnector class MongoNewsService: - """_summary_. - - Args: - NewsServiceInterface (_type_): _description_ - """ + """Wrapper for MongoDB regarding News documents.""" def __init__(self, connector: MongoConnector): - """_summary_. + """Constructor. Args: connector (MongoConnector): _description_ @@ -21,7 +17,7 @@ class MongoNewsService: self.collection = connector.database["news"] def get_all(self) -> list[News]: - """_summary_. + """Get all News documents. Returns: list[News]: _description_ @@ -30,7 +26,7 @@ class MongoNewsService: return [MongoEntryTransformer.transform_outgoing(elem) for elem in result] def get_by_id(self, id: str) -> News | None: - """_summary_. + """Get a News document by the given id. Args: id (str): _description_ @@ -44,7 +40,7 @@ class MongoNewsService: return None def insert(self, news: News) -> InsertOneResult: - """_summary_. + """Insert a new News document. Args: news (News): _description_ @@ -56,11 +52,7 @@ class MongoNewsService: class MongoEntryTransformer: - """_summary_. - - Returns: - _type_: _description_ - """ + """Transform a dict to News entity and back.""" @staticmethod def transform_ingoing(news: News) -> dict: diff --git a/tests/utils/mongo/company_mongo_service_test.py b/tests/utils/mongo/company_mongo_service_test.py index ed45849..7b99a07 100644 --- a/tests/utils/mongo/company_mongo_service_test.py +++ b/tests/utils/mongo/company_mongo_service_test.py @@ -86,8 +86,8 @@ def test_by_id_result(mock_mongo_connector: Mock, mock_collection: Mock) -> None """Test CompanyMongoService get_by_id with result. Args: - mock_mongo_connector (Mock): Mocked MongoConnector library - mock_collection (Mock): Mocked pymongo collection. + mock_mongo_connector (Mock): Mocked MongoConnector library + mock_collection (Mock): Mocked pymongo collection. """ mock_mongo_connector.database = {"companies": mock_collection} service = CompanyMongoService(mock_mongo_connector)