diff --git a/CHANGELOG.md b/CHANGELOG.md index 0456bd5..f3c2894 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Remove vendored `pip-grep` script (#1116). ## v185 (2020-11-12) diff --git a/vendor/pip-pop/pip-grep b/vendor/pip-pop/pip-grep deleted file mode 100755 index 8e3cf61..0000000 --- a/vendor/pip-pop/pip-grep +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -"""Usage: - pip-grep [-s] ... - -Options: - -h --help Show this screen. -""" -import os -import sys -from docopt import docopt - -try: # pip >= 10 - from pip._internal.req import parse_requirements - from pip._internal.download import PipSession as session - - def PackageFinder(find_links, index_urls, session=None): - from pip._internal.index import PackageFinder - from pip._internal.models.search_scope import SearchScope - from pip._internal.models.selection_prefs import SelectionPreferences - - search_scope = SearchScope.create(find_links, index_urls) - selection_prefs = SelectionPreferences(allow_yanked=False) - return PackageFinder.create(search_scope, selection_prefs, session=session) - -except ImportError: # pip <= 9.0.3 - from pip.req import parse_requirements - from pip.index import PackageFinder - from pip._vendor.requests import session - - -requests = session() - - -class Requirements(object): - def __init__(self, reqfile=None): - super(Requirements, self).__init__() - self.path = reqfile - self.requirements = [] - - if reqfile: - self.load(reqfile) - - def __repr__(self): - return ''.format(self.path) - - def load(self, reqfile): - if not os.path.exists(reqfile): - raise ValueError('The given requirements file does not exist.') - - finder = PackageFinder([], [], session=requests) - for requirement in parse_requirements(reqfile, finder=finder, session=requests): - if requirement.req: - if not getattr(requirement.req, 'name', None): - # Prior to pip 8.1.2 the attribute `name` did not exist. - requirement.req.name = requirement.req.project_name - self.requirements.append(requirement.req) - - -def grep(reqfile, packages, silent=False): - try: - r = Requirements(reqfile) - except ValueError: - if not silent: - print('There was a problem loading the given requirement file.') - exit(os.EX_NOINPUT) - - for req in r.requirements: - if req.name in packages: - if not silent: - print('Package {} found!'.format(req.name)) - exit(0) - - if not silent: - print('Not found.') - - exit(1) - - -def main(): - args = docopt(__doc__, version='pip-grep') - - kwargs = {'reqfile': args[''], 'packages': args[''], 'silent': args['-s']} - - grep(**kwargs) - - -if __name__ == '__main__': - try: - main() - except Exception: - sys.exit(1) -