Skip to content
Snippets Groups Projects
Commit 57e74979 authored by Bert Palm's avatar Bert Palm 🎇
Browse files

simplified evaluator

parent 14295d58
No related branches found
No related tags found
No related merge requests found
......@@ -110,34 +110,21 @@ def evalExpression(expr: str, flagger: BaseFlagger,
fcols = fidx.values
dcols = namespace["data"].columns.values
if namespace.get("target") == "flags":
# We are forced to work on flags
try:
if field in fcols:
out = namespace["flags"][field]
elif field in dcols:
# Up to now there are no flagging information on the requested
# field, so return a fresh new unflagged vector
datacol = namespace["data"][field]
dummy = pd.DataFrame(index=datacol.index, columns=[field])
out = flagger.initFlags(dummy)
else:
_raiseNameError(field, expr)
elif field in dcols and field in fcols:
# Return all unflagged (original) data
datacol = namespace["data"][field]
flagcol = namespace["flags"][field]
out = np.ma.masked_array(datacol, mask=flagger.isFlagged(flagcol))
elif field in dcols and field not in fcols:
# Return all data, because we have no flagging information
out = namespace["data"][field].values
elif field not in dcols and field in fcols:
# Return only flag information, because we have no data
out = namespace["flags"][field].values
flagcol = namespace["flags"][field]
out = flagcol
else:
if namespace.get("target") != "flags":
if field in dcols:
datacol = namespace["data"][field]
out = datacol
if field in dcols and field in fcols:
out = np.ma.masked_array(datacol, mask=flagger.isFlagged(flagcol))
except KeyError:
_raiseNameError(field, expr)
return out
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment