Merge pull request #196 from tonysyu/fix-plugin-init

BUG: Check all io functions when loading of default plugins.
This commit is contained in:
Stefan van der Walt
2012-06-24 16:56:57 -07:00
+25 -16
View File
@@ -8,22 +8,6 @@ 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
available_plugins = plugins()
for preferred_plugin in ['matplotlib', 'pil', 'qt', 'freeimage', 'null']:
if preferred_plugin in available_plugins:
try:
use_plugin(preferred_plugin)
break
except ImportError:
pass
# Use PIL as the default imread plugin, since matplotlib (1.2.x)
# is buggy (flips PNGs around, returns bytes as floats, etc.)
try:
use_plugin('pil', 'imread')
except ImportError:
pass
from .sift import *
from .collection import *
@@ -32,6 +16,31 @@ from ._io import *
from .video import *
available_plugins = plugins()
def _load_preferred_plugins():
# Load preferred plugin for each io function.
io_funcs = ['imsave', 'imshow', 'imread_collection', 'imread']
preferred_plugins = ['matplotlib', 'pil', 'qt', 'freeimage', 'null']
for func in io_funcs:
for plugin in preferred_plugins:
if plugin not in available_plugins:
continue
try:
use_plugin(plugin, kind=func)
break
except (ImportError, RuntimeError):
pass
# Use PIL as the default imread plugin, since matplotlib (1.2.x)
# is buggy (flips PNGs around, returns bytes as floats, etc.)
try:
use_plugin('pil', 'imread')
except ImportError:
pass
_load_preferred_plugins()
def _update_doc(doc):
"""Add a list of plugins to the module docstring, formatted as
a ReStructuredText table.