mirror of
https://github.com/wassname/scikit-image.git
synced 2026-08-10 12:40:08 +08:00
Merge pull request #208 from stefanv/io_reset
ENH: Allow resetting the plugin state.
This commit is contained in:
@@ -8,6 +8,7 @@ from ._plugins import use as use_plugin
|
||||
from ._plugins import available as plugins
|
||||
from ._plugins import info as plugin_info
|
||||
from ._plugins import configuration as plugin_order
|
||||
from ._plugins import reset_plugins as _reset_plugins
|
||||
|
||||
from .sift import *
|
||||
from .collection import *
|
||||
@@ -40,8 +41,9 @@ def _load_preferred_plugins():
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
_load_preferred_plugins()
|
||||
|
||||
def reset_plugins():
|
||||
_reset_plugins()
|
||||
_load_preferred_plugins()
|
||||
|
||||
def _update_doc(doc):
|
||||
"""Add a list of plugins to the module docstring, formatted as
|
||||
@@ -72,3 +74,5 @@ def _update_doc(doc):
|
||||
return doc
|
||||
|
||||
__doc__ = _update_doc(__doc__)
|
||||
|
||||
reset_plugins()
|
||||
|
||||
@@ -2,23 +2,32 @@
|
||||
|
||||
"""
|
||||
|
||||
__all__ = ['use', 'available', 'call', 'info', 'configuration']
|
||||
__all__ = ['use', 'available', 'call', 'info', 'configuration', 'reset_plugins']
|
||||
|
||||
import warnings
|
||||
from ConfigParser import ConfigParser
|
||||
import os.path
|
||||
from glob import glob
|
||||
|
||||
plugin_store = {'imread': [],
|
||||
'imsave': [],
|
||||
'imshow': [],
|
||||
'imread_collection': [],
|
||||
'_app_show': []}
|
||||
plugin_store = None
|
||||
|
||||
plugin_provides = {}
|
||||
plugin_module_name = {}
|
||||
plugin_meta_data = {}
|
||||
|
||||
def reset_plugins():
|
||||
"""Clear the plugin state to the default, i.e., where no plugins are loaded.
|
||||
|
||||
"""
|
||||
global plugin_store
|
||||
plugin_store = {'imread': [],
|
||||
'imsave': [],
|
||||
'imshow': [],
|
||||
'imread_collection': [],
|
||||
'_app_show': []}
|
||||
|
||||
reset_plugins()
|
||||
|
||||
def _scan_plugins():
|
||||
"""Scan the plugins directory for .ini files and parse them
|
||||
to gather plugin meta-data.
|
||||
|
||||
@@ -26,6 +26,11 @@ def test_fits_plugin_import():
|
||||
else:
|
||||
assert pyfits_available == True
|
||||
|
||||
|
||||
def teardown():
|
||||
io.reset_plugins()
|
||||
|
||||
|
||||
@skipif(not pyfits_available)
|
||||
def test_imread_MEF():
|
||||
io.use_plugin('fits')
|
||||
|
||||
@@ -27,6 +27,10 @@ def setup_module(self):
|
||||
pass
|
||||
|
||||
|
||||
def teardown():
|
||||
sio.reset_plugins()
|
||||
|
||||
|
||||
@skipif(not FI_available)
|
||||
def test_imread():
|
||||
img = sio.imread(os.path.join(si.data_dir, 'color.png'))
|
||||
|
||||
@@ -6,7 +6,7 @@ from numpy.testing.decorators import skipif
|
||||
from tempfile import NamedTemporaryFile
|
||||
|
||||
from skimage import data_dir
|
||||
from skimage.io import imread, imsave, use_plugin
|
||||
from skimage.io import imread, imsave, use_plugin, reset_plugins
|
||||
|
||||
try:
|
||||
from PIL import Image
|
||||
@@ -18,6 +18,10 @@ else:
|
||||
PIL_available = True
|
||||
|
||||
|
||||
def teardown():
|
||||
reset_plugins()
|
||||
|
||||
|
||||
def setup_module(self):
|
||||
"""The effect of the `plugin.use` call may be overridden by later imports.
|
||||
Call `use_plugin` directly before the tests to ensure that PIL is used.
|
||||
|
||||
@@ -4,8 +4,6 @@ from skimage import io
|
||||
from skimage.io._plugins import plugin
|
||||
from numpy.testing.decorators import skipif
|
||||
|
||||
from copy import deepcopy
|
||||
|
||||
try:
|
||||
io.use_plugin('pil')
|
||||
PIL_available = True
|
||||
@@ -22,11 +20,10 @@ except OSError:
|
||||
|
||||
|
||||
def setup_module(self):
|
||||
self.backup_plugin_store = deepcopy(plugin.plugin_store)
|
||||
plugin.use('test') # see ../_plugins/test_plugin.py
|
||||
|
||||
def teardown_module(self):
|
||||
plugin.plugin_store = self.backup_plugin_store
|
||||
io.reset_plugins()
|
||||
|
||||
class TestPlugin:
|
||||
def test_read(self):
|
||||
|
||||
@@ -17,9 +17,7 @@ except ImportError:
|
||||
|
||||
|
||||
def teardown():
|
||||
if TF_available:
|
||||
for k, v in _plugins.items():
|
||||
sio.use_plugin(v[0], k)
|
||||
sio.reset_plugins()
|
||||
|
||||
|
||||
@skipif(not TF_available)
|
||||
|
||||
Reference in New Issue
Block a user