Inspection of arguments in function cause inspection of surrounding function
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Beginne in ipykernel/ipkernel.py etwa bei den Zeilen 544-546 und untersuche, wie do_inspect generate_tokens, token_at_cursor und die umgebende Cursor-Behandlung verwendet. Reproduziere das bereitgestellte func(param1, param2=arg)-Beispiel und überprüfe anschließend, dass Cursor auf Argumenten diese Argumente und nicht die umgebende Funktion identifizieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
At the moment inspection of arguments in function calls is not possible as the function is inspected instead. This is because do_inspect relies on IPython.utils.tokenutil.generate_tokens:
The behaviour of generate_tokens has changed in https://github.com/ipython/ipython/commit/240eef90ab769a25100eb9f2c4247d775e6c160c . Before it would return the tokens of names, including parameters and names, even if they were inside a function call. Not all edge cases were handled correctly, but for most day-to-day inspection tasks were served fine. Now generate_tokens returns function names if the cursor is positioned inside the parentheses:
from IPython.utils.tokenutil import generate_tokens, token_at_cursor
from io import StringIO
code = 'func(param1, param2=arg)'
tokens = list(generate_tokens(StringIO(code).readline))
pos = dict(func=3, param1=8, param2=15, arg=22)
# Current behaviour
dict((k, token_at_cursor(code, v) for k, v in pos.items())
# Output: {'func': 'func', 'param1': 'func', 'param2': 'func', 'arg': 'func'}
- Vorherrschende Sprache
- Python
- Sterne
- 734
- Forks
- 411
- Ø Merge
- 1 T. 11 Std.
- Gemergte PRs (30 T.)
- 12
Entwicklungsumgebung
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 ipython/ipykernel
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 68/100
ipython/ipykernel#1554 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Interrupt on swallowed `KeyboardInterrupt` exceptions (`SIGINT`) when pressing twice (within 5 seconds)Evtl. wieder frei @Carreau hat das vor 32 Tagen übernommen, und es ist kein Pull Request offen. Offen
ipython/ipykernel#1550 · 1 Kommentar · 1 Reaktion · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in ipython/ipykernel
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
PedestrianDynamics/pyFDS-Evac#199 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
521xueweihan/HelloGitHub#3790 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
sandialabs/atlas-ui-3#978 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: tests perceived difficulty: 2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Nitjsefnie-Harness-Commons/daedalus#1255 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
EleutherAI/lm-evaluation-harness#4256 ·
Maintainer antworten meist innerhalb von 1 Tag