PythonCharmers/python-future

newbytes is unable to handle a generator as a parameter

Open

#288 geöffnet am 21. Juni 2017

Auf GitHub ansehen
 (0 Kommentare) (1 Reaktion) (0 zugewiesene Personen)Python (327 Forks)batch import
0.20bughelp wanted

Repository-Metriken

Stars
 (1.172 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

After only checking that the parameter is Iterable, newbytes then checks the parameters len(). https://github.com/PythonCharmers/python-future/blob/39a066ed8c29a0b3a32adac2ffd407119fe9ea6d/src/future/types/newbytes.py#L106

https://repl.it/IwSF/2

print(repr(bytes.newbytes(x for x in range(0))))
Traceback (most recent call last):
  File "main.py", line 4, in <module>
    print(repr(bytes.newbytes(x for x in range(0))))
  File "/home/runner/bytes.py", line 103, in __new__
    if len(args[0]) == 0:
TypeError: object of type 'generator' has no len()

Including a check for Sized as well avoids this.

if isinstance(args[0], Sized) and len(args[0]) == 0:

https://repl.it/IwSF/1

Contributor Guide