pavement.py 800 B

12345678910111213141516171819202122232425262728
  1. import re
  2. from paver.easy import task, path as Path
  3. import pip
  4. def remove_all(paths):
  5. for path in paths:
  6. path.rmtree() if path.isdir() else path.remove()
  7. @task
  8. def update_vendored():
  9. vendor = Path('pkg_resources/_vendor')
  10. remove_all(vendor.glob('packaging*'))
  11. remove_all(vendor.glob('six*'))
  12. remove_all(vendor.glob('pyparsing*'))
  13. install_args = [
  14. 'install',
  15. '-r', str(vendor/'vendored.txt'),
  16. '-t', str(vendor),
  17. ]
  18. pip.main(install_args)
  19. packaging = vendor / 'packaging'
  20. for file in packaging.glob('*.py'):
  21. text = file.text()
  22. text = re.sub(r' (pyparsing|six)', r' pkg_resources.extern.\1', text)
  23. file.write_text(text)
  24. remove_all(vendor.glob('*.dist-info'))
  25. remove_all(vendor.glob('*.egg-info'))