On Tue, May 20, 2025 at 5:31 AM Markus Armbruster <arm...@redhat.com> wrote:
> John Snow <js...@redhat.com> writes: > > > In this patch, we don't have a builtin type to use for a type hint, but > > we do have collections.abc and other standard library types. Replace > > deprecated type hints with their standard library equivalents: > > > > typing.Awaitable => collections.abc.Awaitable > > typing.AbstractSet => collections.abc.AbstractSet > > typing.AsyncIterator => collections.abc.AsyncIterator > > typing.Callable => collections.abc.Callable > > typing.Coroutine => collections.abc.Coroutine > > typing.Deque => collections.deque > > typing.Generator => collections.abc.Generator > > typing.Iterable => collections.abc.Iterable > > typing.Iterator => collections.abc.Iterator > > typing.Mapping => collections.abc.Mapping > > typing.Match => re.Match > > typing.MutableMapping => collections.abc.MutableMapping > > typing.Sequence => collections.abc.Sequence > > typing.ValuesView => collections.abc.ValuesView > > > > The primary benefit of this is, of course, that the standard type can > > now be used directly as the type hint. In general, this means far fewer > > imports from `typing`. The reason we *have* to do this is because the > > old type hints have been deprecated and will be dropped from a Python > > release in the future, so I am just getting ahead of it before it causes > > a problem. > > > > (Granted, yes, in practice this just means we're usually importing from > > collections.abc instead of typing, but... ah well. What are you gonna > > do.) > > > > Signed-off-by: John Snow <js...@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. > > Acked-by: Markus Armbruster <arm...@redhat.com> > > Typing imports left at the end of the series: > > * > Any > BinaryIO > Generic > IO > Literal > NamedTuple > NewType > NoReturn > Optional > Protocol > TYPE_CHECKING > TextIO > TypeVar > Union > cast > Yep, all of these are good. Except the *. > > The * are in scripts/codeconverter/. You might want to double-check > nothing deprecated hides behind the *. > Yep. Meant to, forgot. O:-) Thanks for the callout. > > The others are all still good, I presume. Yep! I double-checked the list and none of the remaining ones here are deprecated. --js