From 5d0d9c28900739f7d75420e29947cc0af184f94b Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Sun, 7 Nov 2021 14:00:13 +0100 Subject: [PATCH] allow requirements to point to urls --- ModuleUpdate.py | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/ModuleUpdate.py b/ModuleUpdate.py index 32cb5c25..77ea2599 100644 --- a/ModuleUpdate.py +++ b/ModuleUpdate.py @@ -35,18 +35,25 @@ def update(yes = False, force = False): if not os.path.exists(path): path = os.path.join(os.path.dirname(__file__), req_file) with open(path) as requirementsfile: - requirements = pkg_resources.parse_requirements(requirementsfile) - for requirement in requirements: - requirement = str(requirement) - try: - pkg_resources.require(requirement) - except pkg_resources.ResolutionError: - if not yes: - import traceback - traceback.print_exc() - input(f'Requirement {requirement} is not satisfied, press enter to install it') - update_command() - return + for line in requirementsfile: + if line.startswith('https://'): + # extract name and version from url + url = line.split(';')[0] + wheel = line.split('/')[-1] + name, version, _ = wheel.split('-',2) + line = f'{name}=={version}' + requirements = pkg_resources.parse_requirements(line) + for requirement in requirements: + requirement = str(requirement) + try: + pkg_resources.require(requirement) + except pkg_resources.ResolutionError: + if not yes: + import traceback + traceback.print_exc() + input(f'Requirement {requirement} is not satisfied, press enter to install it') + update_command() + return if __name__ == "__main__":