arrow-py / arrow-py/arrow

Support Python >= 3.12 and drop support for Python 2.x

Open
#1,232 1 comment 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.