More flexible type support for `math.prod` and `math.sumprod`

Offen
#13,501 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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
48/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
tooling

Rechercherichtung

Beginne mit der Untersuchung der Type Stubs für math.prod und math.sumprod und vergleiche anschließend ihr Verhalten mit dem Stub von builtins.sum. Verwende die verlinkten Mypy Playground-Beispiele, um die Inferenz für Decimal, Fraction und complex zu überprüfen, und bestätige die resultierenden Typen sowie etwaige Kompatibilitätsbedenken, bevor du das Issue als erledigt betrachtest.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

stubs: improvement

Also related to https://github.com/python/typeshed/issues/11913

Currently, math.prod and math.sumprod do not properly support Decimal, Fraction, complex, or possibly other numeric types. This makes it inconvenient to replace builtins.sum with math.prod in a straightforward manner.

from typing import reveal_type
from fractions import Fraction
from math import prod

a = prod([Fraction(1), Fraction(2)])
reveal_type(a)  # it should be Fraction | Literal[1], but float for now

prod([complex(1, 0), complex(1, 2)])

Mypy Playground Link

I believe it should be followed the type stub of builtins.sum, but I’m not sure what breaking changes this might cause.

Vorherrschende Sprache
Python
Sterne
5.1k
Forks
2.1k
Ø Merge
2 T. 1 Std.
Gemergte PRs (30 T.)
115

Entwicklungsumgebung

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/typeshed

Alle Issues in python/typeshed

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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