Hi Bruno,

On 2/29/24 2:48 AM, Bruno Haible wrote:
> One question: Why this change?
> 
> -        tests_modules = sorted(set(tests_modules))
> +        tests_modules = sorted(list(set(tests_modules)))
> 
> IMO, it is redundant, because sorted() of a set returns a list anyway.

Ah, I had a feeling that it was redundant after sending the email.
Thanks for confirming it for me. For some reason I was thinking that
sorted() would return the same type it was given.

Was gnulib-tool.py originally written in Python 2? I don't feel like I
don't see 'type(var) == list' anymore (in the very little Python code
I read). Usually I feel like you would check if something is iterable
like so [1] [2]:

     #!/usr/bin/env python3

     import collections.abc


     def is_iterable(var):
         return isinstance(var, collections.abc.Iterable)


     print(f'1. List:   {is_iterable(list())}')
     print(f'2. Set:    {is_iterable(set())}')
     print(f'3. String: {is_iterable(str())}')
     print(f'4. Dict:   {is_iterable(dict())}')
     print(f'5. Int:    {is_iterable(int())}')
     print(f'6. Float:  {is_iterable(float())}')

     $ ./example.py 
     1. List:   True
     2. Set:    True
     3. String: True
     4. Dict:   True
     5. Int:    False
     6. Float:  False

Python has added a lot of interesting type hinting stuff over the past
few years [3]. Reading the union types was a bit confusing at first
since I didn't know they were added [4]. But I feel like I remember
linters using them pretty well. Of course it is still Python though so
no one is stopping you from going against the hints. :)

[1] https://docs.python.org/3/library/functions.html#isinstance
[2] https://docs.python.org/3/library/collections.abc.html
[3] https://peps.python.org/pep-0484/
[4] https://peps.python.org/pep-0604/

Collin

Reply via email to