Closed samuelbray32 closed 1 day ago
__fetch_nwb
notes:__
For the Merge.fetch_nwb()
case:
Tracing:
Missing Merge entry
Merge.fetch_nwb()
doesn't do any logging before calling ParentSource.fetch_nwb()
. explains why this not includedMerge.merge_restrict_class()
to catch cases where the merge table is a "passthrough" for upstream tablesMissing AnalysisNwbfile entry
_log_fetch
in the mixin ignores fetch calls from _get_abspath hereget_nwb_table
calls get_abs_path
herefetch_nwb
takes the filepath it gets from here and loads it with get_nwb_file
. If this is an unopened local file, it accesses it with a pynwb
io function that doesn't require any more fetch calls
AnalysisNwbfile
tableSpyglassMixin.fetch_nwb()
logs the file for dandi export and the table entry of the ParentSource
It seems like the AnalysisNwbfile
is maybe not getting hit as expected in the restriction graph from the SourceTable
entry? (@CBroz1 )
Thanks for putting this together @samuelbray32. I'll see what I can do about either capturing these missed cases or flagging them as items that the process would miss
Fixed in #1164
Describe the bug In testing the export and docker pipeline, found several cases where entries weren't logged for the SQL dump that we should probably include or make clear in documentation wont be hit. Listing here:
Using a table to restrict another
table1
viatable1 & (table2 & key)
ortable1 * (table2 & key)
table2
it doesn't get exported. This then changes behavior of the restriction in the dockertable1 & (table2 & key).fetch("KEY")
__fetch_nwb__
fetch_nwb
from the merge table did not register the merge table entries in the export.(LFPOutput & basic_key).fetch_nwb(restriction=basic_key)[0]["lfp"]
wherebasic_key
has restrictions for the source tableLFPV1()