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