Open11

PyCon JP 2025

ronron

【招待講演】PEP 750 の共同著者 青野高大 氏による Python3.14の新機能の紹介

https://github.com/koxudaxi/pyconjp_2025/blob/main/Python 3.14 Highlights %26 PEP 750 - Slidev.pdf

get_annotations で型を取得できるようになった。ランタイム上で取りやすくなった
過去は get_type_hint を取得していた

ユニットテストの CLU にカラーリングが実装

PEP750 Template String
f"" じゃなくて t"" が出る。
Template オブジェクトが返却される。文字列じゃない。

Template が帰ってくることで、検証を挟むことが可能。

構造化ログ
logger なら文字列を出して、他の場合は、 json を出力するなど、複数選択可能。

ronron

フロントエンドエンジニアが Python エンジニアになって見えた世界!

https://speakerdeck.com/anfinii/hurontoentoensiniaka-python-enzinianinatutejian-etashi-jie

構文エラーは Type Hints, mypy で防ぐことが可能

Protocol を使うと方安全に実装できる。 mypy で検知可能

f-string を使うと、変数の後に = を入れると値と出力可能

TypeScript は数字の計算が Python に劣ることがある。
2進法で表現できない

メモ
https://zenn.dev/ibaraki/articles/bef0b43522475b

ronron

ReactPyを使ってreact likeにUIをPythonで実装する

Streamlit, Dash Gradio, Panel などでビジュアライゼーションを構築することがある。

ReactPy はバックエンドのツールを指定してインストールする

豊富なエコシステム(Numpyなど)を使うことが可能

通常の React で構築する流れと似たような形になっているっぽい。

コンポーネントはデコレーターを使って宣言する

強みとしては、バックエンドを指定して連携することが可能

状態管理をサーバーサイドで行うことができる。サーバーの負荷が上がるとも言える

ronron

Pythonだけでつながるあなたのアイディア、フロントエンドもPythonで

https://docs.google.com/presentation/d/1MtBcu2K4ChbxcSnXEfQsk2vhs9UCNy5wo_V60E50GdU/edit?slide=id.p#slide=id.p

Streamlit は簡単にデプロイできる仕組みが存在する

Flet

サーバーレス(静的Webサイト)も可能

OpenCV で作成?
デスクトップアプリ作成可能

WebAssenmbly
ブラウザで動く、コンパイルする。 JS経由で読み込む

Pyodide
CPython を WebAssembly に移植したもの
ブラウザで Python を動かせる

Flet(静的webサイト)
ビルドすると、HTML,JS が生成され、その中で Pyodide が読み込まれる

ホットリロード機能付き

Netrify で web build したものをホストすることが可能

py2wasm
こういった動きもある。これからのこと

制限
JS を通さないといけないこと(カメラ)
Pyodide 対応していないライブラリは動かない

Flet と Pyodide の連携がユニークな点

Python は zip ファイルになる。
Python を動かす JS が Pyodied を経由して Python を動かしている

クライアントに情報が渡るため、 API KEY を渡すとかはやめた方がいい
だけど、クライアントと生成APIが直接やりとりできるのはメリット

ronron

mypyの10年、pyrightの5年、tyの挑戦 - 型チェッカー進化論

https://speakerdeck.com/byfarsmall/mypyno10nian-pyrightno5nian-tynotiao-zhan-xing-tietukajin-hua-lun

Python の型の誕生より、 mypy の方が古い

typeshed ライブラリの型情報をまとめている

mypy を vscode に入れると遅いため、 pyright(Pylance)が登場

ダックタイピングProtocol

モノレポ構成で速度が気になるため ty が登場
アルファ版のため、動作が安定していない

88% が型チェックを常に、頻繁に利用している

mypy が一強状態

大きいファイルだと、mypy がかなり遅い。pyright はそこそこ。ty最強。

エラー時の出力についても ty が見やすい
カラーリング、ガイドコード付き。

型の推論能力について
現在のtyは全然動かない。誤検知が多い

mypy は PEP に忠実。ライブラリの追加ができる。(django など)
pyright は型推論協力。 Any, None に厳しい。

