Module Expr Str ImportFrom alias Assign NameStore Str Assign NameStore Str FunctionDef arguments args NameParam NameParam defaults body If BoolOpOr CompareIs NameLoad NameLoad CompareIs NameLoad NameLoad body Return TupleLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad NameLoad If CompareLt Call AttributeLoad NameLoad attr Num body Return TupleLoad NameLoad NameLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore TupleLoad Num Num For TupleStore NameStore NameStore NameStore NameStore NameStore Call AttributeLoad NameLoad attr body If CompareEq NameLoad Str body If BoolOpAnd BoolOpOr CompareLt BinOpSub NameLoad NameLoad Num CompareLt BinOpSub NameLoad NameLoad Num CompareNotEq TupleLoad NameLoad NameLoad TupleLoad Num Num body Assign NameStore TupleLoad BinOpSub NameLoad NameLoad BinOpSub NameLoad NameLoad Continue Assign TupleStore NameStore NameStore TupleLoad BinOpSub NameLoad SubscriptLoad NameLoad Index Num NameLoad Assign TupleStore NameStore NameStore TupleLoad BinOpSub NameLoad SubscriptLoad NameLoad Index Num NameLoad If BoolOpAnd CompareNotEq NameLoad ListLoad CompareLtELt NameLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Num NameLoad body Assign SubscriptStore NameLoad Index Num TupleLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Num NameLoad orelse If UnaryOpNot Call AttributeLoad SubscriptLoad NameLoad Slice NameLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad If BoolOpAnd CompareNotEq NameLoad ListLoad CompareLtELt NameLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Num NameLoad body Assign SubscriptStore NameLoad Index Num TupleLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Num NameLoad orelse If UnaryOpNot Call AttributeLoad SubscriptLoad NameLoad Slice NameLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad Assign NameStore TupleLoad Num Num Return TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad Assign NameStore Num For TupleStore NameStore NameStore Call NameLoad BoolOpOr NameLoad ListLoad body Expr Call AttributeLoad NameLoad attr BinOpAdd NameLoad NameLoad NameLoad AugAssignAdd NameStore Num Expr Call AttributeLoad NameLoad attr BinOpAdd NameLoad NameLoad NameLoad AugAssignAdd NameStore Num Return Call AttributeLoad Str attr NameLoad decorator_list ClassDef bases NameLoad body FunctionDef arguments args NameParam NameParam NameParam defaults body Return Call AttributeLoad NameLoad attr NameLoad TupleLoad NameLoad NameLoad decorator_list Assign NameStore TupleLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad NameLoad Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad NameLoad Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return BinOpMod Str TupleLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad Return Call NameLoad Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad decorator_list
N/A N/A 
Inter-line differ, for readable diffs in test assertion failure messages.

Based around a differ borrowed from Review Board.
 difflib SequenceMatcher N/A LEFT_HIGHLIGHT_CHARACTER < N/A RIGHT_HIGHLIGHT_CHARACTER > get_line_changed_regions N/A N/A oldline newline N/A N/A N/A N/A N/A oldline None N/A newline None N/A N/A N/A None None N/A differ N/A SequenceMatcher None oldline newline N/A N/A N/A N/A differ ratio 0.6 N/A N/A N/A None None N/A oldchanges N/A N/A newchanges N/A N/A back N/A 0 0 N/A N/A tag i1 i2 j1 j2 N/A N/A differ get_opcodes N/A N/A N/A tag equal N/A N/A N/A N/A N/A N/A i2 i1 3 N/A N/A j2 j1 3 N/A N/A i1 j1 N/A 0 0 N/A N/A back N/A N/A j2 j1 N/A i2 i1 N/A N/A N/A oldstart oldend N/A N/A i1 N/A back N/A 0 i2 N/A N/A newstart newend N/A N/A j1 N/A back N/A 1 j2 N/A N/A N/A oldchanges N/A N/A oldstart N/A N/A oldchanges N/A -1 N/A 1 oldend N/A N/A N/A oldchanges N/A -1 N/A N/A N/A oldchanges N/A -1 N/A 0 oldend N/A N/A N/A N/A N/A N/A oldline N/A oldstart oldend isspace N/A N/A N/A N/A oldchanges append N/A oldstart oldend N/A N/A N/A newchanges N/A N/A newstart N/A N/A newchanges N/A -1 N/A 1 newend N/A N/A N/A newchanges N/A -1 N/A N/A N/A newchanges N/A -1 N/A 0 newend N/A N/A N/A N/A N/A N/A newline N/A newstart newend isspace N/A N/A N/A N/A newchanges append N/A newstart newend N/A back N/A 0 0 N/A N/A oldchanges newchanges N/A highlight_regions N/A N/A string regions N/A N/A N/A Given `string` and `regions` (a list of (beginning index, end index)
    tuples), return `string` marked up to highlight those regions.

    >>> highlight_regions('This is a string.', [(0, 3), (8, 9)])
    '<Thi>s is <a> string.'
     N/A string N/A list string N/A offset 0 N/A N/A beginning end N/A sorted N/A regions N/A N/A N/A N/A N/A string insert N/A offset beginning LEFT_HIGHLIGHT_CHARACTER N/A offset 1 N/A N/A N/A string insert N/A offset end RIGHT_HIGHLIGHT_CHARACTER N/A offset 1 N/A N/A N/A join string N/A HighlightedDiff N/A tuple N/A __new__ N/A N/A cls old new N/A N/A N/A N/A N/A tuple __new__ cls N/A old new N/A N/A __slots__ N/A old N/A N/A self N/A N/A N/A N/A self N/A 0 N/A property new N/A N/A self N/A N/A N/A N/A self N/A 1 N/A property __repr__ N/A N/A self N/A N/A N/A N/A %s(old=%r, new=%r) N/A N/A N/A self __class__ __name__ N/A self old N/A self new N/A N/A highlight N/A N/A old new N/A N/A N/A Given two strings, return a `HighlightedDiff` containing the strings
    with markup identifying the parts that changed.

    >>> highlight('Testify is great.', 'testify is gr8')
    HighlightedDiff(old='<T>estify is gr<eat.>', new='<t>estify is gr<8>')
     N/A N/A oldchanges newchanges N/A get_line_changed_regions old new N/A N/A HighlightedDiff N/A highlight_regions old oldchanges N/A highlight_regions new newchanges N/A