updated dashboard
All checks were successful
Deployment / deploy-docker (push) Successful in 16s

This commit is contained in:
Melchior Reimers
2026-01-27 11:30:50 +01:00
parent 228212cbab
commit 01f4c23f51
6 changed files with 65 additions and 20 deletions

View File

@@ -147,21 +147,37 @@ class GettexExchange(BaseExchange):
if len(parts) >= 4:
date_str = parts[1] # YYYYMMDD
if not date_str:
print(f"[GETTEX] WARNING: Could not extract date from filename: {filename}")
# Debug: Zeige erste Zeile
if lines and len(lines) > 0:
print(f"[GETTEX] First line sample: {lines[0][:100]}")
# Gettex CSV hat KEINEN Header!
# Format: ISIN,Zeit,Währung,Preis,Menge
# z.B.: DE000BAY0017,09:15:03.638460,EUR,45.775,22
for line in lines:
parse_errors = 0
for i, line in enumerate(lines):
if not line.strip():
continue
try:
trade = self._parse_headerless_csv_line(line, date_str)
if trade:
trades.append(trade)
except Exception:
else:
if i < 3: # Zeige nur erste paar Fehler
print(f"[GETTEX] Failed to parse line {i+1}: {line[:80]}")
except Exception as e:
parse_errors += 1
if i < 3:
print(f"[GETTEX] Exception parsing line {i+1}: {e}, line: {line[:80]}")
continue
if trades:
print(f"[GETTEX] Parsed {len(trades)} trades from {filename}")
print(f"[GETTEX] Parsed {len(trades)} trades from {filename} ({len(lines)} lines, {parse_errors} errors)")
elif len(lines) > 0:
print(f"[GETTEX] No trades parsed from {filename} ({len(lines)} lines, {parse_errors} errors)")
except requests.exceptions.HTTPError as e:
if e.response.status_code != 404:
@@ -189,11 +205,18 @@ class GettexExchange(BaseExchange):
qty_str = parts[4].strip()
# Validierung
if not isin or len(isin) != 12: # ISIN ist immer 12 Zeichen
if not isin:
return None
price = float(price_str)
quantity = float(qty_str)
# ISIN kann 12 Zeichen sein, aber nicht immer (manchmal kürzer bei Testdaten)
if len(isin) < 10:
return None
try:
price = float(price_str)
quantity = float(qty_str)
except ValueError:
return None
if price <= 0 or quantity <= 0:
return None
@@ -231,7 +254,8 @@ class GettexExchange(BaseExchange):
timestamp=timestamp
)
except Exception:
except Exception as e:
# Stille Fehlerbehandlung - nur bei Debug
return None
def _parse_csv_row(self, row: dict) -> Optional[Trade]: