New submission from Ashley Whetter <ash...@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 <rep...@bugs.python.org>
<https://bugs.python.org/issue41110>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to