128 Matching Annotations
  1. Last 7 days
  2. Nov 2025
    1. Sentry[1]

      nits: 個人的な話ですが、エラーメッセージはデフォルトだと stderrに出力されるため、datadogではstdoutにしないと全てのログがエラーログとして扱われてしまうことがありました。 他のツールで同じことが起こるのかわかりませんが、ログツールによってはstdoutに変更したほうがよいケースがあることも書いてあったらうれしいなと思いました。 (難しいかもしれないので、無理なら不要です)

    1. 公式ドキュメントへのリンクは、他の内容と合わせると先頭にあったがほうがよいと思ったのですが、よくよく考えてみると、この節だけ「一歩進んだ」になっていて、少し粒度が他と違うような気がしてきました。

      節にするなら、他と書き方を合わせたい気もしましたが、気にしなくてよいのでしょうかね... ちょっとすぐにアイデアないですが、気になったのでコメントだけしておきます。

    1. Python 3.14以外のバージョンではデフォルトのキャッシュの数

      Python 3.14以外ということですが、私の環境ではPython 3.14でも以下のようになるようです。

      ```

      import re len(re._cache) 6 ```

      Python 3.14ではキャッシュが15 個あるように読めてしまったので、環境依存だというのがわかるように記載したほうが良い気がしました。

    2. <re.Match object; span=(0, 3), match='ABC'>

      実際に実行してみたら、以下が返ってきました。

      <re.Match object; span=(0, 3), match='aBc'>

    1. UNIQUE

      from enum import UNIQUE, verify

      verifyがないと NameError: name 'verify' is not defined になると思います。

      あるいは@enum.verify(UNIQUE)ですかね

    1. リスト

      nitsかもですが、{code-block} pythonになっています。 ここはbashになると思いました。 これ以降にも同じようにpythonになっているものがあるようなので、確認ください。

    1. DROP TABLE users

      念のためですが、drop tableだと悪用できる例をそのまま提示してしまっている危険性もあると思いました。 ここも(悪意のあるSQL)としておくか、wikipediaにあるような OR name = xxxx みたいな感じのほうがよいのかなと。

    1. デコレーターを利用して、外部APIのShoppingSiteAPIに依存している処理をモックで置き換える

      これもcatpionに入れたほうがよさそうです。

    2. モックメソッドが実際に呼び出されたか(または呼び出されなかったか)を確認するテストの例

      これはcaptionに入れたほうがよさそうです。

    1. ここも罫線になっているようです。(罫線が正解?) 以降も罫線になっているようなので確認してもらったほうがよいかもしれません。

    1. ^^^^^^^^^^^^^^^^^^^^^^^^^^^

      微妙に出力結果が違いました。

      ```

      aware_object > naive_object Traceback (most recent call last): File "<stdin>", line 1, in <module> aware_object > naive_object TypeError: can't compare offset-naive and offset-aware datetimes ```

    2. 先頭のTの有無

      Tはありでもなしでも対応しているように見えました。 「先頭のTの有無」部分がちょっとわからなかったです。

      ```

      time.fromisoformat('04:23:01') datetime.time(4, 23, 1) time.fromisoformat('T04:23:01') datetime.time(4, 23, 1) time.fromisoformat('T042301') datetime.time(4, 23, 1) ```

    1. オフセット(UTCからの時差)に何を採用するか

      nits: 「何を採用するか」という表現が、少しわかりづらい気もしました。選択肢としては「夏時間」か「標準時」なので、「どちらのオフセットを採用するのか」でもよいのかなと思いました。

    1. Excelファイルの書き込みは、Workbookクラスのメソッドを使用します。

      この文章は表の上にあったほうが良いように思いました。

    2. 評価結果を取得

      nits: 再計算されるのかわからないので、「読み込んだ時点で保存された評価結果」としてもよさそうです。

    1. (エラー情報省略)

      nitsですが、エラーの最後も提示したほうがよいように思いました。

      Traceback (most recent call last): File "<stdin>", line 1, in <module> yaml.load('none: !!python/none null', Loader=yaml.SafeLoader) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (エラー情報省略) yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/none' in "<unicode string>", line 1, column 7: none: !!python/none null

    2. Pythonオブジェクト

      load_allはgeneratorを返すようです。

      ```

      yaml.load(file, Loader=yaml.SafeLoader) {'database': {'host': 'localhost', 'port': 3306, 'db': 'test', 'user': 'test'}, 'smtp_host': 'localhost'} yaml.load_all(file, Loader=yaml.SafeLoader) <generator object load_all at 0x10357bca0> ```

    1. json.tool サブモジュール

      3.13以前ではjson.toolsを使う必要があるので、こちらに関する内容も抜粋して残しておいたほうが良いように思いました。

    2. たり、

      nits: 今までがこの表記ですが、「〜たり、〜たり」にしたほうがよいか悩ましいですが、文章の見直しとして一応コメントしておきます。

    1. nits: 違いがわからなかったので、出力結果のサンプルがあってもよいかもと思いました

      2025-11-06 07:48:47,078 ERROR ['Traceback (most recent call last):\n', ' File "/Users/kadowaki/example3.py", line 9, in <module>\n tuple()[0]\n ~~~~~~~^^^\n', 'IndexError: tuple index out of range\n']

    1. t

      私の環境だけかもしれませんが、実行するとプロンプトの前に制御コードが入ってきます。(Linux環境です)

      ```

      t = timeit.Timer('char in text', setup='text = "This is a test."; char = "test"') 633;A>>> 633;A>>> t.timeit() 0.03372933401260525

      ```

    1. --Return--

      私の環境では以下になりました. --Return-- って出るのが正解ですか?

      ``` (Pdb) n

      /Users/kadowaki/outhouse/jissen_recipe2/source/17_debug/sample_pdb.py(9)get_system_implementation() -> return result ```

  3. Oct 2025
    1. ge は以上、lt は未満

      念のためちゃんと書いておきたい気がしました。

      ge は “greater than or equal to” の略で、「以上」を意味し、lt は “less than” の略で、「未満」を意味

      とかでしょうか?

    2. BaseModel

      BaseModelは基本部分になるので、ドキュメントのリンクがあってもよさそうです。 https://docs.pydantic.dev/latest/api/base_model/

  4. Sep 2025
    1. customer1.0 タスクが restaurant タスクをawaitしていることが分かります。

      この部分、というのがわかるようにしてあると理解しやすいと思いました

    2. customer1.0

      出力は「sleep -> restaurant」になっていますが、customer1.0が〜わかります。という表現でsleepとcustomer1.0のつながりがわかりにくい感じがしました。ので、少し補足があっても良い気がしました

    3. asyncio.capture_call_graph() で FutureCallGraph オブジェクトを取得し、

      説明を少し書き足しても良いきがしました。

      より柔軟に扱いたいときはasyncio.capture_call_graph() 関数?を使います。この関数では、FutureCallGraph オブジェクト (ref url) を返し、以下の情報を個別に参照できます。

      • future: 説明
      • call_stack: 説明
      • awaited_by: 説明

      みたいな感じとかはどうでしょうか?

    4. 連鎖関係

      この例では、awaiter chain自体、出力には出てないですか? 出てないなら、どんな感じで表示されるのか知りたいです。

    5. await関係

      ざっくりしていてピンとこなかったのです。表示されているのはawaiter、つまり待機オブジェクトということだと思います。 await状態のオブジェクト情報など、みたいな書き方でしょうか...

    6. PyCon US 2025セッション「Zoom, Enhance: Asyncio’s New Introspection Powers」で取り上げられていたのが、本機能です。

      この文章、「従来のプロファイラは...」の後にしたほうが読みやすい気がしました。 背景の説明 -> PyConUSでもこの取り上げられてたよ、資料もあるよ みたいな流れがよいとおもいました

    7. 機能の背景

      nits: 機能追加の背景、のほうがよいかもです。 後段の見出しは機能追加の経緯となっているので、合わせてもよいかもですね

  5. Jul 2025
    1. ASGIでテスト対象のアプリケーションと通信するため、httpより高速です。

      nitsですが、間違いではないもののASGIがhttpを代替する意味とも捉えられそうで、少し誤解を生みそうな表現な気もしました。

      テスト対象のアプリケーションをASGIで直接呼び出すため、ネットワークを介したhttpによるテストより高速です。

      のような、HTTP通信経由ではないから速いという表現にしてはどうでしょうか?

  6. Jun 2025
    1. requirements.txt ├── images # チャットで表示する画像 │ ├── m_.jpeg │ └── robo.jpg

      requirements.txtの内容がどこにもないので、なくても良いのかもと思いました。 あと、robo.jpgなどは、参考までにどのくらいのサイズで用意しておくとよいなどの情報くらいあっても良い気がしました。

    2. アプリの実行

      アプリだけだと曖昧な感じがしたので、「チャットボットアプリの実行」としたほうがよいと思いました。

    3. 各処理の詳細に関しては、後述します。

      コードが大きく、説明とかなり離れてしまうので、 1つのソースであることを説明として入れた上で、 ①〜④単位に分割して説明してくれたほうが読みやすい気もしました。

      ひととおりのコード説明をした後に、全ソースを改めて掲載するでもよい気がします。 (できるのかわかりませんが、全ソースの表示はトグルスイッチ的なもので表示/非表示できればなお良いかもです。技評さんにお願いしたらやってくれませんかね。)

    4. 認証

      LLM と外部システムを安全に接続するためにも「認証/認可」が不可欠だという説明があっても良い気がしました。 そのためにローカルの環境変数にクレデンシャルを設定する必要があるよ、みたいな説明があってもよさそう。

    5. 標準化され

      MCPは業界標準ですので、標準化と言い切るのは少し微妙な気もしました。 「LLMと外部サービスの連携方法が標準化されつつあり、..」 とか?

  7. Apr 2025
    1. プライベートな署名をするための情報にアクセス

      nitsですが、少し読みにくかったので、以下ではどうでしょうか

      プライベートな署名情報にアクセス(する|できる)必要があるため

    1. FastAPI側のレスポンスがJSONなので、Starletteのサンプルも from starlette.responses import JSONResponse として同じ結果のほうがわかりやすいように思いました。

    2. 数少ない

      nitsですが、「数少ない」というと「数」が気になってしまうように思ったので、「(必要)最小限の」(必要はあってもなくてもよさそう)という表現はどうでしょうか?

    3. ヴェルズオイグ

      カタカナにすると「ヴェルクツォイク」だと思ってました。Werkのkの子音がある気がしました(個人の感想)

    4. name = form.get("name", "名前なし")

      リクエストからここまでの簡単なサンプルスクリプトを1つくらいここにまとめて書いても良い気がしました。

    5. 統一の規格があることで、規格に沿った Python アプリケーションを作ることで、

      「〜ことで」が2回続くので、最初のほうを「統一の規格があるため、」とかにしてはどうでしょうか

    6. Python アプリケーションと Web サーバーの

      nits:

      standard interface between web servers and Python web applications

      とあるので、「PythonウェブアプリケーションとWebサーバー間の」としたほうが良い気がしました。

    7. ルーティング機能も Web ツールキットで機能を提供していますが、Web フレームワーク側で機能拡張していることがあります。

      上で指摘ルーティングのことを指摘したこともあり、気になってしまいましたが、WebObとPyramidの部分とかスプレッドシートと内容が合ってないところは確認してもらったほうがよいかと思いました。

    8. Web システム全体像

      この図は後段の「Webツールキットの紹介」の前あたりにあったほうが良い気がしました。

      最初に入れるのは

      Webアプリケーション   

      Webアプリケーションフレームワーク(flask, pyramid, fastapi)    

      Webツールキット (werkzeug, WebOb, Starlette)

      くらいの違いが読み手に伝わるくらいでよい気がした次第です。(インデントで表現していますが、それぞれ四角枠で囲むイメージです。)

    9. FastAPI のドキュメントの随所に

      〜の〜のが続いているので、以下ではどうでしょうか。

      「FastAPIでは、ドキュメントの随所に...」

    10. 対し、「Web フレームワーク (Framework)」は、データ管理やアプリケーション実装を助けるなど、より広範な機能と構造化されたアプローチです。

      「Webツールキットとは」の説明で、 「Web ツールキット (Toolkit)」は、(〜省略〜)に対し、 というのが最初にくるのは少し違和感がありました。 そして、Webフレームワークの説明が続くのも確認が必要そうと思いました。

    11. URL のルーティング機能や認証・認可機能、テンプレート機能、データベースとの接続管理などさまざまなものが準備

      ここの説明はWebツールキットの内容も入っている気がしており、気になりました。 URLルーティング機能はStarletteやWerkzeugの機能ではないかなと。

  8. Mar 2025
    1. freethreading にマルチプロセスによる処理は、小さなスクリプトでは影響がないことがわかりました。

      少し読みにくかったので、以下のようにしてはどうでしょうか?

      「マルチプロセスを利用しても小さなスクリプトではfree threadingの効果が現れにくいことがわかりました。」

    2. 走らず

      「走らず」は俗語っぽい表現なので、「動作しないため」とか「動作せず」などの表現のほうが良い気がしました

    3. スレッド間の競合を回避

      アトミック参照カウントカウントとスレッドの関係が分かりづらい気がしました。

      以下のようにすると少しわかりやすいですかね?

      「...原子的に操作することで、オブジェクトの整合性を保ちながらスレッド間の競合を回避」

    4. GILの利点

      後段に「GILの制約」という見出しがあるので、ここも見出しを分けたほうがよいと思います。 それぞれ見出しレベル3くらいになるのかな?

    5. Pythonで多くの方が、並列処理での制約として認識しているのが

      nitsですが、少し読みにくかったので、以下のようにしてはどうでしょうか?

      Pythonの並列処理で、多くの方が制約として認識しているのがこのGIL...

  9. Jan 2025
    1. df["No."]

      nits: 年度は「イベント」カラムにあるので、「No.」カラムを使って処理しているのがわかるようコメントがあっても良い気がしました。