nwb-linkml/docs/meta/todo.md

59 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2023-10-10 03:13:42 +00:00
# TODO
2024-07-04 03:39:49 +00:00
## v0.2 - update to linkml-arrays and formal release
NWB schema translation
- handle `links` field in groups
- handle compound `dtype` like in ophys.PlaneSegmentation.pixel_mask
- handle compound `dtype` like in TimeSeriesReferenceVectorData
- Create a validator that checks if all the lists in a compound dtype dataset are same length
2024-08-07 02:57:45 +00:00
- [ ] Move making `target` optional in vectorIndex from pydantic generator to linkml generators!
2024-07-04 03:39:49 +00:00
2024-07-10 06:15:29 +00:00
Cleanup
- [ ] Update pydantic generator
- [ ] Restore regressions from stripping the generator
- [x] Make any_of with array ranges work
2024-07-29 23:31:34 +00:00
- [ ] PR upstream `equals_string` and `ifabsent` (if existing PR doesn't fix)
- [ ] Use the class rather than a string in _get_class_slot_range_origin:
```
or inlined_as_list
or (
# sv.get_identifier_slot(range_cls.name, use_key=True) is None and
```
2024-07-10 06:15:29 +00:00
- [ ] Make a minimal pydanticgen-only package to slim linkml deps?
- [ ] Disambiguate "maps" terminology - split out simple maps from the eg. dataset mapping classes
- [x] Remove unnecessary imports
2024-07-10 07:09:17 +00:00
- dask
- nptyping
- [ ] Adapt the split generation to the new split generator style
2024-07-10 06:15:29 +00:00
2023-10-10 03:13:42 +00:00
Important things that are not implemented yet!
2024-07-10 06:15:29 +00:00
- [x] {meth}`nwb_linkml.adapters.classes.ClassAdapter.handle_dtype` does not yet handle compound dtypes,
2023-10-10 03:13:42 +00:00
leaving them as `AnyType` instead. This is fine for a first draft since they are used rarely within
NWB, but we will need to handle them by making slots for each of the dtypes since they typically
represent table-like data.
2024-07-10 06:15:29 +00:00
- [ ] Need to handle DynamicTables!
- Adding columns?
- Validating eg. all are same length?
- Or do we want to just say "no dynamictables, just subclass and add more slots since it's super easy to do that."
- method to return a dataframe
- append rows/this should just be a df basically.
2024-07-10 07:09:17 +00:00
- existing handler is fucked, for example, in `maps/hdmf`
2024-07-10 06:15:29 +00:00
- [ ] Handle indirect indexing eg. https://pynwb.readthedocs.io/en/stable/tutorials/general/plot_timeintervals.html#accessing-referenced-timeseries
Remove monkeypatches/overrides once PRs are closed
- [ ] https://github.com/linkml/linkml-runtime/pull/330
Tests
- [ ] Ensure schemas and pydantic modules in repos are up to date
2024-09-12 04:04:41 +00:00
Loading
- [ ] Top-level containers are still a little janky, eg. how `ProcessingModule` just accepts
extra args rather than properly abstracting `value` as a `__getitem__(self, key) -> T:`
## Docs TODOs
```{todolist}
```