diff --git a/README.md b/README.md index f7839ae..2f514b2 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,7 @@ individual data providers) # Release Notes +* 0.1.32 - findatapy (17 Feb 2024) * 0.1.31 - findatapy (01 Dec 2023) * 0.1.30 - findatapy (12 Oct 2023) * 0.1.29 - findatapy (14 May 2023) @@ -138,6 +139,8 @@ individual data providers) # Coding log +* 17 Feb 2024 + * Fixed ALFRED/FRED wrapper so now compatible with Python 3.10 * 01 Dec 2023 * Remove fxcmpy dependency (package no longer exists?) * Added type hinting in ioengine.py diff --git a/findatapy/conf/time_series_categories_fields.csv b/findatapy/conf/time_series_categories_fields.csv index 3a3c719..f884706 100644 --- a/findatapy/conf/time_series_categories_fields.csv +++ b/findatapy/conf/time_series_categories_fields.csv @@ -21,6 +21,7 @@ fx-implied-vol,bloomberg,daily,BGN,close,1-Jan-95,1D fx-implied-vol,bloomberg,daily,TOK,close,1-Jan-95,1D fx-implied-vol,bloomberg,daily,LDN,close,1-Jan-95,1D fx-implied-vol,bloomberg,daily,10AM,close,1-Jan-09,1D +fund-indices,bloomberg,daily,LOC,close,1-Jan-80,1D base-depos,bloomberg,daily,NYC,close,1-Jan-95,1D base-depos,bloomberg,daily,TOK,close,1-Jan-95,1D base-depos,bloomberg,daily,LDN,close,1-Jan-95,1D diff --git a/findatapy/conf/time_series_tickers_list.csv b/findatapy/conf/time_series_tickers_list.csv index 1cf6f7c..a55bb94 100644 --- a/findatapy/conf/time_series_tickers_list.csv +++ b/findatapy/conf/time_series_tickers_list.csv @@ -357,6 +357,14 @@ events,bloomberg,daily,USD-US CPI Urban Consumers MoM SA,NYC,"close,actual-relea events,bloomberg,daily,USD-Conference Board Consumer Confidence SA 1985=100,NYC,"close,actual-release,survey-median,survey-average,survey-high,survey-low,number-observations,release-dt,release-date-time-full,first-revision,first-revision-date",CONCCONF Index,,,, events,bloomberg,daily,USD-US Durable Goods New Orders Industries MoM SA,NYC,"close,actual-release,survey-median,survey-average,survey-high,survey-low,number-observations,release-dt,release-date-time-full,first-revision,first-revision-date",DGNOCHNG Index,,,, events,bloomberg,daily,USD-US Industrial Production MoM 2007=100 SA,NYC,"close,actual-release,survey-median,survey-average,survey-high,survey-low,number-observations,release-dt,release-date-time-full,first-revision,first-revision-date",IP CHNG Index,,,, +fund-indices,bloomberg,daily,Barclay Trader Indexes CTA,LOC,close,BARCCTA Index,LOC,,, +fund-indices,bloomberg,daily,Barclay US Managed Futures Industry BTOP 50,LOC,close,BARCBTOP Index,LOC,,, +fund-indices,bloomberg,daily,Newedge CTA Index,LOC,close,NEIXCTA Index,LOC,,, +fund-indices,bloomberg,daily,HFRX Macro/CTA Index,LOC,close,HFRXM Index,LOC,,, +fund-indices,bloomberg,daily,HFRX Macro: Currency Index,LOC,close,HFRXCUR Index,LOC,,, +fund-indices,bloomberg,daily,HFRX Global Hedge Fund Index,LOC,close,HFRXGL Index,LOC,,, +fund-indices,bloomberg,daily,S&P500,LOC,close,SPX Index,LOC,,, +fund-indices,bloomberg,daily,Parker Global Currency Manager Index,LOC,close,CEXTI2 Index,LOC,,, crypto,bitcoincharts,tick,XBTPLN_abucoins,LOC,"close,volume",abucoinsPLN,LOC,,, crypto,bitcoincharts,tick,XBTEUR_bc,LOC,"close,volume",bcEUR,LOC,,, crypto,bitcoincharts,tick,XBTILS_bit2c,LOC,"close,volume",bit2cILS,LOC,,, diff --git a/findatapy/market/datavendorweb.py b/findatapy/market/datavendorweb.py index 9755451..4db958d 100644 --- a/findatapy/market/datavendorweb.py +++ b/findatapy/market/datavendorweb.py @@ -2285,9 +2285,11 @@ def get_series(self, series_id, observation_start=None, if root is None: raise ValueError('No data exists for series id: ' + series_id) data = {} - for child in root.getchildren(): + for child in root.iter(): val = child.get('value') - if val == self.nan_char: + if val is None: + float('NaN') + elif val == self.nan_char: val = float('NaN') else: val = float(val) @@ -2431,9 +2433,11 @@ def get_series_all_releases(self, series_id, observation_start=None, raise ValueError('No data exists for series id: ' + series_id) data = {} i = 0 - for child in root.getchildren(): + for child in root.iter(): val = child.get('value') - if val == self.nan_char: + if val is None: + val = float("NaN") + elif val == self.nan_char: val = float('NaN') else: val = float(val) diff --git a/findatapy/market/ioengine.py b/findatapy/market/ioengine.py index c8c8de8..a3402c5 100644 --- a/findatapy/market/ioengine.py +++ b/findatapy/market/ioengine.py @@ -997,7 +997,8 @@ def read_parquet(self, path: str, convert_to_s3fs=True) return pd.read_parquet(self.sanitize_path(path), - storage_options=storage_options) + storage_options=storage_options, + ) else: return pd.read_parquet(path) diff --git a/setup.py b/setup.py index f2cc95c..423f45f 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ tickers, using configuration files. There is also functionality which is particularly useful for those downloading FX market data.""" setup(name='findatapy', - version='0.1.31', + version='0.1.32', description='Market data library', author='Saeed Amen', author_email='saeed@cuemacro.com',