Merge pull request #208 from stefanv/io_reset

ENH: Allow resetting the plugin state.
This commit is contained in:
tonysyu
2012-06-24 18:37:14 -07:00
7 changed files with 37 additions and 16 deletions
+6 -2
View File
@@ -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()
+15 -6
View File
@@ -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.
+5
View File
@@ -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')
+4
View File
@@ -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'))
+5 -1
View File
@@ -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.
+1 -4
View File
@@ -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):
+1 -3
View File
@@ -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)