From ce15c6ce8dac7a7aa25eed6033ce1b459b312aab Mon Sep 17 00:00:00 2001 From: Greg Ward Date: Thu, 8 Jun 2000 01:06:02 +0000 Subject: [PATCH] Moved the code that prunes the file list after reading the manifest template into a new method 'prune_file_list()', called from 'get_file_list()' rather than 'read_manifest()' -- this keeps 'read_manifest()' more general. Deleted the redundant call to 'exclude_pattern()' in 'make_distribution()' -- this had the same intention as 'prune_file_list()', but was incomplete (only pruned the release tree, not the build tree) and in the wrong place (the prune wouldn't be reflected in the manifest file). --- Lib/distutils/command/sdist.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py index 26241353ac0..5a78cc58d29 100644 --- a/Lib/distutils/command/sdist.py +++ b/Lib/distutils/command/sdist.py @@ -195,6 +195,9 @@ class sdist (Command): if template_exists: self.read_template () + # Prune away the build and source distribution directories + self.prune_file_list() + # File list now complete -- sort it so that higher-level files # come first sortable_files = map (os.path.split, self.files) @@ -475,16 +478,22 @@ class sdist (Command): # while loop over lines of template file - # Prune away the build and source distribution directories - build = self.get_finalized_command ('build') - self.exclude_pattern (self.files, None, prefix=build.build_base) - - base_dir = self.distribution.get_fullname() - self.exclude_pattern (self.files, None, prefix=base_dir) - # read_template () + def prune_file_list (self): + """Prune off branches that might slip into the file list as created + by 'read_template()', but really don't belong there: specifically, + the build tree (typically "build") and the release tree itself + (only an issue if we ran "sdist" previously with --keep-tree, or it + aborted). + """ + build = self.get_finalized_command('build') + base_dir = self.distribution.get_fullname() + self.exclude_pattern (self.files, None, prefix=build.build_base) + self.exclude_pattern (self.files, None, prefix=base_dir) + + def select_pattern (self, files, pattern, anchor=1, prefix=None): """Select strings (presumably filenames) from 'files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not @@ -612,10 +621,6 @@ class sdist (Command): # done elsewhere. base_dir = self.distribution.get_fullname() - # Remove any files that match "base_dir" from the fileset -- we - # don't want to go distributing the distribution inside itself! - self.exclude_pattern (self.files, base_dir + "*") - self.make_release_tree (base_dir, self.files) archive_files = [] # remember names of files we create for fmt in self.formats: