Package: kohlrahbi
KohlrAHBiKohlrahbi generates machine-readable files from AHB documents.RationaleGerman utilities exchange data usingEDIFACT; This is called market communication (mako).
TheForum Datenformateof the BDEW publishes the technical regulations of the EDIFACT based market communication onedi-energy.de.
These rules are not stable but change twice a year (in theory) or few times per year (in reality).Specific rules, which are binding for every German utility are kind of formalised in so called "Anwendungshandbüchern" (AHB).
Those AHBs are basically long tables that describe:As a utility, if I want to exchange data about business process XYZ with a market partner, then I have to provide the following information: [...]In total the regulations from these Anwendungshandbücher span several thousand pages.
And by pages, we reallymeanpages.
EDIFACT communication is basically the API between German utilities for most of their B2B processes.
However, the technical specifications of this API areproseon DIN A4 pages.The Anwendungshandbücher are the epitome of digitization with some good intentions.Although the AHBs are publicly available as PDF or Word files onedi-energy.de, they are hardly accessible in a technical sense:You cannot automatically extract information from the AHBs.You cannot run automatic comparisons between different versions.You cannot automatically test your own API against the set of rules, described in the AHBs (as prose).You cannot view or visualize the information from the AHBs in any more intuitive or practical way, than the raw tables from the AHB files....any many more...The root cause for all these inaccessibility is a technical one:
Information that are theoretically structured are published in an unstructured format (PDF or Word), which is not suited for technical specifications in IT.KohlrAHBi as a tool helps you to break those chains and access the AHBs as you'd expect it from technical specs: easy and automatically instead of with hours of mindless manual work.KohlrAHBi takes the.docxfiles published byedi-energy.deas an input and returns truly machine-readable data in a variety of formats (JSON, CSV...) as a result.Hence, KohlrAHBi is the key for unlocking any automation potential that is reliant on information hidden in the Anwendungshandbücher.We're all hoping for the day of true digitization on which this repository will become obsolete.InstallationKohlrahbi is a Python based tool.
Therefor you have to make sure, that Python is running on your machine.We recommend to use virtual environments to keep your system clean.Create a new virtual environment withpython-mvenv.venvThe activation of the virtual environment depends on your used OS.Windows.venv\Scripts\activateMacOS/Linuxsource .venv/bin/activateFinally, install the package withpipinstallkohlrahbiUsageThere are two ways to use kohlrahbi.You can extract all prüfidentifikatoren listed inall_known_pruefis.toml,or you can extract a specific prüfidentifikator.Get all PrüfidentifikatorenIf you want to extract all prüfidentifikatoren, you can run the following command.
For the following steps we assume that you cloned ouredi_energy_mirrorto a neighbouring directory.kohlrahbi--input_path../edi_energy_mirror/edi_energy_de/current--output_path./output/--file-typeflatahbThis will extract all prüfidentifikatoren listed inall_known_pruefis.tomland save them in the provided output path..docxData Sourceskohlrahbi internally relies on aspecific naming schemaof the.docxfiles in which the file name holds information about the edifact format and validity period of the AHBs contained within the file.
The easiest way to be compliant with this naming schema is to clone ouredi_energy_mirrorrepository to your localhost.Get a specific PrüfidentifikatorIf you want to extract a specific prüfidentifikator, you can run the following command.kohlrahbi--input_path../edi_energy_mirror/edi_energy_de/current--output_path./output/--pruefis13002--file-typexlsxYou can also provide multiple prüfidentifikatoren.kohlrahbi--input_path../edi_energy_mirror/edi_energy_de/current--output_path./output/--pruefis13002--pruefis13003--pruefis13005--file-typecsvResultsThere is a kohlrahbi based CI pipeline from the edi_energy_mirror mentioned above to the repositorymachine-readable_anwendungshandbuecherwhere you can find scraped AHBs as JSON, CSV or Excel files.Export ConditionKeys and ConditionTextsFor example to export condition.json files toedi_energy_ahb_conditions_and_packages. Works best if no flags for "Prüfindentifikatoren" (--pruefis). In this case all known "Prüfidentifikatoren" are scanned. Thus all related conditions are gathered.kohlrahbi--file-typeconditions--input_path../edi_energy_mirror/edi_energy_de/current--output_path./output/edi_energy_ahb_conditions_and_packages/aktuelleFVWorkflowflowchart TB
    S[Start] --> RD[Read docx]
    RD --> RPT[Read all paragraphs <br> and tables]
    RPT --> I[Start iterating]
    I --> NI[Read next item]
    %% check for text paragraph %%
    NI --> CTP{Text Paragraph?}
    CTP -- Yes --> NI
    CTP -- No --> CCST{Is item just<br>Chapter or Section Title?}
    CCST -- Yes --> CTAenderunghistorie{Is Chapter Title<br>'Änderungshistorie'?}
    CTAenderunghistorie -- Yes --> EXPORT[Export Extract]
    CCST -- No --> CT{Is item a table<br>with prüfis?}
    CT -- Yes --> Extract[Create Extract]DevelopmentSetupTo set up the development environment, you have to install the dev dependencies.tox-edevRun all tests and lintersTo run the tests, you can use tox.toxSee ourPython Template Repositoryfor detailed explanations.ContributeYou are very welcome to contribute to this template repository by opening a pull request against the main branch.Related Tools and ContextThis repository is part of theHochfrequenz Libraries and Tools for a truly digitized market communication.