def test_type(): class User: pass class BasicUser(User): pass class ProUser(User): pass class TeamUser(ProUser): pass assert isinstanceof(User, Type[User]) assert isinstanceof(BasicUser, Type[User]) assert isinstanceof(ProUser, Type[User]) assert isinstanceof(TeamUser, Type[User]) assert not isinstanceof(str, Type[User]) assert isinstanceof(str, Type[Any])
def test_any(): assert isinstanceof(None, Any) assert isinstanceof(1, Any) assert isinstanceof('1', Any)
def test_example_global_isinstanceof(): from typing import Union from istype import isinstanceof assert isinstanceof(1, Union[int, str])
def test_tuple(): assert isinstanceof((1, '1'), Tuple[int, str]) assert not isinstanceof((1, 1), Tuple[int, str])
def test_list_generic_empty(): assert isinstanceof([], typing.List[int])
def test_union(): assert isinstanceof(1, Union[int]) assert isinstanceof(1, Union[int, str]) assert isinstanceof(1, Union[int, Union[float, str]])
def test_optional(): assert isinstanceof('1', Optional[str]) assert isinstanceof(None, Optional[str]) assert not isinstanceof(1, Optional[str])
def test_collection_generic_empty(): assert isinstanceof([], typing.Collection[int])
def test_iterable_generic_empty(): assert isinstanceof([], typing.Iterable[int])
def test_frozenset(): assert isinstanceof(frozenset([1, '2']), frozenset)
def test_frozenset_generic(): assert isinstanceof(frozenset([1, 2]), typing.FrozenSet[int]) assert not isinstanceof(frozenset([1, '2']), typing.FrozenSet[int])
def test_set_generic(): assert isinstanceof(set([1, 2]), typing.Set[int]) assert not isinstanceof(set([1, '2']), typing.Set[int])
def test_set(): assert isinstanceof(set([1, '2']), set)
def test_list_generic(): assert isinstanceof([1, 1], typing.List[int]) assert not isinstanceof([1, '1'], typing.List[int]) assert isinstanceof([1, '1'], typing.List[object])
def test_anystr(): assert not isinstanceof(None, AnyStr) assert not isinstanceof([1, '1'], AnyStr) assert isinstanceof('1', AnyStr) assert isinstanceof(b'1', AnyStr)
def test_dict(): assert isinstanceof({'2': 1}, dict)
def test_class_var(): assert not isinstanceof(None, ClassVar[int]) assert isinstanceof(1, ClassVar[int]) assert not isinstanceof(1, ClassVar[str])
def test_dict_generic(): assert isinstanceof({1: '2'}, typing.Dict[int, str]) assert not isinstanceof({'2': 1}, typing.Dict[int, str])
def test_union_complex(): assert isinstanceof([1], Union[int, List[int]])
def test_mutable_mapping(): assert isinstanceof({'2': 1}, collections.abc.MutableMapping)
def test_optional_with_union(): assert isinstanceof('1', Optional[Union[str, int]]) assert isinstanceof(1, Optional[Union[str, int]]) assert isinstanceof(None, Optional[Union[str, int]]) assert not isinstanceof(1.1, Optional[Union[str, int]])
def test_mutable_mapping_generic(): assert isinstanceof({1: '2'}, typing.MutableMapping[int, str]) assert not isinstanceof({'2': 1}, typing.MutableMapping[int, str])
def checked_cast(type: Type[_T], obj: Any) -> _T: """ Method for executing a safe cast in python """ assert istype.isinstanceof(obj, type) return obj # type: ignore
def test_list(): assert isinstanceof([], list) is isinstance([], list)