File: //usr/lib64/python2.7/unittest/util.pyc
�
t�fc           @   s�   d  Z  d d l m Z m Z e Z d Z e d � Z d �  Z	 d �  Z
 e d � Z e d d	 � Z d
 �  Z
 d �  Z d �  Z d
 S(   s   Various utility functions.i����(   t
   namedtuplet   OrderedDictiP   c         C   s\   y t  |  � } Wn  t k
 r2 t j |  � } n X| sL t | � t k  rP | S| t  d S(   Ns    [truncated]...(   t   reprt	   Exceptiont   objectt   __repr__t   lent   _MAX_LENGTH(   t   objt   shortt   result(    (    s%   /usr/lib64/python2.7/unittest/util.pyt	   safe_repr   s    
c         C   s   d |  j  |  j f S(   Ns   %s.%s(   t
   __module__t   __name__(   t   cls(    (    s%   /usr/lib64/python2.7/unittest/util.pyt   strclass   s    c         C   sh  d } } g  } g  } xEt  r]y|  | } | | } | | k  r} | j | � | d 7} x� |  | | k ry | d 7} q\ Wn� | | k r� | j | � | d 7} x | | | k r� | d 7} q� Wn^ | d 7} z% x |  | | k r� | d 7} q� WWd | d 7} x | | | k r | d 7} qWXWq t k
 rY| j |  | � | j | | � Pq Xq W| | f S(   sr  Finds 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.
    i    i   N(   t   Truet   appendt
   IndexErrort   extend(   t   expectedt   actualt   it   jt   missingt
   unexpectedt   et   a(    (    s%   /usr/lib64/python2.7/unittest/util.pyt   sorted_list_difference   s:    
	
	c         C   s  g  } g  } x� |  r� |  j  �  } y | j | � Wn t k
 rR | j | � n X| r xI |  | f D]8 } y x t r� | j | � qr WWqf t k
 r� qf Xqf Wq q W| rxU | r| j  �  } | j | � y x t r� | j | � q� WWq� t k
 rq� Xq� W| | f S| | f S(   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.
    (   t   popt   removet
   ValueErrorR   R   (   R   R   t   ignore_duplicateR   R   t   itemt   lst(    (    s%   /usr/lib64/python2.7/unittest/util.pyt   unorderable_list_difference>