Spade
Mini Shell
�
t�fc@s�dZddlmZmZeZdZed�Zd�Z d�Z
ed�Zedd �Zd
�Z
d�Zd�Zd
S(sVarious utility functions.i����(t
namedtupletOrderedDictiPcCs\yt|�}Wn tk
r2tj|�}nX|sLt|�tkrP|S|t dS(Ns
[truncated]...(treprt Exceptiontobjectt__repr__tlent_MAX_LENGTH(tobjtshorttresult((s%/usr/lib64/python2.7/unittest/util.pyt safe_reprs
cCsd|j|jfS(Ns%s.%s(t
__module__t__name__(tcls((s%/usr/lib64/python2.7/unittest/util.pytstrclassscCshd}}g}g}xEtr]y||}||}||kr}|j|�|d7}x�|||kry|d7}q\Wn�||kr�|j|�|d7}x|||kr�|d7}q�Wn^|d7}z%x|||kr�|d7}q�WWd|d7}x|||kr
|d7}qWXWqtk
rY|j||�|j||�PqXqW||fS(srFinds elements in only
one or the other of two, sorted input lists.
Returns a two-element tuple of lists. The first list contains those
elements in the "expected" list but not in the
"actual" list, and the
second contains those elements in the "actual" list but not
in the
"expected" list. Duplicate elements in either input list
are ignored.
iiN(tTruetappendt
IndexErrortextend(texpectedtactualtitjtmissingt
unexpectedteta((s%/usr/lib64/python2.7/unittest/util.pytsorted_list_differences:
cCsg}g}x�|r�|j�}y|j|�Wntk
rR|j|�nX|rxI||fD]8}yxtr�|j|�qrWWqftk
r�qfXqfWqqW|rxU|r|j�}|j|�yxtr�|j|�q�WWq�tk
rq�Xq�W||fS||fS(s�Same behavior as sorted_list_difference
but
for lists of unorderable items (like dicts).
As it does a linear search per item (remove) it
has O(n*n) performance.
(tpoptremovet
ValueErrorRR(RRtignore_duplicateRRtitemtlst((s%/usr/lib64/python2.7/unittest/util.pytunorderable_list_difference>s4
tMismatchsactual expected
valuecCs�t|�t|�}}t|�t|�}}t�}g}x�t|�D]�\}} | |krlqNnd}
}x>t||�D]-}||| kr�|
d7}
|||<q�q�Wx=t|�D]/\}}
|
| kr�|d7}|||<q�q�W|
|krNt|
|| �}|j|�qNqNWx�t|�D]�\}} | |krTq6nd}x>t||�D]-}||| krj|d7}|||<qjqjWtd|| �}|j|�q6W|S(sHReturns
list of (cnt_act, cnt_exp, elem) triples where the counts
differii(tlistRRt enumeratetranget _MismatchR(RRtstttmtntNULLR
Rtelemtcnt_stcnt_tRt
other_elemtdiff((s%/usr/lib64/python2.7/unittest/util.pyt_count_diff_all_purposeds<
cCs8t�}x(|D] }|j|d�d||<qW|S(s@Return dict of
element counts, in the order they were first
seenii(Rtget(titerabletcR.((s%/usr/lib64/python2.7/unittest/util.pyt_ordered_count�s
c Cs�t|�t|�}}g}xZ|j�D]L\}}|j|d�}||kr,t|||�}|j|�q,q,WxH|j�D]:\}}||kr�td||�}|j|�q�q�W|S(sHReturns
list of (cnt_act, cnt_exp, elem) triples where the counts
differi(R7titemsR4R(R( RRR)R*R
R.R/R0R2((s%/usr/lib64/python2.7/unittest/util.pyt_count_diff_hashable�sN(t__doc__tcollectionsRRRt
__unittestRtFalseRRRR#R(R3R7R9(((s%/usr/lib64/python2.7/unittest/util.pyt<module>s
)$ #