Skip to content

Commit

Permalink
Merge d20f929 into 1bd54cd
Browse files Browse the repository at this point in the history
  • Loading branch information
philippjfr committed Jan 5, 2020
2 parents 1bd54cd + d20f929 commit 6b8fd33
Show file tree
Hide file tree
Showing 37 changed files with 216 additions and 182 deletions.
56 changes: 0 additions & 56 deletions .travis.yml
Expand Up @@ -75,62 +75,6 @@ jobs:
- <<: *default
env: DESC="Python 2.7 tests" PYTHON_VERSION=2.7 HV_REQUIREMENTS="unit_tests"

# - &regression_test
# <<: *default
# env: DESC="Python 3.6 regression tests" HV_REQUIREMENTS="nbtests"
# before_script:
# - if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then
# echo "Attempting to find any associated pull request";
# CURRENT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/pyviz/holoviews/builds?number=$TRAVIS_BUILD_NUMBER");
# NEXT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/pyviz/holoviews/builds?number=$((TRAVIS_BUILD_NUMBER + 1))");
# MSG1=$(echo $CURRENT_BUILD | jq '.[].message' );
# MSG2=$(echo $NEXT_BUILD | jq '.[].message' );
# if [ "$MSG1" == "$MSG2" ] ; then
# BUILD_ID=$(echo $NEXT_BUILD | jq .[].id);
# TRAVIS_PULL_REQUEST=$(curl -s -X GET "https://api.travis-ci.org/repos/pyviz/holoviews/builds/$BUILD_ID" | jq .compare_url | cut -d '/' -f7 | cut -d \" -f1);
# echo "Associated pull request found - PR $TRAVIS_PULL_REQUEST";
# fi
# fi
# - REF_DATA_BRANCH=${TRAVIS_PULL_REQUEST//false/reference_data}
# - git clone https://github.com/ioam/holoviews-data.git -b reference_data ./doc/reference_data
# - pushd ./doc/reference_data
# - echo "Attempting to checkout $REF_DATA_BRANCH branch"
# - if [ $(git branch -a --list *origin/$REF_DATA_BRANCH | wc -l) -eq 1 ] ; then
# git checkout origin/$REF_DATA_BRANCH;
# else
# echo "Using the master branch reference data";
# fi
# - popd
# - export HOLOVIEWSRC=`pwd`'/holoviews.rc'
# - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc
# - pushd ./doc/nbpublisher
# script:
# - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True python ./test_notebooks.py
# after_script:
# - python ./doc/nbpublisher/concat_html.py ./doc/test_data ./doc/test_html
# - if [ "$TRAVIS_BRANCH" == 'master' ]; then
# cd doc/test_data;
# zip -r test_data.zip *;
# aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${PYTHON_VERSION:0:1}.zip";
# cd -;
# fi
# - aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER"
# - curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index"
# - echo insecure >> ~/.curlrc
# - if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then
# curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status";
# fi
# after_success:
# - popd
# - mv doc/Tutorials/.coverage ./.coverage
# - coveralls
# after_failure:
# - popd
# - sleep 10

# - <<: *regression_test
# env: DESC="Python 2.7 regression tests" PYTHON_VERSION=2.7 HV_REQUIREMENTS="nbtests"

- &basic_deps
<<: *default
stage: extra_tests
Expand Down
7 changes: 5 additions & 2 deletions holoviews/plotting/mpl/raster.py
Expand Up @@ -9,7 +9,7 @@
from ...element.raster import Image, Raster, RGB
from .element import ElementPlot, ColorbarPlot, OverlayPlot
from .plot import MPLPlot, GridPlot, mpl_rc_context
from .util import get_raster_array
from .util import get_raster_array, mpl_version


class RasterBasePlot(ElementPlot):
Expand Down Expand Up @@ -157,13 +157,16 @@ def init_artists(self, ax, plot_args, plot_kwargs):
locs = plot_kwargs.pop('locs', None)
artist = ax.pcolormesh(*plot_args, **plot_kwargs)
colorbar = self.handles.get('cbar')
if colorbar:
if colorbar and mpl_version < '3.1':
colorbar.set_norm(artist.norm)
if hasattr(colorbar, 'set_array'):
# Compatibility with mpl < 3
colorbar.set_array(artist.get_array())
colorbar.set_clim(artist.get_clim())
colorbar.update_normal(artist)
elif colorbar:
colorbar.update_normal(artist)

return {'artist': artist, 'locs': locs}


Expand Down
6 changes: 2 additions & 4 deletions holoviews/plotting/plotly/chart3d.py
Expand Up @@ -114,13 +114,11 @@ def graph_options(self, element, ranges, style):
return {k: v for k, v in opts.items() if 'legend' not in k and k != 'name'}

