indygreg / indygreg/python-zstandard

The open API is inconsistent

Offen
#136 2 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
Vorherrschende Sprache
C
Sterne
642
Forks
116
Ø Merge
1 T. 14 Std.
Gemergte PRs (30 T.)
5

Beschreibung

Iterating over text data works as expected:

In [2]: for line in zstandard.open('123.zst', 'rt'):
   ...:     print(line)
   ...:
123

Iterating over binary data raises an exception:

In [4]: for line in zstandard.open('123.zst', 'rb'):
   ...:     print(line)
   ...:
---------------------------------------------------------------------------
UnsupportedOperation                      Traceback (most recent call last)
<ipython-input-4-42009a852259> in <module>
----> 1 for line in zstandard.open('123.zst', 'rb'):
      2     print(line)

UnsupportedOperation:

I think it makes sense to wrap binary reader/writer in io.BufferedReader/io.BufferedWriter.
Most libraries provide the same interface for text and binary streams.

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

Beginne am Einstiegspunkt zstandard.open und vergleiche, wie dessen Text- und Binärleser die Iteration handhaben. Prüfe das Verhalten des Binärlesers und -schreibers im Vergleich zu io.BufferedReader und io.BufferedWriter; als abgeschlossen gilt die Aufgabe, wenn Binärströme die Iteration ohne UnsupportedOperation unterstützen und dabei das bestehende Textverhalten erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, python
Bereich
api
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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