aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/report_ops/__main__.py4
-rw-r--r--python/report_ops/sma.py5
2 files changed, 5 insertions, 4 deletions
diff --git a/python/report_ops/__main__.py b/python/report_ops/__main__.py
index fcf909c6..9b7af168 100644
--- a/python/report_ops/__main__.py
+++ b/python/report_ops/__main__.py
@@ -129,5 +129,7 @@ if args.send_positions:
IRSwaptionPosition,
CDXSwaptionPosition,
):
- position_report.stage_positions(cob, fund)
+ for position in position_report.gen_positions(cob, fund):
+ PositionReport.staging_queue.append(position.serialize("position"))
PositionReport.build_buffer(cob, fund, not args.no_upload)
+ PositionReport.staging_queue.clear()
diff --git a/python/report_ops/sma.py b/python/report_ops/sma.py
index bb58fe07..0d7fea61 100644
--- a/python/report_ops/sma.py
+++ b/python/report_ops/sma.py
@@ -159,13 +159,12 @@ class PositionReport(Deal, deal_type=None, table_name=None):
cls._query = _sql_query[asset_class]
@classmethod
- def stage_positions(cls, cob, fund):
+ def gen_positions(cls, cob, fund):
with cls._conn.cursor() as c:
params = (cob, fund) if cls not in (TranchePosition,) else (cob,)
c.execute(cls._query, params)
for row in c:
- position = cls.from_query(row._asdict(), cob, fund)
- cls.staging_queue.append(position.serialize("position"))
+ yield cls.from_query(row._asdict(), cob, fund)
@classmethod
def build_buffer(cls, cob, fund, upload=False):