Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
9e3dc4e9
Commit
9e3dc4e9
authored
Sep 23, 2000
by
Greg Ward
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reformat docstrings.
Standardize use of whitespace on function calls.
parent
4a751580
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
63 additions
and
65 deletions
+63
-65
Lib/distutils/file_util.py
Lib/distutils/file_util.py
+63
-65
No files found.
Lib/distutils/file_util.py
View file @
9e3dc4e9
...
...
@@ -18,11 +18,11 @@ _copy_action = { None: 'copying',
def
_copy_file_contents
(
src
,
dst
,
buffer_size
=
16
*
1024
):
"""Copy the file 'src' to 'dst'; both must be filenames. Any error
opening either file, reading from 'src', or writing to 'dst',
raises DistutilsFileError. Data is read/written in chunks of
'buffer_size' bytes (default 16k). No attempt is made to handle
anything apart from regular files."""
opening either file, reading from 'src', or writing to 'dst', raises
DistutilsFileError. Data is read/written in chunks of 'buffer_size'
bytes (default 16k). No attempt is made to handle anything apart from
regular files.
"""
# Stolen from shutil module in the standard library, but with
# custom error-handling added.
...
...
@@ -43,7 +43,7 @@ def _copy_file_contents (src, dst, buffer_size=16*1024):
while
1
:
try
:
buf
=
fsrc
.
read
(
buffer_size
)
buf
=
fsrc
.
read
(
buffer_size
)
except
os
.
error
,
(
errno
,
errstr
):
raise
DistutilsFileError
,
\
"could not read from '%s': %s"
%
(
src
,
errstr
)
...
...
@@ -74,31 +74,29 @@ def copy_file (src, dst,
verbose
=
0
,
dry_run
=
0
):
"""Copy a file 'src' to 'dst'. If 'dst' is a directory, then 'src'
is copied there with the same name; otherwise, it must be a
filename. (If the file exists, it will be ruthlessly clobbered.)
If 'preserve_mode' is true (the default), the file's mode (type
and permission bits, or whatever is analogous on the current
platform) is copied. If 'preserve_times' is true (the default),
the last-modified and last-access times are copied as well. If
'update' is true, 'src' will only be copied if 'dst' does not
exist, or if 'dst' does exist but is older than 'src'. If
'verbose' is true, then a one-line summary of the copy will be
printed to stdout.
'link' allows you to make hard links (os.link) or symbolic links
(os.symlink) instead of copying: set it to "hard" or "sym"; if it
is None (the default), files are copied. Don't set 'link' on
systems that don't support it: 'copy_file()' doesn't check if
hard or symbolic linking is available.
Under Mac OS, uses the native file copy function in macostools;
on other systems, uses '_copy_file_contents()' to copy file
contents.
Return the name of the destination file, whether it was actually
copied or not."""
"""Copy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is
copied there with the same name; otherwise, it must be a filename. (If
the file exists, it will be ruthlessly clobbered.) If 'preserve_mode'
is true (the default), the file's mode (type and permission bits, or
whatever is analogous on the current platform) is copied. If
'preserve_times' is true (the default), the last-modified and
last-access times are copied as well. If 'update' is true, 'src' will
only be copied if 'dst' does not exist, or if 'dst' does exist but is
older than 'src'. If 'verbose' is true, then a one-line summary of the
copy will be printed to stdout.
'link' allows you to make hard links (os.link) or symbolic links
(os.symlink) instead of copying: set it to "hard" or "sym"; if it is
None (the default), files are copied. Don't set 'link' on systems that
don't support it: 'copy_file()' doesn't check if hard or symbolic
linking is available.
Under Mac OS, uses the native file copy function in macostools; on
other systems, uses '_copy_file_contents()' to copy file contents.
Return the name of the destination file, whether it was actually copied
or not.
"""
# XXX if the destination file already exists, we clobber it if
# copying, but blow up if linking. Hmmm. And I don't know what
# macostools.copyfile() does. Should definitely be consistent, and
...
...
@@ -109,17 +107,17 @@ def copy_file (src, dst,
from
stat
import
*
from
distutils.dep_util
import
newer
if
not
os
.
path
.
isfile
(
src
):
if
not
os
.
path
.
isfile
(
src
):
raise
DistutilsFileError
,
\
"can't copy '%s': doesn't exist or not a regular file"
%
src
if
os
.
path
.
isdir
(
dst
):
if
os
.
path
.
isdir
(
dst
):
dir
=
dst
dst
=
os
.
path
.
join
(
dst
,
os
.
path
.
basename
(
src
))
dst
=
os
.
path
.
join
(
dst
,
os
.
path
.
basename
(
src
))
else
:
dir
=
os
.
path
.
dirname
(
dst
)
dir
=
os
.
path
.
dirname
(
dst
)
if
update
and
not
newer
(
src
,
dst
):
if
update
and
not
newer
(
src
,
dst
):
if
verbose
:
print
"not copying %s (output up-to-date)"
%
src
return
dst
...
...
@@ -142,7 +140,7 @@ def copy_file (src, dst,
if
os
.
name
==
'mac'
:
import
macostools
try
:
macostools
.
copy
(
src
,
dst
,
0
,
preserve_times
)
macostools
.
copy
(
src
,
dst
,
0
,
preserve_times
)
except
os
.
error
,
exc
:
raise
DistutilsFileError
,
\
"could not copy '%s' to '%s': %s"
%
(
src
,
dst
,
exc
[
-
1
])
...
...
@@ -150,25 +148,25 @@ def copy_file (src, dst,
# If linking (hard or symbolic), use the appropriate system call
# (Unix only, of course, but that's the caller's responsibility)
elif
link
==
'hard'
:
if
not
(
os
.
path
.
exists
(
dst
)
and
os
.
path
.
samefile
(
src
,
dst
)):
os
.
link
(
src
,
dst
)
if
not
(
os
.
path
.
exists
(
dst
)
and
os
.
path
.
samefile
(
src
,
dst
)):
os
.
link
(
src
,
dst
)
elif
link
==
'sym'
:
if
not
(
os
.
path
.
exists
(
dst
)
and
os
.
path
.
samefile
(
src
,
dst
)):
os
.
symlink
(
src
,
dst
)
if
not
(
os
.
path
.
exists
(
dst
)
and
os
.
path
.
samefile
(
src
,
dst
)):
os
.
symlink
(
src
,
dst
)
# Otherwise (non-Mac, not linking), copy the file contents and
# (optionally) copy the times and mode.
else
:
_copy_file_contents
(
src
,
dst
)
_copy_file_contents
(
src
,
dst
)
if
preserve_mode
or
preserve_times
:
st
=
os
.
stat
(
src
)
st
=
os
.
stat
(
src
)
# According to David Ascher <da@ski.org>, utime() should be done
# before chmod() (at least under NT).
if
preserve_times
:
os
.
utime
(
dst
,
(
st
[
ST_ATIME
],
st
[
ST_MTIME
]))
os
.
utime
(
dst
,
(
st
[
ST_ATIME
],
st
[
ST_MTIME
]))
if
preserve_mode
:
os
.
chmod
(
dst
,
S_IMODE
(
st
[
ST_MODE
]))
os
.
chmod
(
dst
,
S_IMODE
(
st
[
ST_MODE
]))
return
dst
...
...
@@ -180,13 +178,13 @@ def move_file (src, dst,
verbose
=
0
,
dry_run
=
0
):
"""Move a file 'src' to 'dst'. If 'dst' is a directory, the file
will be moved into it with the same name; otherwise, 'src' is
just renamed to 'dst'. Return the new full name of the file.
Handles cross-device moves on Unix using
'copy_file()'. What about other systems???"""
"""Move a file 'src' to 'dst'. If 'dst' is a directory, the file will
be moved into it with the same name; otherwise, 'src' is just renamed
to 'dst'. Return the new full name of the file.
Handles cross-device moves on Unix using 'copy_file()'. What about
other systems???
"""
from
os.path
import
exists
,
isfile
,
isdir
,
basename
,
dirname
if
verbose
:
...
...
@@ -195,25 +193,25 @@ def move_file (src, dst,
if
dry_run
:
return
dst
if
not
isfile
(
src
):
if
not
isfile
(
src
):
raise
DistutilsFileError
,
\
"can't move '%s': not a regular file"
%
src
if
isdir
(
dst
):
dst
=
os
.
path
.
join
(
dst
,
basename
(
src
))
elif
exists
(
dst
):
if
isdir
(
dst
):
dst
=
os
.
path
.
join
(
dst
,
basename
(
src
))
elif
exists
(
dst
):
raise
DistutilsFileError
,
\
"can't move '%s': destination '%s' already exists"
%
\
(
src
,
dst
)
if
not
isdir
(
dirname
(
dst
)):
if
not
isdir
(
dirname
(
dst
)):
raise
DistutilsFileError
,
\
"can't move '%s': destination '%s' not a valid path"
%
\
(
src
,
dst
)
copy_it
=
0
try
:
os
.
rename
(
src
,
dst
)
os
.
rename
(
src
,
dst
)
except
os
.
error
,
(
num
,
msg
):
if
num
==
errno
.
EXDEV
:
copy_it
=
1
...
...
@@ -222,12 +220,12 @@ def move_file (src, dst,
"couldn't move '%s' to '%s': %s"
%
(
src
,
dst
,
msg
)
if
copy_it
:
copy_file
(
src
,
dst
)
copy_file
(
src
,
dst
)
try
:
os
.
unlink
(
src
)
os
.
unlink
(
src
)
except
os
.
error
,
(
num
,
msg
):
try
:
os
.
unlink
(
dst
)
os
.
unlink
(
dst
)
except
os
.
error
:
pass
raise
DistutilsFileError
,
\
...
...
@@ -242,9 +240,9 @@ def move_file (src, dst,
def
write_file
(
filename
,
contents
):
"""Create a file with the specified name and write 'contents' (a
sequence of strings without line terminators) to it."""
f
=
open
(
filename
,
"w"
)
sequence of strings without line terminators) to it.
"""
f
=
open
(
filename
,
"w"
)
for
line
in
contents
:
f
.
write
(
line
+
"
\
n
"
)
f
.
close
()
f
.
write
(
line
+
"
\
n
"
)
f
.
close
()
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