現時点では mypy メインがおすすめ。
並行して、即時フィードバックが欲しいので、 pyright も併用する。

ronron

【Day 1 Keynote】 Sebastián Ramírez 氏 Behind the scenes of FastAPI and friends for developers and builders

常に問題を解決するところから、注力する。
そこから、イノベーションが発生するのではないか。

プロダクトを開発するヒント

  • 必要なものを構築する
    • 問題を見つける
      • きっとそれはすでに解決するルールがある。だけど完璧ではない。
      • ビルディングブロックで解決できないか
  • 存在するものよりも良いものであること
  • ユーザーの観点からみましょう。UI/UX
  • 開発者の体験も良いこと。
  • 複数のものに対して、同じ名前を書かないようにしない
  • ドキュメントの中で、 Emoji や Tips など区切って見やすくなるように
  • 早すぎる抽象化は危険

90% 以上の Issue はユーザーのエラー
ポジティブなフィードバックを残しておく

FastAPI Cloud

自分にとって、使いやすいか、自分がどう思うのか考える。
提供するなら、使う人に感想を聞く。

ronron

標準ライブラリのlogging、レゴブロックのように組合せてロギングできることを理解しよう!

https://ftnext.github.io/2025-slides/pyconjp/stdlib-logging-kata.html#/1

logging モジュール

logging を定義しただけだと見れない。

出力するなら、 Logger を取得する。
https://ftnext.github.io/2025-slides/pyconjp/stdlib-logging-kata.html#/4/2

ロガーのレベルについて
ロガーを設定する側は、レベルは NOTSET
NOTSET なら、親(ルートロガー, spam, spam.ham)のレベルが決まる
ルートロガーは WARNING レベル

propagate 属性:これが True ならルートロガーに伝播される

ログには print ではなく logging を使う

色付きロギングなら Rich

ronron

Webアプリケーションにおけるパスルーティングアルゴリズムの解剖

TODO: スライドが見つかれば・・

ルーティングを処理するには
ルーティング設定したものを、線形探索 + 正規表現だったり、 Trie Tree マッチング

正規表現のエンジン
DFA, VM があり、 Python では VM
コンパイルして、バイトコードでステップに変換。

Trie Tree
文字を分割し、木構造で検索できるようなイメージ

Trie Tree は早いが、弱点がある
/foo/$param/bar
/param/param
の時に、 /foo/hoge でアクセスした時に失敗する
バックトラックしないため。

バックトラックしないことを意識してパスの設計をする必要がある。

ronron

Streamlit は社内ツールだけじゃない!PoCの速さで実現する"商用品質"の分析SaaSアーキテクチャ

https://speakerdeck.com/kdash/streamlit-hashe-nei-turudakeziyanai-poc-nosu-sadeshi-xian-surushang-yong-pin-zhi-nofen-xi-saas-akitekutiya

Streamlit にはキャッシュ機能を持っている
session_state ユーザーやタブごとにキャッシュ
cache_data 全ユーザーが使えるキャッシュ
キーがかぶることがある。関数で分ける。
直接使えないように、 linter で制限することが可能

認証も可能。 Decorator で対応
各処理にエラー処理を書かないといけなくなる。忘れる可能性があるため、Decorator
認証にも Decorator。 main 関数ごとにその Decorator を利用することで、タブが分かれても認証を維持することが可能

型による堅牢性と UI テストで品質の担保
LLM による恩恵も受けるため、型での制御を実施する
Result 型と AnyError 型
Rust に影響されている。

ronron

育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略

https://speakerdeck.com/kdash/streamlit-hashe-nei-turudakeziyanai-poc-nosu-sadeshi-xian-surushang-yong-pin-zhi-nofen-xi-saas-akitekutiya

Pandas DataFrame を引数レスポンスに型指定していても、
何を指定しているのか分からない。
Pydantic を使って、データの整合性を保証する。ドキュメントとしての役割もしてくれる
イミュータブルの設定を実施することが可能

dataclass だと型ヒントを提供するのみ

pands data frame については、 pandera を使う。
これで、 Schema を綺麗に定義することが可能。

リポジトリパターン
データストアへのアクセスを抽象化
抽象基底クラスが ABC これがインターフェースの役割