holoviz / holoviews

With Holoviews, your data visualizes itself.
https://holoviews.org
BSD 3-Clause "New" or "Revised" License
2.69k stars 402 forks source link

(pytest) test failures on 32bit #4778

Open bnavigator opened 3 years ago

bnavigator commented 3 years ago

Software version info

openSUSE Tumbleweed on build service, platform i586 (32-bit!)

Full build log with with package versions: holoview_i586_log.txt

Description

When trying to package latest holoviews, running the test suite (with pytest, see #4621), fails on 32-platforms:

[   50s] + pytest-3.8 --ignore=_build.python2 --ignore=_build.python3 --ignore=_build.pypy3 -v -o 'python_files=test*.py base.py' holoviews/tests -k 'not ((MPLRendererTest and test_get_size_column_plot) or (MPLRendererTest and test_get_size_row_plot) or (MPLRendererTest and test_render_mp4) or (TestBokehUtils and test_py2js_funcformatter_arg_and_kwarg) or (TestBokehUtils and test_py2js_funcformatter_single_arg) or (TestBokehUtils and test_py2js_funcformatter_two_args) or (TestColorbarPlot and test_colormapper_clims) or (TestContoursPlot and test_contours_line_width_op_update) or (TestContoursPlot and test_contours_line_width_op) or (TestCrossBackendOptionPickling and test_builder_backend_switch_signature) or (TestCrossBackendOptionPickling and test_builder_cross_backend_validation) or (TestCrossBackendOptions and test_builder_backend_switch_signature) or (TestCrossBackendOptions and test_builder_cross_backend_validation) or (TestCurvePlot and test_curve_datetime64) or (TestCurvePlot and test_curve_dt_datetime) or (TestCurvePlot and test_curve_heterogeneous_datetime_types_overlay) or (TestCurvePlot and test_curve_heterogeneous_datetime_types_with_pd_overlay) or (TestCurvePlot and test_curve_linewidth_op) or (TestCurvePlot and test_curve_padding_datetime_nonsquare) or (TestCurvePlot and test_curve_padding_datetime_square) or (TestCurvePlot and test_curve_pandas_timestamps) or (TestCurvePlot and test_curve_style_mapping_constant_value_dimensions) or (TestCurvePlot and test_curve_style_mapping_ndoverlay_dimensions) or (TestElementPlot and test_element_zformatter_function) or (TestElementPlot and test_element_zformatter_instance) or (TestElementPlot and test_element_zformatter_string) or (TestErrorBarPlot and test_errorbars_line_color_op) or (TestErrorBarPlot and test_errorbars_line_width_op_update) or (TestErrorBarPlot and test_errorbars_line_width_op) or (TestHistogramPlot and test_histogram_datetime64_plot) or (TestHistogramPlot and test_histogram_line_color_op) or (TestHistogramPlot and test_histogram_line_width_op) or (TestHistogramPlot and test_histogram_padding_datetime_nonsquare) or (TestHistogramPlot and test_histogram_padding_datetime_square) or (TestHistogramPlot and test_op_ndoverlay_value) or (TestLabelsPlot and test_label_alpha_op_update) or (TestLabelsPlot and test_label_alpha_op) or (TestLabelsPlot and test_label_categorical_color_op) or (TestLabelsPlot and test_label_color_op_update) or (TestLabelsPlot and test_label_color_op) or (TestLabelsPlot and test_label_linear_color_op) or (TestLabelsPlot and test_label_rotation_op_update) or (TestLabelsPlot and test_label_rotation_op) or (TestLabelsPlot and test_label_size_op_update) or (TestLabelsPlot and test_label_size_op) or (TestLookupOptions and test_lookup_options_honors_backend) or (TestMplChordPlot and test_chord_nodes_categorically_colormapped) or (TestMplGraphPlot and test_graph_op_edge_line_width_update) or (TestMplGraphPlot and test_graph_op_edge_linewidth) or (TestMplGraphPlot and test_graph_op_node_linewidth_update) or (TestMplGraphPlot and test_graph_op_node_linewidth) or (TestMplGraphPlot and test_plot_graph_categorical_colored_nodes) or (TestMplGraphPlot and test_plot_graph_numerically_colored_nodes) or (TestMplTriMeshPlot and test_trimesh_op_edge_line_width) or (TestMplTriMeshPlot and test_trimesh_op_node_line_width) or (TestOptionsMethod and test_plot_options_keywords) or (TestOptionsMethod and test_plot_options_object_list) or (TestOptionsMethod and test_plot_options_one_object) or (TestOptionsMethod and test_plot_options_two_object) or (TestOptsMagic and test_cell_opts_style_dynamic) or (TestOptsMethod and test_opts_method_with_utility) or (TestOptsMethod and test_simple_clone_disabled) or (TestOptsMethod and test_simple_opts_clone_enabled) or (TestPathPlot and test_path_continuously_varying_line_width_op_update) or (TestPathPlot and test_path_continuously_varying_line_width_op) or (TestPlotDefinitions and test_matplotlib_plot_definitions) or (TestPointPlot and test_curve_padding_square_per_axis) or (TestPointPlot and test_point_fill_color_op) 
or (TestPointPlot and test_point_line_color_op_update) or (TestPointPlot and test_point_line_color_op) or (TestPointPlot and test_point_line_width_op_update) or (TestPointPlot and test_point_line_width_op) or (TestPointPlot and test_point_size_index_size_clash) or (TestPointPlot and test_point_size_op_update) or (TestPointPlot and test_point_size_op) or (TestPointPlot and test_points_padding_datetime_nonsquare) or (TestPointPlot and test_points_padding_datetime_square) or (TestPointPlot and test_points_sizes_scalar_update) or (TestPointPlot and test_scatter3d_padding_hard_zrange) or (TestPointPlot and test_scatter3d_padding_logz) or (TestPointPlot and test_scatter3d_padding_nonsquare) or (TestPointPlot and test_scatter3d_padding_soft_zrange) or (TestPointPlot and test_scatter3d_padding_square) or (TestPointPlot and test_scatter3d_padding_unequal) or (TestPolygonPlot and test_polygons_line_width_op) or (TestSankeyPlot and test_sankey_label_index) or (TestSankeyPlot and test_sankey_simple) or (TestSpikesPlot and test_spikes_line_width_op_update) or (TestSpikesPlot and test_spikes_line_width_op) or (TestSpikesPlot and test_spikes_padding_datetime_nonsquare) or (TestSpikesPlot and test_spikes_padding_datetime_square_heights) or (TestSpikesPlot and test_spikes_padding_datetime_square) or (TestVectorFieldPlot and test_vectorfield_line_width_op_update) or (TestVectorFieldPlot and test_vectorfield_line_width_op))'
[   52s] ============================= test session starts ==============================
[   52s] platform linux -- Python 3.8.6, pytest-6.1.2, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3
[   52s] cachedir: .pytest_cache
[   52s] rootdir: /home/abuild/rpmbuild/BUILD/holoviews-1.14.0
[   52s] plugins: nbsmoke-0.4.1, dash-1.18.1
[   64s] collecting ... collected 4414 items / 134 deselected / 2 skipped / 4278 selected
...
[  415s] =================================== FAILURES ===================================
[  415s] _________ TestLinkSelectionsPlotly.test_datashade_in_overlay_selection _________
[  415s] 
[  415s] self = <holoviews.tests.testselection.TestLinkSelectionsPlotly testMethod=test_datashade_in_overlay_selection>
[  415s] 
[  415s]     @ds_skip
[  415s]     def test_datashade_in_overlay_selection(self):
[  415s]         points = Points(self.data)
[  415s]         layout = points * dynspread(datashade(points))
[  415s]     
[  415s]         lnk_sel = link_selections.instance(unselected_color='#ff0000')
[  415s] >       linked = lnk_sel(layout)
[  415s] 
[  415s] holoviews/tests/testselection.py:287: 
[  415s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[  415s] holoviews/selection.py:144: in __call__
[  415s]     return self._selection_transform(hvobj.clone())
[  415s] holoviews/selection.py:159: in _selection_transform
[  415s]     initialize_dynamic(hvobj)
[  415s] holoviews/plotting/util.py:252: in initialize_dynamic
[  415s]     dmap[dmap._initial_key()]
[  415s] holoviews/core/spaces.py:1331: in __getitem__
[  415s]     val = self._execute_callback(*tuple_key)
[  415s] holoviews/core/spaces.py:1100: in _execute_callback
[  415s]     retval = self.callback(*args, **kwargs)
[  415s] holoviews/core/spaces.py:683: in __call__
[  415s]     if not args and not kwargs and not any(kwarg_hash): return self.callable()
[  415s] holoviews/core/overlay.py:31: in dynamic_mul
[  415s]     element = other[args]
[  415s] holoviews/core/spaces.py:1331: in __getitem__
[  415s]     val = self._execute_callback(*tuple_key)
[  415s] holoviews/core/spaces.py:1100: in _execute_callback
[  415s]     retval = self.callback(*args, **kwargs)
[  415s] holoviews/core/spaces.py:683: in __call__
[  415s]     if not args and not kwargs and not any(kwarg_hash): return self.callable()
[  415s] holoviews/util/__init__.py:1018: in dynamic_operation
[  415s]     key, obj = resolve(key, kwargs)
[  415s] holoviews/util/__init__.py:1007: in resolve
[  415s]     return key, map_obj[key]
[  415s] holoviews/core/spaces.py:1331: in __getitem__
[  415s]     val = self._execute_callback(*tuple_key)
[  415s] holoviews/core/spaces.py:1100: in _execute_callback
[  415s]     retval = self.callback(*args, **kwargs)
[  415s] holoviews/core/spaces.py:714: in __call__
[  415s]     ret = self.callable(*args, **kwargs)
[  415s] holoviews/util/__init__.py:1019: in dynamic_operation
[  415s]     return apply(obj, *key, **kwargs)
[  415s] holoviews/util/__init__.py:1011: in apply
[  415s]     processed = self._process(element, key, kwargs)
[  415s] holoviews/util/__init__.py:993: in _process
[  415s]     return self.p.operation.process_element(element, key, **kwargs)
[  415s] holoviews/core/operation.py:194: in process_element
[  415s]     return self._apply(element, key)
[  415s] holoviews/core/operation.py:141: in _apply
[  415s]     ret = self._process(element, key)
[  415s] holoviews/operation/datashader.py:1499: in _process
[  415s]     shaded = shade._process(self, agg, key)
[  415s] holoviews/operation/datashader.py:1330: in _process
[  415s]     img = tf.shade(array, **shade_opts)
[  415s] /usr/lib/python3.8/site-packages/datashader/transfer_functions/__init__.py:511: in shade
[  415s]     return _interpolate(agg, cmap, how, alpha, span, min_alpha, name)
[  415s] /usr/lib/python3.8/site-packages/datashader/transfer_functions/__init__.py:242: in _interpolate
[  415s]     data = interpolater(data, mask)
[  415s] /usr/lib/python3.8/site-packages/datashader/transfer_functions/__init__.py:173: in eq_hist
[  415s]     hist = np.bincount(data2.ravel())
[  415s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[  415s] 
[  415s] args = (array([0, 0, 0], dtype=int64),), kwargs = {}
[  415s] relevant_args = (array([0, 0, 0], dtype=int64), None)
[  415s] 
[  415s] >   ???
[  415s] E   TypeError: Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'
[  415s] 
[  415s] <__array_function__ internals>:5: TypeError
[  415s] ----------------------------- Captured stderr call -----------------------------
[  415s] WARNING:param.dynamic_operation: Callable raised "TypeError("Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'")".
[  415s] Invoked as dynamic_operation(height=400, scale=1.0, width=400, x_range=None, y_range=None)
[  415s] ------------------------------ Captured log call -------------------------------
[  415s] WARNING  param.dynamic_operation:parameterized.py:1926 Callable raised "TypeError("Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'")".
[  415s] Invoked as dynamic_operation(height=400, scale=1.0, width=400, x_range=None, y_range=None)
...
[many more like this]
...
  415s] ______ DatashaderAggregateTests.test_rasterize_regrid_and_spikes_overlay _______
[  415s] 
[  415s] self = <holoviews.tests.operation.testdatashader.DatashaderAggregateTests testMethod=test_rasterize_regrid_and_spikes_overlay>
[  415s] 
[  415s]     def test_rasterize_regrid_and_spikes_overlay(self):
[  415s]         img = Image(([0.5, 1.5], [0.5, 1.5], [[0, 1], [2, 3]]))
[  415s]         spikes = Spikes([(0.5, 0.2), (1.5, 0.8), ], vdims='y')
[  415s]     
[  415s]         expected_regrid = Image(([0.25, 0.75, 1.25, 1.75],
[  415s]                                  [0.25, 0.75, 1.25, 1.75],
[  415s]                                  [[0, 0, 1, 1],
[  415s]                                   [0, 0, 1, 1],
[  415s]                                   [2, 2, 3, 3],
[  415s]                                   [2, 2, 3, 3]]))
[  415s]         spikes_arr = np.array([[0, 1, 0, 1],
[  415s]                                [0, 1, 0, 1],
[  415s]                                [0, 0, 0, 0],
[  415s]                                [0, 0, 0, 0]])
[  415s]         expected_spikes = Image(([0.25, 0.75, 1.25, 1.75],
[  415s]                                  [0.25, 0.75, 1.25, 1.75], spikes_arr), vdims=Dimension('Count', nodata=0))
[  415s]         overlay = img * spikes
[  415s] >       agg = rasterize(overlay, width=4, height=4, x_range=(0, 2), y_range=(0, 2),
[  415s]                         spike_length=0.5, upsample=True, dynamic=False)
[  415s] 
[  415s] holoviews/tests/operation/testdatashader.py:320: 
[  415s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[  415s] /usr/lib/python3.8/site-packages/param/parameterized.py:2991: in __new__
[  415s]     return inst.__call__(*args,**params)
[  415s] holoviews/core/operation.py:214: in __call__
[  415s]     return self._apply(element)
[  415s] holoviews/core/operation.py:141: in _apply
[  415s]     ret = self._process(element, key)
[  415s] holoviews/operation/datashader.py:1477: in _process
[  415s]     element = element.map(op, predicate)
[  415s] holoviews/core/dimension.py:703: in map
[  415s]     new_val = v.map(map_fn, specs, clone)
[  415s] holoviews/core/data/__init__.py:201: in pipelined_fn
[  415s]     result = method_fn(*args, **kwargs)
[  415s] holoviews/core/data/__init__.py:1216: in map
[  415s]     return super(Dataset, self).map(*args, **kwargs)
[  415s] holoviews/core/dimension.py:709: in map
[  415s]     return map_fn(self) if applies else self
[  415s] holoviews/core/operation.py:214: in __call__
[  415s]     return self._apply(element)
[  415s] holoviews/core/operation.py:141: in _apply
[  415s]     ret = self._process(element, key)
[  415s] holoviews/operation/datashader.py:939: in _process
[  415s]     rarray = cvs.raster(xarr, upsample_method=interp,
[  415s] /usr/lib/python3.8/site-packages/datashader/core.py:1057: in raster
[  415s]     data = resample_2d(source_window, **kwargs)
[  415s] /usr/lib/python3.8/site-packages/datashader/resampling.py:332: in resample_2d
[  415s]     resampled = _resample_2d(src, mask, use_mask, ds_method, us_method,
[  415s] /usr/lib/python3.8/site-packages/datashader/resampling.py:531: in _resample_2d
[  415s]     return upsampling_method(src, mask, use_mask, fill_value,
[  415s] /usr/lib/python3.8/site-packages/numba/core/dispatcher.py:434: in _compile_for_args
[  415s]     raise e
[  415s] /usr/lib/python3.8/site-packages/numba/core/dispatcher.py:367: in _compile_for_args
[  415s]     return self.compile(tuple(argtypes))
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler_lock.py:32: in _acquire_compile_lock
[  415s]     return func(*args, **kwargs)
[  415s] /usr/lib/python3.8/site-packages/numba/core/dispatcher.py:819: in compile
[  415s]     cres = self._compiler.compile(args, return_type)
[  415s] /usr/lib/python3.8/site-packages/numba/core/dispatcher.py:78: in compile
[  415s]     status, retval = self._compile_cached(args, return_type)
[  415s] /usr/lib/python3.8/site-packages/numba/core/dispatcher.py:92: in _compile_cached
[  415s]     retval = self._compile_core(args, return_type)
[  415s] /usr/lib/python3.8/site-packages/numba/core/dispatcher.py:105: in _compile_core
[  415s]     cres = compiler.compile_extra(self.targetdescr.typing_context,
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler.py:627: in compile_extra
[  415s]     return pipeline.compile_extra(func)
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler.py:363: in compile_extra
[  415s]     return self._compile_bytecode()
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler.py:425: in _compile_bytecode
[  415s]     return self._compile_core()
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler.py:405: in _compile_core
[  415s]     raise e
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler.py:396: in _compile_core
[  415s]     pm.run(self.state)
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler_machinery.py:341: in run
[  415s]     raise patched_exception
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler_machinery.py:332: in run
[  415s]     self._runPass(idx, pass_inst, state)
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler_lock.py:32: in _acquire_compile_lock
[  415s]     return func(*args, **kwargs)
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler_machinery.py:291: in _runPass
[  415s]     mutated |= check(pss.run_pass, internal_state)
[  415s] /usr/lib/python3.8/site-packages/numba/core/compiler_machinery.py:264: in check
[  415s]     mangled = func(compiler_state)
[  415s] /usr/lib/python3.8/site-packages/numba/core/typed_passes.py:442: in run_pass
[  415s]     NativeLowering().run_pass(state)
[  415s] /usr/lib/python3.8/site-packages/numba/core/typed_passes.py:370: in run_pass
[  415s]     lower.lower()
[  415s] /usr/lib/python3.8/site-packages/numba/core/lowering.py:136: in lower
[  415s]     self.lower_normal_function(self.fndesc)
[  415s] /usr/lib/python3.8/site-packages/numba/core/lowering.py:190: in lower_normal_function
[  415s]     entry_block_tail = self.lower_function_body()
[  415s] /usr/lib/python3.8/site-packages/numba/core/lowering.py:216: in lower_function_body
[  415s]     self.lower_block(block)
[  415s] /usr/lib/python3.8/site-packages/numba/core/lowering.py:230: in lower_block
[  415s]     self.lower_inst(inst)
[  415s] /usr/lib/python3.8/site-packages/numba/core/lowering.py:443: in lower_inst
[  415s]     func(self, inst)
[  415s] /usr/lib/python3.8/site-packages/numba/parfors/parfor_lowering.py:43: in _lower_parfor_parallel
[  415s]     ensure_parallel_support()
[  415s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[  415s] 
[  415s]     def ensure_parallel_support():
[  415s]         """Check if the platform supports parallel=True and raise if it does not.
[  415s]         """
[  415s]         if config.IS_32BITS:
[  415s]             msg = ("The 'parallel' target is not currently supported on 32 bit "
[  415s]                    "hardware.")
[  415s] >           raise errors.UnsupportedParforsError(msg)
[  415s] E           numba.core.errors.UnsupportedParforsError: Failed in nopython mode pipeline (step: nopython mode backend)
[  415s] E           The 'parallel' target is not currently supported on 32 bit hardware.
[  415s] E           During: lowering "id=0[LoopNest(index_variable = parfor_index.19, range = (0, $out_h.25, 1))]{130: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (553)>, 228: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (561)>, 198: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (558)>, 202: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (558)>, 242: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (555)>, 244: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (561)>, 214: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (559)>, 156: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (555)>, 158: <ir.Block at /usr/lib/python3.8/site-packages/datashader/resampling.py (555)>}Var(parfor_index.19, resampling.py:553)" at /usr/lib/python3.8/site-packages/datashader/resampling.py (553)
[  415s] 
[  415s] /usr/lib/python3.8/site-packages/numba/parfors/parfor.py:4571: UnsupportedParforsError
...
[  417s] __________ TestPointerCallbacks.test_pointer_x_datetime_out_of_bounds __________
[  417s] 
[  417s] self = <holoviews.tests.plotting.bokeh.testcallbacks.TestPointerCallbacks testMethod=test_pointer_x_datetime_out_of_bounds>
[  417s] 
[  417s]     def test_pointer_x_datetime_out_of_bounds(self):
[  417s]         points = Points([(dt.datetime(2017, 1, 1), 1), (dt.datetime(2017, 1, 3), 3)])
[  417s]         PointerX(source=points)
[  417s]         plot = bokeh_server_renderer.get_plot(points)
[  417s]         set_curdoc(plot.document)
[  417s]         callback = plot.callbacks[0]
[  417s]         self.assertIsInstance(callback, PointerXCallback)
[  417s]         msg = callback._process_msg({'x': 1000})
[  417s]         self.assertEqual(msg['x'], np.datetime64(dt.datetime(2017, 1, 1)))
[  417s] >       msg = callback._process_msg({'x': 10000000000000})
[  417s] 
[  417s] holoviews/tests/plotting/bokeh/testcallbacks.py:160: 
[  417s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[  417s] holoviews/plotting/bokeh/callbacks.py:686: in _process_msg
[  417s]     msg['x'] = convert_timestamp(msg['x'])
[  417s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[  417s] 
[  417s] timestamp = 10000000000000
[  417s] 
[  417s]     def convert_timestamp(timestamp):
[  417s]         """
[  417s]         Converts bokehJS timestamp to datetime64.
[  417s]         """
[  417s] >       datetime = dt.datetime.utcfromtimestamp(timestamp/1000.)
[  417s] E       OverflowError: timestamp out of range for platform time_t
[  417s] 
[  417s] holoviews/plotting/bokeh/util.py:98: OverflowError
...
[  417s] _______________________ TestDimTransforms.test_digitize ________________________
[  417s] 
[  417s] self = <holoviews.tests.util.testtransform.TestDimTransforms testMethod=test_digitize>
[  417s] 
[  417s]     def test_digitize(self):
[  417s]         expr = dim('int').digitize([1, 5, 10])
[  417s]         expected = pd.Series(np.array([1, 1, 1, 1, 2, 2, 2, 2, 2, 3])).astype('int64')
[  417s] >       self.assert_apply(expr, expected)
[  417s] 
[  417s] holoviews/tests/util/testtransform.py:400: 
[  417s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[  417s] 
[  417s] self = <holoviews.tests.util.testtransform.TestDimTransforms testMethod=test_digitize>
[  417s] expr = dim('int').digitize([1, 5, 10])
[  417s] expected = 0    1
[  417s] 1    1
[  417s] 2    1
[  417s] 3    1
[  417s] 4    2
[  417s] 5    2
[  417s] 6    2
[  417s] 7    2
[  417s] 8    2
[  417s] 9    3
[  417s] dtype: int64
[  417s] skip_dask = False, skip_no_index = False
[  417s] 
[  417s]     def assert_apply(self, expr, expected, skip_dask=False, skip_no_index=False):
[  417s]         if np.isscalar(expected):
[  417s]             # Pandas input
[  417s]             self.assertEqual(
[  417s]                 expr.apply(self.dataset, keep_index=False), expected
[  417s]             )
[  417s]             self.assertEqual(
[  417s]                 expr.apply(self.dataset, keep_index=True), expected
[  417s]             )
[  417s]     
[  417s]             if dd is None:
[  417s]                 return
[  417s]     
[  417s]             # Dask input
[  417s]             self.assertEqual(
[  417s]                 expr.apply(self.dataset_dask, keep_index=False), expected
[  417s]             )
[  417s]             self.assertEqual(
[  417s]                 expr.apply(self.dataset_dask, keep_index=True), expected
[  417s]             )
[  417s]             return
[  417s]     
[  417s]         # Make sure expected is a pandas Series
[  417s]         self.assertIsInstance(expected, pd.Series)
[  417s]     
[  417s]         # Check using dataset backed by pandas DataFrame
[  417s]         # keep_index=False
[  417s]         if not skip_no_index:
[  417s]             np.testing.assert_equal(
[  417s]                 expr.apply(self.dataset),
[  417s]                 expected.values
[  417s]             )
[  417s]         # keep_index=True
[  417s] >       pd.testing.assert_series_equal(
[  417s]             expr.apply(self.dataset, keep_index=True),
[  417s]             expected,
[  417s]             check_names=False
[  417s]         )
[  417s] E       AssertionError: Attributes of Series are different
[  417s] E       
[  417s] E       Attribute "dtype" are different
[  417s] E       [left]:  int32
[  417s] E       [right]: int64
[  417s] 
[  417s] holoviews/tests/util/testtransform.py:117: AssertionError
...
[  418s] =========================== short test summary info ============================
[  418s] FAILED holoviews/tests/testselection.py::TestLinkSelectionsPlotly::test_datashade_in_overlay_selection
[  418s] FAILED holoviews/tests/testselection.py::TestLinkSelectionsPlotly::test_datashade_selection
[  418s] FAILED holoviews/tests/testselection.py::TestLinkSelectionsBokeh::test_datashade_in_overlay_selection
[  418s] FAILED holoviews/tests/testselection.py::TestLinkSelectionsBokeh::test_datashade_selection
[  418s] FAILED holoviews/tests/core/testdatasetproperty.py::DatashaderTestCase::test_datashade_curve
[  418s] FAILED holoviews/tests/core/testdecollation.py::TestDecollation::test_decollate_datashade_kdims
[  418s] FAILED holoviews/tests/core/testdecollation.py::TestDecollation::test_decollate_datashade_kdims_layout
[  418s] FAILED holoviews/tests/core/testdecollation.py::TestDecollation::test_decollate_spread
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderAggregateTests::test_rasterize_regrid_and_spikes_overlay
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderAggregateTests::test_rgb_regrid_packed
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRegridTests::test_regrid_max
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRegridTests::test_regrid_mean
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRegridTests::test_regrid_mean_xarray_transposed
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRegridTests::test_regrid_rgb_mean
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRegridTests::test_regrid_upsampling
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_image
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_image_string_aggregator
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_quadmesh
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_quadmesh_string_aggregator
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_trimesh
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_trimesh_ds_aggregator
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_trimesh_node_explicit_vdim
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_trimesh_node_vdim_precedence
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_trimesh_string_aggregator
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_trimesh_vertex_vdims
[  418s] FAILED holoviews/tests/operation/testdatashader.py::DatashaderRasterizeTests::test_rasterize_trimesh_zero_range
[  418s] FAILED holoviews/tests/plotting/bokeh/testcallbacks.py::TestPointerCallbacks::test_pointer_x_datetime_out_of_bounds
[  418s] FAILED holoviews/tests/plotting/bokeh/testcallbacks.py::TestPointerCallbacks::test_tap_datetime_out_of_bounds
[  418s] FAILED holoviews/tests/util/testtransform.py::TestDimTransforms::test_digitize
[  418s] = 29 failed, 4100 passed, 153 skipped, 134 deselected, 273 warnings in 365.20s (0:06:05) =
jlstevens commented 3 years ago

Thanks for reporting this!

I think we have always implicitly assumed the existence of 64 bit types in HoloViews. As a noarch conda package, it might be the case that a lot of things do work on 32 bit systems and it is mostly the tests failing. I also wouldn't be surprised if various data operations fail due to the lack of 64 bit types.

As core HoloViews developers, we rarely encounter 32 bit systems nowadays which means this issue will probably have a low priority unless we find an important 32 bit use case we want to support.

bnavigator commented 3 years ago

We currently just skip these tests for 32-bit, because updating the package requires all tests to pass and noarch packages are built and tested on i586 as well as on x86_64.

I doubt that HoloViews is used much on openSUSE 32-bit machines, if it is used at all.