ImportError: cannot import name 'string_types' from 'six' while testing with uv --resolution=lowest #3338
Labels
bug
This issue is a confirmed bug.
dependencies
This issue is a problem in a dependency.
investigating
This issue is being investigated and/or work is in progress to resolve the issue.
p3
This is a minor priority issue
Describe the bug
Package maintainers who use uv to test the lowest possible set of dependencies for their Python packages and have boto3/botocore as dependencies will encounter this issue.
uv
resolves the lowest version of dependencies, and in this case, it installs:python-dateutil==2.1
(minimum version allowed bybotocore
).six==0.9.0
(the lowest available version sincepython-dateutil==2.1
does not constrainsix
).This combination is incompatible and results in the following error during imports:
This specifically impacts the maintainers testing their packages with
uv --resolution=lowest
Regression Issue
Expected Behavior
Package maintainers testing with
uv pip install --resolution=lowest
should not encounter incompatible dependency installations when relying on the latest version ofboto3
/botocore
. The dependency resolution process should prevent incompatible versions of python-dateutil and six from being installed.Current Behavior
When resolving dependencies with
uv --resolution=lowest
,boto3
andbotocore
allow the installation of the following versions:This combination is incompatible, resulting in the error:
Reproduction Steps
or
boto3
/botocore
uv --resolution=lowest
Example:
https://github.com/pcjedi/botocoredep/actions/runs/12786849699/job/35644776921
Possible Solution
Update the
python-dateutil
version constraint inbotocore
to>=2.4
, which ensures compatibility withsix
.Note: During testing, it was found that all tests in
botocore
passed successfully only withpython-dateutil>=2.7
. To ensure broader compatibility, consider raising the constraint topython-dateutil>=2.7
.Additional Information/Context
This issue specifically affects package maintainers relying on
boto3
/botocore
and testing withuv --resolution=lowest
SDK version used
1.36.0
Environment details (OS name and version, etc.)
debian
The text was updated successfully, but these errors were encountered: