Skip to content

Commit d9f31ff

Browse files
author
todd
committed
Raise missingData in get_result_dict_for_key
1 parent 08e1aa3 commit d9f31ff

15 files changed

+54
-59
lines changed

sysdata/mongodb/mongo_futures_contracts.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,6 @@ def _get_contract_data_without_checking(
9292
def _get_contract_data_from_key_without_checking(self, key: str) -> futuresContract:
9393

9494
result_dict = self.mongo_data.get_result_dict_for_key_without_key_value(key)
95-
if result_dict is missing_data:
96-
# shouldn't happen...
97-
raise Exception("Data for %s gone AWOL" % key)
9895

9996
contract_object = futuresContract.create_from_dict(result_dict)
10097

sysdata/mongodb/mongo_futures_instruments.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@ def get_list_of_instruments(self):
3838
def _get_instrument_data_without_checking(self, instrument_code):
3939

4040
result_dict = self.mongo_data.get_result_dict_for_key(instrument_code)
41-
if result_dict is missing_data:
42-
# shouldn't happen...
43-
raise Exception("Data for %s gone AWOL" % instrument_code)
4441

4542
instrument_object = futuresInstrumentWithMetaData.from_dict(result_dict)
4643

sysdata/mongodb/mongo_generic.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def get_result_dict_for_key(self, key) -> dict:
8282
key_name = self.key_name
8383
result_dict = self.collection.find_one({key_name: key})
8484
if result_dict is None:
85-
return missing_data
85+
raise missingData("Key %s not found in Mongo data" % key)
8686

8787
result_dict.pop(MONGO_ID_KEY)
8888

@@ -91,8 +91,6 @@ def get_result_dict_for_key(self, key) -> dict:
9191
def get_result_dict_for_key_without_key_value(self, key) -> dict:
9292
key_name = self.key_name
9393
result_dict = self.get_result_dict_for_key(key)
94-
if result_dict is missing_data:
95-
return missing_data
9694

9795
result_dict.pop(key_name)
9896

@@ -106,8 +104,9 @@ def get_list_of_result_dict_for_custom_dict(self, custom_dict: dict) -> list:
106104
return dict_list
107105

108106
def key_is_in_data(self, key):
109-
result = self.get_result_dict_for_key(key)
110-
if result is missing_data:
107+
try:
108+
self.get_result_dict_for_key(key)
109+
except missingData:
111110
return False
112111
else:
113112
return True

sysdata/mongodb/mongo_historic_orders.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import datetime
22

3-
from syscore.objects import success, missing_order, arg_not_supplied, missing_data
3+
from syscore.exceptions import missingData
4+
from syscore.objects import success, missing_order, arg_not_supplied
45
from sysdata.mongodb.mongo_generic import mongoDataWithSingleKey
56

67
from sysexecution.orders.base_orders import Order
@@ -82,9 +83,9 @@ def _add_order_to_data_no_checking(self, order: Order):
8283
self.mongo_data.add_data(order.order_id, mongo_record, allow_overwrite=True)
8384

8485
def get_order_with_orderid(self, order_id: int):
85-
result_dict = self.mongo_data.get_result_dict_for_key(order_id)
86-
87-
if result_dict is missing_data:
86+
try:
87+
result_dict = self.mongo_data.get_result_dict_for_key(order_id)
88+
except missingData:
8889
return missing_order
8990

9091
order_class = self._order_class()

sysdata/mongodb/mongo_lock_data.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from syscore.objects import arg_not_supplied, missing_data
1+
from syscore.objects import arg_not_supplied
22
from sysdata.production.locks import lockData, lock_off, lock_on
33
from sysdata.mongodb.mongo_generic import mongoDataWithSingleKey
44
from syslogdiag.log_to_screen import logtoscreen
@@ -30,8 +30,6 @@ def mongo_data(self):
3030

3131
def _get_lock_for_instrument_no_checking(self, instrument_code: str) -> str:
3232
result = self.mongo_data.get_result_dict_for_key(instrument_code)
33-
if result is missing_data:
34-
return missing_data
3533

3634
lock = result[LOCK_DICT_KEY]
3735

sysdata/mongodb/mongo_margin.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import pandas as pd
22
from syscore.dateutils import long_to_datetime, datetime_to_long
3+
from syscore.exceptions import missingData
34
from syscore.objects import arg_not_supplied, missing_data
45
from sysdata.mongodb.mongo_generic import mongoDataWithSingleKey
56

@@ -44,10 +45,11 @@ def get_series_of_strategy_margin(self, strategy_name: str) -> seriesOfMargin:
4445
return series_of_margin
4546

4647
def _get_data_dict_for_strategy_margin(self, strategy_name: str) -> dict:
47-
data_dict = self.mongo_data.get_result_dict_for_key_without_key_value(
48-
strategy_name
49-
)
50-
if data_dict is missing_data:
48+
try:
49+
data_dict = self.mongo_data.get_result_dict_for_key_without_key_value(
50+
strategy_name
51+
)
52+
except missingData:
5153
return dict()
5254

5355
return data_dict

sysdata/mongodb/mongo_order_stack.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from syscore.objects import success, missing_data
1+
from syscore.exceptions import missingData
22
from sysdata.mongodb.mongo_generic import mongoDataWithSingleKey
33
from syslogdiag.log_to_screen import logtoscreen
44

@@ -51,8 +51,9 @@ def __repr__(self):
5151
)
5252

