Skip to content

Commit

Permalink
Merge pull request #1207 from tgibson11/missing-data-6
Browse files Browse the repository at this point in the history
Raise missingFile exception when unable to read FX config file
  • Loading branch information
robcarver17 committed Jun 29, 2023
2 parents 64f973d + f7df22a commit ac70e8d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 22 deletions.
22 changes: 5 additions & 17 deletions sysbrokers/IB/config/ib_fx_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

import pandas as pd

from syscore.constants import missing_file
from syscore.exceptions import missingInstrument
from syscore.exceptions import missingFile
from syscore.fileutils import resolve_path_and_filename_for_package
from syslogging.logger import *

Expand All @@ -18,22 +17,14 @@
def get_ib_config_from_file(log) -> pd.DataFrame:
try:
config_data = pd.read_csv(IB_CCY_CONFIG_FILE)
except BaseException:
except Exception as e:
log.warn("Can't read file %s" % IB_CCY_CONFIG_FILE)
config_data = missing_file
raise missingFile from e

return config_data


def config_info_for_code(config_data: pd.DataFrame, currency_code, log) -> ibFXConfig:
new_log = log.setup(**{CURRENCY_CODE_LOG_LABEL: currency_code})
if config_data is missing_file:
new_log.warn(
"Can't get IB FX config for %s as config file missing" % currency_code
)

raise missingInstrument

def config_info_for_code(config_data: pd.DataFrame, currency_code) -> ibFXConfig:
ccy1 = config_data[config_data.CODE == currency_code].CCY1.values[0]
ccy2 = config_data[config_data.CODE == currency_code].CCY2.values[0]
invert = config_data[config_data.CODE == currency_code].INVERT.values[0] == "YES"
Expand All @@ -43,10 +34,7 @@ def config_info_for_code(config_data: pd.DataFrame, currency_code, log) -> ibFXC
return ib_config_for_code


def get_list_of_codes(log, config_data: pd.DataFrame) -> list:
if config_data is missing_file:
log.warn("Can't get list of fxcodes for IB as config file missing")
return []
def get_list_of_codes(config_data: pd.DataFrame) -> list:

list_of_codes = list(config_data.CODE)

Expand Down
23 changes: 18 additions & 5 deletions sysbrokers/IB/ib_Fx_prices_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
ibFXConfig,
)
from sysbrokers.broker_fx_prices_data import brokerFxPricesData
from syscore.exceptions import missingData, missingInstrument
from syscore.exceptions import missingData, missingInstrument, missingFile
from sysdata.data_blob import dataBlob
from sysobjects.spot_fx_prices import fxPrices
from syslogging.logger import *
Expand Down Expand Up @@ -38,8 +38,13 @@ def ib_client(self) -> ibFxClient:
return client

def get_list_of_fxcodes(self) -> list:
config_data = self._get_ib_fx_config()
list_of_codes = get_list_of_codes(log=list, config_data=config_data)
try:
config_data = self._get_ib_fx_config()
except missingFile:
self.log.warn("Can't get list of fxcodes for IB as config file missing")
return []

list_of_codes = get_list_of_codes(config_data=config_data)

return list_of_codes

Expand Down Expand Up @@ -95,9 +100,17 @@ def _get_raw_fx_prices(self, ib_config_for_code: ibFXConfig) -> pd.Series:

def _get_config_info_for_code(self, currency_code: str) -> ibFXConfig:

config_data = self._get_ib_fx_config()
try:
config_data = self._get_ib_fx_config()
except missingFile as e:
new_log = self.log.setup(**{CURRENCY_CODE_LOG_LABEL: currency_code})
new_log.warn(
"Can't get IB FX config for %s as config file missing" % currency_code
)
raise missingInstrument from e

ib_config_for_code = config_info_for_code(
config_data=config_data, log=self.log, currency_code=currency_code
config_data=config_data, currency_code=currency_code
)

return ib_config_for_code
Expand Down
2 changes: 2 additions & 0 deletions syscore/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ class missingContract(Exception):
class missingData(Exception):
pass

class missingFile(Exception):
pass

class existingData(Exception):
pass
Expand Down

0 comments on commit ac70e8d

Please sign in to comment.