mirror of https://github.com/python/cpython
Fixed 'mkpath()' to normalize the path right off the bat -- cleans up
the code a bit and should make it work under Windows even with trailing backslash. Fixed a couple of docstrings. Added comment about 'make_file()' possibly being redundant and unnecessary.
This commit is contained in:
parent
a564cc315b
commit
f3b997a7f0
|
@ -37,14 +37,14 @@ def mkpath (name, mode=0777, verbose=0, dry_run=0):
|
||||||
# the creation of the whole path? (quite easy to do the latter since
|
# the creation of the whole path? (quite easy to do the latter since
|
||||||
# we're not using a recursive algorithm)
|
# we're not using a recursive algorithm)
|
||||||
|
|
||||||
|
name = os.path.normpath (name)
|
||||||
|
|
||||||
if os.path.isdir (name):
|
if os.path.isdir (name):
|
||||||
return
|
return
|
||||||
if PATH_CREATED.get (name):
|
if PATH_CREATED.get (name):
|
||||||
return
|
return
|
||||||
|
|
||||||
(head, tail) = os.path.split (name)
|
(head, tail) = os.path.split (name)
|
||||||
if not tail: # in case 'name' has trailing slash
|
|
||||||
(head, tail) = os.path.split (head)
|
|
||||||
tails = [tail] # stack of lone dirs to create
|
tails = [tail] # stack of lone dirs to create
|
||||||
|
|
||||||
while head and tail and not os.path.isdir (head):
|
while head and tail and not os.path.isdir (head):
|
||||||
|
@ -100,7 +100,6 @@ def newer (source, target):
|
||||||
|
|
||||||
|
|
||||||
def newer_pairwise (sources, targets):
|
def newer_pairwise (sources, targets):
|
||||||
|
|
||||||
"""Walk two filename lists in parallel, testing if each 'target' is
|
"""Walk two filename lists in parallel, testing if each 'target' is
|
||||||
up-to-date relative to its corresponding 'source'. If so, both
|
up-to-date relative to its corresponding 'source'. If so, both
|
||||||
are deleted from their respective lists. Return a list of tuples
|
are deleted from their respective lists. Return a list of tuples
|
||||||
|
@ -147,6 +146,9 @@ def newer_group (sources, target):
|
||||||
# newer_group ()
|
# newer_group ()
|
||||||
|
|
||||||
|
|
||||||
|
# XXX this isn't used anywhere, and worse, it has the same name as a method
|
||||||
|
# in Command with subtly different semantics. (This one just has one
|
||||||
|
# source -> one dest; that one has many sources -> one dest.) Nuke it?
|
||||||
def make_file (src, dst, func, args,
|
def make_file (src, dst, func, args,
|
||||||
verbose=0, update_message=None, noupdate_message=None):
|
verbose=0, update_message=None, noupdate_message=None):
|
||||||
"""Makes 'dst' from 'src' (both filenames) by calling 'func' with
|
"""Makes 'dst' from 'src' (both filenames) by calling 'func' with
|
||||||
|
@ -288,7 +290,7 @@ def copy_tree (src, dst,
|
||||||
"""Copy an entire directory tree 'src' to a new location 'dst'. Both
|
"""Copy an entire directory tree 'src' to a new location 'dst'. Both
|
||||||
'src' and 'dst' must be directory names. If 'src' is not a
|
'src' and 'dst' must be directory names. If 'src' is not a
|
||||||
directory, raise DistutilsFileError. If 'dst' does not exist, it
|
directory, raise DistutilsFileError. If 'dst' does not exist, it
|
||||||
is created with 'mkpath'. The end result of the copy is that
|
is created with 'mkpath()'. The end result of the copy is that
|
||||||
every file in 'src' is copied to 'dst', and directories under
|
every file in 'src' is copied to 'dst', and directories under
|
||||||
'src' are recursively copied to 'dst'. Return the list of files
|
'src' are recursively copied to 'dst'. Return the list of files
|
||||||
copied (under their output names) -- note that if 'update' is true,
|
copied (under their output names) -- note that if 'update' is true,
|
||||||
|
@ -413,7 +415,7 @@ def move_file (src, dst,
|
||||||
|
|
||||||
|
|
||||||
def write_file (filename, contents):
|
def write_file (filename, contents):
|
||||||
"""Create a file with the specified naem and write 'contents' (a
|
"""Create a file with the specified name and write 'contents' (a
|
||||||
sequence of strings without line terminators) to it."""
|
sequence of strings without line terminators) to it."""
|
||||||
|
|
||||||
f = open (filename, "w")
|
f = open (filename, "w")
|
||||||
|
|
Loading…
Reference in New Issue