Convenience functions for filtering
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by reviewing the existing itersections, iterproperties, and itervalues filter functions and the examples in the issue. The proposed convenience APIs and the generic filter leave operation semantics and template search undecided; done requires an agreed design and an implemented, tested filtering interface.
Written by the indexing model from the issue text.
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.
- Dominant language
- Python
- Stars
- 25
- Forks
- 30
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from G-Node/python-odml
-
RDF
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
G-Node/python-odml#172 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 58/100
G-Node/python-odml#420 ·
-
Sparse file output Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
G-Node/python-odml#418 ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
G-Node/python-odml#417 · 8 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
G-Node/python-odml#406 ·
All issues in G-Node/python-odml
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
canonical/paas-charm#368 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
tech debt
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
StevenBlack/hosts#3256 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
qualcomm/qai-appbuilder#275 ·