Commit 03048c86 authored by W. Trevor King's avatar W. Trevor King

egg_info: Split manifest_maker._add_egg_info into its own method

On Sat, Oct 11, 2014 at 04:23:37PM -0000, Jason R. Coombs wrote [1]:
> I suggest implementing the functionality as a separate method with a
> docstring explaining the purpose.

so that's what we have here. The docstring is adapted from the
cbd4f603 (egg_info: Search egg-base for files to add to the manifest,
2014-10-16) commit message.

It's a lot of docs for a single command (although there is a newsted
list comprehension), so I'm fine if you drop this commit before
merging. The motivation behind the lines would still be available in
the version control history:

  $ hg blame -c setuptools/command/egg_info.py | grep -A1 ei_cmd.egg_base
  cbd4f6038604: if ei_cmd.egg_base != os.curdir:
  cbd4f6038604: self.filelist.allfiles.extend([
  cbd4f6038604: os.path.join(ei_cmd.egg_base, path)
  cbd4f6038604: for path in distutils.filelist.findall(ei_cmd.egg_base)])
  80108b046cb6: self.filelist.include_pattern("*", prefix=ei_cmd.egg_info)
  $ hg log -vr cbd4f6038604
  changeset: 3163:cbd4f6038604
  ...
  description:
  egg_info: Search egg-base for files to add to the manifest
  Before this commit, this:

    $ mkdir -p /tmp/xyz/{home,lib,scripts,data,egg}
    $ cat >/tmp/xyz/home/.pydistutils.cfg <<EOF
  ...

[1]: https://bitbucket.org/pypa/setuptools/pull-request/85/egg_info-search-egg-base-for-files-to-add/diff#comment-3418032
parent 76906b7a
......@@ -326,11 +326,28 @@ class manifest_maker(sdist):
self.read_manifest()
ei_cmd = self.get_finalized_command('egg_info')
if ei_cmd.egg_base != os.curdir:
self.filelist.allfiles.extend([
os.path.join(ei_cmd.egg_base, path)
for path in distutils.filelist.findall(ei_cmd.egg_base)])
self._add_egg_info(cmd=ei_cmd)
self.filelist.include_pattern("*", prefix=ei_cmd.egg_info)
def _add_egg_info(self, cmd):
"""Add paths for egg-info files for an external egg-base.
The egg-info files are written to egg-base. If egg-base is
outside the current working directory, we need a separate step
(this method) to search the egg-base directory when creating
the manifest. We use distutils.filelist.findall (which is
really the version monkeypatched in by setuptools/__init__.py)
to perform the search.
Since findall records relative paths, prefix the returned
paths with cmd.egg_base, so add_default's include_pattern call
(which is looking for the absolute cmd.egg_info) will match
them.
"""
self.filelist.allfiles.extend([
os.path.join(cmd.egg_base, path)
for path in distutils.filelist.findall(cmd.egg_base)])
def prune_file_list(self):
build = self.get_finalized_command('build')
base_dir = self.distribution.get_fullname()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment