Skip to content

Commit 1a01b24

Browse files
authored
Merge pull request robcarver17#982 from tgibson11/missing-data-2
Eliminate missing_data usages when determining simulation start date
2 parents ae82bda + 6d9693a commit 1a01b24

File tree

2 files changed

+23
-27
lines changed

2 files changed

+23
-27
lines changed

sysdata/production/trade_limits.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from dataclasses import dataclass
99

1010
from syscore.exceptions import missingData
11-
from syscore.constants import missing_data
1211
from sysdata.base_data import baseData
1312
from syslogdiag.log_to_screen import logtoscreen
1413
from sysobjects.production.trade_limits import tradeLimit, listOfTradeLimits

sysdata/sim/sim_data.py

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import pandas as pd
22
import datetime
33

4+
from syscore.exceptions import missingData
45
from syscore.objects import get_methods
5-
from syscore.constants import missing_data
66
from syscore.dateutils import ARBITRARY_START
77
from syscore.pandas.frequency import (
88
get_intraday_pdf_at_frequency,
@@ -79,9 +79,9 @@ def parent(self):
7979
return self._parent
8080

8181
def start_date_for_data(self):
82-
start_date = getattr(self, "_start_date_for_data_from_config", missing_data)
83-
84-
if start_date is missing_data:
82+
try:
83+
start_date = getattr(self, "_start_date_for_data_from_config")
84+
except AttributeError:
8585
start_date = self._get_and_set_start_date_for_data_from_config()
8686
return start_date
8787

@@ -296,29 +296,26 @@ def _get_fx_data_from_start_date(
296296

297297
def _resolve_start_date(sim_data: simData):
298298

299-
config = _resolve_config(sim_data)
300-
301-
if config is missing_data:
302-
start_date = missing_data
303-
else:
304-
start_date = getattr(config, "start_date", missing_data)
305-
306-
if start_date is missing_data:
299+
try:
300+
config = _resolve_config(sim_data)
301+
except missingData:
307302
start_date = ARBITRARY_START
308303
else:
309-
if isinstance(start_date, datetime.date):
310-
# yaml parses unquoted date like 2000-01-01 to datetime.date
311-
start_date = datetime.datetime.combine(
312-
start_date, datetime.datetime.min.time()
304+
start_date = getattr(config, "start_date", ARBITRARY_START)
305+
306+
if isinstance(start_date, datetime.date):
307+
# yaml parses unquoted date like 2000-01-01 to datetime.date
308+
start_date = datetime.datetime.combine(
309+
start_date, datetime.datetime.min.time()
310+
)
311+
elif not isinstance(start_date, datetime.datetime):
312+
try:
313+
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d")
314+
except:
315+
raise Exception(
316+
"Parameter start_date %s in config file does not conform to pattern 2020-03-19"
317+
% str(start_date)
313318
)
314-
elif not isinstance(start_date, datetime.datetime):
315-
try:
316-
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d")
317-
except:
318-
raise Exception(
319-
"Parameter start_date %s in config file does not conform to pattern 2020-03-19"
320-
% str(start_date)
321-
)
322319

323320
return start_date
324321

@@ -327,5 +324,5 @@ def _resolve_config(sim_data: simData):
327324
try:
328325
config = sim_data.parent.config
329326
return config
330-
except:
331-
return missing_data
327+
except AttributeError:
328+
raise missingData

0 commit comments

Comments
 (0)