python / python/mypy

strip_or_import no longer fixes types of the form "module.foo[str,str]"

Offen
#16,138 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug topic-stubgen
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug Report

Stubgenc's strip_or_import no longer fixes types that contain a [.

This seems to be caused by #14564

Specifically, [ is not included in the match for the regex replacement. This causes the subtype before the [ to not be replaced as it should be.

To Reproduce

Create a py extension with a function which has a return type referencing a class in the local module with [ in the type.

Expected Behavior

The fully-qualified module should be excluded.

class KeysView[str]:
    ...

class MyMap:
    def keys(self) -> KeysView[str]: ...

Actual Behavior

The fully-qualified name is left behind and not replaced.

class KeysView[str]:
    ...

class MyMap:
    def keys(self) -> full.module.name.KeysView[str]: ...

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Lokalisieren Sie stubgenc's strip_or_import-Implementierung und untersuchen Sie die Regex-Ersetzung, die qualifizierte Namen verarbeitet. Reproduzieren Sie das Problem mit einem Rückgabetyp wie KeysView[str]; als erledigt gilt es, wenn das lokale Modulpräfix aus dem Subtyp entfernt wird und der in eckigen Klammern angegebene Typ erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.