11"""App for viewing individual metadata assets"""
22
3- import os
4-
3+ from typing import Optional
54import panel as pn
65import param
76
3635)
3736
3837
39- # State sync
40- class Settings (param .Parameterized ):
41- """Top-level settings for QC app"""
42-
43- name = param .String (default = "" )
44-
45-
46- settings = Settings ()
47- pn .state .location .sync (settings , {"name" : "name" })
48-
49-
50- def get_record (name ):
38+ def get_record (asset_name : str ) -> Optional [dict ]:
5139 """Get a record from the database by name"""
5240 records = docdb_api_client .retrieve_docdb_records (
53- filter_query = {"name" : name },
41+ filter_query = {"name" : asset_name },
5442 limit = 1 ,
5543 )
5644
5745 if len (records ) == 0 :
46+ print (f"Record with name { asset_name } not found." )
5847 return None
5948 return records [0 ]
6049
6150
6251class MetadataView (param .Parameterized ):
6352 """Class for viewing metadata records"""
6453
54+ asset_name = param .String (default = "" )
6555 record = param .Dict (default = None )
6656 files_present = param .List (default = [])
6757 describedBys = param .Dict (default = {})
@@ -203,15 +193,18 @@ def panel(self):
203193
204194
205195metadata_view = MetadataView ()
206- metadata_view .set_record (get_record (settings .name ))
196+
197+ pn .state .location .sync (metadata_view , {"asset_name" : "name" })
198+
199+ metadata_view .set_record (get_record (metadata_view .asset_name ))
207200metadata_view_pane = metadata_view .panel ()
208201
209202print (f"AIND Metadata Viz version: { __version__ } " )
210- print (f"Viewing record: { settings . name } " )
203+ print (f"Viewing record: { metadata_view . asset_name } " )
211204
212205main_row = pn .Row (
213206 pn .HSpacer (),
214207 metadata_view_pane ,
215208 pn .HSpacer (),
216209)
217- main_row .servable (title = "Metadata View" )
210+ main_row .servable (title = "Metadata View" )
0 commit comments