[Debian-med-packaging] Bug#896025: python-mne FTBFS with python-matplotlib 2.2.2-1
Adrian Bunk
bunk at debian.org
Wed Apr 18 21:42:25 BST 2018
Source: python-mne
Version: 0.15.2+dfsg-2
Severity: serious
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/python-mne.html
...
=================================== FAILURES ===================================
___________________ [doctest] mne.viz.misc.plot_ideal_filter ___________________
840 .. versionadded:: 0.14
841
842 Examples
843 --------
844 Plot a simple ideal band-pass filter::
845
846 >>> from mne.viz import plot_ideal_filter
847 >>> freq = [0, 1, 40, 50]
848 >>> gain = [0, 1, 1, 0]
849 >>> plot_ideal_filter(freq, gain, flim=(0.1, 100)) #doctest: +ELLIPSIS
Expected:
<matplotlib.figure.Figure object at ...>
Got:
<Figure size 640x480 with 1 Axes>
/build/1st/python-mne-0.15.2+dfsg/mne/viz/misc.py:849: DocTestFailure
________________________ test_plot_connectivity_circle _________________________
def test_plot_connectivity_circle():
"""Test plotting connectivity circle
"""
import matplotlib.pyplot as plt
node_order = ['frontalpole-lh', 'parsorbitalis-lh',
'lateralorbitofrontal-lh', 'rostralmiddlefrontal-lh',
'medialorbitofrontal-lh', 'parstriangularis-lh',
'rostralanteriorcingulate-lh', 'temporalpole-lh',
'parsopercularis-lh', 'caudalanteriorcingulate-lh',
'entorhinal-lh', 'superiorfrontal-lh', 'insula-lh',
'caudalmiddlefrontal-lh', 'superiortemporal-lh',
'parahippocampal-lh', 'middletemporal-lh',
'inferiortemporal-lh', 'precentral-lh',
'transversetemporal-lh', 'posteriorcingulate-lh',
'fusiform-lh', 'postcentral-lh', 'bankssts-lh',
'supramarginal-lh', 'isthmuscingulate-lh', 'paracentral-lh',
'lingual-lh', 'precuneus-lh', 'inferiorparietal-lh',
'superiorparietal-lh', 'pericalcarine-lh',
'lateraloccipital-lh', 'cuneus-lh', 'cuneus-rh',
'lateraloccipital-rh', 'pericalcarine-rh',
'superiorparietal-rh', 'inferiorparietal-rh', 'precuneus-rh',
'lingual-rh', 'paracentral-rh', 'isthmuscingulate-rh',
'supramarginal-rh', 'bankssts-rh', 'postcentral-rh',
'fusiform-rh', 'posteriorcingulate-rh',
'transversetemporal-rh', 'precentral-rh',
'inferiortemporal-rh', 'middletemporal-rh',
'parahippocampal-rh', 'superiortemporal-rh',
'caudalmiddlefrontal-rh', 'insula-rh', 'superiorfrontal-rh',
'entorhinal-rh', 'caudalanteriorcingulate-rh',
'parsopercularis-rh', 'temporalpole-rh',
'rostralanteriorcingulate-rh', 'parstriangularis-rh',
'medialorbitofrontal-rh', 'rostralmiddlefrontal-rh',
'lateralorbitofrontal-rh', 'parsorbitalis-rh',
'frontalpole-rh']
label_names = ['bankssts-lh', 'bankssts-rh', 'caudalanteriorcingulate-lh',
'caudalanteriorcingulate-rh', 'caudalmiddlefrontal-lh',
'caudalmiddlefrontal-rh', 'cuneus-lh', 'cuneus-rh',
'entorhinal-lh', 'entorhinal-rh', 'frontalpole-lh',
'frontalpole-rh', 'fusiform-lh', 'fusiform-rh',
'inferiorparietal-lh', 'inferiorparietal-rh',
'inferiortemporal-lh', 'inferiortemporal-rh', 'insula-lh',
'insula-rh', 'isthmuscingulate-lh', 'isthmuscingulate-rh',
'lateraloccipital-lh', 'lateraloccipital-rh',
'lateralorbitofrontal-lh', 'lateralorbitofrontal-rh',
'lingual-lh', 'lingual-rh', 'medialorbitofrontal-lh',
'medialorbitofrontal-rh', 'middletemporal-lh',
'middletemporal-rh', 'paracentral-lh', 'paracentral-rh',
'parahippocampal-lh', 'parahippocampal-rh',
'parsopercularis-lh', 'parsopercularis-rh',
'parsorbitalis-lh', 'parsorbitalis-rh',
'parstriangularis-lh', 'parstriangularis-rh',
'pericalcarine-lh', 'pericalcarine-rh', 'postcentral-lh',
'postcentral-rh', 'posteriorcingulate-lh',
'posteriorcingulate-rh', 'precentral-lh', 'precentral-rh',
'precuneus-lh', 'precuneus-rh',
'rostralanteriorcingulate-lh',
'rostralanteriorcingulate-rh', 'rostralmiddlefrontal-lh',
'rostralmiddlefrontal-rh', 'superiorfrontal-lh',
'superiorfrontal-rh', 'superiorparietal-lh',
'superiorparietal-rh', 'superiortemporal-lh',
'superiortemporal-rh', 'supramarginal-lh',
'supramarginal-rh', 'temporalpole-lh', 'temporalpole-rh',
'transversetemporal-lh', 'transversetemporal-rh']
group_boundaries = [0, len(label_names) / 2]
node_angles = circular_layout(label_names, node_order, start_pos=90,
group_boundaries=group_boundaries)
con = np.random.RandomState(0).randn(68, 68)
plot_connectivity_circle(con, label_names, n_lines=300,
> node_angles=node_angles, title='test',
)
con = array([[ 1.76405235, 0.40015721, 0.97873798, ..., -0.40178094,
-1.63... 1.19712845, -1.63770629, ..., -1.35486121,
-0.52109948, 1.88316415]])
group_boundaries = [0, 34]
label_names = ['bankssts-lh', 'bankssts-rh', 'caudalanteriorcingulate-lh', 'caudalanteriorcingulate-rh', 'caudalmiddlefrontal-lh', 'caudalmiddlefrontal-rh', ...]
node_angles = array([ 212.5, 327.5, 142.5, 397.5, 162.5, 377.5, 262.5, 277.5,
... 292.5, 167.5, 372.5, 217.5, 322.5,
132.5, 407.5, 192.5, 347.5])
node_order = ['frontalpole-lh', 'parsorbitalis-lh', 'lateralorbitofrontal-lh', 'rostralmiddlefrontal-lh', 'medialorbitofrontal-lh', 'parstriangularis-lh', ...]
plt = <module 'matplotlib.pyplot' from '/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc'>
mne/viz/tests/test_circle.py:87:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
con = array([[ 1.76405235, 0.40015721, 0.97873798, ..., -0.40178094,
-1.63... 1.19712845, -1.63770629, ..., -1.35486121,
-0.52109948, 1.88316415]])
node_names = ['bankssts-lh', 'bankssts-rh', 'caudalanteriorcingulate-lh', 'caudalanteriorcingulate-rh', 'caudalmiddlefrontal-lh', 'caudalmiddlefrontal-rh', ...]
indices = None, n_lines = 300
node_angles = array([ 3.70882466, 5.7159533 , 2.48709418, 6.93768378, 2.83616003,
...09112, 5.62868684, 2.31256126,
7.1122167 , 3.35975881, 6.06501915])
node_width = 0.087266462599715489, node_colors = None, facecolor = 'black'
textcolor = 'white', node_edgecolor = 'black', linewidth = 1.5, colormap = 'hot'
vmin = None, vmax = None, colorbar = True, title = 'test', colorbar_size = 0.2
colorbar_pos = (-0.3, 0.1), fontsize_title = 12, fontsize_names = 8
fontsize_colorbar = 8, padding = 6.0, fig = None, subplot = 111
interactive = True, node_linewidth = 2.0, show = True
def plot_connectivity_circle(con, node_names, indices=None, n_lines=None,
node_angles=None, node_width=None,
node_colors=None, facecolor='black',
textcolor='white', node_edgecolor='black',
linewidth=1.5, colormap='hot', vmin=None,
vmax=None, colorbar=True, title=None,
colorbar_size=0.2, colorbar_pos=(-0.3, 0.1),
fontsize_title=12, fontsize_names=8,
fontsize_colorbar=8, padding=6.,
fig=None, subplot=111, interactive=True,
node_linewidth=2., show=True):
"""Visualize connectivity as a circular graph.
Note: This code is based on the circle graph example by Nicolas P. Rougier
http://www.labri.fr/perso/nrougier/coding/.
Parameters
----------
con : array
Connectivity scores. Can be a square matrix, or a 1D array. If a 1D
array is provided, "indices" has to be used to define the connection
indices.
node_names : list of str
Node names. The order corresponds to the order in con.
indices : tuple of arrays | None
Two arrays with indices of connections for which the connections
strenghts are defined in con. Only needed if con is a 1D array.
n_lines : int | None
If not None, only the n_lines strongest connections (strength=abs(con))
are drawn.
node_angles : array, shape=(len(node_names,)) | None
Array with node positions in degrees. If None, the nodes are equally
spaced on the circle. See mne.viz.circular_layout.
node_width : float | None
Width of each node in degrees. If None, the minimum angle between any
two nodes is used as the width.
node_colors : list of tuples | list of str
List with the color to use for each node. If fewer colors than nodes
are provided, the colors will be repeated. Any color supported by
matplotlib can be used, e.g., RGBA tuples, named colors.
facecolor : str
Color to use for background. See matplotlib.colors.
textcolor : str
Color to use for text. See matplotlib.colors.
node_edgecolor : str
Color to use for lines around nodes. See matplotlib.colors.
linewidth : float
Line width to use for connections.
colormap : str
Colormap to use for coloring the connections.
vmin : float | None
Minimum value for colormap. If None, it is determined automatically.
vmax : float | None
Maximum value for colormap. If None, it is determined automatically.
colorbar : bool
Display a colorbar or not.
title : str
The figure title.
colorbar_size : float
Size of the colorbar.
colorbar_pos : 2-tuple
Position of the colorbar.
fontsize_title : int
Font size to use for title.
fontsize_names : int
Font size to use for node names.
fontsize_colorbar : int
Font size to use for colorbar.
padding : float
Space to add around figure to accommodate long labels.
fig : None | instance of matplotlib.pyplot.Figure
The figure to use. If None, a new figure with the specified background
color will be created.
subplot : int | 3-tuple
Location of the subplot when creating figures with multiple plots. E.g.
121 or (1, 2, 1) for 1 row, 2 columns, plot 1. See
matplotlib.pyplot.subplot.
interactive : bool
When enabled, left-click on a node to show only connections to that
node. Right-click shows all connections.
node_linewidth : float
Line with for nodes.
show : bool
Show figure if True.
Returns
-------
fig : instance of matplotlib.pyplot.Figure
The figure handle.
axes : instance of matplotlib.axes.PolarAxesSubplot
The subplot handle.
"""
import matplotlib.pyplot as plt
import matplotlib.path as m_path
import matplotlib.patches as m_patches
n_nodes = len(node_names)
if node_angles is not None:
if len(node_angles) != n_nodes:
raise ValueError('node_angles has to be the same length '
'as node_names')
# convert it to radians
node_angles = node_angles * np.pi / 180
else:
# uniform layout on unit circle
node_angles = np.linspace(0, 2 * np.pi, n_nodes, endpoint=False)
if node_width is None:
# widths correspond to the minimum angle between two nodes
dist_mat = node_angles[None, :] - node_angles[:, None]
dist_mat[np.diag_indices(n_nodes)] = 1e9
node_width = np.min(np.abs(dist_mat))
else:
node_width = node_width * np.pi / 180
if node_colors is not None:
if len(node_colors) < n_nodes:
node_colors = cycle(node_colors)
else:
# assign colors using colormap
node_colors = [plt.cm.spectral(i / float(n_nodes))
> for i in range(n_nodes)]
E AttributeError: 'module' object has no attribute 'spectral'
colorbar = True
colorbar_pos = (-0.3, 0.1)
colorbar_size = 0.2
colormap = 'hot'
con = array([[ 1.76405235, 0.40015721, 0.97873798, ..., -0.40178094,
-1.63... 1.19712845, -1.63770629, ..., -1.35486121,
-0.52109948, 1.88316415]])
dist_mat = array([[ 1.00000000e+09, 2.00712864e+00, -1.22173048e+00, ...,
3...92497e+00, ...,
1.04719755e+00, -2.70526034e+00, 1.00000000e+09]])
facecolor = 'black'
fig = None
fontsize_colorbar = 8
fontsize_names = 8
fontsize_title = 12
i = 0
indices = None
interactive = True
linewidth = 1.5
m_patches = <module 'matplotlib.patches' from '/usr/lib/python2.7/dist-packages/matplotlib/patches.pyc'>
m_path = <module 'matplotlib.path' from '/usr/lib/python2.7/dist-packages/matplotlib/path.pyc'>
n_lines = 300
n_nodes = 68
node_angles = array([ 3.70882466, 5.7159533 , 2.48709418, 6.93768378, 2.83616003,
...09112, 5.62868684, 2.31256126,
7.1122167 , 3.35975881, 6.06501915])
node_colors = None
node_edgecolor = 'black'
node_linewidth = 2.0
node_names = ['bankssts-lh', 'bankssts-rh', 'caudalanteriorcingulate-lh', 'caudalanteriorcingulate-rh', 'caudalmiddlefrontal-lh', 'caudalmiddlefrontal-rh', ...]
node_width = 0.087266462599715489
padding = 6.0
plt = <module 'matplotlib.pyplot' from '/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc'>
show = True
subplot = 111
textcolor = 'white'
title = 'test'
vmax = None
vmin = None
mne/viz/circle.py:246: AttributeError
____________________________ test_plot_epochs_image ____________________________
def test_plot_epochs_image():
"""Test plotting of epochs image."""
import matplotlib.pyplot as plt
epochs = _get_epochs()
epochs.plot_image(picks=[1, 2])
overlay_times = [0.1]
epochs.plot_image(picks=[1], order=[0], overlay_times=overlay_times,
vmin=0.01, title="test"
)
epochs.plot_image(picks=[1], overlay_times=overlay_times, vmin=-0.001,
vmax=0.001)
assert_raises(ValueError, epochs.plot_image,
picks=[1], overlay_times=[0.1, 0.2])
assert_raises(ValueError, epochs.plot_image,
picks=[1], order=[0, 1])
assert_raises(ValueError, epochs.plot_image, axes=dict(), group_by=list(),
combine='mean')
assert_raises(ValueError, epochs.plot_image, axes=list(), group_by=dict(),
combine='mean')
with warnings.catch_warnings(record=True): # deprecated combine as str
assert_raises(ValueError, epochs.plot_image, combine='error',
picks=[1, 2])
assert_raises(ValueError, epochs.plot_image, units={"hi": 1},
scalings={"ho": 1})
epochs.load_data().pick_types(meg='mag')
epochs.info.normalize_proj()
with warnings.catch_warnings(record=True): # projs
epochs.plot_image(group_by='type', combine='mean')
epochs.plot_image(group_by={"1": [1, 2], "2": [1, 2]}, combine='mean')
epochs.plot_image(vmin=lambda x: x.min())
assert_raises(ValueError, epochs.plot_image, axes=1, fig=2)
ts_args = dict(show_sensors=False)
with warnings.catch_warnings(record=True) as w:
epochs.plot_image(overlay_times=[1.1], combine="gfp", ts_args=ts_args)
assert_raises(ValueError, epochs.plot_image, combine='error',
ts_args=ts_args)
warnings.simplefilter('always')
> assert_equal(len(w), 4)
E AssertionError:
E Items are not equal:
E ACTUAL: 5
E DESIRED: 4
epochs = <Epochs | n_events : 1 (all good), tmin : -0.0998976065792 (s), tmax : 1.0006410259 (s), baseline : (None, 0), ~3.0 MB, data loaded>
overlay_times = [0.1]
plt = <module 'matplotlib.pyplot' from '/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc'>
ts_args = {'show_sensors': False}
w = [<warnings.WarningMessage object at 0x7f3cef6c6990>, <warnings.WarningMessage object at 0x7f3cef6c68d0>, <warnings.War...x7f3cef6c6110>, <warnings.WarningMessage object at 0x7f3cef496290>, <warnings.WarningMessage object at 0x7f3cf050b650>]
mne/viz/tests/test_epochs.py:147: AssertionError
____________________________ test_plot_annotations _____________________________
def test_plot_annotations():
"""Test annotation mode of the plotter."""
raw = _get_raw()
raw.info['lowpass'] = 10.
with warnings.catch_warnings(record=True): # matplotlib
> _annotation_helper(raw)
raw = <Raw | test_raw.fif, n_channels x n_times : 9 x 14400 (24.0 sec), ~4.0 MB, data loaded>
mne/viz/tests/test_raw.py:213:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
raw = <Raw | test_raw.fif, n_channels x n_times : 9 x 14400 (24.0 sec), ~4.0 MB, data loaded>
def _annotation_helper(raw):
"""Helper for testing interactive annotations."""
import matplotlib.pyplot as plt
n_anns = 0 if raw.annotations is None else len(raw.annotations.onset)
fig = raw.plot()
data_ax = fig.axes[0]
fig.canvas.key_press_event('a') # annotation mode
# modify description
ann_fig = plt.gcf()
for key in ' test':
ann_fig.canvas.key_press_event(key)
ann_fig.canvas.key_press_event('enter')
ann_fig = plt.gcf()
# XXX: _fake_click raises an error on Agg backend
> _annotation_radio_clicked('', ann_fig.radio, data_ax.selector)
E AttributeError: 'Figure' object has no attribute 'radio'
ann_fig = <Figure size 450x275 with 0 Axes>
data_ax = <matplotlib.axes._subplots.AxesSubplot object at 0x7f3d70a59390>
fig = <Figure size 640x480 with 5 Axes>
key = 't'
n_anns = 0
plt = <module 'matplotlib.pyplot' from '/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc'>
raw = <Raw | test_raw.fif, n_channels x n_times : 9 x 14400 (24.0 sec), ~4.0 MB, data loaded>
mne/viz/tests/test_raw.py:65: AttributeError
=============================== warnings summary ===============================
mne/decoding/tests/test_csp.py::test_csp
/usr/lib/python2.7/dist-packages/matplotlib/contour.py:1173: UserWarning: No contour levels were found within the data range.
warnings.warn("No contour levels were found"
mne/viz/tests/test_epochs.py::test_plot_epochs_image
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
mne/viz/tests/test_ica.py::test_plot_ica_properties
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
mne/viz/tests/test_misc.py::test_plot_events
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
mne/viz/tests/test_topo.py::test_plot_topo_single_ch
/usr/lib/python2.7/dist-packages/matplotlib/cbook/deprecation.py:107: MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
-- Docs: http://doc.pytest.org/en/latest/warnings.html
====== 4 failed, 448 passed, 270 skipped, 17 warnings in 2385.51 seconds =======
make[1]: *** [debian/rules:26: override_dh_auto_test] Error 1
More information about the Debian-med-packaging
mailing list