diff --git a/src/exchanges/ls.py b/src/exchanges/ls.py index 16ddd41..1626b13 100644 --- a/src/exchanges/ls.py +++ b/src/exchanges/ls.py @@ -1,4 +1,6 @@ import requests +import csv +import io from datetime import datetime from typing import List from .base import BaseExchange, Trade @@ -25,35 +27,32 @@ class LSExchange(BaseExchange): response = requests.get(url, headers=headers) response.raise_for_status() - import csv - import io - f = io.StringIO(response.text) - # Header: isin;displayName;tradeTime;price;currency;size;orderId - reader = csv.DictReader(f, delimiter=';') - - trades = [] - for item in reader: - try: - price = float(item['price'].replace(',', '.')) - quantity = float(item['size'].replace(',', '.')) - isin = item['isin'] - symbol = item['displayName'] - time_str = item['tradeTime'] - - # Format: 2026-01-23T07:30:00.992000Z - ts_str = time_str.replace('Z', '+00:00') - timestamp = datetime.fromisoformat(ts_str) - - all_trades.append(Trade( - exchange=self.name, - symbol=symbol, - isin=isin, - price=price, - quantity=quantity, - timestamp=timestamp - )) - except Exception: - continue + f = io.StringIO(response.text) + # Header: isin;displayName;tradeTime;price;currency;size;orderId + reader = csv.DictReader(f, delimiter=';') + + for item in reader: + try: + price = float(item['price'].replace(',', '.')) + quantity = float(item['size'].replace(',', '.')) + isin = item['isin'] + symbol = item['displayName'] + time_str = item['tradeTime'] + + # Format: 2026-01-23T07:30:00.992000Z + ts_str = time_str.replace('Z', '+00:00') + timestamp = datetime.fromisoformat(ts_str) + + all_trades.append(Trade( + exchange=self.name, + symbol=symbol, + isin=isin, + price=price, + quantity=quantity, + timestamp=timestamp + )) + except Exception: + continue except Exception as e: print(f"Error fetching LS data from {url}: {e}") return all_trades