Cache types.GenericAlias in getitems

Offen
#101,859 9 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
backend

Rechercherichtung

Beginne damit, das bestehende Caching-Verhalten des typing-Moduls für getitem und den verknüpften PR gh-103541 zu überprüfen. Bestätige das gewünschte Ergebnis anhand des Beispiels list[int] is list[int]; als abgeschlossen gilt die Aufgabe, wenn äquivalente integrierte generische Aliase gecacht werden, ohne das angegebene Verhalten von typing zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

performance stdlib topic-typing type-feature

The "old-style" generic classes from the typing module (List, Dict, etc) cached typing._GenericAlias instances retuned from __getitem__:

>>> from typing import List
>>> List[int] is List[int]
True

But when this functionality was ported to built-in types, caching was not implemented:

>>> list[int] is list[int]
False

Since it is very common to subscript the same types with the same arguments, caching will be very beneficial here and will reduce memory footprint of heavily type-annotated modules.

Linked PRs
  • gh-103541
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
Ø Merge
1 T. 9 Std.
Gemergte PRs (30 T.)
558

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus python/cpython

Alle Issues in python/cpython

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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