[New-bugs-announce] [issue41110] 2to3 reports some files as both not changing and having been modified

Ashley Whetter report at bugs.python.org
Thu Jun 25 00:46:55 EDT 2020


New submission from Ashley Whetter <ashley at awhetter.co.uk>:

Many of the fixers cause the tool to report a file as both unchanged and modified.

For example when checking a file with the following contents:

```
s = "str"
```

using the following command: `python -m lib2to3 -f unicode unicode_test.py`
The following is output:

```
RefactoringTool: No changes to unicode_test.py
RefactoringTool: Files that need to be modified:
RefactoringTool: unicode_test.py
```

When a fixer returns a node, even if it is the original node without changes, it is considered as a change to the code (https://github.com/python/cpython/blob/cf18c9e9d4d44f6671a3fe6011bb53d8ee9bd92b/Lib/lib2to3/refactor.py#L446-L447) and the file is later added to the list of modified files. I have not yet identified which fixers have this issue.

The fix appears to be that fixers need to be aware of when they have not made a change and should `None` when that is the case.

----------
components: 2to3 (2.x to 3.x conversion tool)
messages: 372299
nosy: AWhetter
priority: normal
severity: normal
status: open
title: 2to3 reports some files as both not changing and having been modified
versions: Python 3.10, Python 3.5, Python 3.6, Python 3.7, Python 3.8, Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41110>
_______________________________________


More information about the New-bugs-announce mailing list