Serhiy Storchaka
d8e6bdc0d0
gh-135801: Add the module parameter to compile() etc (GH-139652)
...
Many functions related to compiling or parsing Python code, such as
compile(), ast.parse(), symtable.symtable(),
and importlib.abc.InspectLoader.source_to_code() now allow to pass
the module name used when filtering syntax warnings.
2025-11-13 13:21:32 +02:00
Mikhail Efimov
8706167474
gh-140576: Fixed crash produced by lexer in case of dedented zero byte ( #140583 )
2025-10-29 13:27:35 +00:00
Brian Schubert
3dab11f888
gh-138944: Fix SyntaxError message for invalid syntax following valid import-as statement ( #138945 )
2025-10-26 22:35:21 +00:00
sobolevn
92c0c45563
gh-138857: Improve error message for case outside of match ( #138858 )
...
* gh-138857: Improve error message for `case` outside of `match`
---------
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com >
2025-10-24 11:20:54 +02:00
Stan Ulbrych
95953b692d
gh-140471: Fix buffer overflow in AST node initialization with malformed _fields ( #140506 )
2025-10-23 15:35:21 +00:00
Bartosz Sławecki
b3b0d75069
gh-140253: Improve the syntax error from an ill-positioned double-star subpattern ( #140254 )
2025-10-22 21:29:14 +03:00
Maurycy Pawłowski-Wieroński
459d493ce3
gh-140149: Use PyBytesWriter in _build_concatenated_bytes() ( #140150 )
...
Use PyBytesWriter in action_helpers.c _build_concatenated_bytes().
3x faster bytes concat in the parser.
Co-authored-by: Victor Stinner <vstinner@python.org >
2025-10-16 19:24:34 +02:00
Serhiy Storchaka
5c942f11cd
gh-63161: Fix PEP 263 support (GH-139481)
...
* Support non-UTF-8 shebang and comments if non-UTF-8 encoding is specified.
* Detect decoding error in comments for UTF-8 encoding.
* Include the decoding error position for default encoding in SyntaxError.
2025-10-10 12:51:19 +00:00
Tomasz Pytel
539461d9ec
gh-139516: Fix lambda colon start format spec in f-string in tokenizer ( #139657 )
2025-10-07 17:28:15 +01:00
Christoph Walcher
4afa98596e
Remove unused prototype _PyPegen_set_source_in_metadata ( #138810 )
...
Remove unused prototype
2025-09-12 00:40:49 +00:00
sobolevn
cf8f36fe0a
gh-138716: Fix assert a := b syntax error message ( #138718 )
2025-09-10 16:05:16 +03:00
sobolevn
6bc65c30ff
gh-136616: Improve assert syntax error messages ( #136653 )
2025-09-09 23:26:22 +03:00
Pablo Galindo Salgado
4e08a9f97a
gh-137078: Fix keyword typo recognition when executed over files ( #137079 )
2025-08-15 15:14:13 +00:00
Peter Bierma
082f370cdd
gh-137514: Add a free-threading wrapper for mutexes (GH-137515)
...
Add `FT_MUTEX_LOCK`/`FT_MUTEX_UNLOCK`, which call `PyMutex_Lock` and `PyMutex_Unlock` on the free-threaded build, and no-op otherwise.
2025-08-07 11:24:50 -04:00
Pablo Galindo Salgado
0153d82a5a
gh-137314: Fix incorrect treatment of format specs in raw fstrings ( #137328 )
2025-08-03 17:10:51 +01:00
Dave Peck
c5e77af131
gh-132661: Disallow Template/str concatenation after PEP 750 spec update ( #135996 )
...
Co-authored-by: sobolevn <mail@sobolevn.me >
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com >
2025-07-21 08:44:26 +02:00
Pablo Galindo Salgado
ef66fb597b
gh-135148: Correctly handle f/t strings with comments and debug expressions ( #135198 )
2025-07-16 11:47:13 +02:00
sobolevn
7e33558455
gh-135422: Fix regression in SyntaxError messages after #134036 ( #135423 )
2025-06-30 21:52:26 +03:00
Dylan
fb9e292919
gh-129958: New syntax error in format spec applies to both f-strings and t-strings ( #135570 )
...
Co-authored-by: Tomas R. <tomas.roun8@gmail.com >
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com >
2025-06-26 15:02:50 +02:00
GiGaGon
c2bb3f9843
gh-135496: Fix f string exclamation mark error typo ( #135495 )
2025-06-14 00:40:42 -04:00
Pablo Galindo Salgado
ff2b5f40c2
gh-130077: Properly match full soft keywords in the parser ( #135317 )
2025-06-10 14:19:03 +01:00
Bénédikt Tran
754e7c9b51
gh-133157: remove usage of _Py_NO_SANITIZE_UNDEFINED in Parser/pegen.c ( #134048 )
2025-06-10 01:08:30 +01:00
sobolevn
0d9ccc87a2
gh-134036: Improve error messages for invalid raise statements ( #134077 )
2025-06-06 01:51:06 +01:00
Victor Stinner
6e80f11eb5
gh-135028: Increase parser MAXSTACK for nested parenthesis ( #135031 )
2025-06-03 08:40:45 +02:00
Victor Stinner
f49a07b531
gh-133968: Add PyUnicodeWriter_WriteASCII() function ( #133973 )
...
Replace most PyUnicodeWriter_WriteUTF8() calls with
PyUnicodeWriter_WriteASCII().
Unrelated change to please the linter: remove an unused
import in test_ctypes.
Co-authored-by: Peter Bierma <zintensitydev@gmail.com >
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com >
2025-05-29 14:54:30 +00:00
sobolevn
84914ad0e5
gh-133999: Fix except parsing regression in 3.14 ( #134035 )
2025-05-17 17:57:02 +03:00
Serhiy Storchaka
9f69a58623
gh-133767: Fix use-after-free in the unicode-escape decoder with an error handler (GH-129648)
...
If the error handler is used, a new bytes object is created to set as
the object attribute of UnicodeDecodeError, and that bytes object then
replaces the original data. A pointer to the decoded data will became invalid
after destroying that temporary bytes object. So we need other way to return
the first invalid escape from _PyUnicode_DecodeUnicodeEscapeInternal().
_PyBytes_DecodeEscape() does not have such issue, because it does not
use the error handlers registry, but it should be changed for compatibility
with _PyUnicode_DecodeUnicodeEscapeInternal().
2025-05-12 20:42:23 +03:00
Jelle Zijlstra
7dddb4e667
gh-133783: Fix __replace__ on AST nodes for optional attributes ( #133797 )
2025-05-10 09:17:38 -07:00
Stan Ulbrych
dbca27cfca
gh-133379: Fix misuse of the term "arguments" in error messages (GH-133382)
...
The right term is "parameters".
2025-05-10 15:00:43 +03:00
TERESH1
d9b0b07098
gh-133516: Raise ValueError when constants True, False or None are used as an identifier after NFKC normalization ( #133523 )
2025-05-07 19:11:25 +01:00
Jelle Zijlstra
483d130e50
gh-131421: Fix ASDL tests ( #133408 )
...
PR #131419 broke this, but we failed to run tests on the PR due to a bug
in our script.
2025-05-04 23:46:21 +00:00
Samuel
30840706b0
gh-131421: fix ASDL grammar for Dict to have an expr?* keys field ( #131419 )
...
In the `ast` documentation for Python:
* https://docs.python.org/3/library/ast.html#ast.Dict
it is made clear that:
> When doing dictionary unpacking using dictionary literals the expression to be expanded goes in the values list, with a `None` at the corresponding position in `keys`.
Hence, `keys` is really a `expr?*` and *not* a `expr*`.
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com >
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com >
2025-05-04 16:03:38 -07:00
sobolevn
ca0a96dfaa
gh-133194: Fix regression with PEP 758 parsing on older feature_version ( #133289 )
...
gh-133192: Fix regression with PEP 758 parsing on older `feature_version`
2025-05-03 10:33:14 +03:00
sobolevn
1e9cc3d502
gh-133197: Improve error message for incompatible string / bytes prefixes ( #133242 )
2025-05-02 14:28:17 +03:00
sobolevn
a6ddd078d0
gh-123539: Improve SyntaxError msg for import as with not a name ( #123629 )
2025-05-02 08:34:13 +00:00
sobolevn
5cdd49b3f4
gh-133196: Guard PEP 750 grammar with CHECK_VERSION ( #133225 )
2025-05-01 09:17:07 +02:00
sobolevn
b451516aa6
gh-133197: Improve error message for ft"" and bt"" cases ( #133202 )
2025-04-30 19:20:44 +03:00
sobolevn
b1f893875b
gh-133194: Add CHECK_VERSION to new PEP758 grammar ( #133195 )
2025-04-30 13:39:26 +03:00
Lysandros Nikolaou
60202609a2
gh-132661: Implement PEP 750 ( #132662 )
...
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com >
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com >
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com >
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com >
Co-authored-by: Wingy <git@wingysam.xyz >
Co-authored-by: Koudai Aono <koxudaxi@gmail.com >
Co-authored-by: Dave Peck <davepeck@gmail.com >
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu >
Co-authored-by: Paul Everitt <pauleveritt@me.com >
Co-authored-by: sobolevn <mail@sobolevn.me >
2025-04-30 11:46:41 +02:00
Steele Farnsworth
99b71efe8e
gh-129858: Special syntax error for elif block after else ( #129902 )
2025-04-25 01:25:48 +00:00
Pablo Galindo Salgado
bf3a0a1c0f
gh-132449: Improve syntax error messages for keywords with typos ( #132450 )
...
Signed-off-by: Pablo Galindo <pablogsal@gmail.com >
Co-authored-by: Łukasz Langa <lukasz@langa.pl >
2025-04-22 11:01:55 +02:00
sobolevn
ea8ec95cfa
gh-132769: Refactor possible read-out-of-bounds in lexer.c ( #132770 )
2025-04-21 18:48:48 +01:00
Pablo Galindo Salgado
2f8b08da47
gh-129958: Properly disallow newlines in format specs in single-quoted f-strings (GH-130063)
2025-04-18 14:30:04 +02:00
Chris Eibl
e94d168473
GH-131296: fix clang-cl warning on Windows in pegen.h ( #131584 )
2025-04-15 17:01:42 +01:00
Pablo Galindo Salgado
c2ac662f28
gh-131831: Implement PEP 758 – Allow except and except* expressions without parentheses ( #131833 )
2025-04-01 19:04:56 +00:00
Victor Stinner
3796884528
gh-111178: Skip undefined behavior checks in _PyPegen_lookahead() ( #131714 )
...
For example, expression_rule() return type is 'expr_ty', whereas
_PyPegen_lookahead() uses 'void*'.
2025-03-27 10:03:58 +01:00
rialbat
2c686a9ac2
gh-131762: Fixed dereferencing the pointer 'parser_token->metadata' with a NULL value ( #131764 )
2025-03-26 18:44:56 +00:00
Victor Stinner
b69da006a4
gh-131238: Remove includes from pycore_interp.h ( #131495 )
...
Remove also now unused includes in C files.
2025-03-20 11:35:23 +00:00
Victor Stinner
344f3c3fd4
gh-131238: Remove pycore_lock.h includes ( #131483 )
...
PyMutex type is now part of <Python.h>, it's no longer needed to
include <pycore_lock.h> to get it.
2025-03-19 23:46:25 +00:00
Victor Stinner
4b54031323
gh-131238: Remove pycore_runtime.h from pycore_pystate.h ( #131356 )
...
* Remove includes from pycore_pystate.h:
* pycore_runtime_structs.h
* pycore_runtime.h
* pycore_tstate.h
* pycore_interp.h
* Reorganize internal headers. Move _gc_thread_state from
pycore_interp_structs.h to pycore_tstate.h.
* Add 3 new header files to PCbuild/pythoncore.vcxproj.
2025-03-19 17:33:24 +01:00