[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 5/9] iotests: Different iterator behavior in
From: |
Cleber Rosa |
Subject: |
Re: [Qemu-block] [PATCH v2 5/9] iotests: Different iterator behavior in Python 3 |
Date: |
Fri, 19 Oct 2018 20:53:08 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 |
On 10/19/18 3:15 PM, Max Reitz wrote:
> In Python 3, several functions now return iterators instead of lists.
> This includes range(), items(), map(), and filter(). This means that if
> we really want a list, we have to wrap those instances with list(). But
> then again, the two instances where this is the case for map() and
> filter(), there are shorter expressions which work without either
> function.
>
> On the other hand, sometimes we do just want an iterator, in which case
> we have sometimes used xrange() and iteritems() which no longer exist in
> Python 3. Just change these calls to be range() and items(), works in
> both Python 2 and 3, and is really what we want in 3 (which is what
> matters). But because it is so simple to do (and to find and remove
> once we completely switch to Python 3), make range() be an alias for
> xrange() in the two affected tests (044 and 163).
>
> In one instance, we only wanted the first instance of the result of a
> filter() call. Instead of using next(filter()) which would work only in
> Python 3, or list(filter())[0] which would work everywhere but is a bit
> weird, this instance is changed to use list comprehension with a next()
> wrapped around, which works both in 2.7 and 3.
>
> Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Cleber Rosa <address@hidden>
- [Qemu-block] [PATCH v2 7/9] iotests: 'new' module replacement in 169, (continued)
- [Qemu-block] [PATCH v2 7/9] iotests: 'new' module replacement in 169, Max Reitz, 2018/10/19
- [Qemu-block] [PATCH v2 4/9] iotests: Use // for Python integer division, Max Reitz, 2018/10/19
- [Qemu-block] [PATCH v2 8/9] iotests: Modify imports for Python 3, Max Reitz, 2018/10/19
- [Qemu-block] [PATCH v2 5/9] iotests: Different iterator behavior in Python 3, Max Reitz, 2018/10/19
- [Qemu-block] [PATCH v2 6/9] iotests: Explicitly inherit FDs in Python, Max Reitz, 2018/10/19
- [Qemu-block] [PATCH v2 9/9] iotests: Unify log outputs between Python 2 and 3, Max Reitz, 2018/10/19
- Re: [Qemu-block] [PATCH v2 0/9] iotests: Make them work for both Python 2 and 3, Cleber Rosa, 2018/10/19