rope.base.ast and rope.base.astutils #582
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Important changes:
rope.base.{astutils->nameanalyze}
ast
rope.base.ast.parse()
have identical interface to stdlibast.parse()
Rename
rope.base.{astutils->nameanalyze}
astutils
is a very bad module name for this, many parts of static analysis can be described as "utilities to work with ast", so it's not really descriptive enough as to whatget_name_levels()
and_NodeNameCollector
really does. The content of this current module isn't actually generic utilities either, they do something very specific, and so calling it "AST utilities" is also very misleading.As nothing else is actually left in
astutils
, might as well not haveastutils
.Remove usage of standard library
ast
rope code should not use standard library
ast
directly, but only through therope.base.ast
Make rope.base.ast.parse() have identical interface to stdlib ast.parse()
This function likely can be removed as well, the handling of newlines should really be dealt with at the file access layer, with standard universal newline handling, not here in
ast.parse()
.Silence unnecessary flake warnings
There are warnings from that aren't really helpful on this module.