On Tue, May 20, 2025 at 5:26 AM Markus Armbruster <armbru@redhat.com> wrote:
John Snow <jsnow@redhat.com> writes:

> This patch changes type hints that have built-in equivalents as of
> Python 3.9. The versions we currently use, imported from the typing
> module, have been deprecated since 3.9 and may be removed at any time -
> though to my knowledge, they are not scheduled for removal in 3.14.
>
> The type hints to update are:
>
> typing.Dict  => dict
> typing.List  => list
> typing.Tuple => tuple
> typing.Set   => set
> typing.Type  => type
>
> I performed this change the dumb way (I couldn't work out for the life
> of me how to beg ls-files to exclude subprojects and empty directories,
> desipte it having an option which claims to do precisely that. Suggest a
> nicer way to do this if you'd like.)
>
> git ls-files | grep -v 'roms/' | grep -v 'subprojects/' | grep -v 'tests/lcitool/libvirt-ci' | xargs sed -i -e 's/Dict\[/dict\[/g'
> git ls-files | grep -v 'roms/' | grep -v 'subprojects/' | grep -v 'tests/lcitool/libvirt-ci' | xargs sed -i -e 's/List\[/list\[/g'
> git ls-files | grep -v 'roms/' | grep -v 'subprojects/' | grep -v 'tests/lcitool/libvirt-ci' | xargs sed -i -e 's/Tuple\[/tuple\[/g'
> git ls-files | grep -v 'roms/' | grep -v 'subprojects/' | grep -v 'tests/lcitool/libvirt-ci' | xargs sed -i -e 's/Set\[/set\[/g'
> git ls-files | grep -v 'roms/' | grep -v 'subprojects/' | grep -v 'tests/lcitool/libvirt-ci' | xargs sed -i -e 's/Type\[/type\[/g'
>
> I then used "git add -p" and excluded changes by hand that weren't
> appropriate. I then reviewed all of the changed files by hand to review
> the imports and update them accordingly.
>
> Signed-off-by: John Snow <jsnow@redhat.com>

I'd expect to catch mistakes in the manual parts.  I gave scripts/qapi/
an eye-over anyway, and it looks good to me.

I've prepared an alternate series that's vastly more automated, using "pyupgrade", "autoflake", and isort. As a downside it touches a lot more than just the type hints, removing other outdated pythonisms. As an upside it's way, way less manual.
 

Acked-by: Markus Armbruster <armbru@redhat.com>