第3回は、カンファレンス3日目とカンファレンス後のスプリントの話題をレポートします。
カンファレンス3日目
3日目の始まりです。朝食はメニューが変わってブリトーでした。
ライトニングトーク
カンファレンス3日目朝には、筆者が前日に通ったライトニングトークをしました。タイトルは「Put 🐱 Cat Emojis in your documents!」で、筆者が作成して公開しているSphinx拡張sphinx-nekochan を使って、しかまつさん作のネコチャン絵文字をドキュメントに挿入するというものです。
私の発表はビデオの16分49秒ごろからはじまるのですが、司会の方が「次のトークはPythonコミュニティにとって非常に重要な2つの話題について話します。ネコと絵文字です。」というとても素晴らしい前振りをしてくれました。感謝です。
実際にはビデオを見て欲しいのですが、トークの最初で私が「Do you like Cats?(ネコは好きですか?) 」と問いかけると、会場から「Yeeees!!」のような声がたくさん上がって、非常にポジティブな聴衆を前に楽しくトークができました。ネコチャン絵文字 が世界デビューしました。
筆者のライトニングトークの様子
3日目朝のライトニングトークでは、毎年恒例の世界中のPyConやPythonイベントのリレートークがあります。1イベント30秒くらいで、世界中のイベント主催者が自分たちのイベントを紹介します。ビデオでは47分53秒頃からはじまります。発表が始まる前、世界中のイベント主催者が並んで待っています(この写真は私がKwonHanさんに頼まれて撮影しました) 。
日本からはPyCon JP 2025座長の西本さんが登壇し(ビデオの54分05秒くらい)「 私は今回はじめてPyCon USに参加したので、みなさんも初めてのPyCon JP 広島開催に初参加しましょう!」と呼びかけていました。
ところで、主催者が来ていないときには、スライドを他の人が紹介するのですが、52分24秒からPyOhio、PyCon UK、DjangoCon USを一人で紹介した方がちょっと面白いのでご覧になってください。
西本さんのライトニングトークの様子
ポスターセッション、 ジョブフェア、 コミュニティショーケース
3日目の午前中はトークセッションはなく、ポスターセッションとジョブフェア、コミュニティショーケースのみとなります。企業ブースがあったところをカンファレンス2日目の夕方に片付けて、3日目はこれらのイベントが展開されます。
ポスターセッション
ポスターセッションはボードにA0程度のサイズのポスターを掲示し、その前でディスカッションなどを行う発表形式です。筆者もポスターセッションを見て回っていくつか質問やディスカッションをしてきました。「 色のセオリー」についてのポスターでは、データ可視化ツールのより見やすい色について解説されていました。各ツールのデフォルトの色はおすすめではないということで、「 ぜひ次に発表する機会があれば、おすすめのカラーテーマを教えて欲しい、もしくはテーマを作って共有してほしい」という話をしました。
データ可視化の色のセオリーについてのポスター
CrossHairのポスターでは、コードを自動的に解析してテストをしてくれるライブラリCrossHair の紹介をしていました。CrossHairはPurePythonしか対象にできないため、制限があるという話でした。ただし、大きなプロダクトだったとしても、PurePythonで書かれている部分に絞って適用することは可能だそうです。
CrossHairのポスター
ジョブフェア、 コミュニティショーケース
ジョブフェアとコミュニティショーケースには、机2つ分の小さなブースが並んでいます。ジョブフェアは求人をしている企業がブースを出し、求職者が直接企業の担当者と会話ができるという場です。ジョブフェアのみに参加することも可能で、その場合のチケット代は30ドルです。会場の近くに住んでいて仕事を探している人には、よい機会かなと思います。
以下の配置図を見るとわかりますが、AWS、Bloomberg、Metaと、大きな企業が2024年よりも戻ってきたという印象です。ただ、全体としてはジョブフェアのブース数がそれほど多くなく、コミュニティのブースが6つほどあります。
ブースの配置図
ジョブフェアではやはり有名な企業はたくさんの人が列に並んで話をするのを待っていました。私は仕事を探していないので、知り合いのいるLerner Pythonのブースを訪ねました。Reuven LernerさんはPythonのトレーニングを提供しています。あいさつをしに行くと、PyCon Taiwanで一緒に飲んだ私のことを覚えていてくれたようです。
ReuvenさんのブースではいつもTシャツを配っているんですが、Tシャツの色がグレーから変わっています。「 Tシャツの色が変わりましたね」と聞いてみると「妻の好きな色にしたんだよ」といった話をしました。「 日本は今年広島で開催するので、ぜひ来てくださいね」という話もしたのですが、9月末にはユダヤ教の祝日があるらしく、残念ながら参加は難しいそうです。開催時期がずれたタイミングで、日本でReuvenさんに再会できることを楽しみにしています。
Reuvenさんと筆者
Python Steering Council
このトークでは、Pythonの言語仕様を最終決定するSteering Council(運営評議会)のメンバーが、現在の状況や今後のPythonについて共有します。Steering Councilは毎年投票で5名が選ばれ、2025年はBarry Warsaw氏、Donghee Na氏、Emily Morehouse氏、Pablo Galindo Salgado氏、Gregory P. Smith氏がメンバーです。Emily氏は欠席でした。Donghee氏は韓国在住で、おそらくアジア系で初めてのSteering Councilメンバーです。
Steering Councilメンバー(左からBarry氏、Pablo氏、Gregory氏、Donghee氏)
最初にSteering Councilがなにをしているかの説明がBarry氏からありました。Pythonの拡張提案であるPEPの受諾または拒否の決定をし、Pythonの品質と安定性を維持しています。また、PSFと協力してプロジェクトの資産を管理しています。詳細は以下のPEPドキュメントを参照してください。
Steering Councilメンバーは毎週90分のミーティングを実施しているそうです。また、気軽にコミュニケーションできるオフィスアワーも実施しているそうです[1] 。
Pythonへの新機能の取り込みはbeta 1のリリースまでに行われます。Python 3.14は現在beta 3 がリリースされており、取り込まれる新機能は確定している状態です。
Gregory氏からは、Pythonのコア開発者と資金調達についての話がありました。Pythonは多数のコア開発者によって開発されています。普段はオンラインで活動していますが、年に1回「Core Team Sprints」という開発イベントを1週間実施しています。PSFでは現在フルタイムの開発者を4名雇用しており、それ以外にも開発イベントなどでも資金が必要です。雇用を維持するためには継続的な資金の提供が必要ということで寄付の呼びかけがありましたが、なんとそのスライドにネコチャン絵文字が使われていました!おそらくGregory氏が私のライトニングトークを見てネコチャン絵文字を気に入ったのだと思います。Gregory氏が担当している複数のスライドにネコチャン絵文字が使われており、これにはびっくりしました。
寄付の呼びかけスライドにネコチャン絵文字!
次にDonghee氏からワーキンググループについて説明がありました。Pythonのドキュメントとその翻訳などを管理するPython Documentation Editorial Board(PEP 732 )の紹介がありました。現在のボードメンバーはMariatta Wijaya氏、Ned Batchelder氏、Joanna Jablonski氏、Guido van Rossum氏、Carol Willing氏の5名です。今はここにGuidoさんがいるんですね。
Donghee Na氏
他にもPythonのC APIの開発とメンテナンスの中心となるC API Working Group(PEP 731 ) 、型システムを担当するTyping Council(PEP 729 )が紹介されました。Typing Councilについては以下の記事でも紹介しているので、興味のある方は読んでみてください。
最後にPablo氏からPython 3.14の新機能について紹介がありました。Pablo氏はなにか動物の耳のカチューシャを付けているのですが、これは「この耳を付けて登壇したら100ドルPSFに寄付する、とHynek氏が約束した」からだそうです。お茶目ですね。
ケモ耳を付けたPablo氏
ここでは以下の新機能が紹介されました。たくさんの新機能があるのでこの記事では簡単に紹介します。
PEP 649 and 749 : deferred evaluation of annotations
PEP 741 : Python configuration C API
Pythonの設定を行うためのPyConfig_Get()
等のC API
PEP 750 : Template strings
t"Hello {name}"
と書けるテンプレート文字列。安全にHTMLコードに変換するなどの用途が考えられる
PEP 768 : Safe external debugger interface for CPython
sys.remote_exec(pid, script_path)
等で安全な外部デバッガーへのインターフェース
PEP 784 : Adding Zstandard to the standard library
Zstandard という圧縮、展開が速い圧縮アルゴリズムcompression.zstdを追加。tarfile、zipfile、shutilモジュールにも組み込まれる
PEP 758 : Allow except and except* expressions without parentheses
except*の複数例外がカッコ(()
)なしで記述可能に
Better error messages
while
、async
などのキーワードの綴り間違いへの対応など、わかりやすいエラーメッセージへの改善
Asyncio introspection capabilities
非同期タスクを使用したPythonのプロセスを検査するための、新しいコマンドラインインタフェースを追加。python -m asyncio ps PID
のようなコマンドで検査できる
A new type of interpreter
--with-tail-call-interp
でビルドできる新しいインタープリター。数%のPythonの高速化を実現
Syntax highlighting in PyREPL
Pythonの対話モードでラベルに色が付くなどのシンタックスハイライトに対応
各機能の詳細はリンクしているPEPドキュメントや、公式ドキュメントのWhat's new in Python 3.14 を参照してください。
Gregory氏がZstandardの説明をするときにまたスライドにネコチャン絵文字が出てきました。このときGregory氏は「今朝のライトニングトークで『ネコはものごとを良くする』と言っていたので、スライドに(絵文字を)入れました」と私の今朝のトークについて触れていました(16:38) 。まさか言及されるとは思わなかったので、二度びっくりです。
Zstandardのスライドにもネコチャン絵文字
最後のパートではFree threading(フリースレッディング)について時間をとって語られました。Free threadingとはCPythonからGIL(Global Interpreter Lock)を除去し、並列処理のパフォーマンスを上げるというものです。Free threadingについての詳細は以下の記事も参考にしてください。
Python 3.13のFree threadingをシングルスレッドで動作させると40%遅かったが、3.14では2〜5%となったそうです。Free threadingの今後のサポートについて議論するためにPEP 779が提案され、PyCon US 2025の後にアクセプトされました。Free threadingはCPythonで公式にサポートされて、実験的ではなくなりました。ただしフェーズ2という状態で、オプションであることに変わりはありません。
Free threadingについてインストール方法、制限、ライブラリの対応方法についてなど、ドキュメントが提供されていることも紹介されました。
Python 3系も3.14までバージョンが進んできましたが、まだまだたくさん改善、機能追加が行われるということに驚きました。Free threadingの今後にも注目です。
Python Software Foundation Update & Awards
PSFから最新の情報とアワードの表彰がありました。PSFの理事の選挙が8月か9月に開催されるとのことです。
PyLadiesアワードでは50名がノミネートされ4名が受賞しました。ただ、そのうち3名は現地にいないのが残念でした。PSFのCommunity Service AwardsではPython Asia Organizationの創始者でもあるIqbalさんが受賞していました。Iqbalさんの盾は寺田さんが持ち帰って後日渡すことができました。
Distinguished Service Awards はPSFから贈られる最高の賞で、今年は長年Pythonコミュニティで多大な貢献をしてきたThomas Wouters氏、Van Lindberg氏、Ewa Jodlowska氏が受賞していました。PSFのExecutive Directorを長年勤めていたEwa氏の受賞の時には、会場からひときわ大きな拍手が送られていました。
Distinguish Service Award受賞者(左から2番目がEwa氏)
クロージング
最後はクロージングです。これで3日間のカンファレンスが終わります。まず最初にスピーカー、ボランティアなどの数とともに感謝が述べられました。初めてPyCon USに参加した人は1400名以上とのことで、すごい人数です。ただ、全体の参加人数が発表されなかったことが気になりました。
Elaine氏によるクロージング
2日目の夜に行われたPyLadiesオークションの寄付金額は、6万7,000ドル(約980万円)とのことです。1日ですごい金額の寄付が行われました。
来年のPyCon USは2026年5月13日〜19日に、カリフォルニア州ロングビーチで開催されるとの告知がありました。いつもより2日少ないので、おそらくスプリントが4日間から2日間になると思われます。4日間スプリントに参加する人は少ないので、妥当な判断かなと思います。
こうして、無事カンファレンスが終了しました。しかし、PyCon USはこれで終わりではなく、明日からスプリントが始まります。
パーティー
この日の夜はアジアメンバーで集まってパーティーです。予約した時間まで少し余裕があったので、私を含むビールクズ数名でPenn Brewery に行きました。ここはピッツバーグでは最も古いビール醸造所だそうです。
Penn Brewery
そしてChurch Brew Works に移動です。ここは2024年にも訪れたのですが、教会だった建物がビール醸造所兼レストランになっており、とても素敵な場所です。この写真の奥、教会の祭壇があったところでビールが作られており、その手前に私たちのテーブルが用意されていました。
Church Brew Works
ここでは一人1品食事を頼まないといけないのですが、Penn Breweryで少しつまんできたのであまり多くは食べられそうにありません。そこで、これなら大丈夫かな?と思ってジャンバラヤを頼みました。このジャンバラヤがちょっと私には辛かったため「これは私には辛いよ」と言う話をしていたら、韓国のJoongiさんが「私は韓国人だけど辛いのはあんまり強くない」と言うので、私が「じゃあちょっと食べてみて」と伝えると、Joongiさんは一口食べて「辛くない」と言い、やっぱり韓国の人が言う「辛さに強くない」は嘘だなと思いました。
その後も台湾のRexさん、香港出身のCheukさんも私のジャンバラヤを試しましたが、口を揃えて「辛くない」と言うので(日本人の寺田さんは「辛い」とのこと) 、日本人は辛さに弱いんだなーというお国柄の違いを感じました。個人的には、こういうどうでもいい話がとても楽しいです。
ジャンバラヤ
スプリント
カンファレンスのあとは開発スプリントです。スプリントとは、Python関連のオープンソースのプロジェクトに参加し、一緒に開発をするというイベントです。PyCon US 2025のスプリントは5月19日(月)から22日(木)の4日間開催されます。筆者は1日目のみ参加しました。
スプリントの一覧は以下のページで確認できます。CPython、mypy and mypyc、t-strings、Read the Docs、PyLadiesCon Web Portalなどさまざまなプロジェクトがあります。
会場に行くと、ボードにどの部屋でどのプロジェクトが行われているかが書いてあります。参加者はこのボードを見て参加したいプロジェクトの部屋に行きます。たとえば「First-Time CPython Contributors(初めてのCPythonへの貢献) 」はRoom 315であることがわかります。CPythonのコアチームは隣のRoom 316で行われており、初めての人と経験者の部屋を分けるようになったようで、良いアイデアだと思います。
スプリントの部屋割りボード
スプリントの各部屋には丸テーブルがあり、一緒に開発やディスカッションを進めます。筆者はトークとライトニングトークでだいぶ疲れていたため、プロジェクトには参加せず、自分のタスクを進めていました。
スプリントに参加する西本さん
スプリント会場の廊下ではGuidoさんとDongheeさん(Steering Councilの一人)が膝をつき合わせて会話していました。なにの話をしているかはわかりませんが、Python開発の進め方について語っているのでしょうか。
語り合うGuidoさんとDongheeさん
Column: First-time CPython Contributions
橘祐一郎(@whitphx )です。スプリントでは、First-time CPython Contributionsのテーブルに参加しました。CPythonへの貢献を初めてやってみようというテーブルで、CPython開発者の方がその場にいて親切に導入してくれたり、議論や相談に乗ってくれます。これがあるのはPyCon USとEuroPythonくらいではないかと思います。せっかくPyCon USに来たので飛び込んでみました。結果的に、3.13から導入された新しいREPLに関する issue に取り組み、PR を出してマージされるところまでできました。
スプリントに参加したら、まず取り組むissueを決めます。CPythonリポジトリでは初心者が取り組みやすい簡単なissueにeasy
label がついていて、ここから探すのが一般的です。しかし今回はeasy
issueの数が参加者に対して全然足りておらず、空いているissueがすぐに無くなってしまったため、easy
以外のissueから探しました。
その結果 #127960 を見つけました。Python 3.13から新しくなったREPL では相対インポートの挙動が従来のものと違っているという指摘です。自分の手元で最新のコミットでも問題を再現できることを確認し、修正点のアテをつけてからissueに自分がスプリントで取り組みたい旨のコメント を残しました。
早々に関連する箇所を見つけ、Pythonコードに1行足すだけでissueの指摘事項を直せることがわかりました。
しかしその修正はなんともその場限りのものだったので、問題の根本的な原因を探って一貫性のある修正を模索してみました。するとCで書かれた部分にまで手が及び、さらに元の実装の意図と衝突する修正を導入してしまうことになりました。
このまま頑張っても手戻りのリスクが大きいと判断し、この時点でスプリントリーダーに相談しました。すると、新REPLのメイン実装者のPablo にその場で繋いでくれました。こういうことが気軽に起きるのがオフライン開催のスプリントの良い点です。
Pablo に上記の懸念を伝えると、以下のような返答でした。
issueとしてはエッジケース寄りなのであまり大きな修正は労力の割に合わないだろうから無理しなくてもよく、現状を正として、ここでの議論をコメントに残しつつissueをcloseするのも選択肢である。
一方で実装を頑張るなら、説明された実装方針自体には同意できるしレビューするのも問題ない。
私としてはせっかくなのでまず実装を頑張ってみて、どうしようもなくなったら妥協してissueに議論の過程だけ残して撤退することにし、Pabloにもその方針を伝えました。
撤退も視野に入れつつ最初の実装を終えていざdraft PRを作ったところで、テストコードで担保されている、つまり元の実装者が意図的・明示的に選択した挙動を破壊してしまうことが判明しました。ここで1日目が終わり、draft PRをそのまま寝かせていたら、後日、別のコア開発者Łukasz が議論に加わってくれて、私の実装方針を支持してくれ、当該テストコードを削除してくれました。またTomas が、REPLのimportの挙動を変えるとautocompleteにも修正が必要である点を指摘してくれました。これらの後押しを受けて実装とテストコードを拡充し、最終的にマージされるところまで至りました。
プログラミング言語そのもののリポジトリに自分のコードが入るのは初めての経験でした。このスプリントは、CPythonのような大きなOSSに対して何らかの貢献を始めるために、とても良い助走の機会を提供してくれたと思います。コア開発者の方々が気軽に議論に加わってサポートしてくれるため、大きなハードルを感じずに、出したPRがマージされるところまでやり切れました。
また月並みな感想ですが、最近のAIの性能向上によって、CPythonのようなプロジェクトの実装に新しく参加するハードルは下がっていると実感しました。この時自分はCursorを使っていましたが、AIがコードリーディングの速度をかなり上げてくれました。それなりに長いCやPythonのコードの依存関係をジャンプしながら全容を把握する代わりに、AI chat に説明させることでかなり短時間でコードベースを把握して、スプリント中に実装を進められたと思います。
Column: PyCon US 2025 t-strings Sprint
このコラムは清水川(@shimizukawa )がお届けします。
私は今回がPyCon US初参加 でした。今回一番楽しかったのは、“ t-stringsスプリント” に参加し、Python 3.14の最新の技術に触れられたことです。また、参加者との交流も貴重な経験となりました。
スプリントでは、t-stringsのPEP-750 オーサーのPaul Everittさん、Dave Peckさん、青野高大さん(@koxudaxi )と協力して、作業を進めました。
“t-strings” はPython 3.14で導入される新しい文法です。 t-stringsの核心は「安全な文字列処理」にあります。従来のf-stringsとの違いは、すぐに文字列にはならない点です。
>>> user_input = "</div><script>XSS文字列</script>"
>>> f"<div>{user_input} </div>"
"<div></div><script>XSS文字列</script></div>"
>>> t"<div>{user_input}</div>"
Template(strings=('<div>' , '</div>' ), interpolations=(Interpolation('</div><script>XSS文字列</script>' , 'user_input' , None , '' ),))
この挙動により、ユーザー入力の即時評価リスクを排除できます。スプリントでは、t-stringsの動作を体験できる https://t-strings.help/ サイトの手順をなぞり、ドキュメントやサイトの改善に協力しました(PR#18 、PR#19 、PR#19 ) 。
このサイトで紹介している tdom ライブラリは、Templateオブジェクトを安全に文字列に変換する処理を担当しています。これによって、たとえば以下のように書けるようになります。
>>> from tdom import html
>>> user_input = "</div><script>XSS文字列</script>"
>>> str (html(t"<div>{user_input}</div>" ))
'<div></div><script>XSS文字列</script></div>'
Paul氏とは、スプリント中にt-strings以外にもSphinxの進化の可能性を議論しました。Paul氏はSphinxをより進化させたいと考えていて、「 既存の拡張機能の互換性を維持しながら進化させる方法を探っている」とのことでした。
今回私は、トークセッションを持たずに参加しましたが、そのためかSprintの前日までは緊張感が少なく、いまいち乗り切れていなかったように思います。しかし、Sprintで1日どっぷりと最新技術に触れ、英語で議論を交わす時間を持てたことで、PyCon US参加が特別な体験となり、また参加したいイベントになりました。なにより、Python開発の中核にいる開発者と一緒に開発し、新たなつながりを築けたことが最大の収穫でした。Pythonコミュニティの温かさを改めて実感するPyCon US初参加となりました。
Paul氏と清水川
シカゴへドライブ
PyCon USのあとは、シカゴ在住の友人Jasonの提案により、レンタカーでピッツバーグからシカゴへ向かいました。Jason家3名と日本メンバー5名で2台に分かれて移動します(私は乗っているだけ) 。休憩をとりながら9時間くらいでシカゴに無事到着しました。
この2台で移動
車中で、寺田さんのpodcast、terapyon channel の収録を行い、PyCon US 2025について振り返りました。YouTubeにもアップされており、車窓の映像などでドライブの様子がわかって面白いと思います。
シカゴでは現地のクラフトビールを飲み、バカでかいシカゴピザ(ディープディッシュピザ)を食べました。味はおいしいのですが、一人一切れでだいたいお腹いっぱいです。
シカゴで最後のパーティー
シカゴピザ
終わりに
PyCon US 2025のレポートは以上です。自身としてはトークとライトニングトークを行うことができ、非常に達成感のあるイベントでした。日本からの参加者も多く、一緒にシカゴへドライブすることも、なかなかできない体験なので楽しかったです。
筆者が行っているYouTubeライブPyCon JP TV でもPyCon US 2025について紹介しています。寺田さんの写真を中心としたレポートで、異なった目線からの感想もあります。ぜひご覧になってください。
VIDEO
オフィシャルの発表動画は、PyCon USのYouTubeチャンネルで公開されています。以下のページで確認してください。
日本からの参加メンバーで記念撮影
PyCon US 2026はカリフォルニア州ロングビーチで開催されます。来年も行くぞ そしてディズニーランドのスターウォーズエリアにも行くぞ!!
シカゴのHalf Acre Brewery