== Why is this an issue? Python 3.10 introduced a specific syntax using the "or" operator (`X | Y`) to represent a union of types. This syntax has the same functionality as `typing.Union`, but it is more concise and easier to read. Using `typing.Union` is more verbose and less convenient. It can also create inconsistencies when different parts of the codebase use different syntaxes for the same type. == How to fix it Replace usages of `typing.Union` with the union type syntax. === Code examples ==== Noncompliant code example [source,python] ---- from typing import Union def foo(arg: Union[int, str]) -> Union[int, str]: if isinstance(arg, int): return arg + 1 else: return arg.upper() ---- ==== Compliant solution [source,python] ---- def foo(arg: int | str) -> int | str: if isinstance(arg, int): return arg + 1 else: return arg.upper() ---- == Resources === Documentation - https://peps.python.org/pep-0604/[PEP 604 - Allow writing union types as X | Y] - https://docs.python.org/3/library/stdtypes.html#types-union[Python documentation on union type expressions] ifdef::env-github,rspecator-view[] == Implementation Specification (visible only on this page) === Message Use a union type expression for this type hint. endif::env-github,rspecator-view[]