diff options
Diffstat (limited to 'pavement.py')
-rw-r--r-- | pavement.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/pavement.py b/pavement.py new file mode 100644 index 00000000..f85617d4 --- /dev/null +++ b/pavement.py @@ -0,0 +1,32 @@ +import re + +from paver.easy import task, path as Path +import pip + + +def remove_all(paths): + for path in paths: + path.rmtree() if path.isdir() else path.remove() + + +@task +def update_vendored(): + vendor = Path('pkg_resources/_vendor') + # pip uninstall doesn't support -t, so do it manually + remove_all(vendor.glob('packaging*')) + remove_all(vendor.glob('six*')) + remove_all(vendor.glob('pyparsing*')) + remove_all(vendor.glob('appdirs*')) + install_args = [ + 'install', + '-r', str(vendor / 'vendored.txt'), + '-t', str(vendor), + ] + pip.main(install_args) + packaging = vendor / 'packaging' + for file in packaging.glob('*.py'): + text = file.text() + text = re.sub(r' (pyparsing|six)', r' pkg_resources.extern.\1', text) + file.write_text(text) + remove_all(vendor.glob('*.dist-info')) + remove_all(vendor.glob('*.egg-info')) |