Skip to content

newbytes is unable to handle a generator as a parameter #288

Open
@altendky

Description

@altendky

After only checking that the parameter is Iterable, newbytes then checks the parameters len().

if len(args[0]) == 0:

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions