Do not use ImportError behaviour in viewer

Conflicts:
	skimage/viewer/tests/test_tools.py
This commit is contained in:
Steven Silvester
2014-12-27 10:54:13 -06:00
parent 8d40cbd1d2
commit 6f57873526
7 changed files with 74 additions and 95 deletions
+4 -3
View File
@@ -1,5 +1,6 @@
import warnings
try:
from .viewers import ImageViewer, CollectionViewer
except ImportError as e:
from .viewers import ImageViewer, CollectionViewer
from .qt import has_qt
if not has_qt:
warnings.warn('Viewer requires Qt')
+19 -2
View File
@@ -1,8 +1,25 @@
has_qt = True
try:
from matplotlib.backends.qt_compat import QtGui, QtCore, QtWidgets
except ImportError:
from matplotlib.backends.qt4_compat import QtGui, QtCore
QtWidgets = QtGui
try:
from matplotlib.backends.qt4_compat import QtGui, QtCore
QtWidgets = QtGui
except ImportError:
# Mock objects
class QtGui(object):
QMainWindow = object
QDialog = object
QWidget = object
class QtCore(object):
Signal = object
Qt = object
QtWidgets = QtGui
has_qt = False
Qt = QtCore.Qt
Signal = QtCore.Signal
+16 -19
View File
@@ -4,15 +4,12 @@ import skimage
import skimage.data as data
from skimage.filters.rank import median
from skimage.morphology import disk
try:
from skimage.viewer import ImageViewer
from skimage.viewer.plugins.base import Plugin
from skimage.viewer.widgets import Slider
from skimage.viewer.plugins import (
LineProfile, Measure, CannyPlugin, LabelPainter, Crop, ColorHistogram,
PlotPlugin)
except ImportError:
ImageViewer is None
from skimage.viewer import ImageViewer, has_qt
from skimage.viewer.plugins.base import Plugin
from skimage.viewer.widgets import Slider
from skimage.viewer.plugins import (
LineProfile, Measure, CannyPlugin, LabelPainter, Crop, ColorHistogram,
PlotPlugin)
from numpy.testing import assert_equal, assert_allclose, assert_almost_equal
from numpy.testing.decorators import skipif
<<<<<<< HEAD
@@ -33,7 +30,7 @@ def setup_line_profile(image, limits='image'):
return plugin
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_line_profile():
""" Test a line profile using an ndim=2 image"""
plugin = setup_line_profile(data.camera())
@@ -47,7 +44,7 @@ def test_line_profile():
assert_allclose(scan_data.mean(), 0.2812, rtol=1e-3)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_line_profile_rgb():
""" Test a line profile using an ndim=3 image"""
plugin = setup_line_profile(data.chelsea(), limits=None)
@@ -62,7 +59,7 @@ def test_line_profile_rgb():
assert_allclose(scan_data.mean(), 0.4359, rtol=1e-3)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_line_profile_dynamic():
"""Test a line profile updating after an image transform"""
image = data.coins()[:-50, :] # shave some off to make the line lower
@@ -88,7 +85,7 @@ def test_line_profile_dynamic():
assert_almost_equal(np.max(line) - np.min(line), 0.639, 1)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_measure():
image = data.camera()
viewer = ImageViewer(image)
@@ -100,7 +97,7 @@ def test_measure():
assert_equal(str(m._angle.text[:5]), '135.0')
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_canny():
image = data.camera()
viewer = ImageViewer(image)
@@ -113,7 +110,7 @@ def test_canny():
assert edges.sum() == 2852
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_label_painter():
image = data.camera()
moon = data.moon()
@@ -131,7 +128,7 @@ def test_label_painter():
assert_equal(lp.paint_tool.shape, moon.shape)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_crop():
image = data.camera()
viewer = ImageViewer(image)
@@ -142,7 +139,7 @@ def test_crop():
assert_equal(viewer.image.shape, (101, 101))
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_color_histogram():
image = skimage.img_as_float(data.load('color.png'))
viewer = ImageViewer(image)
@@ -154,7 +151,7 @@ def test_color_histogram():
assert_almost_equal(viewer.image.std(), 0.325, 3)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_plot_plugin():
viewer = ImageViewer(data.moon())
plugin = PlotPlugin(image_filter=lambda x: x)
@@ -166,7 +163,7 @@ def test_plot_plugin():
viewer.close()
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_plugin():
img = skimage.img_as_float(data.moon())
viewer = ImageViewer(img)
+6 -37
View File
@@ -4,23 +4,12 @@ import numpy as np
from numpy.testing import assert_equal
from numpy.testing.decorators import skipif
from skimage import data
<<<<<<< HEAD
from skimage.viewer import ImageViewer, viewer_available
from skimage.viewer import ImageViewer, has_qt
from skimage.viewer.canvastools import (
LineTool, ThickLineTool, RectangleTool, PaintTool)
from skimage.viewer.canvastools.base import CanvasToolBase
from matplotlib.testing.decorators import cleanup
=======
try:
from skimage.viewer import ImageViewer
from skimage.viewer.canvastools import (
LineTool, ThickLineTool, RectangleTool, PaintTool)
from skimage.viewer.canvastools.base import CanvasToolBase
except ImportError:
ImageViewer = None
>>>>>>> 7e2fdf7... Update viewer for PyQt5 compatibility
def get_end_points(image):
h, w = image.shape[0:2]
@@ -84,12 +73,8 @@ def do_event(viewer, etype, button=1, xdata=0, ydata=0, key=None):
func(event)
<<<<<<< HEAD
@cleanup
@skipif(not viewer_available)
=======
@skipif(ImageViewer is None)
>>>>>>> 7e2fdf7... Update viewer for PyQt5 compatibility
@skipif(not has_qt)
def test_line_tool():
img = data.camera()
viewer = ImageViewer(img)
@@ -114,12 +99,8 @@ def test_line_tool():
assert_equal(tool.geometry, np.array([[100, 100], [10, 10]]))
<<<<<<< HEAD
@cleanup
@skipif(not viewer_available)
=======
@skipif(ImageViewer is None)
>>>>>>> 7e2fdf7... Update viewer for PyQt5 compatibility
@skipif(not has_qt)
def test_thick_line_tool():
img = data.camera()
viewer = ImageViewer(img)
@@ -142,12 +123,8 @@ def test_thick_line_tool():
assert_equal(tool.linewidth, 1)
<<<<<<< HEAD
@cleanup
@skipif(not viewer_available)
=======
@skipif(ImageViewer is None)
>>>>>>> 7e2fdf7... Update viewer for PyQt5 compatibility
@skipif(not has_qt)
def test_rect_tool():
img = data.camera()
viewer = ImageViewer(img)
@@ -175,12 +152,8 @@ def test_rect_tool():
assert_equal(tool.geometry, [10, 100, 10, 100])
<<<<<<< HEAD
@cleanup
@skipif(not viewer_available)
=======
@skipif(ImageViewer is None)
>>>>>>> 7e2fdf7... Update viewer for PyQt5 compatibility
@skipif(not has_qt)
def test_paint_tool():
img = data.moon()
viewer = ImageViewer(img)
@@ -213,12 +186,8 @@ def test_paint_tool():
assert_equal(tool.overlay.sum(), 0)
<<<<<<< HEAD
@cleanup
@skipif(not viewer_available)
=======
@skipif(ImageViewer is None)
>>>>>>> 7e2fdf7... Update viewer for PyQt5 compatibility
@skipif(not has_qt)
def test_base_tool():
img = data.moon()
viewer = ImageViewer(img)
+7 -10
View File
@@ -1,14 +1,11 @@
# -*- coding: utf-8 -*-
try:
from skimage.viewer import utils
from skimage.viewer.utils import dialogs
from skimage.viewer.qt import QtCore, QtGui
except ImportError:
QtCore = None
from skimage.viewer import utils
from skimage.viewer.utils import dialogs
from skimage.viewer.qt import QtCore, QtGui, has_qt
from numpy.testing.decorators import skipif
@skipif(QtCore is None)
@skipif(not has_qt)
def test_event_loop():
utils.init_qtapp()
timer = QtCore.QTimer()
@@ -16,7 +13,7 @@ def test_event_loop():
utils.start_qtapp()
@skipif(QtCore is None)
@skipif(not has_qt)
def test_format_filename():
fname = dialogs._format_filename(('apple', 2))
assert fname == 'apple'
@@ -24,7 +21,7 @@ def test_format_filename():
assert fname is None
@skipif(QtCore is None)
@skipif(not has_qt)
def test_open_file_dialog():
utils.init_qtapp()
timer = QtCore.QTimer()
@@ -33,7 +30,7 @@ def test_open_file_dialog():
assert filename is None
@skipif(QtCore is None)
@skipif(not has_qt)
def test_save_file_dialog():
utils.init_qtapp()
timer = QtCore.QTimer()
+8 -9
View File
@@ -1,11 +1,10 @@
from skimage import data
try:
from skimage.viewer.qt import QtGui, QtCore
from skimage.viewer import ImageViewer, CollectionViewer
from skimage.viewer.plugins import OverlayPlugin
except ImportError:
ImageViewer = None
from skimage.viewer.qt import QtGui, QtCore, has_qt
from skimage.viewer import ImageViewer, CollectionViewer
from skimage.viewer.plugins import OverlayPlugin
from skimage.transform import pyramid_gaussian
from skimage.filters import sobel
from numpy.testing import assert_equal
@@ -14,7 +13,7 @@ from skimage._shared.version_requirements import is_installed
from skimage._shared._warnings import expected_warnings
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_viewer():
astro = data.astronaut()
coins = data.coins()
@@ -41,7 +40,7 @@ def make_key_event(key):
QtCore.Qt.NoModifier)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_collection_viewer():
img = data.astronaut()
@@ -57,7 +56,7 @@ def test_collection_viewer():
view._format_coord(10, 10)
@skipif(ImageViewer is None)
@skipif(not has_qt)
@skipif(not is_installed('matplotlib', '>=1.2'))
def test_viewer_with_overlay():
img = data.coins()
+14 -15
View File
@@ -1,14 +1,13 @@
import os
from skimage import data, img_as_float, io, img_as_uint
try:
from skimage.viewer import ImageViewer
from skimage.viewer.qt import QtGui, QtCore
from skimage.viewer.widgets import (
Slider, OKCancelButtons, SaveButtons, ComboBox, CheckBox, Text)
from skimage.viewer.plugins.base import Plugin
except ImportError:
ImageViewer = None
from skimage.viewer import ImageViewer
from skimage.viewer.qt import QtGui, QtCore, has_qt
from skimage.viewer.widgets import (
Slider, OKCancelButtons, SaveButtons, ComboBox, CheckBox, Text)
from skimage.viewer.plugins.base import Plugin
from numpy.testing import assert_almost_equal, assert_equal
from numpy.testing.decorators import skipif
from skimage._shared._warnings import expected_warnings
@@ -21,7 +20,7 @@ def get_image_viewer():
return viewer
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_check_box():
viewer = get_image_viewer()
cb = CheckBox('hello', value=True, alignment='left')
@@ -36,7 +35,7 @@ def test_check_box():
assert_equal(cb.val, False)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_combo_box():
viewer = get_image_viewer()
cb = ComboBox('hello', ('a', 'b', 'c'))
@@ -49,7 +48,7 @@ def test_combo_box():
assert_equal(cb.index, 2)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_text_widget():
viewer = get_image_viewer()
txt = Text('hello', 'hello, world!')
@@ -60,7 +59,7 @@ def test_text_widget():
assert_equal(str(txt.text), 'goodbye, world!')
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_slider_int():
viewer = get_image_viewer()
sld = Slider('radius', 2, 10, value_type='int')
@@ -74,7 +73,7 @@ def test_slider_int():
assert_equal(sld.val, 5)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_slider_float():
viewer = get_image_viewer()
sld = Slider('alpha', 2.1, 3.1, value=2.1, value_type='float',
@@ -89,7 +88,7 @@ def test_slider_float():
assert_almost_equal(sld.val, 2.5, 2)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_save_buttons():
viewer = get_image_viewer()
sv = SaveButtons()
@@ -117,7 +116,7 @@ def test_save_buttons():
os.remove(filename)
@skipif(ImageViewer is None)
@skipif(not has_qt)
def test_ok_buttons():
viewer = get_image_viewer()
ok = OKCancelButtons()