Add prepend recipe
Signed-off-by: zhang-liang-pengkun <zhangliangpengkun@xfusion.com>
This commit is contained in:
parent
8352412e6d
commit
66430cef45
80
0004-Add-prepend-recipe.patch
Normal file
80
0004-Add-prepend-recipe.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
From a17e5e4f8d9d9b8e1932bda10a1ab5cf59290deb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bo Bayles <bbayles@gmail.com>
|
||||||
|
Date: Mon, 14 May 2018 21:20:08 -0500
|
||||||
|
Subject: [PATCH] Add prepend recipe
|
||||||
|
|
||||||
|
---
|
||||||
|
docs/api.rst | 1 +
|
||||||
|
more_itertools/recipes.py | 15 +++++++++++++++
|
||||||
|
more_itertools/tests/test_recipes.py | 16 ++++++++++++++++
|
||||||
|
3 files changed, 32 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/docs/api.rst b/docs/api.rst
|
||||||
|
index 914e5bc..49459f3 100644
|
||||||
|
--- a/docs/api.rst
|
||||||
|
+++ b/docs/api.rst
|
||||||
|
@@ -110,6 +110,7 @@ These tools combine multiple iterables.
|
||||||
|
.. autofunction:: dotproduct
|
||||||
|
.. autofunction:: flatten
|
||||||
|
.. autofunction:: roundrobin
|
||||||
|
+.. autofunction:: prepend
|
||||||
|
|
||||||
|
|
||||||
|
Summarizing
|
||||||
|
diff --git a/more_itertools/recipes.py b/more_itertools/recipes.py
|
||||||
|
index ec5e756..3a7706c 100644
|
||||||
|
--- a/more_itertools/recipes.py
|
||||||
|
+++ b/more_itertools/recipes.py
|
||||||
|
@@ -33,6 +33,7 @@ __all__ = [
|
||||||
|
'pairwise',
|
||||||
|
'partition',
|
||||||
|
'powerset',
|
||||||
|
+ 'prepend',
|
||||||
|
'quantify',
|
||||||
|
'random_combination_with_replacement',
|
||||||
|
'random_combination',
|
||||||
|
@@ -548,3 +549,17 @@ def nth_combination(iterable, r, index):
|
||||||
|
result.append(pool[-1 - n])
|
||||||
|
|
||||||
|
return tuple(result)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+def prepend(value, iterator):
|
||||||
|
+ """Yield *value*, followed by the elements in *iterator*.
|
||||||
|
+
|
||||||
|
+ >>> value = '0'
|
||||||
|
+ >>> iterator = ['1', '2', '3']
|
||||||
|
+ >>> list(prepend(value, iterator))
|
||||||
|
+ ['0', '1', '2', '3']
|
||||||
|
+
|
||||||
|
+ To prepend multiple values, see :func:`itertools.chain`.
|
||||||
|
+
|
||||||
|
+ """
|
||||||
|
+ return chain([value], iterator)
|
||||||
|
diff --git a/more_itertools/tests/test_recipes.py b/more_itertools/tests/test_recipes.py
|
||||||
|
index f6d7680..81721fd 100644
|
||||||
|
--- a/more_itertools/tests/test_recipes.py
|
||||||
|
+++ b/more_itertools/tests/test_recipes.py
|
||||||
|
@@ -589,3 +589,19 @@ class NthCombinationTests(TestCase):
|
||||||
|
actual = mi.nth_combination(range(180), 4, 2000000)
|
||||||
|
expected = (2, 12, 35, 126)
|
||||||
|
self.assertEqual(actual, expected)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+class PrependTests(TestCase):
|
||||||
|
+ def test_basic(self):
|
||||||
|
+ value = 'a'
|
||||||
|
+ iterator = iter('bcdefg')
|
||||||
|
+ actual = list(mi.prepend(value, iterator))
|
||||||
|
+ expected = list('abcdefg')
|
||||||
|
+ self.assertEqual(actual, expected)
|
||||||
|
+
|
||||||
|
+ def test_multiple(self):
|
||||||
|
+ value = 'ab'
|
||||||
|
+ iterator = iter('cdefg')
|
||||||
|
+ actual = tuple(mi.prepend(value, iterator))
|
||||||
|
+ expected = ('ab',) + tuple('cdefg')
|
||||||
|
+ self.assertEqual(actual, expected)
|
||||||
|
--
|
||||||
|
2.39.0.windows.2
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: python-more-itertools
|
Name: python-more-itertools
|
||||||
Version: 4.1.0
|
Version: 4.1.0
|
||||||
Release: 8
|
Release: 9
|
||||||
Summary: An opensource python library wrapping around itertools
|
Summary: An opensource python library wrapping around itertools
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/erikrose/more-itertools
|
URL: https://github.com/erikrose/more-itertools
|
||||||
@ -10,6 +10,7 @@ Patch0000: python37.patch
|
|||||||
Patch0001: 0001-fix-for-python-3.7-deprecation-warning-about-importi.patch
|
Patch0001: 0001-fix-for-python-3.7-deprecation-warning-about-importi.patch
|
||||||
Patch0002: 0002-more.py-document-ilen.patch
|
Patch0002: 0002-more.py-document-ilen.patch
|
||||||
Patch0003: 0003-Add-map_reduce-function-196.patch
|
Patch0003: 0003-Add-map_reduce-function-196.patch
|
||||||
|
Patch0004: 0004-Add-prepend-recipe.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This is a python library for efficient use of itertools utility, which also \
|
This is a python library for efficient use of itertools utility, which also \
|
||||||
@ -64,6 +65,9 @@ See https://pythonhosted.org/more-itertools/index.html for more information.
|
|||||||
%{python3_sitelib}/more_itertools-%{version}-py%{python3_version}.egg-info
|
%{python3_sitelib}/more_itertools-%{version}-py%{python3_version}.egg-info
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 28 2023 zhangliangpengkun<zhangliangpengkun@xfusion.com> - 4.1.0-9
|
||||||
|
- Add prepend recipe
|
||||||
|
|
||||||
* Fri Dec 22 2023 zhangliangpengkun<zhangliangpengkun@xfusion.com> - 4.1.0-8
|
* Fri Dec 22 2023 zhangliangpengkun<zhangliangpengkun@xfusion.com> - 4.1.0-8
|
||||||
- Add map_reduce function (#196)
|
- Add map_reduce function (#196)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user