Source code for phantom.predicates.generic

from typing import Tuple
from typing import Union

import typeguard

from .base import Predicate


[docs]def equal(a: object) -> Predicate[object]: """Create a new predicate that succeeds when its argument is equal to ``a``.""" def check(b: object, /) -> bool: return a == b return check
[docs]def identical(a: object) -> Predicate[object]: """Create a new predicate that succeeds when its argument is identical to ``a``.""" def check(b: object, /) -> bool: return a is b return check
[docs]def of_type(t: Union[type, Tuple[type, ...]]) -> Predicate[object]: """ Create a new predicate that succeeds when its argument is an instance of ``t``. """ def check(a: object, /) -> bool: return isinstance(a, t) return check
def of_complex_type(t: type) -> Predicate[object]: def check(a: object, /) -> bool: try: typeguard.check_type("a", a, t, globals={}, locals={}) except TypeError: return False return True return check