U vi4@sddlmZmZmZmZmZmZddlZddlmZm Z mZddl m Z ddl m Z edZd eeeeefeejeeeegeefddd Zd gZdS) )CallableIterableListOptionalTypeVarUnionN) Observableabctyping)CompositeDisposable)default_comparer_T)secondcomparerreturncsB|ptt|trt|n|ttttdfdd }|S)N)sourcercs2|dtjtttjdfdd }t|S)a<Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. Examples: >>> res = sequence_equal([1,2,3]) >>> res = sequence_equal([{ "value": 42 }], lambda x, y: x.value == y.value) >>> res = sequence_equal(reactivex.return_value(42)) >>> res = sequence_equal( reactivex.return_value({ "value": 42 }), lambda x, y: x.value == y.value ) Args: source: Source observable to compare. Returns: An observable sequence that contains a single element which indicates whether both sequences are of equal length and their corresponding elements are equal according to the specified equality comparer. N)observer schedulercsdgdgggtddfdd }ddfdd }tdfd d }fd d }j|j||d }j|j||d }t||S)NF)xrc stdkrpd}z||}Wn2tk rV}z|WYdSd}~XYnX|sdn&drdn |dSNrFlenpop Exceptionon_erroron_next on_completedappend)rvequale) comparer_donerrqlqrS/opt/alt/python38/lib/python3.8/site-packages/reactivex/operators/_sequenceequal.pyon_next15s       zLsequence_equal_..sequence_equal..subscribe..on_next1)rcsBdd<s>r$dndr>ddSNTrF)rrr%donelr"rr#r$r%r& on_completed1Hs   zQsequence_equal_..sequence_equal..subscribe..on_completed1)rc stdkrpd}z||}Wn2tk rV}z|WYdSd}~XYnX|sdn&drdn |dSrr)rrr exception)r!r*rr#r$r%r&on_next2Rs       zLsequence_equal_..sequence_equal..subscribe..on_next2csJdd<sFtdkr,dndrFddSr()rrrr%r)r%r& on_completed2es    zQsequence_equal_..sequence_equal..subscribe..on_completed2)r)r subscriberr )rrr'r+r-r.Z subscription1Z subscription2)r!firstsecond_r)r&r/,s*  z:sequence_equal_..sequence_equal..subscribe)N)r Z ObserverBaseboolrZ SchedulerBaser)rr/r!r1)r0r&sequence_equalsKz'sequence_equal_..sequence_equal)r isinstancer reactivex from_iterablerr r2)rrr4r%r3r&sequence_equal_ s er8)N)r rrrrrrr6rr Zreactivex.disposabler Zreactivex.internalr r ZComparerr2r8__all__r%r%r%r&s     q