This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: 2to3 reports some files as both not changing and having been modified
Type: behavior Stage: resolved
Components: 2to3 (2.x to 3.x conversion tool) Versions: Python 3.10, Python 3.9, Python 3.8
process
Status: closed Resolution: wont fix
Dependencies: Superseder: Close 2to3 issues and list them here
View: 45544
Assigned To: Nosy List: AWhetter, benjamin.peterson
Priority: normal Keywords: patch

Created on 2020-06-25 04:46 by AWhetter, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 21296 closed AWhetter, 2020-07-03 17:14
Messages (1)
msg372299 - (view) Author: Ashley Whetter (AWhetter) * Date: 2020-06-25 04:46
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.
History
Date User Action Args
2022-04-11 14:59:32adminsetgithub: 85282
2021-10-20 22:51:55iritkatrielsetstatus: open -> closed
superseder: Close 2to3 issues and list them here
resolution: wont fix
stage: patch review -> resolved
2020-07-03 19:40:55SilentGhostsetnosy: + benjamin.peterson

type: behavior
versions: - Python 3.5, Python 3.6, Python 3.7
2020-07-03 17:14:26AWhettersetkeywords: + patch
stage: patch review
pull_requests: + pull_request20445
2020-06-25 04:46:55AWhettercreate