Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
setuptools
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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jérome Perrin
setuptools
Commits
208764c9
Commit
208764c9
authored
Sep 26, 2000
by
Greg Ward
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reformat docstrings.
Standardize whitespace in function calls.
parent
b7ed5395
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
64 deletions
+63
-64
archive_util.py
archive_util.py
+28
-28
dep_util.py
dep_util.py
+35
-36
No files found.
archive_util.py
View file @
208764c9
...
@@ -15,13 +15,13 @@ from distutils.dir_util import mkpath
...
@@ -15,13 +15,13 @@ from distutils.dir_util import mkpath
def
make_tarball
(
base_name
,
base_dir
,
compress
=
"gzip"
,
def
make_tarball
(
base_name
,
base_dir
,
compress
=
"gzip"
,
verbose
=
0
,
dry_run
=
0
):
verbose
=
0
,
dry_run
=
0
):
"""Create a (possibly compressed) tar file from all the files under
"""Create a (possibly compressed) tar file from all the files under
'base_dir'. 'compress' must be "gzip" (the default), "compress",
'base_dir'. 'compress' must be "gzip" (the default), "compress",
"bzip2", or None. Both "tar" and the compression utility named by
"bzip2", or None. Both "tar" and the compression utility named by
'compress' must be on the default program search path, so this is
'compress' must be on the default program search path, so this is
probably Unix-specific. The output tar file will be named 'base_dir'
probably Unix-specific. The output tar file will be named 'base_dir' +
+
".tar", possibly plus the appropriate compression extension (".gz",
".tar", possibly plus the appropriate compression extension (".gz",
".bz2" or ".Z"). Return the output filename."""
".bz2" or ".Z"). Return the output filename.
"""
# XXX GNU tar 1.13 has a nifty option to add a prefix directory.
# XXX GNU tar 1.13 has a nifty option to add a prefix directory.
# It's pretty new, though, so we certainly can't require it --
# It's pretty new, though, so we certainly can't require it --
# but it would be nice to take advantage of it to skip the
# but it would be nice to take advantage of it to skip the
...
@@ -44,11 +44,11 @@ def make_tarball (base_name, base_dir, compress="gzip",
...
@@ -44,11 +44,11 @@ def make_tarball (base_name, base_dir, compress="gzip",
archive_name
=
base_name
+
".tar"
archive_name
=
base_name
+
".tar"
mkpath
(
os
.
path
.
dirname
(
archive_name
),
verbose
=
verbose
,
dry_run
=
dry_run
)
mkpath
(
os
.
path
.
dirname
(
archive_name
),
verbose
=
verbose
,
dry_run
=
dry_run
)
cmd
=
[
"tar"
,
"-cf"
,
archive_name
,
base_dir
]
cmd
=
[
"tar"
,
"-cf"
,
archive_name
,
base_dir
]
spawn
(
cmd
,
verbose
=
verbose
,
dry_run
=
dry_run
)
spawn
(
cmd
,
verbose
=
verbose
,
dry_run
=
dry_run
)
if
compress
:
if
compress
:
spawn
([
compress
]
+
compress_flags
[
compress
]
+
[
archive_name
],
spawn
([
compress
]
+
compress_flags
[
compress
]
+
[
archive_name
],
verbose
=
verbose
,
dry_run
=
dry_run
)
verbose
=
verbose
,
dry_run
=
dry_run
)
return
archive_name
+
compress_ext
[
compress
]
return
archive_name
+
compress_ext
[
compress
]
else
:
else
:
return
archive_name
return
archive_name
...
@@ -57,13 +57,13 @@ def make_tarball (base_name, base_dir, compress="gzip",
...
@@ -57,13 +57,13 @@ def make_tarball (base_name, base_dir, compress="gzip",
def
make_zipfile
(
base_name
,
base_dir
,
verbose
=
0
,
dry_run
=
0
):
def
make_zipfile
(
base_name
,
base_dir
,
verbose
=
0
,
dry_run
=
0
):
"""Create a zip file from all the files under 'base_dir'. The
"""Create a zip file from all the files under 'base_dir'. The
output
output zip file will be named 'base_dir' + ".zip". Uses either the
zip file will be named 'base_dir' + ".zip". Uses either the InfoZIP
InfoZIP "zip" utility (if installed and found on the default search
"zip" utility (if installed and found on the default search path) or
path) or the "zipfile" Python module (if available). If neither
the "zipfile" Python module (if available). If neither tool is
tool is available, raises DistutilsExecError. Returns the name
available, raises DistutilsExecError. Returns the name of the output
of the output zip file."""
zip file.
"""
# This initially assumed the Unix 'zip' utility -- but
# This initially assumed the Unix 'zip' utility -- but
# apparently InfoZIP's zip.exe works the same under Windows, so
# apparently InfoZIP's zip.exe works the same under Windows, so
# no changes needed!
# no changes needed!
...
@@ -71,8 +71,8 @@ def make_zipfile (base_name, base_dir, verbose=0, dry_run=0):
...
@@ -71,8 +71,8 @@ def make_zipfile (base_name, base_dir, verbose=0, dry_run=0):
zip_filename
=
base_name
+
".zip"
zip_filename
=
base_name
+
".zip"
mkpath
(
os
.
path
.
dirname
(
zip_filename
),
verbose
=
verbose
,
dry_run
=
dry_run
)
mkpath
(
os
.
path
.
dirname
(
zip_filename
),
verbose
=
verbose
,
dry_run
=
dry_run
)
try
:
try
:
spawn
([
"zip"
,
"-rq"
,
zip_filename
,
base_dir
],
spawn
([
"zip"
,
"-rq"
,
zip_filename
,
base_dir
],
verbose
=
verbose
,
dry_run
=
dry_run
)
verbose
=
verbose
,
dry_run
=
dry_run
)
except
DistutilsExecError
:
except
DistutilsExecError
:
# XXX really should distinguish between "couldn't find
# XXX really should distinguish between "couldn't find
...
@@ -96,14 +96,14 @@ def make_zipfile (base_name, base_dir, verbose=0, dry_run=0):
...
@@ -96,14 +96,14 @@ def make_zipfile (base_name, base_dir, verbose=0, dry_run=0):
def
visit
(
z
,
dirname
,
names
):
def
visit
(
z
,
dirname
,
names
):
for
name
in
names
:
for
name
in
names
:
path
=
os
.
path
.
normpath
(
os
.
path
.
join
(
dirname
,
name
))
path
=
os
.
path
.
normpath
(
os
.
path
.
join
(
dirname
,
name
))
if
os
.
path
.
isfile
(
path
):
if
os
.
path
.
isfile
(
path
):
z
.
write
(
path
,
path
)
z
.
write
(
path
,
path
)
if
not
dry_run
:
if
not
dry_run
:
z
=
zipfile
.
ZipFile
(
zip_filename
,
"wb"
,
z
=
zipfile
.
ZipFile
(
zip_filename
,
"wb"
,
compression
=
zipfile
.
ZIP_DEFLATED
)
compression
=
zipfile
.
ZIP_DEFLATED
)
os
.
path
.
walk
(
base_dir
,
visit
,
z
)
os
.
path
.
walk
(
base_dir
,
visit
,
z
)
z
.
close
()
z
.
close
()
return
zip_filename
return
zip_filename
...
@@ -143,9 +143,9 @@ def make_archive (base_name, format,
...
@@ -143,9 +143,9 @@ def make_archive (base_name, format,
if
root_dir
is
not
None
:
if
root_dir
is
not
None
:
if
verbose
:
if
verbose
:
print
"changing into '%s'"
%
root_dir
print
"changing into '%s'"
%
root_dir
base_name
=
os
.
path
.
abspath
(
base_name
)
base_name
=
os
.
path
.
abspath
(
base_name
)
if
not
dry_run
:
if
not
dry_run
:
os
.
chdir
(
root_dir
)
os
.
chdir
(
root_dir
)
if
base_dir
is
None
:
if
base_dir
is
None
:
base_dir
=
os
.
curdir
base_dir
=
os
.
curdir
...
@@ -161,12 +161,12 @@ def make_archive (base_name, format,
...
@@ -161,12 +161,12 @@ def make_archive (base_name, format,
func
=
format_info
[
0
]
func
=
format_info
[
0
]
for
(
arg
,
val
)
in
format_info
[
1
]:
for
(
arg
,
val
)
in
format_info
[
1
]:
kwargs
[
arg
]
=
val
kwargs
[
arg
]
=
val
filename
=
apply
(
func
,
(
base_name
,
base_dir
),
kwargs
)
filename
=
apply
(
func
,
(
base_name
,
base_dir
),
kwargs
)
if
root_dir
is
not
None
:
if
root_dir
is
not
None
:
if
verbose
:
if
verbose
:
print
"changing back to '%s'"
%
save_cwd
print
"changing back to '%s'"
%
save_cwd
os
.
chdir
(
save_cwd
)
os
.
chdir
(
save_cwd
)
return
filename
return
filename
...
...
dep_util.py
View file @
208764c9
...
@@ -14,14 +14,13 @@ from distutils.errors import DistutilsFileError
...
@@ -14,14 +14,13 @@ from distutils.errors import DistutilsFileError
def
newer
(
source
,
target
):
def
newer
(
source
,
target
):
"""Return true if 'source' exists and is more recently modified than
"""Return true if 'source' exists and is more recently modified than
'target', or if 'source' exists and 'target' doesn't. Return
'target', or if 'source' exists and 'target' doesn't. Return false if
false if both exist and 'target' is the same age or younger than
both exist and 'target' is the same age or younger than 'source'.
'source'. Raise DistutilsFileError if 'source' does not
Raise DistutilsFileError if 'source' does not exist.
exist."""
"""
if
not
os
.
path
.
exists
(
source
):
if
not
os
.
path
.
exists
(
source
):
raise
DistutilsFileError
,
"file '%s' does not exist"
%
source
raise
DistutilsFileError
,
"file '%s' does not exist"
%
source
if
not
os
.
path
.
exists
(
target
):
if
not
os
.
path
.
exists
(
target
):
return
1
return
1
from
stat
import
ST_MTIME
from
stat
import
ST_MTIME
...
@@ -35,20 +34,20 @@ def newer (source, target):
...
@@ -35,20 +34,20 @@ def newer (source, target):
def
newer_pairwise
(
sources
,
targets
):
def
newer_pairwise
(
sources
,
targets
):
"""Walk two filename lists in parallel, testing if each source is newer
"""Walk two filename lists in parallel, testing if each source is newer
than its corresponding target. Return a pair of lists (sources,
than its corresponding target. Return a pair of lists (sources,
targets) where source is newer than target, according to the
targets) where source is newer than target, according to the semantics
semantics of 'newer()'."""
of 'newer()'.
"""
if
len
(
sources
)
!=
len
(
targets
):
if
len
(
sources
)
!=
len
(
targets
):
raise
ValueError
,
"'sources' and 'targets' must be same length"
raise
ValueError
,
"'sources' and 'targets' must be same length"
# build a pair of lists (sources, targets) where source is newer
# build a pair of lists (sources, targets) where source is newer
n_sources
=
[]
n_sources
=
[]
n_targets
=
[]
n_targets
=
[]
for
i
in
range
(
len
(
sources
)):
for
i
in
range
(
len
(
sources
)):
if
newer
(
sources
[
i
],
targets
[
i
]):
if
newer
(
sources
[
i
],
targets
[
i
]):
n_sources
.
append
(
sources
[
i
])
n_sources
.
append
(
sources
[
i
])
n_targets
.
append
(
targets
[
i
])
n_targets
.
append
(
targets
[
i
])
return
(
n_sources
,
n_targets
)
return
(
n_sources
,
n_targets
)
...
@@ -56,20 +55,20 @@ def newer_pairwise (sources, targets):
...
@@ -56,20 +55,20 @@ def newer_pairwise (sources, targets):
def
newer_group
(
sources
,
target
,
missing
=
'error'
):
def
newer_group
(
sources
,
target
,
missing
=
'error'
):
"""Return true if 'target' is out-of-date with respect to any
"""Return true if 'target' is out-of-date with respect to any
file
file listed in 'sources'. In other words, if 'target' exists and
listed in 'sources'. In other words, if 'target' exists and is newer
is newer than every file in 'sources', return false; otherwise
than every file in 'sources', return false; otherwise return true.
return true. 'missing' controls what we do when a source file is
'missing' controls what we do when a source file is missing; the
missing; the default ("error") is to blow up with an OSError from
default ("error") is to blow up with an OSError from inside 'stat()';
inside 'stat()'; if it is "ignore", we silently drop any missing
if it is "ignore", we silently drop any missing source files; if it is
source files; if it is "newer", any missing source files make u
s
"newer", any missing source files make us assume that 'target' i
s
assume that 'target' is out-of-date (this is handy in "dry-run"
out-of-date (this is handy in "dry-run" mode: it'll make you pretend to
mode: it'll make you pretend to carry out commands that wouldn'
t
carry out commands that wouldn't work because inputs are missing, bu
t
work because inputs are missing, but that doesn't matter becaus
e
that doesn't matter because you're not actually going to run th
e
you're not actually going to run the commands)."""
commands).
"""
# If the target doesn't even exist, then it's definitely out-of-date.
# If the target doesn't even exist, then it's definitely out-of-date.
if
not
os
.
path
.
exists
(
target
):
if
not
os
.
path
.
exists
(
target
):
return
1
return
1
# Otherwise we have to find out the hard way: if *any* source file
# Otherwise we have to find out the hard way: if *any* source file
...
@@ -77,9 +76,9 @@ def newer_group (sources, target, missing='error'):
...
@@ -77,9 +76,9 @@ def newer_group (sources, target, missing='error'):
# we can immediately return true. If we fall through to the end
# we can immediately return true. If we fall through to the end
# of the loop, then 'target' is up-to-date and we return false.
# of the loop, then 'target' is up-to-date and we return false.
from
stat
import
ST_MTIME
from
stat
import
ST_MTIME
target_mtime
=
os
.
stat
(
target
)[
ST_MTIME
]
target_mtime
=
os
.
stat
(
target
)[
ST_MTIME
]
for
source
in
sources
:
for
source
in
sources
:
if
not
os
.
path
.
exists
(
source
):
if
not
os
.
path
.
exists
(
source
):
if
missing
==
'error'
:
# blow up when we stat() the file
if
missing
==
'error'
:
# blow up when we stat() the file
pass
pass
elif
missing
==
'ignore'
:
# missing source dropped from
elif
missing
==
'ignore'
:
# missing source dropped from
...
@@ -102,13 +101,13 @@ def newer_group (sources, target, missing='error'):
...
@@ -102,13 +101,13 @@ def newer_group (sources, target, missing='error'):
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
'args', but only if it needs to: i.e. if 'dst' does not exist or
'args', but only if it needs to: i.e. if 'dst' does not exist or 'src'
'src' is newer than 'dst'."""
is newer than 'dst'.
"""
if
newer
(
src
,
dst
):
if
newer
(
src
,
dst
):
if
verbose
and
update_message
:
if
verbose
and
update_message
:
print
update_message
print
update_message
apply
(
func
,
args
)
apply
(
func
,
args
)
else
:
else
:
if
verbose
and
noupdate_message
:
if
verbose
and
noupdate_message
:
print
noupdate_message
print
noupdate_message
...
...
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