Python itertools.starmap() Examples
The following are 30
code examples of itertools.starmap().
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
itertools
, or try the search function
.
Example #1
Source File: misc.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.items())) # Override dict methods where necessary
Example #2
Source File: utils.py From edgedb with Apache License 2.0 | 6 votes |
def minimize_class_set_by_most_generic( schema: s_schema.Schema, classes: Iterable[so.InheritingObjectT] ) -> List[so.InheritingObjectT]: """Minimize the given set of objects by filtering out all subclasses.""" classes = list(classes) mros = [set(p.get_ancestors(schema).objects(schema)) for p in classes] count = len(classes) smap = itertools.starmap # Return only those entries that do not have other entries in their mro result = [ scls for i, scls in enumerate(classes) if not any(smap(set.__contains__, ((mros[i], classes[j]) for j in range(count) if j != i))) ] return result
Example #3
Source File: collections.py From oss-ftp with MIT License | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.iteritems())) # Override dict methods where necessary
Example #4
Source File: formats.py From tsinfer with GNU General Public License v3.0 | 6 votes |
def sites_equal(self, other): return ( self.num_sites == other.num_sites and self.num_inference_sites == other.num_inference_sites and np.all(self.sites_position[:] == other.sites_position[:]) and np.all(self.sites_inference[:] == other.sites_inference[:]) and np.all(self.sites_genotypes[:] == other.sites_genotypes[:]) and np.allclose(self.sites_time[:], other.sites_time[:], equal_nan=True) and all( itertools.starmap( np.array_equal, zip(self.sites_metadata[:], other.sites_metadata[:]) ) ) and all( itertools.starmap( np.array_equal, zip(self.sites_alleles[:], other.sites_alleles[:]) ) ) )
Example #5
Source File: tools.py From concepts with MIT License | 6 votes |
def maximal(iterable, comparison=operator.lt, _groupkey=operator.itemgetter(0)): """Yield the unique maximal elements from ``iterable`` using ``comparison``. >>> list(maximal([1, 2, 3, 3])) [3] >>> list(maximal([1])) [1] """ iterable = set(iterable) if len(iterable) < 2: return iter(iterable) return (item for item, pairs in groupby(permutations(iterable, 2), key=_groupkey) if not any(starmap(comparison, pairs)))
Example #6
Source File: rules.py From ibis with Apache License 2.0 | 6 votes |
def _promote_numeric_binop(exprs, op): bounds, dtypes = [], [] for arg in exprs: dtypes.append(arg.type()) if hasattr(arg.op(), 'value'): # arg.op() is a literal bounds.append([arg.op().value]) else: bounds.append(arg.type().bounds) # In some cases, the bounding type might be int8, even though neither # of the types are that small. We want to ensure the containing type is # _at least_ as large as the smallest type in the expression. values = starmap(op, product(*bounds)) dtypes += [dt.infer(value, allow_overflow=True) for value in values] return dt.highest_precedence(dtypes)
Example #7
Source File: test_operators.py From vnpy_crypto with MIT License | 6 votes |
def test_timedelta64_equal_timedelta_supported_ops(self, op): ser = Series([Timestamp('20130301'), Timestamp('20130228 23:00:00'), Timestamp('20130228 22:00:00'), Timestamp('20130228 21:00:00')]) intervals = 'D', 'h', 'm', 's', 'us' # TODO: unused # npy16_mappings = {'D': 24 * 60 * 60 * 1000000, # 'h': 60 * 60 * 1000000, # 'm': 60 * 1000000, # 's': 1000000, # 'us': 1} def timedelta64(*args): return sum(starmap(np.timedelta64, zip(args, intervals))) for d, h, m, s, us in product(*([range(2)] * 5)): nptd = timedelta64(d, h, m, s, us) pytd = timedelta(days=d, hours=h, minutes=m, seconds=s, microseconds=us) lhs = op(ser, nptd) rhs = op(ser, pytd) assert_series_equal(lhs, rhs)
Example #8
Source File: __init__.py From kobo-predict with BSD 2-Clause "Simplified" License | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.items())) # Override dict methods where necessary
Example #9
Source File: formats.py From tsinfer with GNU General Public License v3.0 | 6 votes |
def individuals_equal(self, other): return ( self.num_individuals == other.num_individuals and np.allclose( self.individuals_time[:], other.individuals_time[:], equal_nan=True ) and all( itertools.starmap( np.array_equal, zip(self.individuals_metadata[:], other.individuals_metadata[:]), ) ) and all( itertools.starmap( np.array_equal, zip(self.individuals_location[:], other.individuals_location[:]), ) ) )
Example #10
Source File: collections.py From BinderFilter with MIT License | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.iteritems())) # Override dict methods where necessary
Example #11
Source File: misc.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.items())) # Override dict methods where necessary
Example #12
Source File: misc.py From verge3d-blender-addon with GNU General Public License v3.0 | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.items())) # Override dict methods where necessary
Example #13
Source File: pool.py From jawfish with MIT License | 6 votes |
def _map_async(self, func, iterable, mapper, chunksize=None, callback=None, error_callback=None): ''' Helper function to implement map, starmap and their async counterparts. ''' if self._state != RUN: raise ValueError("Pool not running") if not hasattr(iterable, '__len__'): iterable = list(iterable) if chunksize is None: chunksize, extra = divmod(len(iterable), len(self._pool) * 4) if extra: chunksize += 1 if len(iterable) == 0: chunksize = 0 task_batches = Pool._get_tasks(func, iterable, chunksize) result = MapResult(self._cache, chunksize, len(iterable), callback, error_callback=error_callback) self._taskqueue.put((((result._job, i, mapper, (x,), {}) for i, x in enumerate(task_batches)), None)) return result
Example #14
Source File: utils.py From edgedb with Apache License 2.0 | 6 votes |
def minimize_class_set_by_least_generic( schema: s_schema.Schema, classes: Iterable[so.InheritingObjectT] ) -> List[so.InheritingObjectT]: """Minimize the given set of objects by filtering out all superclasses.""" classes = list(classes) mros = [set(p.get_ancestors(schema).objects(schema)) | {p} for p in classes] count = len(classes) smap = itertools.starmap # Return only those entries that are not present in other entries' mro result = [ scls for i, scls in enumerate(classes) if not any(smap(set.__contains__, ((mros[j], classes[i]) for j in range(count) if j != i))) ] return result
Example #15
Source File: collections.py From meddle with MIT License | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.iteritems())) # Override dict methods where necessary
Example #16
Source File: collections.py From ironpython2 with Apache License 2.0 | 6 votes |
def elements(self): '''Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> product = 1 >>> for factor in prime_factors.elements(): # loop over factors ... product *= factor # and multiply them >>> product 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. ''' # Emulate Bag.do from Smalltalk and Multiset.begin from C++. return _chain.from_iterable(_starmap(_repeat, self.iteritems())) # Override dict methods where necessary
Example #17
Source File: install_lib.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def get_exclusions(self): """ Return a collections.Sized collections.Container of paths to be excluded for single_version_externally_managed installations. """ all_packages = ( pkg for ns_pkg in self._get_SVEM_NSPs() for pkg in self._all_packages(ns_pkg) ) excl_specs = product(all_packages, self._gen_exclusion_paths()) return set(starmap(self._exclude_pkg_path, excl_specs))
Example #18
Source File: install_lib.py From anpr with Creative Commons Attribution 4.0 International | 5 votes |
def get_exclusions(self): """ Return a collections.Sized collections.Container of paths to be excluded for single_version_externally_managed installations. """ all_packages = ( pkg for ns_pkg in self._get_SVEM_NSPs() for pkg in self._all_packages(ns_pkg) ) excl_specs = product(all_packages, self._gen_exclusion_paths()) return set(starmap(self._exclude_pkg_path, excl_specs))
Example #19
Source File: hls_playlist.py From streamlink with BSD 2-Clause "Simplified" License | 5 votes |
def parse_attributes(self, value): def map_attribute(key, value, quoted): return (key, quoted or value) attr = self._attr_re.findall(value) return dict(starmap(map_attribute, attr))
Example #20
Source File: package_index.py From anpr with Creative Commons Attribution 4.0 International | 5 votes |
def scan_egg_links(self, search_path): dirs = filter(os.path.isdir, search_path) egg_links = ( (path, entry) for path in dirs for entry in os.listdir(path) if entry.endswith('.egg-link') ) list(itertools.starmap(self.scan_egg_link, egg_links))
Example #21
Source File: dist.py From anpr with Creative Commons Attribution 4.0 International | 5 votes |
def check_extras(dist, attr, value): """Verify that extras_require mapping is valid""" try: list(itertools.starmap(_check_extra, value.items())) except (TypeError, ValueError, AttributeError): raise DistutilsSetupError( "'extras_require' must be a dictionary whose values are " "strings or lists of strings containing valid project/version " "requirement specifiers." )
Example #22
Source File: install_lib.py From lambda-packs with MIT License | 5 votes |
def get_exclusions(self): """ Return a collections.Sized collections.Container of paths to be excluded for single_version_externally_managed installations. """ all_packages = ( pkg for ns_pkg in self._get_SVEM_NSPs() for pkg in self._all_packages(ns_pkg) ) excl_specs = product(all_packages, self._gen_exclusion_paths()) return set(starmap(self._exclude_pkg_path, excl_specs))
Example #23
Source File: install_lib.py From kobo-predict with BSD 2-Clause "Simplified" License | 5 votes |
def get_exclusions(self): """ Return a collections.Sized collections.Container of paths to be excluded for single_version_externally_managed installations. """ all_packages = ( pkg for ns_pkg in self._get_SVEM_NSPs() for pkg in self._all_packages(ns_pkg) ) excl_specs = product(all_packages, self._gen_exclusion_paths()) return set(starmap(self._exclude_pkg_path, excl_specs))
Example #24
Source File: package_index.py From kobo-predict with BSD 2-Clause "Simplified" License | 5 votes |
def scan_egg_links(self, search_path): dirs = filter(os.path.isdir, search_path) egg_links = ( (path, entry) for path in dirs for entry in os.listdir(path) if entry.endswith('.egg-link') ) list(itertools.starmap(self.scan_egg_link, egg_links))
Example #25
Source File: install_lib.py From lambda-chef-node-cleanup with Apache License 2.0 | 5 votes |
def get_exclusions(self): """ Return a collections.Sized collections.Container of paths to be excluded for single_version_externally_managed installations. """ all_packages = ( pkg for ns_pkg in self._get_SVEM_NSPs() for pkg in self._all_packages(ns_pkg) ) excl_specs = product(all_packages, self._gen_exclusion_paths()) return set(starmap(self._exclude_pkg_path, excl_specs))
Example #26
Source File: package_index.py From lambda-chef-node-cleanup with Apache License 2.0 | 5 votes |
def scan_egg_links(self, search_path): dirs = filter(os.path.isdir, search_path) egg_links = ( (path, entry) for path in dirs for entry in os.listdir(path) if entry.endswith('.egg-link') ) list(itertools.starmap(self.scan_egg_link, egg_links))
Example #27
Source File: install_lib.py From ironpython2 with Apache License 2.0 | 5 votes |
def get_exclusions(self): """ Return a collections.Sized collections.Container of paths to be excluded for single_version_externally_managed installations. """ all_packages = ( pkg for ns_pkg in self._get_SVEM_NSPs() for pkg in self._all_packages(ns_pkg) ) excl_specs = product(all_packages, self._gen_exclusion_paths()) return set(starmap(self._exclude_pkg_path, excl_specs))
Example #28
Source File: dist.py From ironpython2 with Apache License 2.0 | 5 votes |
def check_extras(dist, attr, value): """Verify that extras_require mapping is valid""" try: list(itertools.starmap(_check_extra, value.items())) except (TypeError, ValueError, AttributeError): raise DistutilsSetupError( "'extras_require' must be a dictionary whose values are " "strings or lists of strings containing valid project/version " "requirement specifiers." )
Example #29
Source File: package_index.py From ironpython2 with Apache License 2.0 | 5 votes |
def scan_egg_links(self, search_path): dirs = filter(os.path.isdir, search_path) egg_links = ( (path, entry) for path in dirs for entry in os.listdir(path) if entry.endswith('.egg-link') ) list(itertools.starmap(self.scan_egg_link, egg_links))
Example #30
Source File: _filter.py From pyuavcan with MIT License | 5 votes |
def optimize_filter_configurations(configurations: typing.Iterable[FilterConfiguration], target_number_of_configurations: int) -> typing.Sequence[FilterConfiguration]: """ Implements the CAN acceptance filter configuration optimization algorithm described in the Specification. The algorithm was originally proposed by P. Kirienko and I. Sheremet. Given a set of ``K`` filter configurations that accept CAN frames whose identifiers belong to the set ``C``, and ``N`` acceptance filters implemented in hardware, where ``1 <= N < K``, find a new set of ``K'`` filter configurations that accept CAN frames whose identifiers belong to the set ``C'``, such that ``K' <= N``, ``C'`` is a superset of ``C``, and ``|C'|`` is minimized. The algorithm is not defined for ``N >= K`` because this configuration is considered optimal. The function returns the input set unchanged in this case. If the target number of configurations is not positive, a ValueError is raised. The time complexity of this implementation is ``O(K!)``; it should be optimized. """ if target_number_of_configurations < 1: raise ValueError(f'The number of configurations must be positive; found {target_number_of_configurations}') configurations = list(configurations) while len(configurations) > target_number_of_configurations: options = itertools.starmap(lambda ia, ib: (ia[0], ib[0], ia[1].merge(ib[1])), itertools.permutations(enumerate(configurations), 2)) index_replace, index_remove, merged = max(options, key=lambda x: x[2].rank) configurations[index_replace] = merged del configurations[index_remove] # Invalidates indexes assert all(map(lambda x: isinstance(x, FilterConfiguration), configurations)) return configurations