Commit graph

218 commits

Author SHA1 Message Date
d46e86c676 return None when the module actually doesn't exist 2023-10-04 22:08:01 -07:00
5438b2489b Fix relative imports in ectopic models --
Use a MetaPathFinder to allow python to resolve imports from the temporary model directory
Build dependent versions in split builds
Clear package imports when allow_repo=False
2023-10-04 22:06:26 -07:00
3b11afded6 fix truncate hdf5 file to not try and write while iterating 2023-10-04 20:19:54 -07:00
ab63ea071c removing pandas 2023-10-04 18:02:40 -07:00
9947edfed2 Removing DataFrame type from imports, leaving as stub 2023-10-04 17:59:10 -07:00
f682105c1a it working
had to very hackily handle special cases on NWBFile class but it working. Now badly in need of a tidying, docs, and tests.
2023-10-02 23:26:43 -07:00
34f8969fa9 Like 15 validation errors away from fully reading a file.
Just going to make a special completion phase for the top-level NWBFile because it's so special cased it's not worth trying to generalize.

- Resolving hardlinked datasets in read maps
- Resolving 2nd-order empty groups
- Completing container groups
- Move fixing references to recursive function
- Multiple passes for a given phase
- NDArrayProxies should resolve dask or h5py reading on their own
- Correctly build split schema from PydanticProvider instead of needing external logic
2023-10-02 22:19:11 -07:00
eca7a5ec2e Correct schema for hdf5 path type
dont double MRO for basemodels in generated dynamictable
2023-09-28 17:58:45 -07:00
6bbf56d1a0 Make all maps exclusive
Track dependencies in build results and dont try and complete model if dependencies not alreay completed (ie. need multiple passes to complete, which is the correct behavior)
Use base models in dynamic tables, we should fix the dynamictable base class rather than just having everything be an anonymous BaseModel in order to satisfy type validation
Clear completed queue when advancing stages - we should make sure to move everything to completed with maps rather than implicitly keeping things in completed when they aren't - so we might be getting old versions of results that aren't actually fully completed but have some reference stubs still in them.
2023-09-27 20:07:39 -07:00
9fcc1458fb nearing the end - need to do final top-level packing but we're almost there! 2023-09-27 01:19:10 -07:00
a2da236b2b Regenerate models 2023-09-26 21:33:14 -07:00
8a9b6903b6 Fix generation to use actual class in type annotation even when has identifier value, while also making dicts for container classes 2023-09-26 21:30:53 -07:00
f672b931e5 Correctly handle container classes, use dicts instead of lists to be able to index by name. overriding __getitem__ and __getattr__ later 2023-09-26 20:50:11 -07:00
d16b4757e1 Use dask instead of trying to make a dataframe
compress arrays when serializing to json
2023-09-26 19:50:49 -07:00
50e816bad4 Working on finalizing the mapping operation... doing it single threaded for now and it's very slow but it completes up until the stage where we need to zip up the orphaned objects and other things that can be inferred from the model.
Need to make a proxytable model like proxyarray because reading all these tables takes way too fuckin long and it's not what we want to do anyway.
2023-09-25 22:03:53 -07:00
ce75dacf93 autogenerating models for dynamictable 2023-09-23 01:33:28 -07:00
57fa3d34a2 pandas dataframe mimic 2023-09-23 00:08:59 -07:00
aac0c7abdd need 2 stop for the night but its sort of happening 2023-09-22 02:48:40 -07:00
40984a6582 figuring out the strategy here...
- added linkml_meta classvar to store additional linkml properties if needed
- injecting path field to metaclass
- sketch of doing a queue-based read
- prune datasets & example allen institute data
2023-09-22 00:31:34 -07:00
321740f674 weird python relative import error from not having version naming 2023-09-15 01:06:50 -07:00
1f61dca46f weird python relative import error from not having version naming 2023-09-15 01:03:40 -07:00
94c204e8ea ok but really actually correct paths 2023-09-15 00:53:07 -07:00
b283e8b0bf get correct path for provider 2023-09-15 00:50:16 -07:00
ccf267babd regenerating models, some minor code cleanup and coverage omissions 2023-09-15 00:37:20 -07:00
3e2e6915cf Add ability to make JSON schema with numpy arrays! 2023-09-14 23:43:00 -07:00
e6a41415f5 successfully building many versions of nwb schema.
working on hdf5 importing, come back to it when fresh, just sorta poking at it because it's so close.
2023-09-14 02:45:01 -07:00
054ca8fd5e add monkeypatch to schemaview 2023-09-11 22:23:42 -07:00
095d0bc6a9 fixing tests by using temp directory and changing random prior commit hash from nwb core schema 2023-09-11 19:55:45 -07:00
c69cbdfb38 Docstrings and basic tests for providers.
bugfix - remove redundant language elements that cause a recursion error (eg. subtyping "float" with "float")
2023-09-11 19:38:29 -07:00
2e87fa0556 working generation from provider 2023-09-08 19:46:42 -07:00
0b0fb6c67a cute progress bar and also linkml provider works 2023-09-08 16:12:19 -07:00
43f35c50d8 fixing docs build 2023-09-07 19:39:19 -07:00
75b710c3eb docs! 2023-09-07 19:32:17 -07:00
a01bb49b1e working on providers to cache generated models 2023-09-07 18:50:50 -07:00
2b828082e0 perf enhancements to pydantic generation 2023-09-06 22:48:47 -07:00
7b97b749ef monkeypatch to fix perf problems from nptyping 2023-09-06 19:32:33 -07:00
6a9d612b41 i'm just sorta making a mess here. coming back tomorrow 2023-09-06 00:50:49 -07:00
85beef4276 trying to get absolute paths out of coverage report 2023-09-05 22:54:20 -07:00
ecbb106581 proper .coveragerc formatting 2023-09-05 22:45:26 -07:00
456a5315d2 abandoning github action build 2023-09-05 22:42:46 -07:00
ce5cd18212 move to .coveragerc 2023-09-05 22:37:41 -07:00
2e1130c3f6 passing test directory??? 2023-09-05 22:29:48 -07:00
fcd4f70442 explicit configuration passing 2023-09-05 22:21:30 -07:00
3d69213afe optional? 2023-09-05 22:13:43 -07:00
3cb5e74ab8 upload to pypi 2023-09-05 22:10:10 -07:00
3bcf68d319 correct path 2023-09-05 21:59:19 -07:00
536de57ce4 correct path 2023-09-05 21:57:19 -07:00
2d8df6d2dc cant include package when out of working directory 2023-09-05 21:55:41 -07:00
201ed569de no working-directory in actions 2023-09-05 21:53:16 -07:00
da2eaea51e some baseline tests, fixing imports, coverage reports 2023-09-05 21:47:41 -07:00
ccc09de400 refactor nwb_linkml to src layout 2023-09-05 19:25:20 -07:00
9306f7e688 remove debugging flag 2023-09-04 22:00:43 -07:00
78d2ec59d7 - Able to complete build all the way through to importing generated classes 2023-09-04 21:46:17 -07:00
8f4f99cffd - Get imports for parent class slots
- Handle scalar valued datasets with subattributes
- start on hdf5
2023-09-04 16:16:29 -07:00
bb9dda6e66 - Don't split schema into includes and base
- Import top-level classes in namespaces pydantic file
- Don't generate or import the arraylike class
2023-09-04 14:56:36 -07:00
9dd7304334 Working recursion! and also handling multiple array shapes, and properly handling unnamed classes 2023-08-31 20:56:21 -07:00
4ee77dbb2e update to pydantic 2 2023-08-31 15:36:58 -07:00
3568037a1e Need to go home, in the middle of refactoring group and dataset as well as implementing the name property correctly 2023-08-31 00:01:43 -07:00
fd9aef9531 Cleaner code generation, npytyping type hints for arrays
- split off generated subclasses into "include" files, not sure if that's good, but in any case we have them separable now.
- more work on cleanly un-nesting scalar and 1D-vector data into attributes and lists, respectively
- brought the pydantic generator in-repo to do a bunch of overrides
2023-08-30 20:56:30 -07:00
be21325123 Cleaner code generation, npytyping type hints for arrays
- split off generated subclasses into "include" files, not sure if that's good, but in any case we have them separable now.
- more work on cleanly un-nesting scalar and 1D-vector data into attributes and lists, respectively
- brought the pydantic generator in-repo to do a bunch of overrides
2023-08-28 22:16:58 -07:00
63c6cef10b Cleaned up old files, added some mysteriously delayed pydantic models, and submitted to pypi to keep the package name. 2023-08-25 00:52:12 -07:00
4faaa8efe8 I believe that's a full translation
or at least all the semantics are present. it's not pretty by any stretch of the imagination
2023-08-25 00:22:47 -07:00
a4806543ef recursion works, more formal build method in adapters 2023-08-23 19:56:09 -07:00
170a424fb1 Actually generating some translations at this point 2023-08-21 21:43:02 -07:00
3996f319e2 some vague sketching on mapping namespaces 2023-08-20 23:00:58 -07:00
111965aace working schema language import 2023-08-18 22:09:28 -07:00
fe44c1c657 patch pydantic code generation, use anytype for dims because modeling lists of lists is not possible 2023-08-18 16:33:06 -07:00
63ccd800b3 progress with using pydantic models 2023-08-18 01:11:14 -07:00