Skip to content

Commit

Permalink
Fixed bug for dot filenames
Browse files Browse the repository at this point in the history
  • Loading branch information
saeedamen committed May 6, 2021
1 parent 9fd1804 commit adf5be4
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 78 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,8 @@ individual data providers)

# Coding log

* 06 May 2021
* Fixed bug when querying from files with dot in them for parquet
* 04 May 2021
* Made fetching market data more flexible (can use a string for tickers which are not predefined)
* Added ability to call predefined tickers with a string
Expand Down
158 changes: 80 additions & 78 deletions findatapy/market/marketdatagenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,86 +67,88 @@ def get_data_vendor(self, source):

data_vendor = None

try:
source = source.split("-")[0]
except:
logger.error("Was data source specified?")

return None

if source == 'bloomberg':
try:
from findatapy.market.datavendorbbg import DataVendorBBGOpen
data_vendor = DataVendorBBGOpen()
except:
logger.warn("Bloomberg needs to be installed")

elif source == 'quandl':
from findatapy.market.datavendorweb import DataVendorQuandl
data_vendor = DataVendorQuandl()

elif source == 'eikon':
from findatapy.market.datavendorweb import DataVendorEikon
data_vendor = DataVendorEikon()

elif source == 'ons':
from findatapy.market.datavendorweb import DataVendorONS
data_vendor = DataVendorONS()

elif source == 'boe':
from findatapy.market.datavendorweb import DataVendorBOE
data_vendor = DataVendorBOE()

elif source == 'dukascopy':
from findatapy.market.datavendorweb import DataVendorDukasCopy
data_vendor = DataVendorDukasCopy()

elif source == 'fxcm':
from findatapy.market.datavendorweb import DataVendorFXCM
data_vendor = DataVendorFXCM()

elif source == 'alfred':
from findatapy.market.datavendorweb import DataVendorALFRED
data_vendor = DataVendorALFRED()

elif source == 'yahoo':
from findatapy.market.datavendorweb import DataVendorYahoo
data_vendor = DataVendorYahoo()

elif source in ['google', 'fred', 'oecd', 'eurostat', 'edgar-index']:
from findatapy.market.datavendorweb import DataVendorPandasWeb
data_vendor = DataVendorPandasWeb()

elif source == 'bitcoincharts':
from findatapy.market.datavendorweb import DataVendorBitcoincharts
data_vendor = DataVendorBitcoincharts()
elif source == 'poloniex':
from findatapy.market.datavendorweb import DataVendorPoloniex
data_vendor = DataVendorPoloniex()
elif source == 'binance':
from findatapy.market.datavendorweb import DataVendorBinance
data_vendor = DataVendorBinance()
elif source == 'bitfinex':
from findatapy.market.datavendorweb import DataVendorBitfinex
data_vendor = DataVendorBitfinex()
elif source == 'gdax':
from findatapy.market.datavendorweb import DataVendorGdax
data_vendor = DataVendorGdax()
elif source == 'kraken':
from findatapy.market.datavendorweb import DataVendorKraken
data_vendor = DataVendorKraken()
elif source == 'bitmex':
from findatapy.market.datavendorweb import DataVendorBitmex
data_vendor = DataVendorBitmex()
elif '.csv' in source or '.h5' in source or '.parquet' in source:
# Special case for files
if '.csv' in source or '.h5' in source or '.parquet' in source:
from findatapy.market.datavendorweb import DataVendorFlatFile
data_vendor = DataVendorFlatFile()
elif source == 'alphavantage':
from findatapy.market.datavendorweb import DataVendorAlphaVantage
data_vendor = DataVendorAlphaVantage()
elif source == 'huobi':
from findatapy.market.datavendorweb import DataVendorHuobi
data_vendor = DataVendorHuobi()
else:
try:
source = source.split("-")[0]
except:
logger.error("Was data source specified?")

return None

if source == 'bloomberg':
try:
from findatapy.market.datavendorbbg import DataVendorBBGOpen
data_vendor = DataVendorBBGOpen()
except:
logger.warn("Bloomberg needs to be installed")

elif source == 'quandl':
from findatapy.market.datavendorweb import DataVendorQuandl
data_vendor = DataVendorQuandl()

elif source == 'eikon':
from findatapy.market.datavendorweb import DataVendorEikon
data_vendor = DataVendorEikon()

elif source == 'ons':
from findatapy.market.datavendorweb import DataVendorONS
data_vendor = DataVendorONS()

elif source == 'boe':
from findatapy.market.datavendorweb import DataVendorBOE
data_vendor = DataVendorBOE()

elif source == 'dukascopy':
from findatapy.market.datavendorweb import DataVendorDukasCopy
data_vendor = DataVendorDukasCopy()

elif source == 'fxcm':
from findatapy.market.datavendorweb import DataVendorFXCM
data_vendor = DataVendorFXCM()

elif source == 'alfred':
from findatapy.market.datavendorweb import DataVendorALFRED
data_vendor = DataVendorALFRED()

elif source == 'yahoo':
from findatapy.market.datavendorweb import DataVendorYahoo
data_vendor = DataVendorYahoo()

elif source in ['google', 'fred', 'oecd', 'eurostat', 'edgar-index']:
from findatapy.market.datavendorweb import DataVendorPandasWeb
data_vendor = DataVendorPandasWeb()

elif source == 'bitcoincharts':
from findatapy.market.datavendorweb import DataVendorBitcoincharts
data_vendor = DataVendorBitcoincharts()
elif source == 'poloniex':
from findatapy.market.datavendorweb import DataVendorPoloniex
data_vendor = DataVendorPoloniex()
elif source == 'binance':
from findatapy.market.datavendorweb import DataVendorBinance
data_vendor = DataVendorBinance()
elif source == 'bitfinex':
from findatapy.market.datavendorweb import DataVendorBitfinex
data_vendor = DataVendorBitfinex()
elif source == 'gdax':
from findatapy.market.datavendorweb import DataVendorGdax
data_vendor = DataVendorGdax()
elif source == 'kraken':
from findatapy.market.datavendorweb import DataVendorKraken
data_vendor = DataVendorKraken()
elif source == 'bitmex':
from findatapy.market.datavendorweb import DataVendorBitmex
data_vendor = DataVendorBitmex()
elif source == 'alphavantage':
from findatapy.market.datavendorweb import DataVendorAlphaVantage
data_vendor = DataVendorAlphaVantage()
elif source == 'huobi':
from findatapy.market.datavendorweb import DataVendorHuobi
data_vendor = DataVendorHuobi()

# TODO add support for other data sources (like Reuters)

Expand Down

0 comments on commit adf5be4

Please sign in to comment.