From 1edd380c867c08eedf5e396654b4ec3bed23e25d Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 27 Feb 2016 09:11:47 -0500 Subject: Replace makefile with pavement file, granting portability on OS X and Windows. Fixes #505. --- pavement.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pavement.py (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py new file mode 100644 index 00000000..8d7574e2 --- /dev/null +++ b/pavement.py @@ -0,0 +1,28 @@ +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') + remove_all(vendor.glob('packaging*')) + remove_all(vendor.glob('six*')) + remove_all(vendor.glob('pyparsing*')) + 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')) -- cgit v1.2.1 From c0f5771495dea58b07f4a1d36badd4cef08aa687 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Mon, 2 May 2016 10:20:04 -0400 Subject: Tabs to spaces in two more files. Ref #489. --- pavement.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index 8d7574e2..303e9bac 100644 --- a/pavement.py +++ b/pavement.py @@ -4,25 +4,25 @@ 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() + for path in paths: + path.rmtree() if path.isdir() else path.remove() @task def update_vendored(): - vendor = Path('pkg_resources/_vendor') - remove_all(vendor.glob('packaging*')) - remove_all(vendor.glob('six*')) - remove_all(vendor.glob('pyparsing*')) - 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')) + vendor = Path('pkg_resources/_vendor') + remove_all(vendor.glob('packaging*')) + remove_all(vendor.glob('six*')) + remove_all(vendor.glob('pyparsing*')) + 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')) -- cgit v1.2.1 From 6d11e88f938f09ef16db4c6064b6e74acba4db1d Mon Sep 17 00:00:00 2001 From: stepshal Date: Tue, 12 Jul 2016 22:00:43 +0700 Subject: Fix quantity of blank lines after code object. --- pavement.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index 303e9bac..f620c790 100644 --- a/pavement.py +++ b/pavement.py @@ -3,10 +3,12 @@ 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') -- cgit v1.2.1 From dc2d1dc249bec8e3a864e2aa6002a8e27adc4b7c Mon Sep 17 00:00:00 2001 From: stepshal Date: Thu, 14 Jul 2016 12:11:49 +0700 Subject: Fix missing whitespace around operator. --- pavement.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index f620c790..3d840086 100644 --- a/pavement.py +++ b/pavement.py @@ -17,7 +17,7 @@ def update_vendored(): remove_all(vendor.glob('pyparsing*')) install_args = [ 'install', - '-r', str(vendor/'vendored.txt'), + '-r', str(vendor / 'vendored.txt'), '-t', str(vendor), ] pip.main(install_args) -- cgit v1.2.1 From 691e6ac03339d6aef045e05872b286d91e9f49b9 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 27 Aug 2016 08:45:33 -0400 Subject: Add appdirs as vendored package. Ref #763. --- pavement.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index 3d840086..f85617d4 100644 --- a/pavement.py +++ b/pavement.py @@ -12,9 +12,11 @@ def remove_all(paths): @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'), -- cgit v1.2.1 From ff371f18f0076bc63da05334f7e551c1cc29e10d Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sun, 1 Jan 2017 22:34:28 -0500 Subject: Strip out vendored packages and require them instead. Ref #581. --- pavement.py | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 pavement.py (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py deleted file mode 100644 index f85617d4..00000000 --- a/pavement.py +++ /dev/null @@ -1,32 +0,0 @@ -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')) -- cgit v1.2.1 From 3d0cc355fb5e8012cb8c72f0e25042a5a44f31d6 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 24 Feb 2017 11:49:51 -0500 Subject: Revert "Merge pull request #933 from pypa/feature/581-depend-not-bundle" This reverts commit 089cdeb489a0fa94d11b7307b54210ef9aa40511, reversing changes made to aaec654d804cb78dbb6391afff721a63f26a71cd. --- pavement.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 pavement.py (limited to 'pavement.py') 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')) -- cgit v1.2.1 From 929acc4e551448a68411968fb50336ad51ed4d3c Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 17 Mar 2018 14:10:32 -0400 Subject: Setuptools now vendors its own direct dependencies (packaging, six, pyparsing). Ref #1296. --- pavement.py | 49 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index f85617d4..ca54e61f 100644 --- a/pavement.py +++ b/pavement.py @@ -11,6 +11,32 @@ def remove_all(paths): @task def update_vendored(): + update_pkg_resources() + update_setuptools() + + +def rewrite_packaging(pkg_files, new_root): + """ + Rewrite imports in packaging to redirect to vendored copies. + """ + for file in pkg_files.glob('*.py'): + text = file.text() + text = re.sub(r' (pyparsing|six)', rf' {new_root}.\1', text) + file.write_text(text) + + +def install(vendor): + clean(vendor) + install_args = [ + 'install', + '-r', str(vendor / 'vendored.txt'), + '-t', str(vendor), + ] + pip.main(install_args) + remove_all(vendor.glob('*.dist-info')) + remove_all(vendor.glob('*.egg-info')) + +def update_pkg_resources(): vendor = Path('pkg_resources/_vendor') # pip uninstall doesn't support -t, so do it manually remove_all(vendor.glob('packaging*')) @@ -23,10 +49,23 @@ def update_vendored(): '-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) + rewrite_packaging(vendor / 'packaging', 'pkg_resources.extern.') + remove_all(vendor.glob('*.dist-info')) + remove_all(vendor.glob('*.egg-info')) + + +def update_setuptools(): + vendor = Path('setuptools/_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*')) + install_args = [ + 'install', + '-r', str(vendor / 'vendored.txt'), + '-t', str(vendor), + ] + pip.main(install_args) + rewrite_packaging(vendor / 'packaging', 'setuptools.extern') remove_all(vendor.glob('*.dist-info')) remove_all(vendor.glob('*.egg-info')) -- cgit v1.2.1 From 7dd1e4e68899f7f5543dabe81363b95ad907446c Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 17 Mar 2018 14:23:38 -0400 Subject: Extract common functionality into reusable functions --- pavement.py | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index ca54e61f..84e5825d 100644 --- a/pavement.py +++ b/pavement.py @@ -25,6 +25,18 @@ def rewrite_packaging(pkg_files, new_root): file.write_text(text) +def clean(vendor): + """ + Remove all files out of the vendor directory except the meta + data (as pip uninstall doesn't support -t). + """ + remove_all( + path + for path in vendor.glob('*') + if path.basename() != 'vendored.txt' + ) + + def install(vendor): clean(vendor) install_args = [ @@ -35,37 +47,16 @@ def install(vendor): pip.main(install_args) remove_all(vendor.glob('*.dist-info')) remove_all(vendor.glob('*.egg-info')) + (vendor / '__init__.py').write_text('') + def update_pkg_resources(): 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) - rewrite_packaging(vendor / 'packaging', 'pkg_resources.extern.') - remove_all(vendor.glob('*.dist-info')) - remove_all(vendor.glob('*.egg-info')) + install(vendor) + rewrite_packaging(vendor / 'packaging', 'pkg_resources.extern') def update_setuptools(): vendor = Path('setuptools/_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*')) - install_args = [ - 'install', - '-r', str(vendor / 'vendored.txt'), - '-t', str(vendor), - ] - pip.main(install_args) + install(vendor) rewrite_packaging(vendor / 'packaging', 'setuptools.extern') - remove_all(vendor.glob('*.dist-info')) - remove_all(vendor.glob('*.egg-info')) -- cgit v1.2.1 From a170865f29bce8389ffcf5bfda8091fc6c120a45 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Tue, 18 Sep 2018 11:12:43 -0400 Subject: Update pavement not to import pip --- pavement.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index 84e5825d..b5220d10 100644 --- a/pavement.py +++ b/pavement.py @@ -1,7 +1,8 @@ import re +import sys +import subprocess from paver.easy import task, path as Path -import pip def remove_all(paths): @@ -40,11 +41,13 @@ def clean(vendor): def install(vendor): clean(vendor) install_args = [ + sys.executable, + '-m', 'pip', 'install', '-r', str(vendor / 'vendored.txt'), '-t', str(vendor), ] - pip.main(install_args) + subprocess.check_call(install_args) remove_all(vendor.glob('*.dist-info')) remove_all(vendor.glob('*.egg-info')) (vendor / '__init__.py').write_text('') -- cgit v1.2.1 From 5003bae4ca8aab95091e75f366f466e89926e6e8 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sun, 16 Aug 2020 07:03:07 -0400 Subject: Remove dependency on six from packaging. --- pavement.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index b5220d10..34603ed1 100644 --- a/pavement.py +++ b/pavement.py @@ -22,7 +22,11 @@ def rewrite_packaging(pkg_files, new_root): """ for file in pkg_files.glob('*.py'): text = file.text() - text = re.sub(r' (pyparsing|six)', rf' {new_root}.\1', text) + text = re.sub(r' (pyparsing)', rf' {new_root}.\1', text) + text = text.replace( + 'from six.moves.urllib import parse', + 'from urllib import parse', + ) file.write_text(text) -- cgit v1.2.1 From 45e0ea0ff10a64f315a5c65b6805327222e5b565 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sun, 16 Aug 2020 07:09:10 -0400 Subject: Remove six as a vendored dependency. --- pavement.py | 1 + 1 file changed, 1 insertion(+) (limited to 'pavement.py') diff --git a/pavement.py b/pavement.py index 34603ed1..81ff6f12 100644 --- a/pavement.py +++ b/pavement.py @@ -54,6 +54,7 @@ def install(vendor): subprocess.check_call(install_args) remove_all(vendor.glob('*.dist-info')) remove_all(vendor.glob('*.egg-info')) + remove_all(vendor.glob('six.py')) (vendor / '__init__.py').write_text('') -- cgit v1.2.1