Skip to content

pytest.importorskip breaks skimage.lookfor #6548

@jni

Description

@jni

Description

It looks like skimage.lookfor fails when we don't have all optional dependencies installed:

In [43]: skimage.lookfor('peak_local_max')
---------------------------------------------------------------------------
Skipped                                   Traceback (most recent call last)
Input In [43], in <cell line: 1>()
----> 1 skimage.lookfor('peak_local_max')

File ~/conda/envs/all/lib/python3.10/site-packages/skimage/util/lookfor.py:24, in lookfor(what)
      5 def lookfor(what):
      6     """Do a keyword search on scikit-image docstrings.
      7
      8     Parameters
   (...)
     22         Find `n_points` regularly spaced along `ar_shape`.
     23     """
---> 24     return np.lookfor(what, sys.modules[__name__.split('.')[0]])

File ~/conda/envs/all/lib/python3.10/site-packages/numpy/lib/utils.py:738, in lookfor(what, module, import_modules, regenerate, output)
    735 import pydoc
    737 # Cache
--> 738 cache = _lookfor_generate_cache(module, import_modules, regenerate)
    740 # Search
    741 # XXX: maybe using a real stemming search engine would be better?
    742 found = []

File ~/conda/envs/all/lib/python3.10/site-packages/numpy/lib/utils.py:900, in _lookfor_generate_cache(module, import_modules, regenerate)
    898     sys.stdout = StringIO()
    899     sys.stderr = StringIO()
--> 900     __import__("%s.%s" % (name, to_import))
    901 finally:
    902     sys.stdout = old_stdout

File ~/conda/envs/all/lib/python3.10/site-packages/skimage/io/tests/test_fits.py:5, in <module>
      2 import skimage.io as io
      3 from skimage._shared import testing
----> 5 testing.pytest.importorskip('astropy')
      6 from astropy.io import fits
      7 import skimage.io._plugins.fits_plugin as fplug

File ~/conda/envs/all/lib/python3.10/site-packages/_pytest/outcomes.py:292, in importorskip(modname, minversion, reason)
    290         if reason is None:
    291             reason = f"could not import {modname!r}: {exc}"
--> 292         raise Skipped(reason, allow_module_level=True) from None
    293 mod = sys.modules[modname]
    294 if minversion is None:

Skipped: could not import 'astropy': No module named 'astropy'

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions