U
    ôbÛVZ  ã                   @   sX   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
G dd	„ d	eƒZd
d„ ZdS )é    )ÚBaseMatcher)Úany_of)Ú	hasmethod)Úwrap_matcherzJon ReidzCopyright 2011 hamcrest.orgzBSD, see License.txtc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚIsSequenceOnlyContainingc                 C   s
   || _ d S )N)Úmatcher)Úselfr   © r	   úW/usr/lib/python3/dist-packages/hamcrest/library/collection/issequence_onlycontaining.pyÚ__init__   s    z!IsSequenceOnlyContaining.__init__c                 C   sZ   z>t |ƒ}t|ƒdkrW dS |D ]}| j |¡s  W dS q W dS  tk
rT   Y dS X d S )Nr   FT)ÚlistÚlenr   ZmatchesÚ	TypeError)r   ZsequenceÚitemr	   r	   r
   Ú_matches   s    
z!IsSequenceOnlyContaining._matchesc                 C   s   |  d¡ | j¡ d S )Nz%a sequence containing items matching )Zappend_textZappend_description_ofr   )r   Zdescriptionr	   r	   r
   Údescribe_to   s    
ÿz$IsSequenceOnlyContaining.describe_toN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r	   r	   r	   r
   r      s   r   c                  G   s(   g }| D ]}|  t|ƒ¡ qtt|Ž ƒS )aò  Matches if each element of sequence satisfies any of the given matchers.

    :param match1,...: A comma-separated list of matchers.

    This matcher iterates the evaluated sequence, confirming whether each
    element satisfies any of the given matchers.

    Example::

        only_contains(less_than(4))

    will match ``[3,1,2]``.

    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.

    )Úappendr   r   r   )ÚitemsZmatchersr   r	   r	   r
   Úonly_contains!   s    r   N)Zhamcrest.core.base_matcherr   Zhamcrest.core.core.anyofr   Zhamcrest.core.helpers.hasmethodr   Z"hamcrest.core.helpers.wrap_matcherr   Ú
__author__Z__copyright__Z__license__r   r   r	   r	   r	   r
   Ú<module>   s   