Applying the Inline Method refactoring does not add the required import.
Les mainteneurs répondent en général sous 6 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Python
- Étoiles
- 2.2k
- Forks
- 197
- Merge moyen
- 2 j 20 h
- PR mergées (30 j)
- 9
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de python-rope/rope
-
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
python-rope/rope#927 ·
Les mainteneurs répondent en général sous 6 jours
-
Extract raises IndexError or ModuleSyntaxError instead of RefactoringError for an empty or whitespace-only regionPeut-être pris @aliassar l’a pris il y a 4 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
python-rope/rope#926 ·
Les mainteneurs répondent en général sous 6 jours
-
simplify.real_code blanks t-strings, so renames inside them edit the wrong offsetPeut-être pris @sean0407 l’a pris il y a 15 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
python-rope/rope#913 ·
Les mainteneurs répondent en général sous 6 jours
-
Implement nonlocal variables scoping rule for rename refactorPeut-être pris @ryanchou1994 l’a pris il y a 2 jours. Ouvertebug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
python-rope/rope#935 ·
Les mainteneurs répondent en général sous 6 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
python-rope/rope#925 ·
Les mainteneurs répondent en général sous 6 jours
Toutes les issues de python-rope/rope
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
huggingface/accelerate#4511 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
pylint-dev/pylint#11791 ·
Les mainteneurs répondent en général sous 1 jour
-
Rasterio granule reads never retry, so one 503 (Service Unavailable) fails the whole requestPeut-être pris @chuckwondo l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
developmentseed/titiler-cmr#305 ·
Les mainteneurs répondent en général sous 1 jour
-
community enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour