HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/usr/lib/python3/dist-packages/hamcrest/core/core/issame.py
__author__ = "Jon Reid"
__copyright__ = "Copyright 2011 hamcrest.org"
__license__ = "BSD, see License.txt"

from hamcrest.core.base_matcher import BaseMatcher


class IsSame(BaseMatcher):

    def __init__(self, object):
        self.object = object

    def _matches(self, item):
        return item is self.object

    def describe_to(self, description):
        description.append_text('same instance as ')            \
                   .append_text(hex(id(self.object)))           \
                   .append_text(' ')                            \
                   .append_description_of(self.object)

    def describe_mismatch(self, item, mismatch_description):
        mismatch_description.append_text('was ')
        if item is not None:
            mismatch_description.append_text(hex(id(item)))         \
                                .append_text(' ')
        mismatch_description.append_description_of(item)


def same_instance(obj):
    """Matches if evaluated object is the same instance as a given object.

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

    This matcher invokes the ``is`` identity operator to determine if the
    evaluated object is the the same object as ``obj``.

    """
    return IsSame(obj)