Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Closed
Description
Bug report
When using thefileinput.hook_compressed hook in binary mode in the case that the file isnot compressed, an exception is raised instead of processing the file like normal.
# fileinput_cat.pyimportfileinputimportsyswithfileinput.input(mode='rb',openhook=fileinput.hook_compressed)asf:forlineinf:sys.stdout.buffer.write(line)
$python3.10 fileinput_cat.py fileinput_cat.pyTraceback (most recent call last): File "fileinput_bug.py", line 5, in <module> for line in f: File ".../lib/python3.10/fileinput.py", line 256, in __next__ line = self._readline() File ".../lib/python3.10/fileinput.py", line 385, in _readline self._file = self._openhook(self._filename, self._mode) File ".../lib/python3.10/fileinput.py", line 432, in hook_compressed return open(filename, mode, encoding=encoding, errors=errors)ValueError: binary mode doesn't take an encoding argument
Your environment
I tried this on Python 3.10.9 (installed from nixpkgs) on Intel macOS 11.7.3. It was working on Python 3.9.16.
Linked PRs
- gh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode #102068
- [3.11] gh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (gh-102068) #102098
- [3.10] gh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (gh-102068) #102099