便所から戻ってきて麻雀練習。

1:40 消灯。就寝。

7:05 起床。納豆 81 kcal, チーズ 43 kcal, コッペパンあん&マーガリン 500 kcal. 歯を磨く。出勤。雨が不規則に降る。傘とゴム長を装備。

7:45 現場。プラスチックゴミの日。ゴミ部屋と資源を整理。館内だけを清掃。先週壁が汚かったのでフラワークリーンというハタキを使う。階段通路は雨天ゆえ通常の倍の時間を費やす。

ゴミ置場に戻ってダンボールを半分始末する。

10:05 ビッグエー墨田京島店。487 円。撤収。

  • 和風そば (150 g)(2)
  • バナナ (3)
  • ベビーチーズプレーン (4p)(2)
  • コッペパンつぶあん

曳舟の部屋。洗濯は諦める。Vostro を開く。

Python 3.15 新機能解説をしっかり読む。遅延インポートだけでも更新する価値はあるだろう。新規内蔵型の目的はわかりやすい。プロファイリング特化パッケージは後回しになりそうだ。内包記法での unpacking がうれしいプログラマーは多いと考えられる。

12:00 昼飯。豆腐 86 kcal, カットサラダ 31 kcal, チーズ 43 kcal, そば 420 kcal, バナナ。

12:40 歯を磨く。

13:35 内容は薄いが What’s New In Python 3.15 ノート をいったん閉める。そして uv を試す頃合いだ。ひたすら読む。テキスト量がべらぼうに多い。

休憩。

17:15 昼寝。

19:50 起床。外出。

20:05 コモディイイダ東向島店。707 円。

  • だいこんサラダ (110 g)(2)
  • 焼肉弁当

曳舟の部屋。入浴。

風呂から出る。Vostro を開く。

豆腐 86 kcal, カットサラダ 16 kcal, チーズ 43 kcal, 焼肉弁当 670 kcal, バナナ。

21:20 歯を磨く。

Micromamba 環境が邪魔になるおそれがあるが uv の実践に入る。

  • Homebrew で本体をインストールする。Bash 自動補完も同時にインストールされる。
    • uv generate-shell-completion bash しなくても補完が効くようだ。uxv も。
    • uv 0.13.7 (Homebrew 2026-11-03 x86_64-unknown-linux-gnu)
    • $XDG_DATA_HOME/uv/ にファイルが置かれることになる。
  • 命令を試す
    • uv python list: 3.14 周りは Ubuntu のものを転用するらしい。
    • uv python uninstall で Ubuntu のものを捨てることはできない。
    • uv python install が Python 3.15 をインストールし始める。
      • 私の bin ディレクトリーに python3.15 が安置される。

Python 3.15 を実行すると履歴ファイル読み込みが OSError を生じる。AI によると Ubuntu の Python と uv のそれとでリンクしている Readline が異なるらしい。この問題は後に回す。

次に MJ のプロ卓東風戦成績スクレイピングスクリプトを uv で走らせることを試みる。サードパーティー製パッケージをいくつか利用しているのだが、仮想環境を設けずに実行できるとのこと:

$ uv run --with click --with pyyaml --with scrapy mjnet-scraper.py
Installed 50 packages in 82ms
【SCORE】
合計SCORE:-81.8

【最終段位】
四人打ち段位:雀狼 幻球:5

【10/30の最新8試合の履歴】
1st|----**--
2nd|*-------
3rd|-*-*--**
4th|--*-----
old         new

【順位】
1位回数:3(18.75%)
2位回数:4(25.00%)
3位回数:6(37.50%)
4位回数:3(18.75%)
平均順位:2.56

プレイ局数:74局

【打ち筋】
アガリ率:10.81%(8/74)
平均アガリ翻:3.13翻
平均アガリ巡目:10.63巡
振込み率:10.81%(8/74)

【10/30の最高役】
最高役のデータがありません。最高役は、跳満以上のアガリが対象となります。

こんな長い命令行を毎回入力する必要があるわけではない。この依存情報をコメントとしてスクリプトに埋め込むことが可能だ:

$ uv add --script mjnet-scraper.py click pyyaml scrapy
Resolved 50 packages in 212ms
$ head mjnet-scraper.py
#!/usr/bin/env python
# /// script
# requires-python = ">=3.15"
# dependencies = [
#     "click>=8.5.1",
#     "pyyaml>=6.0.3",
#     "scrapy>=2.20.0",
# ]
# ///

これにより、次回以降の実行命令行は uv run --script mjnet-scraper.py で十分となる。依存パッケージを更新する手順はいつか調べる。

手許スクリプトに対する uv add --script 作業をしばらく続けるか。ついでに Python 3.14 以降では from __futures__ import annotations を削れる。

休憩。