← All tasks
pythonpypa/setuptools #4665Not a task: already works

[BUG] Minimum requirement for jaraco.functools

envgap__pypa__setuptools-4665

01 / FAILURE SIGNATURE

As reported upstream

ImportError: cannot import name 'splat' from 'jaraco.functools' (/poetry-env/lib/python3.10/site-packages/jaraco/functools.py)
Not a benchmark task.
  • The project already builds and runs before the fix, so there is nothing to repair.

02 / ENVIRONMENT RECIPE

Base commit
544cf20583a37b206eb8ee6ea5881a8d64d4b460
Manifest
pyproject.toml
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

pypa/setuptools #4665 · read the original issue
### setuptools version

75.1.0

### Python version

3.10

### OS

MacOS

### Additional environment information

_No response_

### Description

setuptools uses a function from `jaraco.functools` called `splat`:

https://github.com/pypa/setuptools/blob/v75.1.0/setuptools/_distutils/_modified.py#L6



That function is only available from version 4.x.x. So `jaraco.functools` should have a minimum requirement:

https://github.com/pypa/setuptools/blob/v75.1.0/pyproject.toml#L106

### Expected behavior

Should have a version conflict when installing setuptools in combination with other packages that require jaraco.functools < 4.

### How to Reproduce

Install setuptools with another package that require jaraco.functools < 4.

### Output

```console

File "/app/xxx.py", line 9, in <module>

  from distutils.util import strtobool

File "/poetry-env/lib/python3.10/site-packages/setuptools/_distutils/util.py", line 23, in <module>

  from ._modified import newer

File "/poetry-env/lib/python3.10/site-packages/setuptools/_distutils/_modified.py", line 6, in <module>

  from jaraco.functools import splat

ImportError: cannot import name 'splat' from 'jaraco.functools' (/poetry-env/lib/python3.10/site-packages/jaraco/functools.py)

```

Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]