Applying the Inline Method refactoring does not add the required import.
Maintainer antworten meist innerhalb von 5 Tagen
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Reproduce with the two files in the report: src/main.py defines Base.split with the default argument sys.maxsize, and src/test.py calls it, so inlining should copy that default into test.py. Start from rope's Inline Method refactoring and check how it collects imports for names used in the inlined body. Done when applying the refactoring to Base.split leaves import sys at the top of test.py, and a test covers the default-argument case.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Steps to reproduce the behavior:
- Code before refactoring:
structure:
project
| - src
| -- __init__.py
| -- main.py
| -- test.py
main.py
import sys
class Base:
def __init__(self, text):
self.raw = text
def split(self, sep=None, maxsplit=sys.maxsize):
return self.raw.split(sep, maxsplit)[0]
test.py
from unittest import TestCase
from src.split_main import Base
class Test(TestCase):
def test_split(self):
blob = Base('Beautiful is better')
self.assertEqual(blob.split(), ['Beautiful'])
-
Apply the Inline Method to Base.split().
-
Expected code after refactoring:
structure:
project
| - src
| -- __init__.py
| -- main.py
| -- test.py
main.py
class Base:
def __init__(self, text):
self.raw = text
test.py
import sys
from unittest import TestCase
from src.split_main import Base
class Test(TestCase):
def test_split(self):
blob = Base('Beautiful is better')
self.assertEqual(blob.raw.split(None, sys.maxsize)[0], ['Beautiful'])
- The "import sys" is not automatically added.
- Vorherrschende Sprache
- Python
- Sterne
- 2.2k
- Forks
- 197
- Ø Merge
- 2 T. 17 Std.
- Gemergte PRs (30 T.)
- 11
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python-rope/rope
-
LocalToField doesn't validate the offset until get_changes()Evtl. vergeben @Narek-Khachikyan hat das heute übernommen. Offen
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100
python-rope/rope#927 ·
Maintainer antworten meist innerhalb von 5 Tagen
-
simplify.real_code blanks t-strings, so renames inside them edit the wrong offsetEvtl. vergeben @sean0407 hat das vor 15 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
python-rope/rope#913 ·
Maintainer antworten meist innerhalb von 5 Tagen
-
Implement nonlocal variables scoping rule for rename refactorEvtl. vergeben @ryanchou1994 hat das vor 2 Tagen übernommen. Offenbug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
python-rope/rope#935 ·
Maintainer antworten meist innerhalb von 5 Tagen
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
python-rope/rope#925 ·
Maintainer antworten meist innerhalb von 5 Tagen
-
Extract method/variable and introduce parameter don't check whether the new name is already in useEvtl. vergeben @aliassar hat das vor 3 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 62/100
python-rope/rope#924 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 5 Tagen
Alle Issues in python-rope/rope
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
-
needs-triage tooling
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
neilsh/stunt-reel#317 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
TandoorRecipes/recipes#4926 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
PyTomography/PyTomography#431 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
igormcsouza/tether#278 ·
Maintainer antworten meist innerhalb von 1 Tag