Attempt to improve performance by eliminating a sleep call

This commit is contained in:
Anthony Sottile 2014-03-13 23:55:02 -07:00
parent da8c435e9c
commit 4db38596c8

View file

@ -1,18 +1,9 @@
import contextlib
from plumbum import local from plumbum import local
from plumbum.machines.session import ShellSession
PY_ENV = 'py_env' PY_ENV = 'py_env'
@contextlib.contextmanager
def in_env():
with ShellSession(local['bash'].popen()) as env:
env.run('source {0}/bin/activate'.format(PY_ENV))
yield env
def install_environment(): def install_environment():
assert local.path('setup.py').exists() assert local.path('setup.py').exists()
# Return immediately if we already have a virtualenv # Return immediately if we already have a virtualenv
@ -21,16 +12,14 @@ def install_environment():
# Install a virtualenv # Install a virtualenv
local['virtualenv'][PY_ENV]() local['virtualenv'][PY_ENV]()
local['bash']['-c', 'source {0}/bin/activate && pip install .'.format(PY_ENV)]()
with in_env() as env:
# Run their setup.py
env.run('pip install .')
def run_hook(hook, file_args): def run_hook(hook, file_args):
with in_env() as env: # TODO: batch filenames
# TODO: batch filenames return local['bash'][
return env.run( '-c', ' '.join(
' '.join([hook['entry']] + hook.get('args', []) + list(file_args)), ['source {0}/bin/activate &&'.format(PY_ENV)] +
retcode=None, [hook['entry']] + hook.get('args', []) + list(file_args)
) )
].run()