o
    (]^%                     @   s   d dl mZmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ dZdZd	Zed
edZG dd deeeef  Zdeeee f deeeef  fddZdS )    )AnyHashableMappingTypeVarUnion)BaseMatcher)Description)	hasmethod)wrap_matcher)MatcherzJon ReidzCopyright 2011 hamcrest.orgzBSD, see License.txtK)boundc                   @   sN   e Zd Zdee ddfddZdeeef defddZ	d	e
ddfd
dZdS )IsDictContainingKeykey_matcherreturnNc                 C   s
   || _ d S )N)r   )selfr    r   R/usr/lib/python3/dist-packages/hamcrest/library/collection/isdict_containingkey.py__init__   s   
zIsDictContainingKey.__init__itemc                 C   s.   t |dr| D ]}| j|r dS q	dS )NkeysTF)r	   r   r   matches)r   r   keyr   r   r   _matches   s   
zIsDictContainingKey._matchesdescriptionc                 C   s   | d| j d S )Nza dictionary containing key )append_textappend_description_ofr   )r   r   r   r   r   describe_to   s   
zIsDictContainingKey.describe_to)__name__
__module____qualname__r   r   r   r   r   boolr   r   r   r   r   r   r   r      s    r   	key_matchr   c                 C   s   t t| S )a  Matches if dictionary contains an entry whose key satisfies a given
    matcher.

    :param key_match: The matcher to satisfy for the key, or an expected value
        for :py:func:`~hamcrest.core.core.isequal.equal_to` matching.

    This matcher iterates the evaluated dictionary, searching for any key-value
    entry whose key satisfies the given matcher. If a matching entry is found,
    ``has_key`` is satisfied.

    Any argument that is not a matcher is implicitly wrapped in an
    :py:func:`~hamcrest.core.core.isequal.equal_to` matcher to check for
    equality.

    Examples::

        has_key(equal_to('foo'))
        has_key('foo')

    )r   r
   )r"   r   r   r   has_key!   s   r#   N)typingr   r   r   r   r   hamcrest.core.base_matcherr   hamcrest.core.descriptionr   hamcrest.core.helpers.hasmethodr	   "hamcrest.core.helpers.wrap_matcherr
   hamcrest.core.matcherr   
__author____copyright____license__r   r   r#   r   r   r   r   <module>   s    .