Support Python >= 3.12 and drop support for Python 2.x
- Dominant language
- Python
- Stars
- 9.1k
- Forks
- 784
- PR merge metrics
- No merged PRs in 30d
Description
## Feature Request
Trying to install arrow with Python 3.12.3 installed does not work, because (at a minimum) [distutils has been removed](https://docs.python.org/3/library/distutils.html#module-distutils), but is required by the package six. As Python 2.x is far beyond EOL now, perhaps it is time to support Python >= 3.12 by dropping the six package and thus dropping support for 2.x?
This is the traceback I get trying to install via poetry:
```shell
> poetry add arrow
Using version ^1.3.0 for arrow
Updating dependencies
Resolving dependencies... (0.1s)
Package operations: 4 installs, 0 updates, 0 removals
• Installing six (1.17.0): Failed
EnvCommandError
Command ['/home/hlongmore/.cache/pypoetry/virtualenvs/tagflow-c_c9oK7O-py3.12/bin/python', '-W', 'ignore', '-'] errored with the following return code 1, and output:
Traceback (most recent call last):
File "", line 7, in
ModuleNotFoundError: No module named 'distutils'
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the Poetry installation failure with Python 3.12.3 and inspect the package's dependency configuration for the six requirement. Done means the package installs on Python >=3.12 without the distutils failure and no longer claims Python 2.x support.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100