torchoutil.pyoutil.typing.guards module

is_builtin_number(
x: Any,
*,
strict: bool = False,
) typing_extensions.TypeIs[bool | int | float | complex][source]

Returns True if x is an instance of a builtin number type (int, float, bool, complex).

Args:

x: Object to check. strict: If True, it will not consider custom subtypes of builtins as builtin numbers. defaults to False.

is_builtin_obj(
x: Any,
) bool[source]

Returns True if object is an instance of a builtin object.

Note: If the object is an instance of a custom subtype of a builtin object, this function returns False.

is_builtin_scalar(
x: Any,
*,
strict: bool = False,
) typing_extensions.TypeIs[bool | int | float | complex | None | str | bytes][source]

Returns True if x is an instance of a builtin scalar type (int, float, bool, complex, NoneType, str, bytes).

Args:

x: Object to check. strict: If True, it will not consider subtypes of builtins as builtin numbers. defaults to False.

is_dataclass_instance(
x: Any,
) typing_extensions.TypeIs[DataclassInstance][source]

Returns True if argument is a dataclass.

Unlike function dataclasses.is_dataclass, this function returns False for a dataclass type.

is_dict_str(
x: Any,
) typing_extensions.TypeIs[Dict[str, Any]][source]
is_dict_str_number(
x: Any,
) typing_extensions.TypeIs[Dict[str, Number]][source]
is_dict_str_optional_int(
x: Any,
) typing_extensions.TypeIs[Dict[str, int | None]][source]
is_dict_str_str(
x: Any,
) typing_extensions.TypeIs[Dict[str, str]][source]
is_iterable_bool(
x: Any,
*,
accept_generator: bool = True,
) typing_extensions.TypeIs[Iterable[bool]][source]
is_iterable_bytes_or_list(
x: Any,
*,
accept_generator: bool = True,
) typing_extensions.TypeIs[Iterable[bytes | list]][source]
is_iterable_float(
x: Any,
*,
accept_generator: bool = True,
) typing_extensions.TypeIs[Iterable[float]][source]
is_iterable_int(
x: Any,
*,
accept_bool: bool = True,
accept_generator: bool = True,
) typing_extensions.TypeIs[Iterable[int]][source]
is_iterable_integral(
x: Any,
*,
accept_generator: bool = True,
) typing_extensions.TypeIs[Iterable[Integral]][source]
is_iterable_iterable_int(
x: Any,
) typing_extensions.TypeIs[Iterable[Iterable[int]]][source]
is_iterable_mapping_str(
x: Any,
) typing_extensions.TypeIs[Iterable[Mapping[str, Any]]][source]
is_iterable_str(
x: Any,
*,
accept_str: bool = True,
accept_generator: bool = True,
) typing_extensions.TypeGuard[Iterable[str]][source]
is_list_bool(
x: Any,
) typing_extensions.TypeIs[List[bool]][source]
is_list_builtin_number(
x: Any,
) typing_extensions.TypeIs[List[bool | int | float | complex]][source]
is_list_float(
x: Any,
) typing_extensions.TypeIs[List[float]][source]
is_list_int(
x: Any,
) typing_extensions.TypeIs[List[int]][source]
is_list_list_str(
x: Any,
) typing_extensions.TypeIs[List[List[str]]][source]
is_list_number(
x: Any,
) typing_extensions.TypeIs[List[Number]][source]
is_list_str(
x: Any,
) typing_extensions.TypeIs[List[str]][source]
is_mapping_str(
x: Any,
) typing_extensions.TypeIs[Mapping[str, Any]][source]
is_mapping_str_iterable(
x: Any,
) typing_extensions.TypeIs[Mapping[str, Iterable[Any]]][source]
is_namedtuple_instance(
x: Any,
) typing_extensions.TypeIs[NamedTupleInstance][source]

Returns True if argument is a NamedTuple.

is_sequence_bool(
x: Any,
) typing_extensions.TypeIs[Sequence[bool]][source]
is_sequence_float(
x: Any,
) typing_extensions.TypeIs[Sequence[float]][source]
is_sequence_int(
x: Any,
) typing_extensions.TypeIs[Sequence[int]][source]
is_sequence_str(
x: Any,
*,
accept_str: bool = True,
) typing_extensions.TypeGuard[Sequence[str]][source]
is_tuple_int(
x: Any,
) typing_extensions.TypeIs[Tuple[int, ...]][source]
is_tuple_optional_int(
x: Any,
) typing_extensions.TypeIs[Tuple[int | None, ...]][source]
is_tuple_str(
x: Any,
) typing_extensions.TypeIs[Tuple[str, ...]][source]
is_typed_dict(
x: Any,
) typing_extensions.TypeGuard[type][source]
isinstance_guard(
x: Any,
target_type: Type[T] | None | Tuple[Type[T], ...],
) typing_extensions.TypeIs[T][source]

Improved isinstance(…) function that supports parametrized Union, TypedDict, Literal, Mapping or Iterable.

Example 1::

` >>> isinstance_guard({"a": 1, "b": 2}, dict[str, int])  # True >>> isinstance_guard({"a": 1, "b": 2}, dict[str, str])  # False >>> isinstance_guard({"a": 1, "b": 2}, dict)  # True `