1919)
2020from bioimageio .spec .collection .v0_2 .utils import resolve_collection_entries
2121from bioimageio .spec .io_ import serialize_raw_resource_description
22- from bioimageio .spec .partner .imjoy_plugin_parser import get_plugin_as_rdf
23- from bioimageio .spec .shared import resolve_rdf_source
22+ from bioimageio .spec .partner .utils import enrich_partial_rdf_with_imjoy_plugin
2423
2524
2625# todo: use MyYAML from bioimageio.spec. see comment below
@@ -194,36 +193,6 @@ def rec_sort(obj):
194193 return obj
195194
196195
197- def enrich_partial_rdf_with_imjoy_plugin (partial_rdf : Dict [str , Any ]) -> Dict [str , Any ]:
198- """
199- a (partial) rdf may have 'rdf_resource' or 'source' which resolve to rdf data that may be overwritten.
200- Due to resolving imjoy plugins this is not done in bioimageio.spec.collection atm
201- """
202- enriched_rdf = {}
203- if "rdf_source" in partial_rdf :
204- rdf_source = partial_rdf ["rdf_source" ]
205- if isinstance (rdf_source , str ) and rdf_source .split ("?" )[0 ].endswith (".imjoy.html" ):
206- # rdf_source is an imjoy plugin
207- rdf_source = dict (get_plugin_as_rdf (rdf_source ))
208-
209- else :
210- # rdf_source is an actual rdf
211- if not isinstance (rdf_source , dict ):
212- rdf_source , rdf_source_name , rdf_source_root = resolve_rdf_source (rdf_source )
213- rdf_source ["root_path" ] = rdf_source_root # enables remote source content to be resolved
214-
215- assert isinstance (rdf_source , dict )
216- enriched_rdf .update (rdf_source )
217-
218- if "source" in partial_rdf :
219- if partial_rdf ["source" ].split ("?" )[0 ].endswith (".imjoy.html" ):
220- rdf_from_source = get_plugin_as_rdf (partial_rdf ["source" ])
221- enriched_rdf .update (rdf_from_source )
222-
223- enriched_rdf .update (partial_rdf ) # initial partial rdf overwrites fields from rdf_source or source
224- return enriched_rdf
225-
226-
227196def write_rdfs_for_resource (resource : dict , dist : Path , only_for_version_id : Optional [str ] = None ) -> List [str ]:
228197 """write updated version rdfs for the given resource to dist
229198
@@ -237,7 +206,7 @@ def write_rdfs_for_resource(resource: dict, dist: Path, only_for_version_id: Opt
237206 """
238207 resource_id = resource ["id" ]
239208 updated_versions = []
240- resource_info = enrich_partial_rdf_with_imjoy_plugin (resource )
209+ resource_info = enrich_partial_rdf_with_imjoy_plugin (resource , pathlib . Path () )
241210 for version_info in resource ["versions" ]:
242211 version_id = version_info ["version_id" ]
243212 if (
@@ -248,7 +217,7 @@ def write_rdfs_for_resource(resource: dict, dist: Path, only_for_version_id: Opt
248217 ):
249218 continue
250219
251- version_info = enrich_partial_rdf_with_imjoy_plugin (version_info )
220+ version_info = enrich_partial_rdf_with_imjoy_plugin (version_info , pathlib . Path () )
252221
253222 rdf = dict (resource_info ) # rdf is based on resource info
254223 rdf .update (version_info ) # version specific info overwrites resource info
0 commit comments