(created from email ticket)
Description
Some hydrophone acoustic data requires dpo_hydrophoneDataDiversionMode, some prohibit it. It's impossible to tell from the API when it's required. This necessitates the workaround of sending the request once within a try, catching the exception, and then sending the slightly modified request in an except block.
Expected behavior
Hydrophones for which "dpo_hydrophoneDataDiversionMode" does not apply should accept "OD" or "All". Any other values ("HPF", "LPF"), should give the "no data" response (HTTP 400 w/error code: 33)
Actual behavior
from onc.onc import ONC
onc = ONC(<your token>)
Some hydrophones need the dpo_hydrophoneDataDiversionMode option, e.g.:
request = onc.requestDataProduct(
filters={
"dataProductCode": "AD",
"extension": "wav",
"dateFrom": "2016-06-20T12:00:00.000Z",
"dateTo": "2016-06-20T12:01:00.000Z",
"deviceCode": "ICLISTENHF1251",
"dpo_audioDownsample": -1,
}
)
...
Error 128: Missing Parameter. Expected values: OD, LPF, HPF, All (parameter: dpo_hydrophoneDataDiversionMode)
Other hydrophones prohibit the option, e.g.:
request = onc.requestDataProduct(
filters={
"dataProductCode": "AD",
"extension": "wav",
"dateFrom": "2016-06-01T12:00:00.000Z",
"dateTo": "2016-06-01T12:01:00.000Z",
"deviceCode": "ICLISTENHF1351",
"dpo_hydrophoneDataDiversionMode": "OD",
"dpo_audioDownsample": -1,
}
)
...
Error 129: Invalid parameter given (parameter: dpo_hydrophoneDataDiversionMode)
Discussion
Not the main point but FWIW, the error raised by _doRequest should be a ValueError, not the superclass Exception.
(created from email ticket)
Description
Some hydrophone acoustic data requires
dpo_hydrophoneDataDiversionMode, some prohibit it. It's impossible to tell from the API when it's required. This necessitates the workaround of sending the request once within atry, catching the exception, and then sending the slightly modified request in anexceptblock.Expected behavior
Hydrophones for which
"dpo_hydrophoneDataDiversionMode"does not apply should accept"OD"or"All". Any other values ("HPF","LPF"), should give the "no data" response (HTTP 400 w/error code: 33)Actual behavior
Some hydrophones need the
dpo_hydrophoneDataDiversionModeoption, e.g.:Other hydrophones prohibit the option, e.g.:
Discussion
Not the main point but FWIW, the error raised by
_doRequestshould be aValueError, not the superclassException.