Serhiy Storchaka
1741441649
Issue #29029 : Speed up processing positional arguments in
...
PyArg_ParseTupleAndKeywords(), _PyArg_ParseTupleAndKeywordsFast() and like.
2017-01-17 10:07:25 +02:00
Victor Stinner
fe54dd8a08
Add _PyArg_UnpackStack() function helper
...
Issue #29286 .
2017-01-17 02:33:55 +01:00
Victor Stinner
29d39cc8f5
Add _PyArg_NoStackKeywords() helper function
...
Issue #29286 . Similar to _PyArg_NoKeywords(), but expects a tuple of keyword
names, instead of a dict.
2017-01-17 01:40:01 +01:00
Victor Stinner
6518a93cb1
Add _PyArg_ParseStack() helper function
...
Issue #29286 . Function similar to PyArg_ParseTuple(), but uses a C array of
PyObject* to pass arguments. Don't support the compatibility mode.
2017-01-17 01:29:49 +01:00
Victor Stinner
3e1fad6913
Rename _PyArg_ParseStack to _PyArg_ParseStackAndKeywords
...
Issue #29286 .
2017-01-17 01:29:01 +01:00
Victor Stinner
c0083fc47d
Rename keywords to kwargs in getargs.c
...
Issue #29029 . Patch written by Serhiy Storchaka.
2017-01-17 00:37:42 +01:00
Victor Stinner
80ab22fa2c
Cleanup getargs.c
...
Factorize argument checks in:
* vgetargskeywordsfast()
* vgetargskeywordsfast_impl()
2017-01-16 23:16:47 +01: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
Serhiy Storchaka
460bd0d284
Issue #19569 : Compiler warnings are now emitted if use most of deprecated
...
functions.
2016-11-20 12:16:46 +02:00
Serhiy Storchaka
85b0f5beb1
Added the const qualifier to char* variables that refer to readonly internal
...
UTF-8 represenatation of Unicode objects.
2016-11-20 10:16:47 +02:00
Serhiy Storchaka
3b73ea1278
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:19:20 +02:00
Serhiy Storchaka
f4934ea77d
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:17:58 +02:00
Christian Heimes
2f2fee19ec
va_end() all va_copy()ed va_lists.
2016-09-21 11:37:27 +02:00
Benjamin Peterson
0c21214f3e
replace usage of Py_VA_COPY with the (C99) standard va_copy
2016-09-20 20:39:33 -07:00
Benjamin Peterson
4eef505064
Backed out changeset 3934e070c9db
2016-09-10 17:04:36 -07:00
Victor Stinner
c7454ff5fc
Issue #27810 : Fix getargs.c compilation on Windows
2016-09-09 20:56:52 -07:00
Benjamin Peterson
819a46f33a
fix export of size_t parse stack function
2016-09-09 20:45:06 -07:00
Victor Stinner
f0ccbbbc57
Emit METH_FASTCALL code in Argument Clinic
...
Issue #27810 :
* Modify vgetargskeywordsfast() to work on a C array of PyObject* rather than
working on a tuple directly.
* Add _PyArg_ParseStack()
* Argument Clinic now emits code using the new METH_FASTCALL calling convention
2016-09-09 17:40:38 -07:00
Victor Stinner
a9efb2f56e
Add METH_FASTCALL calling convention
...
Issue #27810 : Add a new calling convention for C functions:
PyObject* func(PyObject *self, PyObject **args,
Py_ssize_t nargs, PyObject *kwnames);
Where args is a C array of positional arguments followed by values of keyword
arguments. nargs is the number of positional arguments, kwnames are keys of
keyword arguments. kwnames can be NULL.
2016-09-09 17:40:22 -07:00
Benjamin Peterson
af580dff4a
replace PY_LONG_LONG with long long
2016-09-06 10:46:49 -07:00
Benjamin Peterson
ed4aa83ff7
require a long long data type ( closes #27961 )
2016-09-05 17:44:18 -07:00
Serhiy Storchaka
9171a8b4ce
Issue #27574 : Decreased an overhead of parsing keyword arguments in functions
...
implemented with using Argument Clinic.
2016-08-14 10:52:18 +03:00
Serhiy Storchaka
f41b82fb19
Issue #26282 : PyArg_ParseTupleAndKeywords() and Argument Clinic now support
...
positional-only and keyword parameters in the same function.
2016-06-09 16:30:29 +03:00
Serhiy Storchaka
21a663ea28
Issue #26057 : Got rid of nonneeded use of PyUnicode_FromObject().
2016-04-13 15:37:23 +03:00
Raymond Hettinger
942302371c
Minor code cleanup for PyArg_UnpackTuple.
2016-03-26 03:02:48 -07:00
Serhiy Storchaka
a9725f86a9
Issue #26312 : SystemError is now raised in all programming bugs with using
...
PyArg_ParseTupleAndKeywords(). RuntimeError did raised before in some
programming bugs.
2016-02-11 12:41:40 +02:00
Serhiy Storchaka
4cd63ef67a
Issue #26198 : ValueError is now raised instead of TypeError on buffer
...
overflow in parsing "es#" and "et#" format units. SystemError is now raised
instead of TypeError on programmical error in parsing format string.
2016-02-08 01:22:47 +02:00
Serhiy Storchaka
3e17c788a8
Issue #26198 : Fixed error messages for some argument parsing errors.
2016-02-08 01:20:21 +02:00
Serhiy Storchaka
c4b813d05d
Issue #26198 : Fixed error messages for some argument parsing errors.
...
Fixed the documented about buffer overflow error for "es#" and "et#" format
units.
2016-02-08 01:06:11 +02:00
Serhiy Storchaka
ef1585eb9a
Issue #25923 : Added more const qualifiers to signatures of static and private functions.
2015-12-25 20:01:53 +02:00
Serhiy Storchaka
db46fea8b6
Fixed error message for the "u#" format code.
2015-04-19 21:13:00 +03:00
Serhiy Storchaka
d6e53dab86
Fixed error message for the "u#" format code.
2015-04-19 21:11:30 +03:00
Serhiy Storchaka
92bf919ed0
Issue #22581 : Use more "bytes-like object" throughout the docs and comments.
2014-12-05 22:26:10 +02:00
Serhiy Storchaka
b757c83ec6
Issue #22581 : Use more "bytes-like object" throughout the docs and comments.
2014-12-05 22:25:22 +02:00
R David Murray
861470c836
#16518 : Bring error messages in harmony with docs ("bytes-like object")
...
Some time ago we changed the docs to consistently use the term 'bytes-like
object' in all the contexts where bytes, bytearray, memoryview, etc are used.
This patch (by Ezio Melotti) completes that work by changing the error
messages that previously reported that certain types did "not support the
buffer interface" to instead say that a bytes-like object is required. (The
glossary entry for bytes-like object references the discussion of the buffer
protocol in the docs.)
2014-10-05 11:47:01 -04:00
Serhiy Storchaka
d8a1447c99
Issue #22215 : Now ValueError is raised instead of TypeError when str or bytes
...
argument contains not permitted null character or byte.
2014-09-06 20:07:17 +03:00
Victor Stinner
98ea54c35c
Issue #22156 : Fix "comparison between signed and unsigned integers" compiler
...
warnings in the Python/ subdirectory.
2014-08-15 23:30:40 +02:00
Benjamin Peterson
40be9e5100
remove dynamic initializer lists for c89 compliance ( closes #20595 )
2014-02-11 10:09:27 -05:00
Larry Hastings
b7ccb20423
Issue #20294 : Argument Clinic now supports argument parsing for __new__ and
...
__init__ functions.
2014-01-18 23:50:21 -08:00
Victor Stinner
cb29ec5f74
PY_FORMAT_SIZE_T should not be used with PyErr_Format(), PyErr_Format("%zd") is
...
portable
2013-11-18 02:05:31 +01:00
Victor Stinner
74387f5cac
Use Py_ssize_t type for sizes in getargs.c
...
Fix compiler warnings on Windows 64-bit
2013-11-18 01:21:12 +01:00
Victor Stinner
79ed4c744a
remove an outdated comment
...
The comment is meaningless since changeset 4e985a96a612.
2013-11-07 00:53:56 +01:00
Georg Brandl
142ad666dc
Re #18521 : move array bounds check before array access.
2013-10-14 07:01:11 +02:00
Victor Stinner
9550ef30e3
Issue #9566 : Fix compilater warnings on Windows 64-bit
2013-06-05 01:18:13 +02:00
Richard Oudkerk
25296ce5de
Use PY_FORMAT_SIZE_T because Visual Studio does not understand %zd format.
2013-05-18 17:35:19 +01:00
Victor Stinner
84bb1cf994
Fix compilater warnings on Windows 64-bit
2013-05-17 00:12:04 +02:00
Antoine Pitrou
7056cb2867
Issue #17170 : speed up PyArg_ParseTuple[AndKeywords] a bit.
2013-02-17 01:04:57 +01:00
Antoine Pitrou
c73c561181
Issue #17173 : Remove uses of locale-dependent C functions (isalpha() etc.) in the interpreter.
...
I've left a couple of them in: zlib (third-party lib), getaddrinfo.c
(doesn't include Python.h, and probably obsolete), _sre.c (legitimate
use for the re.LOCALE flag), mpdecimal (needs to build without Python.h).
2013-02-09 23:14:42 +01:00
Antoine Pitrou
4de7457009
Issue #17173 : Remove uses of locale-dependent C functions (isalpha() etc.) in the interpreter.
...
I've left a couple of them in: zlib (third-party lib), getaddrinfo.c
(doesn't include Python.h, and probably obsolete), _sre.c (legitimate
use for the re.LOCALE flag).
2013-02-09 23:11:27 +01:00
Christian Heimes
879329d66e
Added missing va_end in error branch of PyArg_UnpackTuple(). CID 486641
2012-09-10 13:17:23 +02:00
Christian Heimes
48d8d21438
Added missing va_end in error branch of PyArg_UnpackTuple(). CID 486641
2012-09-10 13:16:45 +02:00
Victor Stinner
a1b0c9fc4d
PyArg_Parse*("U"): ensure that the Unicode string is ready
2012-05-29 12:30:29 +02:00
Larry Hastings
a34790104c
Issue #14746 : Remove redundant paragraphs from skipitem() in Python/getargs.c.
2012-05-08 23:52:03 -07:00
Larry Hastings
d3f424fe45
Merge from 3.2. Issue #14749 : Add support for 'Z' to skipitem().
2012-05-08 03:54:05 -07:00
Larry Hastings
d9e4a414d7
Issue #14749 : Add support for 'Z' to skipitem() in Python/getargs.c.
2012-05-08 03:51:18 -07:00
Larry Hastings
10ba07a39e
Issue #14705 : Added support for the new 'p' format unit to skipitem().
2012-05-07 02:44:50 -07:00
Larry Hastings
faf91e75ab
Issue #14705 : Add 'p' format character to PyArg_ParseTuple* for bool support.
2012-05-05 16:54:29 -07:00
Larry Hastings
83a9f48699
Issue #14328 : Add keyword-only parameters to PyArg_ParseTupleAndKeywords.
...
They're optional-only for now (unlike in pure Python) but that's all
I needed. The syntax can easily be relaxed if we want to support
required keyword-only arguments for extension types in the future.
2012-03-20 20:06:16 +00:00
Benjamin Peterson
01feaecbfa
plug memory leak ( closes #14325 )
2012-03-16 13:25:58 -05:00
Benjamin Peterson
eb74918685
kill capsule names that we don't need anymore
2012-03-16 12:24:01 -05:00
Benjamin Peterson
f7c132158d
use memory macros
2012-03-16 12:23:39 -05:00
Benjamin Peterson
7ed67270a8
check result of PyMem_New
2012-03-16 12:21:02 -05:00
Jean-Paul Calderone
c961b4abaa
Issue #14325 : Stop using python lists, capsules, and the garbage collector to deal with PyArg_Parse* cleanup.
2012-03-16 08:51:42 -04:00
Victor Stinner
9d663d0788
convertsimple(): "str without bytes" => "str without characters"
2011-10-13 23:25:03 +02:00
Victor Stinner
beac78bb24
Use PyUnicode_AsUnicodeAndSize() instead of PyUnicode_GET_SIZE()
2011-10-11 21:55:01 +02:00
Victor Stinner
e1335c711c
Fix usage og PyUnicode_READY()
2011-10-04 20:53:03 +02:00
Martin v. Löwis
d63a3b8beb
Implement PEP 393.
2011-09-28 07:41:54 +02:00
Eli Bendersky
906b88fb2a
Issue #12380 : PyArg_ParseTuple now accepts a bytearray for the 'c' format.
...
As a side effect, this now allows the rjust, ljust and center methods of
bytes and bytearray to accept a bytearray argument.
Patch by Petri Lehtinen
2011-07-29 07:05:08 +03:00
Victor Stinner
6ced7c4333
Issue #10833 : Use PyErr_Format() and PyUnicode_FromFormat() instead of
...
PyOS_snprintf() to avoid temporary buffer allocated on the stack and a
conversion from bytes to Unicode.
2011-03-21 18:15:42 +01:00
Victor Stinner
f3fd733f92
Remove useless argument of _PyUnicode_AsDefaultEncodedString()
2011-03-02 01:03:11 +00:00
Brett Cannon
b94767ff44
Issue #8914 : fix various warnings from the Clang static analyzer v254.
2011-02-22 20:15:44 +00:00
Victor Stinner
6ab8e8298e
Issue #8992 : convertsimple() doesn't need to fill msgbuf if an error occurred
...
Return msgbug on error is enough.
2011-01-04 11:16:49 +00:00
Victor Stinner
a093d0d6a9
Issue #8992 : Simplify addcleanup() API
...
Don't need to handle unknown destructor anymore.
2011-01-04 11:16:48 +00:00
Victor Stinner
b3c9e073fc
Issue #8651 : PyArg_Parse*() functions raise an OverflowError if the file
...
doesn't have PY_SSIZE_T_CLEAN define and the size doesn't fit in an int
(length bigger than 2^31-1).
2011-01-04 02:07:34 +00:00
Benjamin Peterson
f609654b0e
handle dict subclasses gracefully in PyArg_ValidateKeywordArguments
2010-11-17 22:33:12 +00:00
Alexander Belopolsky
f0f45142d5
Issue #2443 : Added a new macro, Py_VA_COPY, which is equivalent to C99
...
va_copy, but available on all python platforms. Untabified a few
unrelated files.
2010-08-11 17:31:17 +00:00
Victor Stinner
8182b717db
Issue #8991 : convertbuffer() rejects discontigious buffers
2010-07-28 00:40:58 +00:00
Victor Stinner
25e8ec4724
Issue #8850 : Remove "w" and "w#" formats from PyArg_Parse*() functions, use
...
"w*" format instead. Add tests for "w*" format.
2010-06-25 00:02:38 +00:00
Victor Stinner
21e09487ac
getbuffer(): release the buffer on error (if the buffer is not contiguous)
2010-06-24 22:57:10 +00:00
Victor Stinner
3c9e6e9375
PyArg_Parse*() functions: factorize code for s/z and u/Z formats
2010-06-24 22:31:12 +00:00
Victor Stinner
4aae1ebab2
Issue #8949 : "z" format of PyArg_Parse*() functions doesn't accept bytes
...
objects, as described in the documentation.
2010-06-24 22:08:25 +00:00
Victor Stinner
510b6227a7
getargs.c: remove last reference to "t#" format
...
"t#" format was removed from convertitem() (convertsimple) but not skipitem().
2010-06-13 20:31:26 +00:00
Victor Stinner
06e49dd029
Issue #8592 : PyArg_Parse*() functions raise a TypeError for "y", "u" and "Z"
...
formats if the string contains a null byte/character. Write unit tests for
string formats.
2010-06-13 18:21:50 +00:00
Mark Dickinson
c73013127b
Issue #8950 : Make PyArg_Parse* with 'L' code raise for float inputs,
...
instead of warning. This makes it consistent with the other integer
codes.
2010-06-10 16:05:10 +00:00
Victor Stinner
3dcb5acdb0
Issue #8838 , #8339 : Remove codecs.charbuffer_encode() and "t#" parsing format
...
Remove last references to the "char buffer" of the buffer protocol from
Python3.
2010-06-08 22:54:19 +00:00
Victor Stinner
5216e6d598
PyArg_Parse*("Z#") raises an error for unknown type
...
instead of ignoring the error and leave the pointer to the string and the size
unchanged (not initialized).
Fix also the type in the error message of "Z", "Z#" and "Y" formats.
2010-06-08 21:45:51 +00:00
Victor Stinner
2872e5b1f8
convertsimple(): call PyErr_NoMemory() on PyMem_NEW() failure
...
Raise a more revelant error (MemoryError instead of TypeError)
2010-06-06 20:38:02 +00:00
Victor Stinner
5cb6239f00
Simplify getbuffer(): convertbuffer() fails anyway if bf_getbuffer is NULL
2010-06-06 20:27:51 +00:00
Victor Stinner
43fb0097f3
Remove dead code
2010-05-29 00:13:06 +00:00
Victor Stinner
33109a142b
Issue #8837 : Remove "O?" format of PyArg_Parse*() functions. The format is no
...
used anymore and it was never documented.
2010-05-28 21:55:10 +00:00
Victor Stinner
93b5513cf1
Issue #6697 : Fix a crash if a keyword contains a surrogate
2010-05-19 00:54:06 +00:00
Antoine Pitrou
f95a1b3c53
Recorded merge of revisions 81029 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
2010-05-09 15:52:27 +00:00
Benjamin Peterson
fb88636199
prevent the dict constructor from accepting non-string keyword args #8419
...
This adds PyArg_ValidateKeywordArguments, which checks that keyword arguments
are all strings, using an optimized method if possible.
2010-04-24 18:21:17 +00:00
Antoine Pitrou
f96b78437b
Merged revisions 79837 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r79837 | antoine.pitrou | 2010-04-06 17:38:25 +0200 (mar., 06 avril 2010) | 19 lines
14 years later, we still don't know what it's for.
Spotted by the PyPy developers.
Original commit is:
branch: trunk
user: guido
date: Mon Aug 19 21:32:04 1996 +0200
files: Python/getargs.c
description:
[svn r6499] Support for keyword arguments (PyArg_ParseTupleAndKeywords) donated by
Geoff Philbrick <philbric@delphi.hks.com> (slightly changed by me).
Also a little change to make the file acceptable to K&R C compilers
(HPUX, SunOS 4.x).
........
2010-04-06 16:01:57 +00:00
Mark Dickinson
de60401909
Merged revisions 77218 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77218 | mark.dickinson | 2010-01-01 17:27:30 +0000 (Fri, 01 Jan 2010) | 5 lines
Issue #5080 : turn the DeprecationWarning from float arguments passed
to integer PyArg_Parse* format codes into a TypeError. Add a
DeprecationWarning for floats passed with the 'L' format code, which
didn't previously have a warning.
........
2010-01-01 19:27:32 +00:00
Mark Dickinson
f08173bb93
Issue #7414 : Add missing 'case 'C'' to skipitem() in getargs.c. This
...
was causing PyArg_ParseTupleAndKeywords(args, kwargs, "|CC", ...) to
fail with a RuntimeError. Thanks Case Van Horsen for tracking down
the source of this error.
2009-12-03 10:59:46 +00:00
Skip Montanaro
ba1e0f46ab
Issue 7147 - remove ability to attempt to build Python without complex number support (was broken anyway)
2009-10-18 14:25:35 +00:00
Sean Reifscheider
642d96a647
- Issue #6624 : yArg_ParseTuple with "s" format when parsing argument with
...
NUL: Bogus TypeError detail string.
2009-08-01 23:55:06 +00:00
Martin v. Löwis
c15bdef819
Issue #6012 : Add cleanup support to O& argument parsing.
2009-05-29 14:47:46 +00:00
Benjamin Peterson
b173f7853e
add a replacement API for PyCObject, PyCapsule #5630
...
All stdlib modules with C-APIs now use this.
Patch by Larry Hastings
2009-05-05 22:31:58 +00:00