
    e1                         d dl 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
      Z G d deee            Zdeee   ef   deee      fdZy)    )SequenceTypeVarUnion)BaseMatcher)any_of)Description)wrap_matcher)MatcherzJon ReidzCopyright 2011 hamcrest.orgzBSD, see License.txtTc                   H    e Zd Zdee   ddfdZdee   defdZde	ddfdZ
y)	IsSequenceOnlyContainingmatcherreturnNc                     || _         y )N)r   )selfr   s     W/usr/lib/python3/dist-packages/hamcrest/library/collection/issequence_onlycontaining.py__init__z!IsSequenceOnlyContaining.__init__   s	        itemc                     	 t        |      }t        |      dk(  ry|D ]  }| j                  j                  |      r y y# t        $ r Y yw xY w)Nr   FT)listlenr   matches	TypeError)r   r   sequenceelements       r   _matchesz!IsSequenceOnlyContaining._matches   sZ    		DzH8}!# !||++G4 !  		s    A  A A A 	AAdescriptionc                 X    |j                  d      j                  | j                         y )Nz%a sequence containing items matching )append_textappend_description_ofr   )r   r   s     r   describe_toz$IsSequenceOnlyContaining.describe_to    s#     GH^^LL	
r   )__name__
__module____qualname__r
   r   r   r   boolr   r   r"    r   r   r   r      sC    
 t 
Xa[ 
T 

{ 
t 
r   r   itemsr   c                  j    g }| D ]  }|j                  t        |              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   )r(   matchersr   s      r   only_containsr,   &   s9    & H ,T*+,#FH$566r   N)typingr   r   r   hamcrest.core.base_matcherr   hamcrest.core.core.anyofr   hamcrest.core.descriptionr   "hamcrest.core.helpers.wrap_matcherr	   hamcrest.core.matcherr
   
__author____copyright____license__r   r   r,   r'   r   r   <module>r6      sp    + + 2 + 1 ; )
-$CL
{8A;7 
,7%
A. 778A;3G 7r   