Kaydet (Commit) 74a7c67d authored tarafından Terry Reedy's avatar Terry Reedy

--no commit message

--no commit message
üst f3b68b3f
...@@ -358,6 +358,16 @@ The :class:`SequenceMatcher` class has this constructor: ...@@ -358,6 +358,16 @@ The :class:`SequenceMatcher` class has this constructor:
.. versionadded:: 3.2 .. versionadded:: 3.2
The *autojunk* parameter. The *autojunk* parameter.
SequenceMatcher objects get three data attributes: *bjunk* is the
set of elements of b for which *isjunk* is True; *bpopular* is the set of non-
junk elements considered popular by the heuristic (if it is not disabled);
*b2j* is a dict mapping the remaining elements of b to a list of positions where
they occur. All three are reset whenever *b* is reset with :meth:`set_seqs`
or :meth:`set_seq2`.
.. versionadded:: 3.2
The *bjunk* and *bpopular* attributes.
:class:`SequenceMatcher` objects have the following methods: :class:`SequenceMatcher` objects have the following methods:
...@@ -538,7 +548,7 @@ different results due to differing levels of approximation, although ...@@ -538,7 +548,7 @@ different results due to differing levels of approximation, although
SequenceMatcher Examples SequenceMatcher Examples
------------------------ ------------------------
This example compares two strings, considering blanks to be "junk:" This example compares two strings, considering blanks to be "junk":
>>> s = SequenceMatcher(lambda x: x == " ", >>> s = SequenceMatcher(lambda x: x == " ",
... "private Thread currentThread;", ... "private Thread currentThread;",
......
...@@ -213,6 +213,10 @@ class SequenceMatcher: ...@@ -213,6 +213,10 @@ class SequenceMatcher:
# (at least 200 elements) and x accounts for more than 1 + 1% of # (at least 200 elements) and x accounts for more than 1 + 1% of
# its elements (when autojunk is enabled). # its elements (when autojunk is enabled).
# DOES NOT WORK for x in a! # DOES NOT WORK for x in a!
# bjunk
# the items in b for which isjunk is True.
# bpopular
# nonjunk items in b treated as junk by the heuristic (if used).
self.isjunk = isjunk self.isjunk = isjunk
self.a = self.b = None self.a = self.b = None
...@@ -321,7 +325,7 @@ class SequenceMatcher: ...@@ -321,7 +325,7 @@ class SequenceMatcher:
indices.append(i) indices.append(i)
# Purge junk elements # Purge junk elements
junk = set() self.bjunk = junk = set()
isjunk = self.isjunk isjunk = self.isjunk
if isjunk: if isjunk:
for elt in list(b2j.keys()): # using list() since b2j is modified for elt in list(b2j.keys()): # using list() since b2j is modified
...@@ -330,7 +334,7 @@ class SequenceMatcher: ...@@ -330,7 +334,7 @@ class SequenceMatcher:
del b2j[elt] del b2j[elt]
# Purge popular elements that are not junk # Purge popular elements that are not junk
popular = set() self.bpopular = popular = set()
n = len(b) n = len(b)
if self.autojunk and n >= 200: if self.autojunk and n >= 200:
ntest = n // 100 + 1 ntest = n // 100 + 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment