python-odml icon indicating copy to clipboard operation
python-odml copied to clipboard

Convenience functions for filtering

Open lzehl opened this issue 7 years ago • 0 comments

Currently it is possible to filter for specific odML objects using the iter-functions with a lambda function, e.g.:

odmldoc.itersections(filter_func=lambda x: x.name=="SpikeSorting" or x.type=="spikesorting")
odmldoc.iterproperties(filter_func=lambda  x:x.name=="IsSpikeSorted")
odmldoc.itervalues(filter_func=lambda x: x.dtype==odml.DType.boolean and x.parent.name=="IsSpikeSorted")

To optimize the visibility of this functionality it would be nice to have (in addition) convenience functions for filtering (cookie-cutter-filter-functions), e.g. by objects:

odmldoc.filter_sections(name="SpikeSorting", type="spikesorting", operation="or")
odmldoc.filter_properties(name="IsSpikeSorted")
odmldoc.filter_values(dtype=odml.DType.boolean, parent_name="IsSpikeSorted", operation="and")

Or by attributes, e.g.: odmldoc.filter_by_name("SpikeSorting", exact=True)

Or we even discuss the design of a "generic" filter function, e.g.: odmldoc.filter(objecttype=["sections", "properties"], **kwords) The question here is how to handle operations (and vs or) within and between search attributes.

And in addition we could think about a "template"-search.

lzehl avatar Aug 04 '17 15:08 lzehl