pyproject.toml の一歩目

Event:

みんなのPython勉強会#96 LT

Presented:

2023/08/17 nikkie

お前、誰よ

  • にっきー @ftnext @ftnext

  • みんなのPython勉強会 4代目LT王子・スタッフ

  • 株式会社ユーザベースのデータサイエンティスト(We're hiring!

このLTでは

  • まずPythonイベントのインフォメーションをお伝えします(コミュニティ盛り上がったらいいな〜)

  • pyproject.toml について話します

ℹ️インフォメーションℹ️

本編:pyproject.toml の一歩目

ライブラリを自作したことある方?🙋‍♂️🙋‍♀️

自作ライブラリの公開

  • PyPI

$ pip install kojo-fan-art
  • GitHubからも pip install できる

GitHubから pip install の例

$ pip install git+https://github.com/karaage0703/unko

からあげさん Pythonで自分だけのクソライブラリを作る方法

GitHubからインストールできる秘密

setup.py
from setuptools import setup, find_packages

setup(
    name='unko',
    version='0.1',
    packages=find_packages()
)

https://github.com/karaage0703/unko/blob/main/setup.py

主張: setup.py に代えて pyproject.toml がオススメ!

nikkieと pyproject.toml

  • また新しいこと覚えなきゃいけないのか...(乗り気でない)

  • Pythonコミュニティ的には pyproject.toml への移行が進んでる?(私、取り残されてる?)

  • 使ってみたら、学習コスト思ってたほど高くなかったし 便利じゃん

pyproject.toml を使った自作ライブラリの公開

$ pip install git+https://github.com/ftnext/unko

setup.py の代わりに pyproject.toml

[project]
name = "unko"
version = "0.1"

https://github.com/ftnext/unko/blob/main/pyproject.toml

pyproject.toml は後発な分、わかりやすい!

[project]
dependencies = [
    "httpx",
]

setup.py では install_requires

pyproject.toml は後発な分、わかりやすい!

[project.optional-dependencies]
dev = [
    "pytest",
]

setup.py では extras_requireinstall_requires と混乱しがちでした😵)

pyproject.tomlツールの設定も できる!

インストールできるようにするだけじゃない!

Python開発に使う各種ツール

  • Black(フォーマッタ)

  • pytest(テストコード実行)

  • mypy(型チェック)

  • etc.etc.

pyproject.toml でツールを設定!

まとめ🌯 pyproject.toml の一歩目

  • pyproject.toml 便利なので、みんな使おう!

  • 自作ライブラリ を公開するときは setup.py に代えて使ってみては(分かりやすい!)

  • ツールの設定を書く 用途で導入もできます

ご清聴ありがとうございました

Enjoy Python with pyproject.toml!

Appendix

EOF