patch [ 1105730 ] Faster commonprefix in macpath, ntpath, etc.
This commit is contained in:
parent
b370059233
commit
649f8e7de2
|
@ -175,14 +175,14 @@ def lexists(path):
|
|||
def commonprefix(m):
|
||||
"Given a list of pathnames, returns the longest common leading component"
|
||||
if not m: return ''
|
||||
prefix = m[0]
|
||||
for item in m:
|
||||
for i in range(len(prefix)):
|
||||
if prefix[:i+1] != item[:i+1]:
|
||||
prefix = prefix[:i]
|
||||
if i == 0: return ''
|
||||
break
|
||||
return prefix
|
||||
s1 = min(m)
|
||||
s2 = max(m)
|
||||
n = min(len(s1), len(s2))
|
||||
for i in xrange(n):
|
||||
if s1[i] != s2[i]:
|
||||
return s1[:i]
|
||||
return s1[:n]
|
||||
|
||||
|
||||
def expandvars(path):
|
||||
"""Dummy to retain interface-compatibility with other operating systems."""
|
||||
|
|
|
@ -212,14 +212,13 @@ def dirname(p):
|
|||
def commonprefix(m):
|
||||
"Given a list of pathnames, returns the longest common leading component"
|
||||
if not m: return ''
|
||||
prefix = m[0]
|
||||
for item in m:
|
||||
for i in range(len(prefix)):
|
||||
if prefix[:i+1] != item[:i+1]:
|
||||
prefix = prefix[:i]
|
||||
if i == 0: return ''
|
||||
break
|
||||
return prefix
|
||||
s1 = min(m)
|
||||
s2 = max(m)
|
||||
n = min(len(s1), len(s2))
|
||||
for i in xrange(n):
|
||||
if s1[i] != s2[i]:
|
||||
return s1[:i]
|
||||
return s1[:n]
|
||||
|
||||
|
||||
# Get size, mtime, atime of files.
|
||||
|
|
|
@ -173,14 +173,13 @@ def dirname(p):
|
|||
def commonprefix(m):
|
||||
"Given a list of pathnames, returns the longest common leading component"
|
||||
if not m: return ''
|
||||
prefix = m[0]
|
||||
for item in m:
|
||||
for i in range(len(prefix)):
|
||||
if prefix[:i+1] != item[:i+1]:
|
||||
prefix = prefix[:i]
|
||||
if i == 0: return ''
|
||||
break
|
||||
return prefix
|
||||
s1 = min(m)
|
||||
s2 = max(m)
|
||||
n = min(len(s1), len(s2))
|
||||
for i in xrange(n):
|
||||
if s1[i] != s2[i]:
|
||||
return s1[:i]
|
||||
return s1[:n]
|
||||
|
||||
|
||||
# Get size, mtime, atime of files.
|
||||
|
|
|
@ -168,23 +168,16 @@ def dirname(p):
|
|||
return split(p)[0]
|
||||
|
||||
|
||||
def commonprefix(ps):
|
||||
"""
|
||||
Return the longest prefix of all list elements. Purely string-based; does not
|
||||
separate any path parts. Why am I in os.path?
|
||||
"""
|
||||
if len(ps)==0:
|
||||
return ''
|
||||
prefix= ps[0]
|
||||
for p in ps[1:]:
|
||||
prefix= prefix[:len(p)]
|
||||
for i in range(len(prefix)):
|
||||
if prefix[i] <> p[i]:
|
||||
prefix= prefix[:i]
|
||||
if i==0:
|
||||
return ''
|
||||
break
|
||||
return prefix
|
||||
def commonprefix(m):
|
||||
"Given a list of pathnames, returns the longest common leading component"
|
||||
if not m: return ''
|
||||
s1 = min(m)
|
||||
s2 = max(m)
|
||||
n = min(len(s1), len(s2))
|
||||
for i in xrange(n):
|
||||
if s1[i] != s2[i]:
|
||||
return s1[:i]
|
||||
return s1[:n]
|
||||
|
||||
|
||||
## File access functions. Why are we in os.path?
|
||||
|
|
|
@ -178,6 +178,9 @@ Extension Modules
|
|||
Library
|
||||
-------
|
||||
|
||||
- Patch #1105730: Apply the new implementation of commonprefix in posixpath
|
||||
to ntpath, macpath, os2emxpath and riscospath.
|
||||
|
||||
- Fix a problem in Tkinter introduced by SF patch #869468: delete bogus
|
||||
__hasattr__ and __delattr__ methods on class Tk that were breaking
|
||||
Tkdnd.
|
||||
|
|
Loading…
Reference in New Issue