def test_numpy(): """Test that ndarrays, Series work as well.""" assert len(array_like()) < 5 # In case we extend at some point if len(array_like()) > 2: # Test numpy import numpy as np np_bounds = CategoricalBounds(np.array(["spam", "eggs"], dtype=object)) np_copy = loads(dumps(np_bounds)) assert np_copy == np_bounds if len(array_like()) > 3: # Test numpy import pandas as pd pd_bounds = CategoricalBounds(pd.Series(["spam", "eggs"])) pd_copy = loads(dumps(pd_bounds)) assert pd_copy == pd_bounds
def categories(self, categories): if categories is None: self._categories = set() elif isinstance(categories, array_like()): self._categories = set(categories) elif isinstance(categories, set): self._categories = categories else: raise ValueError("Categories must be a list, tuple, or set") if not all(isinstance(x, str) for x in self.categories): raise ValueError("All the categories must be strings")
def components(self, value): if value is None: self._components = set() elif isinstance(value, array_like()): self._components = set(value) elif isinstance(value, set): self._components = value else: raise ValueError( "Components must be a list, tuple, or set: {}".format(value)) if not all(isinstance(x, str) for x in self.components): raise ValueError("All the components must be strings")