You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have searched the issue tracker and believe that this is not a duplicate.
Make sure you run commands with -v flag before pasting the output.
Steps to reproduce
Install pygobject
pdm add pygobject
Actual behavior
Traceback (most recent call last):
File "/usr/lib/python-exec/python3.11/pdm", line 8, in<module>sys.exit(main())
^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/core.py", line 290, in main
returnCore().main(args or sys.argv[1:])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/core.py", line 208, in main
raise cast(Exception, err).with_traceback(traceback) from None
File "/usr/lib/python3.11/site-packages/pdm/core.py", line 203, in main
self.handle(project, options)
File "/usr/lib/python3.11/site-packages/pdm/core.py", line 157, in handle
command.handle(project, options)
File "/usr/lib/python3.11/site-packages/pdm/cli/commands/add.py", line 67, in handle
self.do_add(
File "/usr/lib/python3.11/site-packages/pdm/cli/commands/add.py", line 147, in do_add
all_dependencies = project.all_dependencies
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/project/core.py", line 343, in all_dependencies
return {group: self.get_dependencies(group) forgroupinself.iter_groups()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/project/core.py", line 343, in<dictcomp>return {group: self.get_dependencies(group) forgroupinself.iter_groups()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/project/core.py", line 328, in get_dependencies
req = parse_requirement(line)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/models/requirements.py", line 506, in parse_requirement
r = Requirement.from_pkg_requirement(pkg_req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/models/requirements.py", line 228, in from_pkg_requirement
return klass(url=req.url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 12, in __init__
File "/usr/lib/python3.11/site-packages/pdm/models/requirements.py", line 255, in __post_init__
self._check_installable()
File "/usr/lib/python3.11/site-packages/pdm/models/requirements.py", line 394, in _check_installable
result = Setup.from_directory(self.path.absolute())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/models/setup.py", line 37, in from_directory
return _SetupReader.read_from_directory(dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/models/setup.py", line 61, in read_from_directory
new_result = file_reader(filepath)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/models/setup.py", line 73, in read_pyproject_toml
metadata = PyProject(file, ui=termui.UI()).metadata.unwrap()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/project/toml_file.py", line 18, in __init__
self._data = self.read()
^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/project/project_file.py", line 32, inread
metadata, settings = converter.convert(None, self._path, None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/formats/poetry.py", line 204, in convert
returnconverter.convert()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/formats/base.py", line 55, in convert
self._data[key] = func(self, value)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/formats/poetry.py", line 147, in dev_dependencies
"dev": make_array([r forkey, reqinvalue.items() forrin _convert_req(key, req)], True),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/formats/poetry.py", line 147, in<listcomp>"dev": make_array([r forkey, reqinvalue.items() forrin _convert_req(key, req)], True),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/formats/poetry.py", line 74, in _convert_req
yield Requirement.from_req_dict(name, _convert_specifier(req_dict)).as_line()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/models/requirements.py", line 180, in from_req_dict
return NamedRequirement(name=name, specifier=get_specifier(req_dict))
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pdm/models/specifiers.py", line 28, in get_specifier
return SpecifierSet(version_str)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/packaging/specifiers.py", line 714, in __init__
parsed.add(Specifier(specifier))
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/packaging/specifiers.py", line 245, in __init__
raise InvalidSpecifier(f"Invalid specifier: '{spec}'")
packaging.specifiers.InvalidSpecifier: Invalid specifier: '>=3.5.4|^4.2.0'
I believe >=3.5.4|^4.2.0 is indeed an invalid specifier according to PEP 508. >=3.5.4 or >=4.2.0,<4.3.0 is I think equivalent to >=3.5.4,<4.3.0? I'm not sure there's an equivalent. This specifier seems to come from Poetry, and PDM has a way to convert such specifiers to valid ones, but it looks like it's failing here?
Make sure you run commands with
-v
flag before pasting the output.Steps to reproduce
Install pygobject
Actual behavior
Expected behavior
Successful installation
Environment Information
The text was updated successfully, but these errors were encountered: