Skip to content

Commit 92cdaf6

Browse files
committed
always return model descr in add_weights
1 parent 05bef77 commit 92cdaf6

File tree

2 files changed

+12
-14
lines changed

2 files changed

+12
-14
lines changed

bioimageio/core/cli.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -773,9 +773,6 @@ def run(self):
773773
verbose=self.verbose,
774774
allow_tracing=self.tracing,
775775
)
776-
if updated_model_descr is None:
777-
return
778-
779776
self.log(updated_model_descr)
780777

781778

bioimageio/core/weight_converters/_add_weights.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import traceback
2-
from typing import Optional
2+
from typing import Optional, Union
33

44
from loguru import logger
55
from pydantic import DirectoryPath
@@ -22,7 +22,7 @@ def add_weights(
2222
target_format: Optional[WeightsFormat] = None,
2323
verbose: bool = False,
2424
allow_tracing: bool = True,
25-
) -> Optional[ModelDescr]:
25+
) -> Union[ModelDescr, InvalidDescr]:
2626
"""Convert model weights to other formats and add them to the model description
2727
2828
Args:
@@ -35,8 +35,8 @@ def add_weights(
3535
verbose: log more (error) output
3636
3737
Returns:
38-
- An updated model description if any converted weights were added.
39-
- `None` if no conversion was possible.
38+
A (potentially invalid) model copy stored at `output_path` with added weights if any conversion was possible.
39+
4040
"""
4141
if not isinstance(model_descr, ModelDescr):
4242
if model_descr.type == "model" and not isinstance(model_descr, InvalidDescr):
@@ -52,10 +52,9 @@ def add_weights(
5252
model_descr, output_path=output_path
5353
)
5454
# reload from local folder to make sure we do not edit the given model
55-
_model_descr = load_model_description(output_path, perform_io_checks=False)
56-
assert isinstance(_model_descr, ModelDescr)
57-
model_descr = _model_descr
58-
del _model_descr
55+
model_descr = load_model_description(
56+
output_path, perform_io_checks=False, format_version="latest"
57+
)
5958

6059
if source_format is None:
6160
available = set(model_descr.weights.available_formats)
@@ -164,14 +163,16 @@ def add_weights(
164163

165164
if originally_missing == missing:
166165
logger.warning("failed to add any converted weights")
167-
return None
166+
return model_descr
168167
else:
169168
logger.info("added weights formats {}", originally_missing - missing)
170169
# resave model with updated rdf.yaml
171170
_ = save_bioimageio_package_as_folder(model_descr, output_path=output_path)
172-
tested_model_descr = load_description_and_test(model_descr)
171+
tested_model_descr = load_description_and_test(
172+
model_descr, format_version="latest", expected_type="model"
173+
)
173174
if not isinstance(tested_model_descr, ModelDescr):
174-
raise RuntimeError(
175+
logger.error(
175176
f"The updated model description at {output_path} did not pass testing."
176177
)
177178

0 commit comments

Comments
 (0)