Victor Stinner
4a21e57fe5
bpo-40268: Remove unused structmember.h includes (GH-19530)
...
If only offsetof() is needed: include stddef.h instead.
When structmember.h is used, add a comment explaining that
PyMemberDef is used.
2020-04-15 02:35:41 +02:00
Ethan Smith
a8403d057d
Generic itertools.chain (GH-19417)
2020-04-09 20:28:08 -07:00
AlphaHot
8dd1792c68
bpo-40036: Deleting duplicates in itertoolsmodule.c (GH-18958)
2020-03-23 13:14:39 -07:00
Dong-hee Na
05e4a296ec
bpo-40024: Add PyModule_AddType() helper function (GH-19088)
2020-03-22 17:17:34 +01:00
Dong-hee Na
514c469719
bpo-1635741: Port itertools module to multiphase initialization (GH-19044)
2020-03-17 18:46:24 +01:00
Andy Lester
557287075c
bpo-39573: Use Py_IS_TYPE() macro to check for types (GH-18809)
...
Co-authored-by: Victor Stinner <vstinner@python.org>
2020-03-06 23:53:17 +01:00
Andy Lester
dffe4c0709
bpo-39573: Finish converting to new Py_IS_TYPE() macro (GH-18601)
2020-03-04 14:15:20 +01:00
Petr Viktorin
ffd9753a94
bpo-39245: Switch to public API for Vectorcall (GH-18460)
...
The bulk of this patch was generated automatically with:
for name in \
PyObject_Vectorcall \
Py_TPFLAGS_HAVE_VECTORCALL \
PyObject_VectorcallMethod \
PyVectorcall_Function \
PyObject_CallOneArg \
PyObject_CallMethodNoArgs \
PyObject_CallMethodOneArg \
;
do
echo $name
git grep -lwz _$name | xargs -0 sed -i "s/\b_$name\b/$name/g"
done
old=_PyObject_FastCallDict
new=PyObject_VectorcallDict
git grep -lwz $old | xargs -0 sed -i "s/\b$old\b/$new/g"
and then cleaned up:
- Revert changes to in docs & news
- Revert changes to backcompat defines in headers
- Nudge misaligned comments
2020-02-11 17:46:57 +01:00
Victor Stinner
d2ec81a8c9
bpo-39573: Add Py_SET_TYPE() function (GH-18394)
...
Add Py_SET_TYPE() function to set the type of an object.
2020-02-07 09:17:07 +01:00
Raymond Hettinger
af46450bb9
Minor readability improvement for argument handling in itertools.repeat() (GH-17101)
2019-11-09 20:28:31 -08:00
Sergey
0078a0c2a5
Permutations Python code equivalent in comment was invalid for Python 3 (GH-16927)
2019-10-28 22:10:24 -07:00
Serhiy Storchaka
526a01467b
bpo-34410: Fix a crash in the tee iterator when re-enter it. (GH-15625)
...
RuntimeError is now raised in this case.
2019-09-09 11:47:14 +03:00
Serhiy Storchaka
918b468b7d
Revert "Raise a RuntimeError when tee iterator is consumed from different threads (GH-15567)" (GH-15736)
...
This reverts commit fa220ec763
.
2019-09-09 11:18:16 +03:00
Serhiy Storchaka
1f21eaa15e
bpo-15999: Clean up of handling boolean arguments. (GH-15610)
...
* Use the 'p' format unit instead of manually called PyObject_IsTrue().
* Pass boolean value instead 0/1 integers to functions that needs boolean.
* Convert some arguments to boolean only once.
2019-09-01 12:16:51 +03:00
Sergey Fedoseev
6a650aaf77
bpo-37976: Prevent shadowing of TypeError in zip() (GH-15592)
2019-08-29 21:25:48 -07:00
HongWeipeng
fa220ec763
Raise a RuntimeError when tee iterator is consumed from different threads (GH-15567)
2019-08-28 20:39:25 -07:00
Jeroen Demeyer
196a530e00
bpo-37483: add _PyObject_CallOneArg() function ( #14558 )
2019-07-04 19:31:34 +09:00
Jeroen Demeyer
530f506ac9
bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464)
...
Automatically replace
tp_print -> tp_vectorcall_offset
tp_compare -> tp_as_async
tp_reserved -> tp_as_async
2019-05-30 19:13:39 -07:00
Zackery Spytz
0523c39e77
bpo-36430: Fix a possible reference leak in itertools.count(). (GH-12551)
2019-03-26 08:05:29 +02:00
Sergey Fedoseev
234531b446
bpo-36030: Add _PyTuple_FromArray() function (GH-11954)
2019-02-25 17:59:12 +01:00
Serhiy Storchaka
a24107b04c
bpo-35459: Use PyDict_GetItemWithError() instead of PyDict_GetItem(). (GH-11112)
2019-02-25 17:59:46 +02:00
Serhiy Storchaka
bb86bf4c4e
bpo-35444: Unify and optimize the helper for getting a builtin object. (GH-11047)
...
This speeds up pickling of some iterators.
This fixes also error handling in pickling methods when fail to
look up builtin "getattr".
2018-12-11 08:28:18 +02:00
Lisa Roach
9718b59ee5
bpo-34659: Adds initial kwarg to itertools.accumulate() (GH-9345)
2018-09-23 17:34:59 -07:00
Tal Einat
c4bccd3c76
bpo-20180: convert most of itertoolsmodule.c to use Argument Clinic (GH-9164)
2018-09-11 14:49:13 -07:00
Tal Einat
3286ce4ade
bpo-20180: itertools.groupby Argument Clinic conversion (GH-4170)
2018-09-10 11:33:08 -07:00
Siddhesh Poyarekar
55edd0c185
bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. (GH-6030)
...
METH_NOARGS functions need only a single argument but they are cast
into a PyCFunction, which takes two arguments. This triggers an
invalid function cast warning in gcc8 due to the argument mismatch.
Fix this by adding a dummy unused argument.
2018-04-29 21:59:33 +03:00
oldk
aa0735f597
bpo-32747: Remove trailing spaces in docstrings. (GH-5491)
2018-02-02 10:52:55 +02:00
Serhiy Storchaka
f320be77ff
bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222)
...
Add two new private APIs: _PyObject_LookupAttr() and _PyObject_LookupAttrId()
2018-01-25 17:49:40 +09:00
Serhiy Storchaka
1707e4020f
bpo-31572: Silence only AttributeError when get the __copy__ attribute in itertools.tee(). ( #3724 )
2017-11-11 15:51:42 +02:00
Serhiy Storchaka
c740e4fe8a
bpo-30347: Stop crashes when concurrently iterate over itertools.groupby() iterators. ( #1557 )
2017-09-26 21:47:56 +03:00
Raymond Hettinger
49392c63a2
bpo-27385: Clarify docstring for groupby() ( #3738 )
2017-09-25 01:21:06 -07:00
Serhiy Storchaka
c247caf33f
bpo-30346: An iterator produced by the itertools.groupby() iterator ( #1569 )
...
now becames exhausted after advancing the groupby iterator.
2017-09-24 13:36:11 +03:00
Serhiy Storchaka
b3a77964ea
bpo-27541: Reprs of subclasses of some classes now contain actual type name. ( #3631 )
...
Affected classes are bytearray, array, deque, defaultdict, count and repeat.
2017-09-21 14:24:13 +03:00
Serhiy Storchaka
4ab46d7949
bpo-31497: Add private helper _PyType_Name(). ( #3630 )
...
This function returns the last component of tp_name after a dot.
Returns tp_name itself if it doesn't contain a dot.
2017-09-17 21:11:04 +03:00
Serhiy Storchaka
6cca5c8459
bpo-30592: Fixed error messages for some builtins. ( #1996 )
...
Error messages when pass keyword arguments to some builtins that
don't support keyword arguments contained double parenthesis: "()()".
The regression was introduced by bpo-30534.
2017-06-08 14:41:19 +03:00
Will Roberts
0ecdc52514
bpo-30537: use PyNumber in itertools.islice instead of PyLong ( #1918 )
...
* bpo-30537: use PyNumber in itertools instead of PyLong
* bpo-30537: revert changes except to islice_new
* bpo-30537: test itertools.islice and add entry to Misc/NEWS
2017-06-07 23:03:04 -07:00
Serhiy Storchaka
bf623ae884
bpo-30061: Check if PyObject_Size()/PySequence_Size()/PyMapping_Size() ( #1096 )
...
raised an error.
Replace them with using concrete types API that never fails if appropriate.
2017-04-19 20:03:52 +03:00
T. Wouters
5466d4af5f
bpo-29942: Fix the use of recursion in itertools.chain.from_iterable. ( #889 )
...
Fix the use of recursion in itertools.chain.from_iterable. Using recursion
is unnecessary, and can easily cause stack overflows, especially when
building in low optimization modes or with Py_DEBUG enabled.
2017-03-30 09:58:35 -07:00
Serhiy Storchaka
ba85d69a3e
bpo-29878: Add global instances of int for 0 and 1. ( #852 )
2017-03-30 09:09:41 +03:00
Serhiy Storchaka
fff9a31a91
bpo-29865: Use PyXXX_GET_SIZE macros rather than Py_SIZE for concrete types. ( #748 )
2017-03-21 08:53:25 +02:00
Serhiy Storchaka
5ab81d787f
Issue #28959 : Added private macro PyDict_GET_SIZE for retrieving the size of dict.
2016-12-16 16:18:57 +02:00
Victor Stinner
de4ae3d486
Backed out changeset b9c9691c72c5
...
Issue #28858 : The change b9c9691c72c5 introduced a regression. It seems like
_PyObject_CallArg1() uses more stack memory than
PyObject_CallFunctionObjArgs().
2016-12-04 22:59:09 +01:00
Victor Stinner
27580c1fb5
Replace PyObject_CallFunctionObjArgs() with fastcall
...
* PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func)
* PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg)
PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires
extra work to "parse" C arguments to build a C array of PyObject*.
_PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate
memory on the C stack.
This change is part of the fastcall project. The change on listsort() is
related to the issue #23507 .
2016-12-01 14:43:22 +01:00
Serhiy Storchaka
8f0f205649
Issue #28322 : Fixed possible crashes when unpickle itertools objects from
...
incorrect pickle data. Based on patch by John Leitch.
2016-10-02 09:13:14 +03:00
Serhiy Storchaka
85c3f268f4
Issue #28322 : Fixed possible crashes when unpickle itertools objects from
...
incorrect pickle data. Based on patch by John Leitch.
2016-10-02 08:34:53 +03:00
Serhiy Storchaka
8f9cafad3d
Issue #28019 : itertools.count() no longer rounds non-integer step in range
...
between 1.0 and 2.0 to 1.
2016-09-10 09:53:51 +03:00
Serhiy Storchaka
8ddcf3abf7
Issue #28019 : itertools.count() no longer rounds non-integer step in range
...
between 1.0 and 2.0 to 1.
2016-09-10 09:49:24 +03:00
Martin Panter
8bde911115
Issue #27626 : Merge spelling fixes from 3.5
2016-07-28 01:30:58 +00:00
Martin Panter
eb9957065a
Issue #27626 : Spelling fixes in docs, comments and internal names
...
Based on patch by Ville Skyttä.
2016-07-28 01:11:04 +00:00
Serhiy Storchaka
b6a9c9761c
Issue #26778 : Fixed "a/an/and" typos in code comment, documentation and error
...
messages.
2016-04-17 09:39:28 +03:00