Python collections.abc.Sized() Examples
The following are 30
code examples of collections.abc.Sized().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
collections.abc
, or try the search function
.
Example #1
Source File: test_collections.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_Sized(self): non_samples = [None, 42, 3.14, 1j, (lambda: (yield))(), (x for x in []), ] for x in non_samples: self.assertNotIsInstance(x, Sized) self.assertFalse(issubclass(type(x), Sized), repr(type(x))) samples = [bytes(), str(), tuple(), list(), set(), frozenset(), dict(), dict().keys(), dict().items(), dict().values(), ] for x in samples: self.assertIsInstance(x, Sized) self.assertTrue(issubclass(type(x), Sized), repr(type(x))) self.validate_abstract_methods(Sized, '__len__') self.validate_isinstance(Sized, '__len__')
Example #2
Source File: test_collections.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_Sized(self): non_samples = [None, 42, 3.14, 1j, (lambda: (yield))(), (x for x in []), ] for x in non_samples: self.assertNotIsInstance(x, Sized) self.assertFalse(issubclass(type(x), Sized), repr(type(x))) samples = [bytes(), str(), tuple(), list(), set(), frozenset(), dict(), dict().keys(), dict().items(), dict().values(), ] for x in samples: self.assertIsInstance(x, Sized) self.assertTrue(issubclass(type(x), Sized), repr(type(x))) self.validate_abstract_methods(Sized, '__len__') self.validate_isinstance(Sized, '__len__')
Example #3
Source File: perf_util.py From indy-plenum with Apache License 2.0 | 6 votes |
def get_collection_sizes(obj, collections: Optional[Tuple]=None, get_only_non_empty=False): """ Iterates over `collections` of the gives object and gives its byte size and number of items in collection """ from pympler import asizeof collections = collections or (list, dict, set, deque, abc.Sized) if not isinstance(collections, tuple): collections = tuple(collections) result = [] for attr_name in dir(obj): attr = getattr(obj, attr_name) if isinstance(attr, collections) and ( not get_only_non_empty or len(attr) > 0): result.append( (attr_name, len(attr), asizeof.asizeof(attr, detail=1))) return result
Example #4
Source File: test_collections.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_Sized(self): non_samples = [None, 42, 3.14, 1j, (lambda: (yield))(), (x for x in []), ] for x in non_samples: self.assertNotIsInstance(x, Sized) self.assertFalse(issubclass(type(x), Sized), repr(type(x))) samples = [bytes(), str(), tuple(), list(), set(), frozenset(), dict(), dict().keys(), dict().items(), dict().values(), ] for x in samples: self.assertIsInstance(x, Sized) self.assertTrue(issubclass(type(x), Sized), repr(type(x))) self.validate_abstract_methods(Sized, '__len__') self.validate_isinstance(Sized, '__len__')
Example #5
Source File: markers.py From coffeegrindsize with MIT License | 6 votes |
def set_marker(self, marker): if (isinstance(marker, np.ndarray) and marker.ndim == 2 and marker.shape[1] == 2): self._marker_function = self._set_vertices elif isinstance(marker, str) and cbook.is_math_text(marker): self._marker_function = self._set_mathtext_path elif isinstance(marker, Path): self._marker_function = self._set_path_marker elif (isinstance(marker, Sized) and len(marker) in (2, 3) and marker[1] in (0, 1, 2, 3)): self._marker_function = self._set_tuple_marker elif (not isinstance(marker, (np.ndarray, list)) and marker in self.markers): self._marker_function = getattr( self, '_set_' + self.markers[marker]) else: try: Path(marker) self._marker_function = self._set_vertices except ValueError: raise ValueError('Unrecognized marker style {!r}' .format(marker)) self._marker = marker self._recache()
Example #6
Source File: markers.py From CogAlg with MIT License | 6 votes |
def set_marker(self, marker): if (isinstance(marker, np.ndarray) and marker.ndim == 2 and marker.shape[1] == 2): self._marker_function = self._set_vertices elif isinstance(marker, str) and cbook.is_math_text(marker): self._marker_function = self._set_mathtext_path elif isinstance(marker, Path): self._marker_function = self._set_path_marker elif (isinstance(marker, Sized) and len(marker) in (2, 3) and marker[1] in (0, 1, 2, 3)): self._marker_function = self._set_tuple_marker elif (not isinstance(marker, (np.ndarray, list)) and marker in self.markers): self._marker_function = getattr( self, '_set_' + self.markers[marker]) else: try: Path(marker) self._marker_function = self._set_vertices except ValueError: raise ValueError('Unrecognized marker style {!r}' .format(marker)) self._marker = marker self._recache()
Example #7
Source File: markers.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 6 votes |
def set_marker(self, marker): if (isinstance(marker, np.ndarray) and marker.ndim == 2 and marker.shape[1] == 2): self._marker_function = self._set_vertices elif isinstance(marker, str) and cbook.is_math_text(marker): self._marker_function = self._set_mathtext_path elif isinstance(marker, Path): self._marker_function = self._set_path_marker elif (isinstance(marker, Sized) and len(marker) in (2, 3) and marker[1] in (0, 1, 2, 3)): self._marker_function = self._set_tuple_marker elif (not isinstance(marker, (np.ndarray, list)) and marker in self.markers): self._marker_function = getattr( self, '_set_' + self.markers[marker]) else: try: Path(marker) self._marker_function = self._set_vertices except ValueError: raise ValueError('Unrecognized marker style {!r}' .format(marker)) self._marker = marker self._recache()
Example #8
Source File: markers.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def set_marker(self, marker): if (isinstance(marker, np.ndarray) and marker.ndim == 2 and marker.shape[1] == 2): self._marker_function = self._set_vertices elif isinstance(marker, str) and cbook.is_math_text(marker): self._marker_function = self._set_mathtext_path elif isinstance(marker, Path): self._marker_function = self._set_path_marker elif (isinstance(marker, Sized) and len(marker) in (2, 3) and marker[1] in (0, 1, 2, 3)): self._marker_function = self._set_tuple_marker elif (not isinstance(marker, (np.ndarray, list)) and marker in self.markers): self._marker_function = getattr( self, '_set_' + self.markers[marker]) else: try: Path(marker) self._marker_function = self._set_vertices except ValueError: raise ValueError('Unrecognized marker style {!r}' .format(marker)) self._marker = marker self._recache()
Example #9
Source File: test_collections.py From android_universal with MIT License | 6 votes |
def test_Sized(self): non_samples = [None, 42, 3.14, 1j, _test_gen(), (x for x in []), ] for x in non_samples: self.assertNotIsInstance(x, Sized) self.assertFalse(issubclass(type(x), Sized), repr(type(x))) samples = [bytes(), str(), tuple(), list(), set(), frozenset(), dict(), dict().keys(), dict().items(), dict().values(), ] for x in samples: self.assertIsInstance(x, Sized) self.assertTrue(issubclass(type(x), Sized), repr(type(x))) self.validate_abstract_methods(Sized, '__len__') self.validate_isinstance(Sized, '__len__')
Example #10
Source File: values.py From py-good with BSD 2-Clause "Simplified" License | 5 votes |
def __call__(self, v): if not isinstance(v, abc.Sized): raise Invalid(_(u'Input is not a collection'), u'Collection', get_type_name(type(v))) length = len(v) # Validate if self.min is not None and length < self.min: raise self.min_error(length) if self.max is not None and length > self.max: raise self.max_error(length) # Ok return v
Example #11
Source File: colors.py From CogAlg with MIT License | 5 votes |
def from_list(name, colors, N=256, gamma=1.0): """ Make a linear segmented colormap with *name* from a sequence of *colors* which evenly transitions from colors[0] at val=0 to colors[-1] at val=1. *N* is the number of rgb quantization levels. Alternatively, a list of (value, color) tuples can be given to divide the range unevenly. """ if not np.iterable(colors): raise ValueError('colors must be iterable') if (isinstance(colors[0], Sized) and len(colors[0]) == 2 and not isinstance(colors[0], str)): # List of value, color pairs vals, colors = zip(*colors) else: vals = np.linspace(0, 1, len(colors)) cdict = dict(red=[], green=[], blue=[], alpha=[]) for val, color in zip(vals, colors): r, g, b, a = to_rgba(color) cdict['red'].append((val, r, r)) cdict['green'].append((val, g, g)) cdict['blue'].append((val, b, b)) cdict['alpha'].append((val, a, a)) return LinearSegmentedColormap(name, cdict, N, gamma)
Example #12
Source File: test_collections.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_registration(self): for B in Hashable, Iterable, Iterator, Sized, Container, Callable: class C: __hash__ = None # Make sure it isn't hashable by default self.assertFalse(issubclass(C, B), B.__name__) B.register(C) self.assertTrue(issubclass(C, B))
Example #13
Source File: colors.py From coffeegrindsize with MIT License | 5 votes |
def from_list(name, colors, N=256, gamma=1.0): """ Make a linear segmented colormap with *name* from a sequence of *colors* which evenly transitions from colors[0] at val=0 to colors[-1] at val=1. *N* is the number of rgb quantization levels. Alternatively, a list of (value, color) tuples can be given to divide the range unevenly. """ if not cbook.iterable(colors): raise ValueError('colors must be iterable') if (isinstance(colors[0], Sized) and len(colors[0]) == 2 and not isinstance(colors[0], str)): # List of value, color pairs vals, colors = zip(*colors) else: vals = np.linspace(0, 1, len(colors)) cdict = dict(red=[], green=[], blue=[], alpha=[]) for val, color in zip(vals, colors): r, g, b, a = to_rgba(color) cdict['red'].append((val, r, r)) cdict['green'].append((val, g, g)) cdict['blue'].append((val, b, b)) cdict['alpha'].append((val, a, a)) return LinearSegmentedColormap(name, cdict, N, gamma)
Example #14
Source File: test_collections.py From android_universal with MIT License | 5 votes |
def test_direct_subclassing(self): for B in Hashable, Iterable, Iterator, Reversible, Sized, Container, Callable: class C(B): pass self.assertTrue(issubclass(C, B)) self.assertFalse(issubclass(int, C))
Example #15
Source File: triangulation.py From adaptive with BSD 3-Clause "New" or "Revised" License | 5 votes |
def is_iterable_and_sized(obj): return isinstance(obj, Iterable) and isinstance(obj, Sized)
Example #16
Source File: test_collections.py From android_universal with MIT License | 5 votes |
def test_registration(self): for B in Hashable, Iterable, Iterator, Reversible, Sized, Container, Callable: class C: __hash__ = None # Make sure it isn't hashable by default self.assertFalse(issubclass(C, B), B.__name__) B.register(C) self.assertTrue(issubclass(C, B))
Example #17
Source File: test_collections.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_registration(self): for B in Hashable, Iterable, Iterator, Sized, Container, Callable: class C: __hash__ = None # Make sure it isn't hashable by default self.assertFalse(issubclass(C, B), B.__name__) B.register(C) self.assertTrue(issubclass(C, B))
Example #18
Source File: processor.py From zim-desktop-wiki with GNU General Public License v2.0 | 5 votes |
def _loop(self, output, element, context): var = element.attrib['var'] expr = element.attrib['expr'] items = expr(context) if not isinstance(items, abc.Iterable): raise TypeError('Can not iterate over: %s' % items) elif not isinstance(items, abc.Sized): # cast to list to ensure we have a len() items = list(items) # set "loop" outer = context.get('loop') if isinstance(outer, TemplateLoopState): loop = TemplateLoopState(len(items), outer) else: loop = TemplateLoopState(len(items), None) context['loop'] = loop # do the iterations myiter = MovingWindowIter(items) for i, items in enumerate(myiter): loop._update(i, myiter) self._set(context, var, items[1]) # set var self.__call__(output, element, context) # recurs # restore "loop" context['loop'] = outer
Example #19
Source File: test_collections.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_direct_subclassing(self): for B in Hashable, Iterable, Iterator, Sized, Container, Callable: class C(B): pass self.assertTrue(issubclass(C, B)) self.assertFalse(issubclass(int, C))
Example #20
Source File: marsh.py From pymzn with MIT License | 5 votes |
def _is_list(obj): return ( isinstance(obj, Sized) and isinstance(obj, Iterable) and not isinstance(obj, (str, Set, Mapping)) )
Example #21
Source File: test_collections.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_direct_subclassing(self): for B in Hashable, Iterable, Iterator, Sized, Container, Callable: class C(B): pass self.assertTrue(issubclass(C, B)) self.assertFalse(issubclass(int, C))
Example #22
Source File: colors.py From napari with BSD 3-Clause "New" or "Revised" License | 5 votes |
def from_list(name, colors, N=256, gamma=1.0): """ Make a linear segmented colormap with *name* from a sequence of *colors* which evenly transitions from colors[0] at val=0 to colors[-1] at val=1. *N* is the number of rgb quantization levels. Alternatively, a list of (value, color) tuples can be given to divide the range unevenly. """ if not np.iterable(colors): raise ValueError('colors must be iterable') if (isinstance(colors[0], Sized) and len(colors[0]) == 2 and not isinstance(colors[0], str)): # List of value, color pairs vals, colors = zip(*colors) else: vals = np.linspace(0, 1, len(colors)) cdict = dict(red=[], green=[], blue=[], alpha=[]) for val, color in zip(vals, colors): r, g, b, a = to_rgba(color) cdict['red'].append((val, r, r)) cdict['green'].append((val, g, g)) cdict['blue'].append((val, b, b)) cdict['alpha'].append((val, a, a)) return LinearSegmentedColormap(name, cdict, N, gamma)
Example #23
Source File: test_collections.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_registration(self): for B in Hashable, Iterable, Iterator, Sized, Container, Callable: class C: __hash__ = None # Make sure it isn't hashable by default self.assertFalse(issubclass(C, B), B.__name__) B.register(C) self.assertTrue(issubclass(C, B))
Example #24
Source File: test_collections.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_direct_subclassing(self): for B in Hashable, Iterable, Iterator, Sized, Container, Callable: class C(B): pass self.assertTrue(issubclass(C, B)) self.assertFalse(issubclass(int, C))
Example #25
Source File: colors.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def from_list(name, colors, N=256, gamma=1.0): """ Make a linear segmented colormap with *name* from a sequence of *colors* which evenly transitions from colors[0] at val=0 to colors[-1] at val=1. *N* is the number of rgb quantization levels. Alternatively, a list of (value, color) tuples can be given to divide the range unevenly. """ if not cbook.iterable(colors): raise ValueError('colors must be iterable') if (isinstance(colors[0], Sized) and len(colors[0]) == 2 and not isinstance(colors[0], str)): # List of value, color pairs vals, colors = zip(*colors) else: vals = np.linspace(0, 1, len(colors)) cdict = dict(red=[], green=[], blue=[], alpha=[]) for val, color in zip(vals, colors): r, g, b, a = to_rgba(color) cdict['red'].append((val, r, r)) cdict['green'].append((val, g, g)) cdict['blue'].append((val, b, b)) cdict['alpha'].append((val, a, a)) return LinearSegmentedColormap(name, cdict, N, gamma)
Example #26
Source File: colors.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def from_list(name, colors, N=256, gamma=1.0): """ Make a linear segmented colormap with *name* from a sequence of *colors* which evenly transitions from colors[0] at val=0 to colors[-1] at val=1. *N* is the number of rgb quantization levels. Alternatively, a list of (value, color) tuples can be given to divide the range unevenly. """ if not cbook.iterable(colors): raise ValueError('colors must be iterable') if (isinstance(colors[0], Sized) and len(colors[0]) == 2 and not isinstance(colors[0], str)): # List of value, color pairs vals, colors = zip(*colors) else: vals = np.linspace(0, 1, len(colors)) cdict = dict(red=[], green=[], blue=[], alpha=[]) for val, color in zip(vals, colors): r, g, b, a = to_rgba(color) cdict['red'].append((val, r, r)) cdict['green'].append((val, g, g)) cdict['blue'].append((val, b, b)) cdict['alpha'].append((val, a, a)) return LinearSegmentedColormap(name, cdict, N, gamma)
Example #27
Source File: progress.py From rich with MIT License | 5 votes |
def track( self, sequence: Union[Iterable[ProgressType], Sequence[ProgressType]], total: int = None, task_id: Optional[TaskID] = None, description="Working...", ) -> Iterable[ProgressType]: """[summary] Args: sequence (Sequence[ProgressType]): A sequence of values you want to iterate over and track progress. total: (int, optional): Total number of steps. Default is len(sequence). task_id: (TaskID): Task to track. Default is new task. description: (str, optional): Description of task, if new task is created. Returns: Iterable[ProgressType]: An iterable of values taken from the provided sequence. """ if total is None: if isinstance(sequence, Sized): task_total = len(sequence) else: raise ValueError( f"unable to get size of {sequence!r}, please specify 'total'" ) else: task_total = total if task_id is None: task_id = self.add_task(description, total=task_total) else: self.update(task_id, total=task_total) with self: for completed, value in enumerate(sequence, 1): yield value self.update(task_id, completed=completed)
Example #28
Source File: test_search.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def test_parameter_grid(): # Test basic properties of ParameterGrid. params1 = {"foo": [1, 2, 3]} grid1 = ParameterGrid(params1) assert isinstance(grid1, Iterable) assert isinstance(grid1, Sized) assert_equal(len(grid1), 3) assert_grid_iter_equals_getitem(grid1) params2 = {"foo": [4, 2], "bar": ["ham", "spam", "eggs"]} grid2 = ParameterGrid(params2) assert_equal(len(grid2), 6) # loop to assert we can iterate over the grid multiple times for i in range(2): # tuple + chain transforms {"a": 1, "b": 2} to ("a", 1, "b", 2) points = set(tuple(chain(*(sorted(p.items())))) for p in grid2) assert_equal(points, set(("bar", x, "foo", y) for x, y in product(params2["bar"], params2["foo"]))) assert_grid_iter_equals_getitem(grid2) # Special case: empty grid (useful to get default estimator settings) empty = ParameterGrid({}) assert_equal(len(empty), 1) assert_equal(list(empty), [{}]) assert_grid_iter_equals_getitem(empty) assert_raises(IndexError, lambda: empty[1]) has_empty = ParameterGrid([{'C': [1, 10]}, {}, {'C': [.5]}]) assert_equal(len(has_empty), 4) assert_equal(list(has_empty), [{'C': 1}, {'C': 10}, {}, {'C': .5}]) assert_grid_iter_equals_getitem(has_empty)
Example #29
Source File: generic.py From ibis with Apache License 2.0 | 5 votes |
def compute_row_reduction(func, value, **kwargs): final_sizes = {len(x) for x in value if isinstance(x, Sized)} if not final_sizes: return func(value) (final_size,) = final_sizes raw = func(list(map(promote_to_sequence(final_size), value)), **kwargs) return pd.Series(raw).squeeze()
Example #30
Source File: progress.py From rich with MIT License | 4 votes |
def track( sequence: Union[Sequence[ProgressType], Iterable[ProgressType]], description="Working...", total: int = None, auto_refresh=True, console: Optional[Console] = None, transient: bool = False, get_time: Callable[[], float] = None, ) -> Iterable[ProgressType]: """Track progress of processing a sequence. Args: sequence (Iterable[ProgressType]): A sequence (must support "len") you wish to iterate over. description (str, optional): Description of task show next to progress bar. Defaults to "Working". total: (int, optional): Total number of steps. Default is len(sequence). auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True. transient: (bool, optional): Clear the progress on exit. Defaults to False. console (Console, optional): Console to write to. Default creates internal Console instance. Returns: Iterable[ProgressType]: An iterable of the values in the sequence. """ progress = Progress( auto_refresh=auto_refresh, console=console, transient=transient, get_time=get_time, ) task_total = total if task_total is None: if isinstance(sequence, Sized): task_total = len(sequence) else: raise ValueError( f"unable to get size of {sequence!r}, please specify 'total'" ) task_id = progress.add_task(description, total=task_total) with progress: for completed, value in enumerate(sequence, 1): yield value progress.update(task_id, completed=completed) if not auto_refresh: progress.refresh()