mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Switch out conditional requirement parser
Fixes
```
Traceback (most recent call last):
File "/storage/srv/galaxy/server/.venv/lib64/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 35, in __init__
parsed = _parse_requirement(requirement_string)
File "/storage/srv/galaxy/server/.venv/lib64/python3.9/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 64, in parse_requirement
return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
File "/storage/srv/galaxy/server/.venv/lib64/python3.9/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 73, in _parse_requirement
name_token = tokenizer.expect(
File "/storage/srv/galaxy/server/.venv/lib64/python3.9/site-packages/pkg_resources/_vendor/packaging/_tokenizer.py", line 140, in expect
raise self.raise_syntax_error(f"Expected {expected}")
File "/storage/srv/galaxy/server/.venv/lib64/python3.9/site-packages/pkg_resources/_vendor/packaging/_tokenizer.py", line 165, in raise_syntax_error
raise ParserSyntaxError(
pkg_resources.extern.packaging._tokenizer.ParserSyntaxError: Expected package name at the start of dependency specifier
"git+https://github.com/jakobmerljak/pyarcrest.git@dev"
^
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/storage/srv/galaxy/server/lib/galaxy/dependencies/__init__.py", line 312, in optional
conditional = ConditionalDependencies(config_file)
File "/storage/srv/galaxy/server/lib/galaxy/dependencies/__init__.py", line 45, in __init__
self.get_conditional_requirements()
File "/storage/srv/galaxy/server/lib/galaxy/dependencies/__init__.py", line 176, in get_conditional_requirements
for req in pkg_resources.parse_requirements(open(crfile).readlines()):
File "/storage/srv/galaxy/server/.venv/lib64/python3.9/site-packages/pkg_resources/__init__.py", line 3174, in __init__
super(Requirement, self).__init__(requirement_string)
File "/storage/srv/galaxy/server/.venv/lib64/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 37, in __init__
raise InvalidRequirement(str(e)) from e
pkg_resources.extern.packaging.requirements.InvalidRequirement: Expected package name at the start of dependency specifier
"git+https://github.com/jakobmerljak/pyarcrest.git@dev"
^
```
for advanced package specifiers that might be used during development.
This commit is contained in:
@@ -10,8 +10,8 @@ from os.path import (
|
||||
join,
|
||||
)
|
||||
|
||||
import pkg_resources
|
||||
import yaml
|
||||
from dparse import parse
|
||||
|
||||
from galaxy.util import (
|
||||
asbool,
|
||||
@@ -173,8 +173,10 @@ class ConditionalDependencies:
|
||||
|
||||
def get_conditional_requirements(self):
|
||||
crfile = join(dirname(__file__), "conditional-requirements.txt")
|
||||
for req in pkg_resources.parse_requirements(open(crfile).readlines()):
|
||||
self.conditional_reqs.append(req)
|
||||
with open(crfile) as fh:
|
||||
dependency_file = parse(fh.read(), file_type="requirements.txt")
|
||||
for dep in dependency_file.dependencies:
|
||||
self.conditional_reqs.append(dep)
|
||||
|
||||
def check(self, name):
|
||||
try:
|
||||
@@ -307,7 +309,7 @@ def optional(config_file=None):
|
||||
return []
|
||||
rval = []
|
||||
conditional = ConditionalDependencies(config_file)
|
||||
for opt in conditional.conditional_reqs:
|
||||
if conditional.check(opt.key):
|
||||
rval.append(str(opt))
|
||||
for dependency in conditional.conditional_reqs:
|
||||
if conditional.check(dependency.name):
|
||||
rval.append(dependency.line)
|
||||
return rval
|
||||
|
||||
@@ -61,6 +61,7 @@ dictobj==0.4 ; python_version >= "3.7" and python_version < "3.12"
|
||||
dnspython==2.3.0 ; python_version >= "3.7" and python_version < "3.12"
|
||||
docopt==0.6.2 ; python_version >= "3.7" and python_version < "3.12"
|
||||
docutils==0.18.1 ; python_version >= "3.7" and python_version < "3.12"
|
||||
dparse==0.6.3 ; python_version >= "3.7" and python_version < "3.12"
|
||||
ecdsa==0.18.0 ; python_version >= "3.7" and python_version < "3.12"
|
||||
edam-ontology==1.25.2 ; python_version >= "3.7" and python_version < "3.12"
|
||||
email-validator==2.0.0.post2 ; python_version >= "3.7" and python_version < "3.12"
|
||||
|
||||
@@ -49,6 +49,7 @@ conda-package-streaming = "*"
|
||||
dictobj = "*"
|
||||
dnspython = "*"
|
||||
docutils = "!=0.17, !=0.17.1"
|
||||
dparse = "*"
|
||||
edam-ontology = "*"
|
||||
fastapi = ">=0.71.0, !=0.89.0, <0.99" # https://github.com/tiangolo/fastapi/issues/4041 https://github.com/tiangolo/fastapi/issues/5861
|
||||
fastapi-utils = "*"
|
||||
|
||||
Reference in New Issue
Block a user