2023年1月18日水曜日

pyi スタブ

私は基本的に Python で型を書きたくない人で、 Python で型を書くと関数定義行が長くなって読みにくくなるのが嫌だなというのが型を書きたくない理由の1つだったのだが、 関数の(に限らないけど)型だけ別ファイルに置いておく仕組みがあった。 スタブ(stub)ファイルというもので、実は型を書けるようにする仕組みと同じ時に誕生してたので、知らなかった方がおかしいのかもしれない。 ともかくこれで(保守コストはさておき)型を書くことへの抵抗感はぐっと減った。

別ファイルの型情報を誰がどうやってどこに引っ張ってくるのか、という部分については、型チェッカーを単独で導入するほどのやる気になったわけではないので、VSCode の Pylance というプラグインが勝手にやってくれるに任せることにして、少し書いてみた。 結果は微妙である。 他のモジュールから import した関数などはちゃんと型が見えるのだが、そのファイル内で定義している関数の型はスタブから読まれない。 Unknown な引数を受け取って Unknown な型を返すようにしか示されない。 ネットでざっくり調べたところによると、スタブファイルを使うことでモジュール本体をパースするより手軽に型を取り込める、といった用途で使うものとの主張を見た。 一方で PyCharm は pyi スタブから型を読んで当てはめてくれるらしい。 こっちの方が直観的には便利。 理想的には、py + pyi とインラインで型を付けた py と自由に行き来できたら幸せ。

妥協案として、インラインで型を書いても良いけど「アノテーションを隠す」モードが提供されたらだいぶマシ。 VSCode にそんなプラグインがあったりするかなと思ったけど、editor.semanticTokenColorCustomizations で色を変えたり bold/italic にしたりがカスタマイズの限界なので難しいか。

2023年1月10日火曜日

杉並区内の金太郎 2023

遡ってみたら前回この話題を書いたのは2015年の正月だった(杉並区内の金太郎)。 最近上井草の方に行ったら、井草川暗渠のさらに上流側でいくつか見た。 これも含め、見掛けるたびに撮っていた写真に残っていた位置情報から、地図にしてみた。

2023年1月1日日曜日

2022年の読書

いわゆる老眼というやつで文庫のルビとか数式の添え字とかが読みづらくなってしまって、読書量が減っていた。 夏頃に眼鏡を導入したが、それで読書量が戻ったかというと、そうでもないかもしれない。 読書メーターの記録によるとマンガを入れて76冊。 マンガを除くと50冊程度だろう。

印象に残っている本は 「カルロ・ロヴェッリの科学とは何か」 「詳説データベース」 「ギリシア哲学者列伝()」 「因果推論の科学」 辺り。科学とは何かではアナクシマンドロスから説き起こされていたが、ギリシア哲学者列伝でのアナクシマンドロスの記載に無いこともいろいろ語られていて、別のソースが伝わった幸運なケースなのかもしれないと思ったり。詳説データベースはデータベースの実装方法の説明といった内容で、普段データベースはそこに有るものとして中身を余り考えない対象だが、知ればそれが何かの場面で役に立つこともあるだろう。最後の因果推論の科学は最近読んだ分厚い本なので、まだ新鮮(別の教科書を読んでみたいとは思った)。

今年も YouTube きっかけで読んだものがいくつかあって、 ウェザーニュースのキャスター檜山沙耶さんのエッセイ「ブルーモーメント」、 こはやし【古生物ちゃんねる】経由で「クモはなぜ糸をつくるのか?」 など。

※本のリンクはamazonアフィリエイトです。