Skip to content

Commit

Permalink
bpo-35079: Revise difflib.SequenceManager.get_matching_blocks doc (GH…
Browse files Browse the repository at this point in the history
…-10144)

Specify that blocks are non-overlapping. Change '!=' to '<'.
(cherry picked from commit d9bff4e)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
  • Loading branch information
miss-islington and terryjreedy committed Oct 27, 2018
1 parent f2b5b4f commit cb920c1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
7 changes: 4 additions & 3 deletions Doc/library/difflib.rst
Original file line number Diff line number Diff line change
Expand Up @@ -457,14 +457,15 @@ The :class:`SequenceMatcher` class has this constructor:

.. method:: get_matching_blocks()

Return list of triples describing matching subsequences. Each triple is of
the form ``(i, j, n)``, and means that ``a[i:i+n] == b[j:j+n]``. The
Return list of triples describing non-overlapping matching subsequences.
Each triple is of the form ``(i, j, n)``,
and means that ``a[i:i+n] == b[j:j+n]``. The
triples are monotonically increasing in *i* and *j*.

The last triple is a dummy, and has the value ``(len(a), len(b), 0)``. It
is the only triple with ``n == 0``. If ``(i, j, n)`` and ``(i', j', n')``
are adjacent triples in the list, and the second is not the last triple in
the list, then ``i+n != i'`` or ``j+n != j'``; in other words, adjacent
the list, then ``i+n < i'`` or ``j+n < j'``; in other words, adjacent
triples always describe non-adjacent equal blocks.

.. XXX Explain why a dummy is used!
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Improve difflib.SequenceManager.get_matching_blocks doc by adding 'non-
overlapping' and changing '!=' to '<'.

0 comments on commit cb920c1

Please sign in to comment.