Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
fabefc3c
Kaydet (Commit)
fabefc3c
authored
Haz 21, 2014
tarafından
Raymond Hettinger
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue 21635: Fix caching in difflib.SequenceMatcher.get_matching_blocks().
üst
8aa9e426
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
2 deletions
+15
-2
difflib.py
Lib/difflib.py
+2
-2
test_difflib.py
Lib/test/test_difflib.py
+9
-0
NEWS
Misc/NEWS
+4
-0
No files found.
Lib/difflib.py
Dosyayı görüntüle @
fabefc3c
...
...
@@ -511,8 +511,8 @@ class SequenceMatcher:
non_adjacent
.
append
((
i1
,
j1
,
k1
))
non_adjacent
.
append
(
(
la
,
lb
,
0
)
)
self
.
matching_blocks
=
non_adjacent
return
map
(
Match
.
_make
,
self
.
matching_blocks
)
self
.
matching_blocks
=
list
(
map
(
Match
.
_make
,
non_adjacent
))
return
self
.
matching_blocks
def
get_opcodes
(
self
):
"""Return list of 5-tuples describing how to turn a into b.
...
...
Lib/test/test_difflib.py
Dosyayı görüntüle @
fabefc3c
...
...
@@ -76,6 +76,15 @@ class TestSFbugs(unittest.TestCase):
diff_gen
=
difflib
.
unified_diff
([],
[])
self
.
assertRaises
(
StopIteration
,
next
,
diff_gen
)
def
test_matching_blocks_cache
(
self
):
# Issue #21635
s
=
difflib
.
SequenceMatcher
(
None
,
"abxcd"
,
"abcd"
)
first
=
s
.
get_matching_blocks
()
second
=
s
.
get_matching_blocks
()
self
.
assertEqual
(
second
[
0
]
.
size
,
2
)
self
.
assertEqual
(
second
[
1
]
.
size
,
2
)
self
.
assertEqual
(
second
[
2
]
.
size
,
0
)
def
test_added_tab_hint
(
self
):
# Check fix for bug #1488943
diff
=
list
(
difflib
.
Differ
()
.
compare
([
"
\t
I am a buggy"
],[
"
\t\t
I am a bug"
]))
...
...
Misc/NEWS
Dosyayı görüntüle @
fabefc3c
...
...
@@ -29,6 +29,10 @@ Library
- Issue #21491: socketserver: Fix a race condition in child processes reaping.
- Issue #21635: The difflib SequenceMatcher.get_matching_blocks() method
cache didn'
t
match
the
actual
result
.
The
former
was
a
list
of
tuples
and
the
latter
was
a
list
of
named
tuples
.
-
Issue
#
21722
:
The
distutils
"upload"
command
now
exits
with
a
non
-
zero
return
code
when
uploading
fails
.
Patch
by
Martin
Dengler
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment