`compression.zstd.open()` names the wrong mode in its invalid mode error

オープン
#161,730 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
1/5
見積もり時間
1時間未満
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
backend

調査の方向性

Start in the compression.zstd.open() implementation where it removes 't' from the mode before raising ValueError; inspect the equivalent gzip.open(), bz2.open() and lzma.open() behavior for context. The issue names no test file, so locate the existing zstd open mode tests and add coverage for 'rtb'; done when the error reports the original mode.

索引モデルが issue の本文から書いたものです。

説明

stdlib type-bug
Bug report
Bug description:

compression.zstd.open() rejects a mode that contains both 't' and 'b', but the error message names a different mode than the one passed:

>>> import io
>>> from compression import zstd
>>> zstd.open(io.BytesIO(zstd.compress(b'x')), 'rtb')
Traceback (most recent call last):
  ...
ValueError: Invalid mode: 'rb'

'rb' is a valid mode. open() removes 't' from the mode before checking for 'b', and the message is formatted with the modified string:

text_mode = 't' in mode
mode = mode.replace('t', '')

if text_mode:
    if 'b' in mode:
        raise ValueError(f'Invalid mode: {mode!r}')

gzip.open(), bz2.open() and lzma.open() report the mode as passed (Invalid mode: 'rtb').

CPython versions tested on:

3.14, 3.15, CPython main branch

Operating systems tested on:

Linux

Linked PRs
  • gh-161731
主要言語
Python
スター
78.2k
フォーク
36.6k
平均マージ
19時間 57分
マージ済み PR(30日)
630

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

python/cpython のほかの issue

python/cpython の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。