Jelle Zijlstra
9e0b11eb21
annotations: expand documentation on "simple" assignment targets ( #120535 )
...
This behavior is rather surprising and it was not clearly specified.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-06-15 15:18:16 +00:00
Batuhan Taskaya
d065edfb66
gh-60191: Implement ast.compare ( #19211 )
...
* bpo-15987: Implement ast.compare
Add a compare() function that compares two ASTs for structural equality. There are two set of attributes on AST node objects, fields and attributes. The fields are always compared, since they represent the actual structure of the code. The attributes can be optionally be included in the comparison. Attributes capture things like line numbers of column offsets, so comparing them involves test whether the layout of the program text is the same. Since whitespace seems inessential for comparing ASTs, the default is to compare fields but not attributes.
ASTs are just Python objects that can be modified in arbitrary ways. The API for ASTs is under-specified in the presence of user modifications to objects. The comparison respects modifications to fields and attributes, and to _fields and _attributes attributes. A user could create obviously malformed objects, and the code will probably fail with an AttributeError when that happens. (For example, adding "spam" to _fields but not adding a "spam" attribute to the object.)
Co-authored-by: Jeremy Hylton <jeremy@alum.mit.edu>
2024-05-22 01:39:26 +00:00
Jelle Zijlstra
68fbc00dc8
gh-118851: Default ctx arguments to AST constructors to Load() ( #118854 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-05-09 15:30:14 -07:00
Ned Batchelder
bcb435ee8f
docs: module page titles should not start with a link to themselves ( #117099 )
2024-05-08 20:34:40 +01:00
Jelle Zijlstra
e0422198fb
gh-117486: Improve behavior for user-defined AST subclasses ( #118212 )
...
Now, such classes will no longer require changes in Python 3.13 in the normal case.
The test suite for robotframework passes with no DeprecationWarnings under this PR.
I also added a new DeprecationWarning for the case where `_field_types` exists
but is incomplete, since that seems likely to indicate a user mistake.
2024-05-06 15:57:27 -07:00
Jelle Zijlstra
ca269e58c2
gh-116126: Implement PEP 696 ( #116129 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2024-05-03 06:17:32 -07:00
Nikita Sobolev
692e902c74
gh-116023: Add `show_empty=False` to `ast.dump` ( #116037 )
...
Co-authored-by: Carl Meyer <carl@oddbird.net>
2024-04-24 11:02:38 +03:00
Nikita Sobolev
2aa11cca11
gh-118100: Improve links in `ast.rst` ( #118101 )
...
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-04-19 21:25:54 +03:00
Shantanu
c04a981ff4
Fix rendering of null character in ast.rst ( #116080 )
2024-02-29 14:09:06 -08:00
Shantanu
bea2795be2
gh-115881: Document feature_version limitations ( #115980 )
2024-02-29 11:09:09 +00:00
Jelle Zijlstra
ed4dfd8825
gh-105858: Improve AST node constructors ( #105880 )
...
Demonstration:
>>> ast.FunctionDef.__annotations__
{'name': <class 'str'>, 'args': <class 'ast.arguments'>, 'body': list[ast.stmt], 'decorator_list': list[ast.expr], 'returns': ast.expr | None, 'type_comment': str | None, 'type_params': list[ast.type_param]}
>>> ast.FunctionDef()
<stdin>:1: DeprecationWarning: FunctionDef.__init__ missing 1 required positional argument: 'name'. This will become an error in Python 3.15.
<stdin>:1: DeprecationWarning: FunctionDef.__init__ missing 1 required positional argument: 'args'. This will become an error in Python 3.15.
<ast.FunctionDef object at 0x101959460>
>>> node = ast.FunctionDef(name="foo", args=ast.arguments())
>>> node.decorator_list
[]
>>> ast.FunctionDef(whatever="you want", name="x", args=ast.arguments())
<stdin>:1: DeprecationWarning: FunctionDef.__init__ got an unexpected keyword argument 'whatever'. Support for arbitrary keyword arguments is deprecated and will be removed in Python 3.15.
<ast.FunctionDef object at 0x1019581f0>
2024-02-27 18:13:03 -08:00
Hugo van Kemenade
76bef3832b
gh-101100: Fix Sphinx warnings in `library/ast.rst` ( #113289 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-12-19 15:44:57 +00:00
dreamflow
59f0766ae5
gh-108113: [docs] mention PyCF_OPTIMIZED_AST in ast Compiler Flags ( #113241 )
2023-12-18 16:14:15 +00:00
Adam Turner
77e9aae383
Docs: Avoid the deprecated ``.. cmdoption::`` directive ( #110292 )
2023-10-03 17:38:12 +00:00
Shantanu
74fc96bc60
Add version directives to ast docs ( #108788 )
2023-09-07 11:34:18 -07:00
Alex Povel
c1e2f3b2f7
`ast` docs: Fix incorrect link on `keyword` ( #108728 )
...
In two places, Sphinx was erroneously adding links to the `keyword` module instead of the `ast.keyword` class
2023-08-31 23:17:32 +01:00
Irit Katriel
10a91d7e98
gh-108113: Make it possible to create an optimized AST ( #108154 )
2023-08-21 16:31:30 +00:00
Pablo Galindo Salgado
da8f87b7ea
gh-107015: Remove async_hacks from the tokenizer ( #107018 )
2023-07-26 16:34:15 +01:00
Nikita Sobolev
33608fd67d
gh-92788: Add docs for `ast.Module`, `ast.Expression`, and others ( #101055 )
2023-06-27 06:43:49 -07:00
Alex Waygood
c8c1e73d95
gh-103921: Minor PEP-695 fixes to the `ast` module docs ( #105093 )
2023-05-30 09:19:10 -07:00
Jelle Zijlstra
060277d96b
gh-103921: Document PEP 695 ( #104642 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-05-26 10:48:17 -07:00
Shaygan Hooshyari
61c1d6760f
gh-104984: remove kwargs and starargs from Call & ClassDef ( #104986 )
...
These fields are removed in 025e9ebd0a
2023-05-26 10:43:58 -06:00
Jelle Zijlstra
ba73473f4c
gh-104799: Move location of type_params AST fields ( #104828 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-05-26 05:54:37 -07:00
Jelle Zijlstra
a5f244d627
gh-104656: Rename typeparams AST node to type_params ( #104657 )
2023-05-21 21:25:09 -07:00
Jelle Zijlstra
24d8b88420
gh-103763: Implement PEP 695 ( #103764 )
...
This implements PEP 695, Type Parameter Syntax. It adds support for:
- Generic functions (def func[T](): ...)
- Generic classes (class X[T](): ...)
- Type aliases (type X = ...)
- New scoping when the new syntax is used within a class body
- Compiler and interpreter changes to support the new syntax and scoping rules
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: Eric Traut <eric@traut.com>
Co-authored-by: Larry Hastings <larry@hastings.org>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-05-15 20:36:23 -07:00
Gregory P. Smith
8baef8ae36
gh-95588: Drop the safety claim from `ast.literal_eval` docs. ( #95919 )
...
It was never really safe and this claim conflicts directly with the big warning in the docs about it being able to crash the interpreter.
2022-10-01 17:55:40 -07:00
Serhiy Storchaka
dd53b79de0
gh-96959: Update more HTTP links (GH-97536)
...
Use HTTPS for documents which are available by both HTTP and HTTPS
links, but there is no redirection from HTTP to HTTPS or vice versa.
2022-09-27 14:08:11 +03:00
Terry Jan Reedy
a25a803c4c
Fix incorrect double indent in ast doc ( #94976 )
...
Warning directive indent was 4 rather than 3 spaces.
2022-07-18 13:24:18 -04:00
Terry Jan Reedy
7b617be4ab
In ast doc, update 'below' to 'above' ( #94967 )
...
The included asdl file was moved from 'below' to 'above' in 3.9.
2022-07-18 12:38:52 -04:00
anilbey
16b6e14cc2
gh-94698: add Subscript and Attribute targets to ast.for documentation (GH-94901)
...
### Summary
Add Attribute and Subscript as possible targets for the "ast for loop documentation".
Automerge-Triggered-By: GH:isidentical
2022-07-16 04:26:43 -07:00
Hugo van Kemenade
6881ea936e
bpo-47126: Update to canonical PEP URLs specified by PEP 676 (GH-32124)
2022-03-30 12:00:27 +01:00
Irit Katriel
d60457a667
bpo-45292: [PEP-654] add except* (GH-29581)
2021-12-14 16:48:15 +00:00
Christian Clauss
241bda785a
[doc] Fix typos found using codespell (GH-28744)
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-10-05 23:48:44 +02:00
Raymond Hettinger
db91b058d5
bpo-45346: Keep docs consistent regarding true and false values (GH-28697)
2021-10-02 13:48:08 -05:00
Pablo Galindo Salgado
e6d05a4092
bpo-30637: Improve the docs of ast.parse regarding differences with compile() (GH-28459)
2021-09-19 23:44:51 +01:00
Noah Kantrowitz
be42c06bb0
Update URLs in comments and metadata to use HTTPS (GH-27458)
2021-07-30 15:54:46 +02:00
HaeckelK
6b61d74a3b
Fix typo in ast.rst (GH-27449)
...
Co-authored-by: HaeckelK <haeckelk.github@gmail.com>
2021-07-29 19:15:35 +02:00
Nick Coghlan
1e7b858575
bpo-43892: Make match patterns explicit in the AST (GH-25585)
...
Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
2021-04-28 22:58:44 -07:00
Zackery Spytz
f2b45367f1
Fix some minor errors in the docs (GH-24834)
2021-03-13 17:00:28 -08:00
Adrian Freund
0a30f0e934
Fix error in documentation for ast.match_case (GH-24807)
2021-03-10 07:58:31 -08:00
Pablo Galindo
62e3b6370c
Add an attribution to the Green Tree Snakes in the AST docs (GH-24727)
2021-03-03 18:25:41 +00:00
Pablo Galindo
a8e2615aa8
bpo-42128: Add documentation for the new match-based AST nodes (GH-24673)
...
* bpo-42128: Add documentation for the new match-based AST nodes
* Update Doc/library/ast.rst
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
* Fix trailing whitespace
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
2021-02-28 18:08:37 -08:00
Batuhan Taskaya
fbc7723778
bpo-39159: Declare error that might be raised from literal_eval (GH-19899)
2020-12-21 16:15:40 -08:00
Matthew Suozzo
bffb137cb5
Fix incorrect links in ast docs (GH-23017)
2020-11-03 23:28:42 +02:00
Batuhan Taskaya
b37c994e5a
bpo-42086: Document AST operator nodes acts as a singleton (GH-22896)
...
Automerge-Triggered-By: GH:gvanrossum
2020-10-22 09:02:43 -07:00
Batuhan Taskaya
155938907c
bpo-40484: Document compiler flags under AST module (GH-19885)
...
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Co-authored-by: Shantanu <hauntsaninja@users.noreply.github.com>
2020-10-19 02:14:11 +01:00
Batuhan Taskaya
e799aa8b92
bpo-41887: omit leading spaces/tabs on ast.literal_eval ( #22469 )
...
Also document that eval() does this (the same way).
2020-10-03 17:46:44 -07:00
Edward K. Ream
e3c971ccfa
Add links to asttokens, leoAst, LibCST and parso to ast docs (GH-21773)
2020-08-11 07:07:49 -07:00
Batuhan Taskaya
8df1016e2e
bpo-38870: Extend subject of ast.unparse warnings (GH-21053)
...
- Mention that some compiler optimizations might not roundtrip
exactly (such as constant tuples and frozensets).
- Add a warning about it might raise RecursionError on very
complex expressions due to recursive unparsing aspect of ast.unparse
2020-06-28 02:11:43 +01:00
Batuhan Taskaya
b7a78ca74a
bpo-40517: Implement syntax highlighting support for ASDL (GH-19967)
2020-05-07 13:57:26 -07:00