Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Add typing.Reader and typing.Writer

Offen
#564 10 Kommentare 8 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
30/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
devtools

Rechercherichtung

Beginne mit dem referenzierten TODO in typeshed und prüfe die bestehende Definition von typing.IO. Vergleiche die vorgeschlagenen Reader- und Writer-Protokolle mit den seltener verwendeten Methoden von IO und der Anforderung, dass IO nominal bleibt; abgeschlossen ist die Aufgabe, wenn eine Einigung über das Protokolldesign erzielt und die angenommene Änderung dokumentiert oder implementiert wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

topic: feature

I recently stumbled at a TODO in typeshed that proposes to split IO[AnyStr] into smaller pieces. I think it is a good idea and propose to add two protocols:

class Reader(Protocol[AnyStr]):
    def read(self, n: int = ...) -> AnyStr: ...
    def readlines(self) -> List[AnyStr]: ...
    def close(self) -> None: ...

class Writer(Protocol[AnyStr]):
    def write(self, s: AnyStr) -> int: ...
    def writelines(self, lines: List[AnyStr]) -> None: ...
    def close(self) -> None: ...

Then IO[AnyStr] can subclass both, plus add some less often used methods (also IO should stay nominal). What do you think?

Vorherrschende Sprache
Python
Sterne
1.8k
Forks
302
Ø Merge
20 Std. 26 Min.
Gemergte PRs (30 T.)
10

Entwicklungsumgebung

Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

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

Alle Issues in python/typing

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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