HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //proc/self/root/lib/python3/dist-packages/hamcrest/core/core/isequal.py
from typing import Any

from hamcrest.core.base_matcher import BaseMatcher
from hamcrest.core.description import Description
from hamcrest.core.matcher import Matcher

__author__ = "Jon Reid"
__copyright__ = "Copyright 2011 hamcrest.org"
__license__ = "BSD, see License.txt"


class IsEqual(BaseMatcher[Any]):
    def __init__(self, equals: Any) -> None:
        self.object = equals

    def _matches(self, item: Any) -> bool:
        return item == self.object

    def describe_to(self, description: Description) -> None:
        nested_matcher = isinstance(self.object, Matcher)
        if nested_matcher:
            description.append_text("<")
        description.append_description_of(self.object)
        if nested_matcher:
            description.append_text(">")


def equal_to(obj: Any) -> Matcher[Any]:
    """Matches if object is equal to a given object.

    :param obj: The object to compare against as the expected value.

    This matcher compares the evaluated object to ``obj`` for equality."""
    return IsEqual(obj)