From 661314ce4995bd8233488be361c1c88940f9c8c6 Mon Sep 17 00:00:00 2001 From: jfkirk Date: Mon, 17 Aug 2015 16:01:47 -0400 Subject: [PATCH] ENH: AssetWriter now writes one Asset per insert statement --- zipline/assets/asset_writer.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/zipline/assets/asset_writer.py b/zipline/assets/asset_writer.py index 79a2ce8d..b1a0d979 100644 --- a/zipline/assets/asset_writer.py +++ b/zipline/assets/asset_writer.py @@ -147,10 +147,10 @@ class AssetDBWriter(with_metaclass(ABCMeta)): {'index': 'sid'}, 1, ).to_dict('records') - if recs: - self.futures_contracts.insert().values(recs).execute(bind=bind) - ar_recs = [(rec['sid'], 'future') for rec in recs] - self.asset_router.insert().values(ar_recs).execute(bind=bind) + for record in recs: + self.futures_contracts.insert().values([record]).execute(bind=bind) + self.asset_router.insert().values([(record['sid'], 'future')])\ + .execute(bind=bind) def _write_equities(self, equities, fuzzy_char, bind=None): # Apply fuzzy matching. @@ -161,10 +161,10 @@ class AssetDBWriter(with_metaclass(ABCMeta)): {'index': 'sid'}, 1, ).to_dict('records') - if recs: - self.equities.insert().values(recs).execute(bind=bind) - ar_recs = [(rec['sid'], 'equity') for rec in recs] - self.asset_router.insert().values(ar_recs).execute(bind=bind) + for record in recs: + self.equities.insert().values([record]).execute(bind=bind) + self.asset_router.insert().values((record['sid'], 'equity'))\ + .execute(bind=bind) def init_db(self, engine, constraints=True): """Connect to database and create tables.