yagays/ja-timex

[Bug]依存ライブラリが対応していないため、Python3.12環境にインストールできない

Closed this issue · 3 comments

tpdn commented

🐛 Bug

説明

見る感じ依存ライブラリ2つが現状対応していないため、Python3.12環境にインストールできない状態になっています

現状挙動

インストール時にエラーが出る。エラーについては補足情報のIssueを参照

理想の挙動

普通にpip installできる

再現方法やエラー内容

Python3.12環境でpip install

実行環境

  • ja-timexのバージョン : 0.2.7
  • Pythonのバージョン : 3.12.0
  • OSの情報: MacOS Sonoma

追加/補足情報

Pendulum

https://github.com/sdispater/pendulum

Pendulum v2.1系はPython3.12に対応していません。廃止されたsetuptoolsが影響していそうです。
sdispater/pendulum#696

そして2.1系をこれ以上アップデートする意志はないようです。なので3系への切り替えが必要です。

ただ、3系は今のところ安定版のリリースがされていません。
ver3.0.0bが存在しており、実装そのものはおおむね仕上がってそうに見えます。

mojimoji

https://github.com/studio-ousia/mojimoji

mojimojiはPython3.12に対応していません。Unicode周りのAPIが廃止された影響を受けています。
studio-ousia/mojimoji#24

ただ、このライブラリはそれほど複雑なことをやっていなさそうに見えます。
他のライブラリへの切り替えや、同様の挙動をする自前実装への切り替えを検討しても良いのかもしれません。
私が作った修正差分が一応存在しています。studio-ousia/mojimoji#25

yagays commented

@tpdn 報告ありがとうございます。また、依存パッケージの現状調査も記載いただき、大変助かりました。

まずpendulumについてはタイムゾーンのハンドリング含めて使用箇所が多いため置き換えは難しく、依存先のPython3.12を待つほかなさそうです。ver3.0.0が正式にリリースしたら依存バーションを上げたいと思います。また、mojimojiは全角半角の変換のみに使用しているのみで置き換えが可能ではあるため、こちらは代替手段を実装すれば問題ないと思われます。

tpdn commented

自分でやってみた感じでは、Pendulum3.0.0b1と自分で修正したmojimojiの組み合わせでフルテストをPython3.8-3.11まですんなりと通せることを確認できました。
Python3.12でも依存関係を解消すればテストが通ります。
tpdn#2

しかしながらPython3.12に対応するとなるとdev dependenciesに大量のパッケージが入っているため、それらの依存関係解消が大変そうに見えました。
ipython・streamlit・pandasなどについては、不要であればdev dependenciesからの撤去も検討すると今後のアップデートが楽になりそうです。

@tpdn mojimojiの依存削除ありがとうございました。

pendulumのv3.0.0b1も各種環境でテストが通りましたので、こちらを使用してPython3.12対応の0.2.8をリリースしました。pendulum側の様子を見てstableが出たらそちらを使用する予定ですが、現状はbeta版を利用した0.2.8を利用いただければと思います。