python-poetry / python-poetry/poetry

poetry-core 2.3.2 raises when determining macos tag version

Open
#10,832 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/bug status/waiting-on-response
Dominant language
Python
Stars
34.3k
Forks
2.5k
Avg merge
2d 19h
Merged PRs (30d)
30

Description

Description

Description:
poetry-core throws when running in a python 3.13.13 environment on Mac. The error message is:

File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmphyb4nwid/.venv/lib/python3.13/site-packages/poetry/core/_vendor/packaging/tags.py", line 410, in mac_platforms
version = cast("AppleVersion", tuple(map(int, version_str.split(".")[:2])))

ValueError: invalid literal for int() with base 10: ''

Environment:
python 3.13.13
poetry 2.3.3
poetry-core 2.3.2
Host: Darwin Kernel Version 25.2.0: Tue Nov 18 21:09:56 PST 2025; root:xnu-12377.61.12~1/RELEASE_ARM64_T6041 arm64

Code:
The bug is here: https://github.com/python-poetry/poetry-core/blob/23bf0ac6b8a50a0756ef4d657d8ff67aef88aa67/src/poetry/core/_vendor/packaging/tags.py#L410

 version = cast("AppleVersion", tuple(map(int, version_str.split(".")[:2])))

The bug is repeatable in that specific environment. But, changing can make this go away. For instance, downgrading to py3.12 makes the throw go away. And, some mac systems do not raise even with running with py3.13. There is a nuance here that I don't grok.

(Sorry to post this here; the poetry-core repo was not accepting new issues.)

Workarounds

Not found yet. Trying to roll back poety versions to a working configuration.

Poetry Installation Method

system package manager (eg: dnf, apt etc.)

Operating System

MacOs

Poetry Version

2.3.3

Poetry Configuration
cache-dir = "/Users/admin/Library/Caches/pypoetry"
certificates.cre.cert = false
data-dir = "/Users/admin/Library/Application Support/pypoetry"
installer.max-workers = null
installer.no-binary = null
installer.only-binary = null
installer.parallel = true
installer.re-resolve = true
keyring.enabled = true
python.installation-dir = "{data-dir}/python"
requests.max-retries = 0
solver.lazy-wheel = true
system-git-client = false
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs"  
virtualenvs.prompt = "{project_name}-py{python_version}"
virtualenvs.use-poetry-python = false
Python Sysconfig
sysconfig.log
Paste the output of 'python -m sysconfig', over this line.
Example pyproject.toml

Poetry Runtime Logs
poetry-runtime.log
Traceback (most recent call last):
File "/opt/homebrew/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
  main()
  ~~~~^^
File "/opt/homebrew/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
  json_out["return_val"] = hook(**hook_input["kwargs"])
                           ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
  return _build_backend().build_wheel(
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
      wheel_directory, config_settings, metadata_directory
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  )
  ^
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/masonry/api.py", line 58, in build_wheel
  return WheelBuilder.make_in(
         ~~~~~~~~~~~~~~~~~~~~^
      poetry,
      ^^^^^^^
  ...<2 lines>...
      config_settings=config_settings,
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  )
  ^
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py", line 95, in make_in
  wb.build(target_dir=directory)
  ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py", line 141, in build
  metadata_directory = self.prepare_metadata(Path(temp_dir))
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py", line 325, in prepare_metadata
  self._write_wheel_file(f)
  ~~~~~~~~~~~~~~~~~~~~~~^^^
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py", line 554, in _write_wheel_file
  tag=self.tag,
      ^^^^^^^^
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/masonry/builders/wheel.py", line 443, in tag
  sys_tag = next(packaging.tags.sys_tags())
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/_vendor/packaging/tags.py", line 646, in sys_tags
  yield from cpython_tags(warn=warn)
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/_vendor/packaging/tags.py", line 224, in cpython_tags
  platforms = list(platforms or platform_tags())
File "/private/var/folders/fd/vltmqhld06b2lmkxbd7sm65c0000gn/T/tmp81tqrjyd/.venv/lib/python3.13/site-packages/poetry/core/_vendor/packaging/tags.py", line 410, in mac_platforms
  version = cast("AppleVersion", tuple(map(int, version_str.split(".")[:2])))
                                 ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ''

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read src/poetry/core/_vendor/packaging/tags.py around mac_platforms and trace how sys_tags reaches it during wheel building. Reproduce the reported Python 3.13 macOS failure, compare the version input across the working and failing environments, and verify that the reported case no longer raises while determining the platform tag.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.