data: data

obd_diag.data.dtc_catalog

.. py:module:: obd_diag.data.dtc_catalog

Offline-Katalog der Fehlercode-Texte (SQLite, erzeugt von tools/build_dtc_db.py).

Datenquelle: OBDex (https://github.com/foerbsnavi/OBDex), Daten unter CC0-1.0.

.. py:class:: Cause(label: str, likelihood: str) :module: obd_diag.data.dtc_catalog

Bases: :py:class:object

.. py:class:: DtcInfo(code: str, title: str, description: str | None = None, causes: tuple[obd_diag.data.dtc_catalog.Cause, …] = (), symptoms: tuple[str, …] = (), mil: bool | None = None, emissions_relevant: bool | None = None, repair_difficulty: str | None = None, cost_eur: tuple[int, int] | None = None) :module: obd_diag.data.dtc_catalog

Bases: :py:class:object

.. py:class:: DtcCatalog(path=PosixPath(‘/home/runner/work/obd-diag/obd-diag/src/obd_diag/data/dtc_catalog.sqlite’)) :module: obd_diag.data.dtc_catalog

Bases: :py:class:object

Schlägt Fehlercodes nach. lang ist "de" oder "en"; fehlt eine Übersetzung, wird auf Englisch zurückgefallen.

.. py:method:: DtcCatalog.default() :module: obd_diag.data.dtc_catalog :classmethod:

  Der mitgelieferte Katalog, oder ``None``, wenn er noch nicht gebaut wurde.

.. py:method:: DtcCatalog.meta() :module: obd_diag.data.dtc_catalog

  Herkunftsangaben des Katalogs (Quelle, Commit, Lizenz, Bauzeit).

obd_diag.data.catalog_build

.. py:module:: obd_diag.data.catalog_build

Schreibt den DTC-Katalog (SQLite) aus bereits geparsten OBDex-Einträgen.

Das Parsen der YAML-Quellen übernimmt tools/build_dtc_db.py; dieses Modul kennt nur Python-Dicts und die Standardbibliothek, damit es ohne PyYAML testbar bleibt.

.. py:exception:: CatalogBuildError :module: obd_diag.data.catalog_build

Bases: :py:class:ValueError

Ein Quelleintrag ist unvollständig oder doppelt.

.. py:function:: build(entries, out_path, meta=None) :module: obd_diag.data.catalog_build

Baut den Katalog nach out_path und gibt die Anzahl der Codes zurück.

Geschrieben wird in eine temporäre Datei daneben, die erst nach Erfolg atomar umbenannt wird; ein abgebrochener Lauf hinterlässt keinen halben Katalog.

obd_diag.data.wmi

.. py:module:: obd_diag.data.wmi

Offline-Tabelle der Herstellerkennungen (WMI, FIN-Stellen 1-3) und Länderbereiche.

MANUFACTURERS ist eine kuratierte Auswahl häufiger WMIs (deutsche, europäische, asiatische und amerikanische Hersteller). Sie ist nicht vollständig: unbekannte WMIs ergeben keinen Hersteller. Jeder Eintrag wurde am 2026-10-07 gegen mindestens eine dieser Quellen geprüft:

  • Wikipedia „Vehicle identification number“, Abschnitt „List of common WMI“ (https://en.wikipedia.org/wiki/Vehicle_identification_number), dort zum Teil mit der WMI-Liste des Kraftfahrt-Bundesamts belegt;

  • Wikipedia „Fahrzeug-Identifizierungsnummer“, Abschnitt Herstellercodes (https://de.wikipedia.org/wiki/Fahrzeug-Identifizierungsnummer);

  • NHTSA vPIC DecodeWMI (Stichproben, z. B. https://vpic.nhtsa.dot.gov/api/vehicles/DecodeWMI/WVW?format=json); vPIC kennt nur WMIs von Fahrzeugen, die in die USA geliefert werden.

Einträge, die keine dieser Quellen bestätigt, wurden entfernt. WMIs mit 9 an Stelle 3 (Kleinserienhersteller, der Hersteller steht erst in den Stellen 12-14) fehlen absichtlich. Die Bezeichnungen sind eigene Kurzformen; übernommen sind nur die Zuordnungen (Fakten). Manche WMIs nutzt ein Konzern für mehrere Marken, angegeben ist dann die übliche Hauptmarke oder der Konzern.

Das Land ergibt sich unabhängig davon aus den ersten zwei Zeichen nach den Regionsbereichen der ISO 3780 (country_for); das ist das Land, für das die WMI vergeben wurde, in der Regel das Land des Werks oder des Herstellersitzes. Die Bereiche folgen der ISO-Übersicht „WMI Country Code Distribution“, Stand 13.04.2021 (https://standards.iso.org/iso/3780/ed-4/en/Current%20WMI%20World%20Codes%20chart%204.13.21.pdf), in der Aufschlüsselung der englischen Wikipedia (Abschnitt „World manufacturer identifier“), geprüft am 2026-10-07.

.. py:function:: manufacturer_for(wmi) :module: obd_diag.data.wmi

Hersteller zur WMI (FIN-Stellen 1-3) oder None, wenn nicht in der Tabelle.

.. py:function:: country_for(wmi) :module: obd_diag.data.wmi

Land nach den ersten zwei Zeichen (ISO-3780-Bereiche) oder None.