def init_graph(self, datum, options, index=0):
trisurf_kwargs = super(TriSurfacePlot, self).init_graph(
datum, options, index)[0]

# Pop colorbar options since these aren't accepted by the trisurf
# figure factory.
colorbar = trisurf_kwargs.pop('colorbar', None)
trisurface_traces = trisurface(**trisurf_kwargs)
colorbar = options.pop('colorbar', None)
trisurface_traces = trisurface(**dict(datum, **options))

# Find colorbar to set colorbar options. Colorbar is associated with
# a `scatter3d` scatter trace.
Expand Down
8 changes: 0 additions & 8 deletions holoviews/streams.py
Expand Up @@ -760,14 +760,6 @@ def __init__(self, parameterized, parameters=None, watch=True, **params):




# Backward compatibility
def ParamValues(*args, **kwargs):
param.main.param.warning('ParamValues stream is deprecated, use Params stream instead.')
kwargs['watch'] = False
return Params(*args, **kwargs)


class SelectionExpr(Stream):

selection_expr = param.Parameter(default=None, constant=True)
Expand Down
16 changes: 8 additions & 8 deletions holoviews/tests/core/data/base.py
Expand Up @@ -86,6 +86,8 @@ class HomogeneousColumnTests(object):
type (e.g numpy arrays)
"""

__test__ = False

def init_column_data(self):
self.xs = np.array(range(11))
self.xs_2 = self.xs**2
Expand Down Expand Up @@ -294,10 +296,6 @@ def test_dataset_index_column_idx_hm(self):
def test_dataset_index_column_ht(self):
self.compare_arrays(self.dataset_hm['y'], self.y_ints)

def test_dataset_array_ht(self):
self.assertEqual(self.dataset_hm.array(),
np.column_stack([self.xs, self.y_ints]))

# Tabular indexing

def test_dataset_iloc_slice_rows(self):
Expand Down Expand Up @@ -382,10 +380,6 @@ def test_dataset_iloc_ellipsis_list_cols_by_name(self):
kdims=['x'], vdims=['y'], datatype=['dictionary'])
self.assertEqual(sliced, table)

def test_dataset_get_array(self):
arr = self.dataset_hm.array()
self.assertEqual(arr, np.column_stack([self.xs, self.y_ints]))

def test_dataset_get_array_by_dimension(self):
arr = self.dataset_hm.array(['x'])
self.assertEqual(arr, self.xs[:, np.newaxis])
Expand All @@ -408,6 +402,8 @@ class HeterogeneousColumnTests(HomogeneousColumnTests):
Tests for data formats that allow dataset to have varied types
"""

__test__ = False

def init_column_data(self):
self.kdims = ['Gender', 'Age']
self.vdims = ['Weight', 'Height']
Expand Down Expand Up @@ -851,6 +847,8 @@ class ScalarColumnTests(object):
types.
"""

__test__ = False

def test_dataset_scalar_constructor(self):
ds = Dataset({'A': 1, 'B': np.arange(10)}, kdims=['A', 'B'])
self.assertEqual(ds.dimension_values('A'), np.ones(10))
Expand Down Expand Up @@ -909,6 +907,8 @@ class GriddedInterfaceTests(object):
Tests for the grid interfaces
"""

__test__ = False

def init_grid_data(self):
self.grid_xs = np.array([0, 1])
self.grid_ys = np.array([0.1, 0.2, 0.3])
Expand Down
2 changes: 2 additions & 0 deletions holoviews/tests/core/data/testarrayinterface.py
Expand Up @@ -13,6 +13,8 @@ class ArrayDatasetTest(HomogeneousColumnTests, InterfaceTests):
datatype = 'array'
data_type = np.ndarray

__test__ = True

def test_dataset_empty_list_init_dtypes(self):
dataset = Dataset([], kdims=['x'], vdims=['y'])
for d in 'xy':
Expand Down
9 changes: 7 additions & 2 deletions holoviews/tests/core/data/testdaskinterface.py
Expand Up @@ -11,17 +11,19 @@
from holoviews.core.data import Dataset
from holoviews.util.transform import dim

from .testpandasinterface import PandasInterfaceTests
from .testpandasinterface import BasePandasInterfaceTests


class DaskDatasetTest(PandasInterfaceTests):
class DaskDatasetTest(BasePandasInterfaceTests):
"""
Test of the pandas DaskDataset interface.
"""

datatype = 'dask'
data_type = dd.DataFrame

__test__ = True

# Disabled tests for NotImplemented methods
def test_dataset_add_dimensions_values_hm(self):
raise SkipTest("Not supported")
Expand All @@ -38,6 +40,9 @@ def test_dataset_sort_hm(self):
def test_dataset_sort_reverse_hm(self):
raise SkipTest("Not supported")

