Commit graph

53 commits

Author SHA1 Message Date
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
Raymond Hettinger
eff870b618
Revert "bpo-40517: Implement syntax highlighting support for ASDL (#19928)" (#19950)
This reverts commit d60040ba22.
2020-05-05 22:33:55 -07:00
Batuhan Taskaya
d60040ba22
bpo-40517: Implement syntax highlighting support for ASDL (#19928) 2020-05-05 22:24:39 -07:00
Pablo Galindo
c00c86b904
Fix syntax error in an example in the ast documentation and sync docstrings (GH-18946) 2020-03-12 00:48:19 +00:00
Serhiy Storchaka
13d52c2686
bpo-34822: Simplify AST for subscription. (GH-9605)
* Remove the slice type.
* Make Slice a kind of the expr type instead of the slice type.
* Replace ExtSlice(slices) with Tuple(slices, Load()).
* Replace Index(value) with a value itself.

All non-terminal nodes in AST for expressions are now of the expr type.
2020-03-10 18:52:34 +02:00
Serhiy Storchaka
b7e9525f9c
bpo-36287: Make ast.dump() not output optional fields and attributes with default values. (GH-18843)
The default values for optional fields and attributes of AST nodes are now set
as class attributes (e.g. Constant.kind is set to None).
2020-03-10 00:07:47 +02:00
Pablo Galindo
02f64cb791
bpo-39199: Use 'eval' mode for the examples with expression nodes (GH-18828)
Co-Authored-By: Serhiy Storchaka <storchaka@gmail.com>
2020-03-07 18:22:58 +00:00
Pablo Galindo
114081f8ad
bpo-39199: Add descriptions of non-deprecated nodes to the AST module documentation (GH-17812)
Adapted from https://greentreesnakes.readthedocs.io

Co-authored-by: Karthikeyan Singaravelan <tir.karthi@gmail.com>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
2020-03-02 03:14:06 +00:00
Serhiy Storchaka
85a2eef473
bpo-32892: Update the documentation for handling constants in AST. (GH-18514) 2020-02-17 11:03:00 +02:00
Batuhan Taşkaya
6680f4a9f5 bpo-3530: Add advice on when to correctly use fix_missing_locations in the AST docs (GH-17172)
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
2020-01-12 20:38:53 +00:00
Raymond Hettinger
4fcf5c12a3
bpo-39158: ast.literal_eval() doesn't support empty sets (GH-17742) 2020-01-02 22:21:18 -07:00
Gurupad Hegde
6c7bb38ff2 bpo-39136: Fixed typos (GH-17720)
funtion -> function; configuraton -> configuration; defintitions -> definitions;
focusses -> focuses; necesarily -> necessarily; follwing -> following;
Excape -> Escape,
2019-12-28 17:16:02 -05:00
Batuhan Taşkaya
814d687c7d bpo-38348: Extend command line options of ast parsing tool (GH-16540)
Add -i and --indent (indentation level), and --no-type-comments
(type comments) command line options to ast parsing tool.
2019-12-16 19:23:27 +01:00
Pablo Galindo
27fc3b6f3f
bpo-38870: Expose a function to unparse an ast object in the ast module (GH-17302)
Add ast.unparse() as a function in the ast module that can be used to unparse an
ast.AST object and produce a string with code that would produce an equivalent ast.AST
object when parsed.
2019-11-24 23:02:40 +00:00
Serhiy Storchaka
832e864008
bpo-38049: Add command-line interface for the ast module. (GH-15724) 2019-09-09 23:36:13 +03:00
Serhiy Storchaka
850573b836
bpo-37995: Add an option to ast.dump() to produce a multiline output. (GH-15631) 2019-09-09 19:33:13 +03:00
Serhiy Storchaka
e64f948e76
bpo-37950: Fix ast.dump() when call with incompletely initialized node. (GH-15510) 2019-08-29 09:30:23 +03:00
Serhiy Storchaka
c3ea41e9bf
bpo-36917: Add default implementation of ast.NodeVisitor.visit_Constant(). (GH-15490)
It emits a deprecation warning and calls corresponding method
visit_Num(), visit_Str(), etc.
2019-08-26 10:13:19 +03:00
Guido van Rossum
10b55c1643 bpo-35766: Change format for feature_version to (major, minor) (GH-13992)
(A single int is still allowed, but undocumented.)



https://bugs.python.org/issue35766
2019-06-11 17:23:12 -07:00
Guido van Rossum
495da29225 bpo-35975: Support parsing earlier minor versions of Python 3 (GH-12086)
This adds a `feature_version` flag to `ast.parse()` (documented) and `compile()` (hidden) that allow tweaking the parser to support older versions of the grammar. In particular if `feature_version` is 5 or 6, the hacks for the `async` and `await` keyword from PEP 492 are reinstated. (For 7 or higher, these are unconditionally treated as keywords, but they are still special tokens rather than `NAME` tokens that the parser driver recognizes.)



https://bugs.python.org/issue35975
2019-03-07 12:38:08 -08:00
Guido van Rossum
dcfcd146f8 bpo-35766: Merge typed_ast back into CPython (GH-11645) 2019-01-31 12:40:27 +01:00
Ivan Levkivskyi
9932a22897
bpo-33416: Add end positions to Python AST (GH-11605)
The majority of this PR is tediously passing `end_lineno` and `end_col_offset` everywhere. Here are non-trivial points:
* It is not possible to reconstruct end positions in AST "on the fly", some information is lost after an AST node is constructed, so we need two more attributes for every AST node `end_lineno` and `end_col_offset`.
* I add end position information to both CST and AST.  Although it may be technically possible to avoid adding end positions to CST, the code becomes more cumbersome and less efficient.
* Since the end position is not known for non-leaf CST nodes while the next token is added, this requires a bit of extra care (see `_PyNode_FinalizeEndPos`). Unless I made some mistake, the algorithm should be linear.
* For statements, I "trim" the end position of suites to not include the terminal newlines and dedent (this seems to be what people would expect), for example in
  ```python
  class C:
      pass

  pass
  ```
  the end line and end column for the class definition is (2, 8).
* For `end_col_offset` I use the common Python convention for indexing, for example for `pass` the `end_col_offset` is 4 (not 3), so that `[0:4]` gives one the source code that corresponds to the node.
* I added a helper function `ast.get_source_segment()`, to get source text segment corresponding to a given AST node. It is also useful for testing.

An (inevitable) downside of this PR is that AST now takes almost 25% more memory. I think however it is probably justified by the benefits.
2019-01-22 11:18:22 +00:00
Serhiy Storchaka
913876d824
bpo-35054: Add yet more index entries for symbols. (GH-10121) 2018-10-28 13:41:26 +02:00
Serhiy Storchaka
3f22811fef
bpo-32892: Use ast.Constant instead of specific constant AST types. (GH-9445) 2018-09-27 17:42:37 +03:00
Serhiy Storchaka
73cbe7a01a
bpo-32911: Revert bpo-29463. (GH-7121) (GH-7197)
Remove the docstring attribute of AST types and restore docstring
expression as a first stmt in their body.

Co-authored-by: INADA Naoki <methane@users.noreply.github.com>
2018-05-29 12:04:55 +03:00
Brett Cannon
7a7f100eb3
bpo-32758: Warn that ast.parse() and ast.literal_eval() can segfault the interpreter (GH-5960) 2018-03-09 12:03:22 -08:00
Sanyam Khurana
338cd83c5d bpo-25910: Link redirections in docs (#1933)
Fixes some redirection links in docs.
2018-01-20 01:25:37 +01:00
INADA Naoki
cb41b2766d bpo-29463: Add docstring field to some AST nodes. (#46)
* bpo-29463: Add docstring field to some AST nodes.

ClassDef, ModuleDef, FunctionDef, and AsyncFunctionDef has docstring
field for now.  It was first statement of there body.

* fix document.  thanks travis!

* doc fixes
2017-02-22 16:31:59 +01:00
Martin Panter
1050d2d0c7 Issue #26462: Doc: reduce literal_block warnings, fix syntax highlighting.
Patch by Julien Palard.
2016-07-26 11:18:21 +02:00
Senthil Kumaran
f3695bfacf Issue16544 - Add a link to an external documentation resource in ast module docs. 2016-01-06 21:26:53 -08:00
Martin Panter
2e4571a456 Fix a few grammar problems in the documentation and comments 2015-11-14 01:07:43 +00:00
Georg Brandl
b9b389efed Closes #22525: clarify documentation for ast.literal_eval(). 2014-11-05 20:20:28 +01:00
Serhiy Storchaka
fbc1c26803 Issue #19795: Improved markup of True/False constants. 2013-11-29 12:17:13 +02:00
Benjamin Peterson
0bd152cd67 remove ast.__version__ (closes #12273) 2011-07-15 21:10:13 -05:00
Benjamin Peterson
6cb2b923e0 convert ast versioning to mercurial 2011-03-12 18:28:16 -06:00
Terry Reedy
feac624827 Issue #11000 ast.parse parses source, not just expressions. 2011-01-24 21:36:03 +00:00
Raymond Hettinger
4f707fd316 Separate source link from main text. 2011-01-10 19:54:11 +00:00
Raymond Hettinger
1048094037 Move source links to consistent location and remove wordy, big yellow boxes. 2011-01-10 03:26:08 +00:00
Georg Brandl
619e7ba814 #10869: do not visit root node twice in ast.increment_lineno(). 2011-01-09 07:38:51 +00:00
Éric Araujo
6e6cb8e0e4 Provide links to Python source where the code is short, readable and
informative adjunct to the docs.  Forward-port of Raymond's r86225 and
r86245 using the new source reST role added in #10334.
2010-11-16 19:13:50 +00:00
Alexander Belopolsky
f0a0d14c28 Issue #7061: Dropped "for Tk" from turtle module title and moved its
doc section under frameworks.  Also fixed a couple of markup issues
that affected TOC rendering.
2010-10-27 03:06:43 +00:00
Georg Brandl
85f2177f6d Add bytes in literal_eval doc. 2010-07-13 06:38:10 +00:00
Georg Brandl
492f3fc272 Allow set literals in literal_eval(). 2010-07-11 09:41:21 +00:00
Georg Brandl
22b3431426 Merged revisions 74209 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74209 | georg.brandl | 2009-07-26 16:37:28 +0200 (So, 26 Jul 2009) | 1 line

  builtin -> built-in.
........
2009-07-26 14:54:51 +00:00
Georg Brandl
48310cd3f2 Remove trailing whitespace. 2009-01-03 21:18:54 +00:00
Georg Brandl
36ab1ef8ee Merged revisions 68219 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68219 | georg.brandl | 2009-01-03 21:47:01 +0100 (Sat, 03 Jan 2009) | 2 lines

  Fix uses of the default role.
........
2009-01-03 21:17:04 +00:00
Benjamin Peterson
ec9199be08 Merged revisions 67162 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r67162 | benjamin.peterson | 2008-11-08 10:55:33 -0600 (Sat, 08 Nov 2008) | 1 line

  a few compile() and ast doc improvements
........
2008-11-08 17:05:00 +00:00
Benjamin Peterson
9abf93d6c9 murder some versionadded and versionchanged directives in their beds 2008-08-16 02:59:55 +00:00