Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_dataset_groupby_dynamic_alias(self):
array = np.random.rand(11, 11)
dataset = Dataset({'x':self.xs, 'y':self.y_ints, 'z': array},
kdims=[('x', 'X'), ('y', 'Y')], vdims=[('z', 'Z')])
with DatatypeContext([self.datatype, 'dictionary' , 'dataframe'], dataset):
grouped = dataset.groupby('X', dynamic=True)
first = Dataset({'y': self.y_ints, 'z': array[:, 0]},
kdims=[('y', 'Y')], vdims=[('z', 'Z')])
self.assertEqual(grouped[0], first)
def test_dimension_values_kdim(self):
cube = Dataset(self.cube, kdims=['longitude', 'latitude'])
self.assertEqual(cube.dimension_values('longitude', expanded=False),
np.array([-1, 0, 1, 2], dtype=np.int32))
def test_dataset_from_multi_index_tuple_dims(self):
df = pd.DataFrame({'x': np.arange(10), 'y': np.arange(10), 'z': np.random.rand(10)})
ds = Dataset(df.groupby(['x', 'y']).mean(), [('x', 'X'), ('y', 'Y')])
self.assertEqual(ds, Dataset(df, [('x', 'X'), ('y', 'Y')]))
def test_from_networkx_custom_nodes(self):
try:
import networkx as nx
except:
raise SkipTest('Test requires networkx to be installed')
FG = nx.Graph()
FG.add_weighted_edges_from([(1,2,0.125), (1,3,0.75), (2,4,1.2), (3,4,0.375)])
nodes = Dataset([(1, 'A'), (2, 'B'), (3, 'A'), (4, 'B')], 'index', 'some_attribute')
graph = Graph.from_networkx(FG, nx.circular_layout, nodes=nodes)
self.assertEqual(graph.nodes.dimension_values('some_attribute'), np.array(['A', 'B', 'A', 'B']))
def test_dimension_values_kdim_expanded(self):
cube = Dataset(self.cube, kdims=['longitude', 'latitude'])
self.assertEqual(cube.dimension_values('longitude'),
np.array([-1, -1, -1, 0, 0, 0,
1, 1, 1, 2, 2, 2], dtype=np.int32))
def test_concat_grid_3d_shape_mismatch(self):
arr1 = np.random.rand(3, 2)
arr2 = np.random.rand(2, 3)
ds1 = Dataset(([0, 1], [1, 2, 3], arr1), ['x', 'y'], 'z')
ds2 = Dataset(([0, 1, 2], [1, 2], arr2), ['x', 'y'], 'z')
hmap = HoloMap({1: ds1, 2: ds2})
arr = np.full((3, 3, 2), np.NaN)
arr[:, :2, 0] = arr1
arr[:2, :, 1] = arr2
ds = Dataset(([1, 2], [0, 1, 2], [1, 2, 3], arr), ['Default', 'x', 'y'], 'z')
self.assertEqual(concat(hmap), ds)
def test_reindex_2d_grid_to_1d(self):
with DatatypeContext([self.datatype, 'dictionary' , 'dataframe'], self.dataset_grid):
ds = self.dataset_grid.reindex(kdims=['x'])
with DatatypeContext([self.datatype, 'dictionary' , 'dataframe'], Dataset):
self.assertEqual(ds, Dataset(self.dataset_grid.columns(), 'x', 'z'))
Args:
eltype: Element type to convert
data: The original data
kdims: The declared key dimensions
vdims: The declared value dimensions
Returns:
A list of dictionaries containing geometry coordinates and values.
"""
from . import Dataset
xname, yname = (kd.name for kd in kdims[:2])
if isinstance(data, dict):
data = {k: v if isscalar(v) else np.asarray(v) for k, v in data.items()}
return data
new_el = Dataset(data, kdims, vdims)
if new_el.interface is interface:
return new_el.data
new_dict = {}
for d in new_el.dimensions():
if d in (xname, yname):
scalar = False
else:
scalar = new_el.interface.isscalar(new_el, d)
vals = new_el.dimension_values(d, not scalar)
new_dict[d.name] = vals[0] if scalar else vals
return new_dict
if data is None:
data = []
if isinstance(data, tuple):
data = data + (None,)*(3-len(data))
edges, nodes, edgepaths = data
else:
edges, nodes, edgepaths = data, None, None
sankey_graph = params.pop('sankey', None)
compute = not (sankey_graph and isinstance(nodes, Nodes) and isinstance(edgepaths, EdgePaths))
super(Graph, self).__init__(edges, kdims=kdims, vdims=vdims, **params)
if compute:
if nodes is None:
src = self.dimension_values(0, expanded=False)
tgt = self.dimension_values(1, expanded=False)
values = unique_array(np.concatenate([src, tgt]))
nodes = Dataset(values, 'index')
elif not isinstance(nodes, Dataset):
try:
nodes = Dataset(nodes)
except:
nodes = Dataset(nodes, 'index')
if not nodes.kdims:
raise ValueError('Could not determine index in supplied node data. '
'Ensure data has at least one key dimension, '
'which matches the node ids on the edges.')
self._nodes = nodes
nodes, edgepaths, graph = _layout_sankey.instance().layout(self)
self._nodes = nodes
self._edgepaths = edgepaths
self._sankey = graph
else:
if not isinstance(nodes, self.node_type):
def _inner_dataset_template(cls, dataset, validate_vdims=True):
"""
Returns a Dataset template used as a wrapper around the data
contained within the multi-interface dataset.
"""
from . import Dataset
vdims = dataset.vdims if getattr(dataset, 'level', None) is None else []
return Dataset(dataset.data[0], datatype=cls.subtypes,
kdims=dataset.kdims, vdims=vdims,
_validate_vdims=validate_vdims)