Skip to content

Commit

Permalink
Restore deleted _copy_dist_from_dir().
Browse files Browse the repository at this point in the history
This reverts commit 62ac258.

#3176 is about to add the missing piece that makes this code useful (and not dead), so let's not delete it.
  • Loading branch information
erikrose committed Oct 12, 2015
1 parent 9e5e34e commit 4c405a0
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions pip/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -702,6 +702,45 @@ def unpack_file_url(link, location, download_dir=None, hashes=None):
_copy_file(from_path, download_dir, content_type, link)


def _copy_dist_from_dir(link_path, location):
"""Copy distribution files in `link_path` to `location`.
Invoked when user requests to install a local directory. E.g.:
pip install .
pip install ~/dev/git-repos/python-prompt-toolkit
"""

# Note: This is currently VERY SLOW if you have a lot of data in the
# directory, because it copies everything with `shutil.copytree`.
# What it should really do is build an sdist and install that.
# See https://github.com/pypa/pip/issues/2195

if os.path.isdir(location):
rmtree(location)

# build an sdist
setup_py = 'setup.py'
sdist_args = [sys.executable]
sdist_args.append('-c')
sdist_args.append(
"import setuptools, tokenize;__file__=%r;"
"exec(compile(getattr(tokenize, 'open', open)(__file__).read()"
".replace('\\r\\n', '\\n'), __file__, 'exec'))" % setup_py)
sdist_args.append('sdist')
sdist_args += ['--dist-dir', location]
logger.info('Running setup.py sdist for %s', link_path)

with indent_log():
call_subprocess(sdist_args, cwd=link_path, show_stdout=False)

# unpack sdist into `location`
sdist = os.path.join(location, os.listdir(location)[0])
logger.info('Unpacking sdist %s into %s', sdist, location)
unpack_file(sdist, location, content_type=None, link=None)


class PipXmlrpcTransport(xmlrpc_client.Transport):
"""Provide a `xmlrpclib.Transport` implementation via a `PipSession`
object.
Expand Down

0 comments on commit 4c405a0

Please sign in to comment.