allow requirements to point to urls

This commit is contained in:
black-sliver 2021-11-07 14:00:13 +01:00
parent f10163e7d2
commit 5d0d9c2890
1 changed files with 19 additions and 12 deletions

View File

@ -35,18 +35,25 @@ def update(yes = False, force = False):
if not os.path.exists(path): if not os.path.exists(path):
path = os.path.join(os.path.dirname(__file__), req_file) path = os.path.join(os.path.dirname(__file__), req_file)
with open(path) as requirementsfile: with open(path) as requirementsfile:
requirements = pkg_resources.parse_requirements(requirementsfile) for line in requirementsfile:
for requirement in requirements: if line.startswith('https://'):
requirement = str(requirement) # extract name and version from url
try: url = line.split(';')[0]
pkg_resources.require(requirement) wheel = line.split('/')[-1]
except pkg_resources.ResolutionError: name, version, _ = wheel.split('-',2)
if not yes: line = f'{name}=={version}'
import traceback requirements = pkg_resources.parse_requirements(line)
traceback.print_exc() for requirement in requirements:
input(f'Requirement {requirement} is not satisfied, press enter to install it') requirement = str(requirement)
update_command() try:
return 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__": if __name__ == "__main__":