def test_dataset_sort_reverse_vdim_hm(self):
raise SkipTest("Not supported")

def test_dataset_sort_vdim_ht(self):
raise SkipTest("Not supported")

Expand Down
2 changes: 2 additions & 0 deletions holoviews/tests/core/data/testdictinterface.py
Expand Up @@ -18,6 +18,8 @@ class DictDatasetTest(HeterogeneousColumnTests, ScalarColumnTests, InterfaceTest
datatype = 'dictionary'
data_type = (OrderedDict, cyODict)

__test__ = True

def test_dataset_simple_dict_sorted(self):
dataset = Dataset({2: 2, 1: 1, 3: 3}, kdims=['x'], vdims=['y'])
self.assertEqual(dataset, Dataset([(i, i) for i in range(1, 4)],
Expand Down
41 changes: 32 additions & 9 deletions holoviews/tests/core/data/testgridinterface.py
Expand Up @@ -21,15 +21,14 @@
GriddedInterfaceTests, InterfaceTests, HomogeneousColumnTests, DatatypeContext
)
from .testimageinterface import (
Image_ImageInterfaceTests, RGB_ImageInterfaceTests, HSV_ImageInterfaceTests
BaseImageElementInterfaceTests, BaseRGBElementInterfaceTests,
BaseHSVElementInterfaceTests
)


class GridInterfaceTests(GriddedInterfaceTests, HomogeneousColumnTests, InterfaceTests):
class BaseGridInterfaceTests(GriddedInterfaceTests, HomogeneousColumnTests, InterfaceTests):

datatype = 'grid'
data_type = (OrderedDict, dict)
element = Dataset
__test__ = False

@pd_skip
def test_dataset_dataframe_init_hm(self):
Expand Down Expand Up @@ -268,6 +267,14 @@ def test_reindex_2d_grid_to_1d(self):
self.assertEqual(ds, Dataset(self.dataset_grid.columns(), 'x', 'z'))


class GridInterfaceTests(BaseGridInterfaceTests):

datatype = 'grid'
data_type = (OrderedDict, dict)
element = Dataset

__test__ = True


class DaskGridInterfaceTests(GridInterfaceTests):

Expand Down Expand Up @@ -302,6 +309,14 @@ def init_grid_data(self):
(self.grid_xs[::-1], self.grid_ys[::-1], self.grid_zs), ['x', 'y'], ['z']
)

def test_dataset_array_hm(self):
self.assertEqual(self.dataset_hm.array(),
np.column_stack([self.xs, self.y_ints.compute()]))

def test_dataset_array_hm_alias(self):
self.assertEqual(self.dataset_hm_alias.array(),
np.column_stack([self.xs, self.y_ints.compute()]))

def test_select_lazy(self):
import dask.array as da
arr = da.from_array(np.arange(1, 12), 3)
Expand Down Expand Up @@ -435,11 +450,13 @@ def test_dataset_get_dframe(self):



class Image_GridInterfaceTests(Image_ImageInterfaceTests):
class ImageElement_GridInterfaceTests(BaseImageElementInterfaceTests):

datatype = 'grid'
data_type = OrderedDict

__test__ = True

def init_data(self):
self.image = Image((self.xs, self.ys, self.array))
self.image_inv = Image((self.xs[::-1], self.ys[::-1], self.array[::-1, ::-1]))
Expand Down Expand Up @@ -590,30 +607,36 @@ def test_index_x_slice_y_inv(self):



class RGB_GridInterfaceTests(RGB_ImageInterfaceTests):
class RGBElement_GridInterfaceTests(BaseRGBElementInterfaceTests):

datatype = 'grid'
data_type = OrderedDict

__test__ = True

def init_data(self):
self.rgb = RGB((self.xs, self.ys, self.rgb_array[:, :, 0],
self.rgb_array[:, :, 1], self.rgb_array[:, :, 2]))


class RGB_PackedGridInterfaceTests(RGB_ImageInterfaceTests):
class RGBElement_PackedGridInterfaceTests(BaseRGBElementInterfaceTests):

datatype = 'grid'
data_type = OrderedDict

__test__ = True

def init_data(self):
self.rgb = RGB((self.xs, self.ys, self.rgb_array))


class HSV_GridInterfaceTests(HSV_ImageInterfaceTests):
class HSVElement_GridInterfaceTests(BaseHSVElementInterfaceTests):

datatype = 'grid'
data_type = OrderedDict

__test__ = True

def init_data(self):
self.hsv = HSV((self.xs, self.ys, self.hsv_array[:, :, 0],
self.hsv_array[:, :, 1], self.hsv_array[:, :, 2]))

0 comments on commit 6b8fd33

Please sign in to comment.