spyglass
spyglass copied to clipboard
Replication tool
Draft of replication tool.
TODOs:
- [ ] Traverse aliases
- [ ] Clean up interface
Current usage
from spyglass.common.common_session import Session
from spyglass.linearization.merge import LinearizedPositionOutput as LO
from spyglass.utils.dj_graph import ImportedGraph, RestrGraph
target_analysis = RestrGraph(
seed_table=LO(),
leaves={LO.full_table_name: "merge_id=X'b792accc1a26622e4d28675c7bfb5ed5'"},
direction="up",
verbose=True,
cascade=True,
)
new_restr = {"nwb_file_name": "minirec20230621_.nwb"}
replicated = ImportedGraph(
target=target_analysis,
new_restr=new_restr,
parent=Session(),
child=LO(),
direction="down",
banned_tables=list(target_analysis.no_visit),
verbose=True,
)
replicated.cascade(restriction=new_restr, direction="down", null_on_fail=False)
replicated.cascade_target()