Convenience functions for filtering
- Dominant language
- Python
- Stars
- 25
- Forks
- 30
- PR merge metrics
- No merged PRs in 30d
Description
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.
Contributor guide
Assessment
This issue has not been assessed yet.