5353
def get_order_with_id_from_stack(self, order_id: int):
54-
result_dict = self.mongo_data.get_result_dict_for_key(order_id)
55-
if result_dict is missing_data:
54+
try:
55+
result_dict = self.mongo_data.get_result_dict_for_key(order_id)
56+
except missingData:
5657
return missing_order
5758

5859
order_class = self._order_class()
@@ -90,8 +91,9 @@ def _get_next_order_id(self) -> int:
9091
return new_orderid
9192

9293
def _get_current_max_order_id(self) -> int:
93-
result_dict = self.mongo_data.get_result_dict_for_key(ORDER_ID_STORE_KEY)
94-
if result_dict is missing_data:
94+
try:
95+
result_dict = self.mongo_data.get_result_dict_for_key(ORDER_ID_STORE_KEY)
96+
except missingData:
9597
orderid = self._create_and_return_max_order_id()
9698
return orderid
9799

sysdata/mongodb/mongo_process_control.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ def _get_control_for_process_name_without_default(self, process_name):
4040
result_dict = self.mongo_data.get_result_dict_for_key_without_key_value(
4141
process_name
4242
)
43-
if result_dict is missing_data:
44-
return missing_data
4543

4644
control_object = controlProcess.from_dict(result_dict)
4745

sysdata/mongodb/mongo_roll_data.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
from syscore.exceptions import missingData
12
from sysdata.futures.rolls_parameters import rollParametersData
23
from sysobjects.rolls import rollParameters
34

45
from sysdata.mongodb.mongo_generic import mongoDataWithSingleKey
56
from syslogdiag.log_to_screen import logtoscreen
6-
from syscore.objects import arg_not_supplied, missing_data
7+
from syscore.objects import arg_not_supplied
78

89
ROLL_COLLECTION = "futures_roll_parameters"
910

@@ -36,13 +37,15 @@ def get_list_of_instruments(self) -> list:
3637
def _get_roll_parameters_without_checking(
3738
self, instrument_code: str
3839
) -> rollParameters:
39-
result_dict = self.mongo_data.get_result_dict_for_key_without_key_value(
40-
instrument_code
41-
)
42-
if result_dict is missing_data:
40+
try:
41+
result_dict = self.mongo_data.get_result_dict_for_key_without_key_value(
42+
instrument_code
43+
)
44+
except missingData:
4345
self.log.critical(
4446
"%s just vanished from roll parameters??" % instrument_code
4547
)
48+
raise
4649

4750
roll_parameters_object = rollParameters.create_from_dict(result_dict)
4851

sysdata/mongodb/mongo_roll_state_storage.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from sysdata.production.roll_state import rollStateData
22
from sysdata.mongodb.mongo_generic import mongoDataWithSingleKey
3-
from syscore.objects import success, missing_data
43
from syslogdiag.log_to_screen import logtoscreen
54

65
ROLL_STATUS_COLLECTION = "futures_roll_status"
@@ -39,8 +38,6 @@ def get_list_of_instruments(self) -> list:
3938

4039
def _get_roll_state_as_str_no_default(self, instrument_code: str):
4140
result_dict = self.mongo_data.get_result_dict_for_key(instrument_code)
42-
if result_dict is missing_data:
43-
return missing_data
4441

4542
roll_status = result_dict[ROLL_STATE_KEY]
4643

0 commit comments

Comments
 (0)