1
1
import pandas as pd
2
2
import datetime
3
3
4
+ from syscore .exceptions import missingData
4
5
from syscore .objects import get_methods
5
- from syscore .constants import missing_data
6
6
from syscore .dateutils import ARBITRARY_START
7
7
from syscore .pandas .frequency import (
8
8
get_intraday_pdf_at_frequency ,
@@ -79,9 +79,9 @@ def parent(self):
79
79
return self ._parent
80
80
81
81
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 :
85
85
start_date = self ._get_and_set_start_date_for_data_from_config ()
86
86
return start_date
87
87
@@ -296,29 +296,26 @@ def _get_fx_data_from_start_date(
296
296
297
297
def _resolve_start_date (sim_data : simData ):
298
298
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 :
307
302
start_date = ARBITRARY_START
308
303
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 )
313
318
)
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
- )
322
319
323
320
return start_date
324
321
@@ -327,5 +324,5 @@ def _resolve_config(sim_data: simData):
327
324
try :
328
325
config = sim_data .parent .config
329
326
return config
330
- except :
331
- return missing_data
327
+ except AttributeError :
328
+ raise missingData
0 commit comments