eddlZddlmZmZmZmZddlmZddlm Z ddl m Z ddl m Z dZdZd Zed ZGd d eZGd deeeZdee eefde eefdZdee eefde eefdZy)N)OptionalSequenceTypeVarUnion) BaseMatcher) Description) wrap_matcher)MatcherzJon ReidzCopyright 2011 hamcrest.orgzBSD, see License.txtTcneZdZdeeedeeddfdZdede fdZ de fdZ dede fd Z dede fd Z y) MatchingInOrdermatchersmismatch_descriptionreturnNc.||_||_d|_y)Nr)rrnext_match_index)selfrrs Z/usr/lib/python3/dist-packages/hamcrest/library/collection/issequence_containinginorder.py__init__zMatchingInOrder.__init__s! $8! !itemcJ|j|xr|j|SN) isnotsurplus ismatchedrrs rmatcheszMatchingInOrder.matchess!  &?4>>$+??rc|jt|jkrN|jrA|jj dj |j|jyy)NzNo item matched: FT)rlenrr append_textappend_description_of)rs r isfinishedzMatchingInOrder.isfinisheds\  3t}}#5 5(())556IJ``MM$"7"78rc<|j|j}|j|s]|jrP|jj dt |jzdz|j ||jy|xjdz c_y)Nzitem z: FT)rrrrr strdescribe_mismatch)rrmatchers rrzMatchingInOrder.ismatched$s-- 5 56t$(())55gDDYDY@Z6Z]a6ab))$0I0IJ "rct|j|jkr7|jr*|jj dj |yy)Nz Not matched: FT)rrrrr r!rs rrzMatchingInOrder.isnotsurplus.sH t}} !6!6 6(())55oF\\]abr)__name__ __module__ __qualname__rr r rrrboolrr"rrrrr r su" ,"DL[DY" "@A@$@DaDtrr ceZdZdeeeddfdZ d deedeede ffd Z deededdfdZ d eddfd Z xZ S) IsSequenceContainingInOrderrrNc||_yr)r)rrs rrz$IsSequenceContainingInOrder.__init__7s   rrrc t|j|}|D]}|j|ry|jS#t$r|rt t |||YywxYw)NF)r rrr" TypeErrorsuperr/r&)rrr matchsequenceelement __class__s rrz#IsSequenceContainingInOrder.matches:sw +DMM;OPM !$,,W5  !!++- - #14J.  s,AAAA%$A%c(|j||yr)r)rrrs rr&z-IsSequenceContainingInOrder.describe_mismatchJs T/0r descriptionc^|jdjddd|jy)Nza sequence containing [z, ])r append_listr)rr8s r describe_toz'IsSequenceContainingInOrder.describe_toMs* 89EEc4QTVZVcVcdrr)r)r*r+rr r rrrr,rr&r= __classcell__)r6s@rr/r/6s!'!*!5!$!PTQK7? 7L  1hqk11Y]1e{eterr/itemsrc^g}|D]}|jt|t|S)aMatches if sequence's elements satisfy a given list of matchers, in order. :param match1,...: A comma-separated list of matchers. This matcher iterates the evaluated sequence and a given list of matchers, seeing if each element satisfies its corresponding matcher. 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?rrs rcontains_exactlyrBQs4H, T*+, &x 00rcFtjdtt|S)z)Deprecated - use contains_exactly(*items)z)deprecated - use contains_exactly(*items))warningswarnDeprecationWarningrB)r?s rcontainsrGds MM=?QR U ##r)rDtypingrrrrhamcrest.core.base_matcherrhamcrest.core.descriptionr"hamcrest.core.helpers.wrap_matcherr hamcrest.core.matcherr __author__ __copyright__ __license__r objectr r/rBrGr-rrrQs5521;)  - $  CL#f#Le+hqk":e61U71:q=11ghqk6J1&$U71:q=)$ghqk.B$r