Skip to content

_get_all_ngc_models uses requests.get and need to check the returned data #3845

@yiheng-wang-nv

Description

@yiheng-wang-nv

Describe the bug
When I played with https://github.com/Project-MONAI/tutorials/blob/master/modules/transfer_mmar.ipynb, I met the following error:

---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
/tmp/ipykernel_799/1997768389.py in <module>
      3 if PRETRAINED:
      4     print("using a pretrained model.")
----> 5     unet_model = load_from_mmar(
      6         mmar, mmar_dir=root_dir,
      7         map_location=device,

/opt/monai/monai/apps/mmars/mmars.py in load_from_mmar(item, mmar_dir, progress, version, map_location, pretrained, weights_only, model_key, api, model_file)
    224     if not isinstance(item, Mapping):
    225         item = get_model_spec(item)
--> 226     model_dir = download_mmar(item=item, mmar_dir=mmar_dir, progress=progress, version=version, api=api)
    227     if model_file is None:
    228         model_file = os.path.join("models", "model.pt")

/opt/monai/monai/apps/mmars/mmars.py in download_mmar(item, mmar_dir, progress, api, version)
    139     mmar_dir = Path(mmar_dir)
    140     if api:
--> 141         model_dict = _get_all_ngc_models(item.get(Keys.NAME, f"{item}") if isinstance(item, Mapping) else f"{item}")
    142         if len(model_dict) == 0:
    143             raise ValueError(f"api query returns no item for pattern {item}.  Please change or shorten it.")

/opt/monai/monai/apps/mmars/mmars.py in _get_all_ngc_models(pattern, page_index, page_size)
     82     else:
     83         raise ValueError("NGC API requires requests package.  Please install it.")
---> 84     model_list = json.loads(resp.text)
     85     model_dict = {}
     86     for result in model_list["results"]:

/opt/conda/lib/python3.8/json/__init__.py in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    355             parse_int is None and parse_float is None and
    356             parse_constant is None and object_pairs_hook is None and not kw):
--> 357         return _default_decoder.decode(s)
    358     if cls is None:
    359         cls = JSONDecoder

/opt/conda/lib/python3.8/json/decoder.py in decode(self, s, _w)
    335 
    336         """
--> 337         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    338         end = _w(s, end).end()
    339         if end != len(s):

/opt/conda/lib/python3.8/json/decoder.py in raw_decode(self, s, idx)
    353             obj, end = self.scan_once(s, idx)
    354         except StopIteration as err:
--> 355             raise JSONDecodeError("Expecting value", s, err.value) from None
    356         return obj, end

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions