ingestion models: less code repetition, more inheritance

This commit is contained in:
2026-09-13 07:55:24 +02:00
parent 58dc585e7e
commit 46bdd5e68c
3 changed files with 60 additions and 13 deletions
+41
View File
@@ -10,6 +10,7 @@ from src.models._common import (
_hash,
_parse_date_german,
_parse_decimal_german,
date2str,
)
@@ -29,6 +30,14 @@ class ComdirectBase(ExportBaseModel):
def parse_amount(cls, decimal_str: str) -> Decimal:
return _parse_decimal_german(decimal_str)
def parameters_to_dict(self) -> dict[str, str]: ...
def parameters_to_str(self, sep=", ", str_qualifier=False): ...
def __repr__(self): ...
def __str__(self): ...
class ComdirectGiro(ComdirectBase):
# # Fields from parents:
@@ -50,6 +59,22 @@ class ComdirectGiro(ComdirectBase):
def parse_date_book(cls, date_str: str) -> date | None:
return _parse_date_german(date_str)
def parameters_to_dict(self) -> dict[str, str]:
return {
"Buchungstag": date2str(
self.date_book, default="--", date_format="%d.%m.%Y"
),
"Vorgang": self.type,
"Text": self.text,
}
def parameters_to_str(self, sep=", ", str_qualifier=False):
...
def __repr__(self): ...
def __str__(self): ...
class ComdirectCreditCard(ComdirectGiro):
# # Fields from parents:
@@ -71,6 +96,14 @@ class ComdirectCreditCard(ComdirectGiro):
alias="Umsatz in EUR", examples=["32,43"], default=None
)
def parameters_to_dict(self) -> dict[str, str]: ...
def parameters_to_str(self, sep=", ", str_qualifier=False): ...
def __repr__(self): ...
def __str__(self): ...
class ComdirectDepot(ComdirectBase):
# # Fields from parents:
@@ -88,6 +121,14 @@ class ComdirectDepot(ComdirectBase):
def parse_decimals(cls, decimal_in: str) -> Decimal:
return _parse_decimal_german(decimal_in)
def parameters_to_dict(self) -> dict[str, str]: ...
def parameters_to_str(self, sep=", ", str_qualifier=False): ...
def __repr__(self): ...
def __str__(self): ...
class ComdirectBaseDb(IngestdbBase):
__abstract__ = True