-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
@shankari as we talked about yesterday, pv_mf.validate() is failing with the following stack trace
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-12-9bf65c656a3e> in <module>
1 # pv_hf.validate()
----> 2 pv_mf.validate() # TODO: uncomment this out
~/Documents/nrel/mobilitynet-analysis-scripts/emeval/input/phone_view.py in validate(self)
82 def validate(self):
83 print(20 * "-", "About to validate calibration settings", 20 * "-")
---> 84 evpv.validate_calibration_settings(self)
85 print(20 * "-", "About to validate evaluation settings", 20 * "-")
86 evpv.validate_evaluation_settings(self)
~/Documents/nrel/mobilitynet-analysis-scripts/emeval/validate/phone_view.py in validate_calibration_settings(phone_view)
106 # assert unique_test_ids == spec_test_ids, "Missing calibration test while comparing %s, %s" % (unique_test_ids, spec_test_ids)
107 for r in curr_calibration_ranges:
--> 108 config_during_test_entries = phone_view.spec_details.retrieve_data_from_server(phone_label, ["config/sensor_config"], r["start_ts"], r["end_ts"])
109 print("%s -> %s" % (r["trip_id"], [c["data"]["accuracy"] for c in config_during_test_entries]))
110 # assert len(config_during_test_entries) == 1, "Out of band configuration? Found %d config changes" % len(config_during_test_entries)
AttributeError: 'ServerSpecDetails' object has no attribute 'retrieve_data_from_server'retrieve_data_from_server is an antiquated function, with the updated version seeming to be retrieve_data. However, when
def validate_calibration_settings(phone_view)is updated with retrieve_data replacing retrieve_data_from_server, a new error occurs with the following stack trace
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-12-9bf65c656a3e> in <module>
1 # pv_hf.validate()
----> 2 pv_mf.validate() # TODO: uncomment this out
~/Documents/nrel/mobilitynet-analysis-scripts/emeval/input/phone_view.py in validate(self)
82 def validate(self):
83 print(20 * "-", "About to validate calibration settings", 20 * "-")
---> 84 evpv.validate_calibration_settings(self)
85 print(20 * "-", "About to validate evaluation settings", 20 * "-")
86 evpv.validate_evaluation_settings(self)
~/Documents/nrel/mobilitynet-analysis-scripts/emeval/validate/phone_view.py in validate_calibration_settings(phone_view)
109 print("%s -> %s" % (r["trip_id"], [c["data"]["accuracy"] for c in config_during_test_entries]))
110 # assert len(config_during_test_entries) == 1, "Out of band configuration? Found %d config changes" % len(config_during_test_entries)
--> 111 config_during_test = config_during_test_entries[0]["data"]
112 expected_config = expected_config_map[r["trip_id_base"]]
113 # print(config_during_test, expected_config)
IndexError: list index out of rangeWe see that config_during_test_entries is declared using retrieve_data,
config_during_test_entries = phone_view.spec_details.retrieve_data(phone_label, ["config/sensor_config"], r["start_ts"], r["end_ts"])If index 0 is out of range, then retrieve_data is returning an empty list for this specific ServerSpecDetails.
The only way that this happens is if
if len(curr_location_entries) == 0 or len(curr_location_entries) == 1:
all_done = Trueis true after one call to
curr_location_entries = self.retrieve_one_batch(user, key_list, curr_start_ts, end_ts)Metadata
Metadata
Assignees
Labels
No labels