diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/trade_dataclasses.py | 56 |
1 files changed, 16 insertions, 40 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index 007baabc..1597bd7f 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -2,7 +2,7 @@ from dataclasses import dataclass, field, fields, Field from enum import Enum from io import StringIO from headers import DealType, MTM_HEADERS, HEADERS -from csv_headers.citco import GIL +from csv_headers.citco import GIL, GTL from typing import ClassVar, Tuple, Union from decimal import Decimal from typing import Literal @@ -437,48 +437,24 @@ class Citco: @classmethod def citco_upload(cls): - if not (cls._citco_queue or cls._citco_trade_queue): # early exit + if not cls._citco_queue: # early exit return - - if cls._citco_queue: - buf = StringIO() - csvwriter = csv.writer(buf) - csvwriter.writerow(cls._citco_headers) - csvwriter.writerows( - [row.get(h, None) for h in cls._citco_headers] - for row in cls._citco_queue - ) - buf = buf.getvalue().encode() - fname = f"i.innocap_serenitas.{datetime.datetime.now():%Y%m%d%H%M%S}.csv" - cls._sftp.client.chdir("incoming") - cls._sftp.put(buf, fname) - dest = DAILY_DIR / str(datetime.date.today()) / fname - dest.write_bytes(buf) - cls._citco_queue.clear() - - if cls._citco_trade_queue: - buf = StringIO() - csvwriter = csv.writer(buf) - csvwriter.writerow(cls._citco_trade_headers) - csvwriter.writerows( - [row.get(h, None) for h in cls._citco_trade_headers] - for row in cls._citco_trade_queue - ) - buf = buf.getvalue().encode() - fname = ( - f"innocap_serenitas_trades_{datetime.datetime.now():%Y%m%d%H%M%S}.csv" - ) - cls._sftp.client.chdir("incoming") - cls._sftp.put(buf, fname) - dest = DAILY_DIR / str(datetime.date.today()) / fname - dest.write_bytes(buf) - cls._citco_trade_queue.clear() + buf = StringIO() + csvwriter = csv.writer(buf) + csvwriter.writerow(cls._citco_headers) + csvwriter.writerows( + [row.get(h, None) for h in cls._citco_headers] for row in cls._citco_queue + ) + buf = buf.getvalue().encode() + fname = f"i.innocap_serenitas.{datetime.datetime.now():%Y%m%d%H%M%S}.csv" + cls._sftp.client.chdir("incoming") + cls._sftp.put(buf, fname) + dest = DAILY_DIR / str(datetime.date.today()) / fname + dest.write_bytes(buf) + cls._citco_queue.clear() def citco_stage(self): - if "citco" in self._table_name: - self._citco_queue.append(self.to_citco()) - else: - self._citco_trade_queue.append(self.to_citco()) + self._citco_queue.append(self.to_citco()) class CitcoProduct(Citco): |
