python -m pip install -U mypy
pip install mypy ではなく、これにしたのは何か意図があるのでしょうか? 他のライブラリは、pip install xxx になっているので、ここだけ何でだろうと思い。
python -m pip install -U mypy
pip install mypy ではなく、これにしたのは何か意図があるのでしょうか? 他のライブラリは、pip install xxx になっているので、ここだけ何でだろうと思い。
型ヒントが登場した当初、型ヒントの利用は規模の大きなプロジェクトや開発メンバーの多いプロジェクトでの導入をお勧めしていました。
主語があいまいで、次の文との関係も読みづらいので、この一文なくても良いかなと思いまいた。
# 非同期コンテキストマネージャーでTaskGroupを利用
TaskGroup を利用していること自体はコードから読み取れるため、 コメントとしては 「複数のタスクを TaskGroup に登録して並行実行する」 といった 処理の意図がわかる内容にした方がよいかなと思いました。
print付き
print しているのは自明なので、コメントとして記載しなくてもよいかと思いました。(ノイズになりそうなので)
イベントループのファクトリー関数
ちょっと意味をとらえずらかったので、 「イベントループを生成するファクトリー関数」とするのはどうでしょう?
実行するのを
「実行できる リクエスト(タスク)数を」 とした方がわかりやすですかね?
print("long_thinking: 完了していないタスクが出力しています")
このprint文の意味がよくわからず...
async with asyncio.TaskGroup() as tg:
このサンプルで一度に全ての例を盛り込んでいるので、 まずはTaskGroupの使い方の例と例外と例とコードサンプルを分けるか、TaskGroupの使い方をコメントで書くか?した方がわかりやすいかなと思いました。
まとめられます
nits: 「まとめて送出されます。」とした方が伝わりやすそうですかね?
asyncio.create_task(coroutine, *, name=None)
こちらも同様に、引数が追加されている?
task1が実行される
「#」 をつけてコメントにする、ですかね。 下の行も同様
create_task
https://docs.python.org/ja/3/library/asyncio-task.html#asyncio.create_task
これをみると3.11以降で引数が増えているようです。
thinking_order()
thinking_order()はsecを引数に取るので、この実行でエラーになります。
TypeError: thinking_order() missing 1 required positional argument: 'sec'
タイムアウト時間
Reqestsの章でのタイムアウトが、connect/ read の2つのタイムアウトに触れているので、connect, read, write, pool の各タイムアウトは、httpx.Timeout()で細かく設定できることに軽く触れてもよいかなと思いました。 https://www.python-httpx.org/advanced/timeouts/?utm_source=chatgpt.com
git push のように
「git push のように」という比喩は、Git を知らない人・初心者には伝わりにくいかなと思いましたが、皆しっているものですかね...?
「サブコマンドは、click の @click.group() で定義したメインコマンドの後に続けて実行するコマンドです。」みたいな感じで、clickだけの概念で説明しても良い気きがしました。
(が、しっていればイメージ湧きやすいですね)
--limit"
--limit オプションは helpをよむと、limitで指定した値だけ読み込むようにみえますが、実際は、行数を超えるとエラーとなる挙動が少しわかりずらいかなと思いました。
(1) helpを「最大行数を超えていないか検証するための上限値」?みたいな感じにするか、 (2) 挙動をlimitの行数まで読み込む
とかがよさそうな気がしました。
は、
「は」は、削除してもよさそうです
clickのオプションと引数の組み合わせ例 process_file.py¶
ここで初めて出てくるファイルですが、コードに__main__ がないため、実行されないので、前とそろえてmainも記載した方がよさそうかなと思いました。
q
typo?
concurrent.futures:よくある使い方
19.2.3と内容が被ってますね?
インタプリタごとに独立
「インタプリタごとに独立してロードされる」 ということですかね?であれば上記のように記載すると明確になるかなと思いました。
3.14
他とそろえて「Python 3.14」 とした方が良さそうですかね。
リテラルパターンの箇所に書きましたが
nits: どこを指しているのか一瞬わからなかったので、この文をなくしてしまうか、「3.2.2の」とか「前述の」みたいな言葉で補足してあげた方がよいかもと思いました。
'>>
「>>>」 ですかね?
1つ前のASパターンと同じ動作
nits:「1つ前の」とあったので、一つ前のサンプルみて?となったので、「前述のASパターンの例と」とした方がわかりやすいですかね?大差ないきもしますが;
コマンドのインストールと実行を自動的に行ってくれます。
nits: 既存環境を汚さない?というのが気になったので、以下のようなことがわかる文があるとより親切かなと思いました。
「uvxは現在のプロジェクトから分離された一時的な仮想環境にインストールされる」
「今年の残りは: ○ヶ月と○日」と出力するスクリプト
この辺りは同じファイルを更新している?ので、ファイル名もcaptionに含めると、同いファイルを変更していることが伝わりやすいかなと思いました。 (これ以前のコードも同様に)
sample-script
作成されるファイルはpythonファイルですが、「sample-script.py」としなくてよいです? ドキュメントでは、.pyをつけているようでした。 https://docs.astral.sh/uv/guides/scripts/#running-a-script-with-dependencies
data["value"]
dataはこの時点で定義されてないので、そのまま実行するとエラーになります。 NameError: name 'data' is not defined
TypedDictを使用した型チェックの例
(質問) 実際にtomlファイルは別ファイルで持つことが多いとおもうですが、(そうでもないです?あまりtomlを扱ったことがなくて;)その場合、TypedDictを用いた型チェックはできないという認識であってます?
テーブルの配列
この「テーブル」と上記の[table]が同じものに感じて、一瞬???となったので、[table]は違う名前に変えた方が混乱がないかもと思いました。(違う意味ですよね?)
sample.toml
上記のリスト13.20 のcaptionでは、sample1.tomlとなっているので、どちらかで統一した方が良さそうですかね?
を
「を」は不要ですかね?
hhttps://docs.python.org/ja/3.13/library/tomllib.html
hhttps となっていて、hが一つおおいようです
t-sqlで
リンクがはってあるので、みればわかるのですが、この記事内でも軽くt-sqlやtdomがt-stringに対応しているライブラリであることの説明があるとよいと思いました。
1回限り
この太字も意図的ですか? (念の為)
コードの見通しが良くなる
この太字は意図的でしょうか?
ret = [value async for value in multiplier_async(values)]
このコードを書き換えるだけだとエラーになってしまったのですが、async for は 必ず async 関数内 で書く必要がありますかね?コードスペニットとしてリスト3.63に変更分だけではなく、コードを載せた方がわかりやすいかなと思いました。
async def multiplier(values)
下のコードに合わせるのであれば、「async def multiplier_async(values)」ですかね?
next()
next()の後に半角スペースが入っている変分がありますが、 以前takanoryさんから入れない方がよいと指摘があったので入れない方がよいのかもです。 以下、同様に半角スペースが入っているところあり。 https://github.com/takanory/jissen_recipe2/pull/30#discussion_r2348363829
int型にEventCodeという型エイリアスを割り当てる
割り当てるという表現がちょっと気になったのですが、 とはいえいい表現が思い浮かばないのですが... EventCode は int 型の 型エイリアスという認識であっていれば、 「int型の型エイリアスとして定義する 」とかどうでしょうか?
型エイリアス
型エイリアス「が」 ですかね?
example_assert_never.py:17: error: Too few arguments for "assert_never" [call-arg]
手元だと以下のエラーになりました。記載のエラメッセージは引数がたりない?という意味なので、こちらが正しいですかね?
example_assert_never.py:17: error: Argument 1 to "assert_never" has incompatible type "Literal[Color.BLUE]"; expected "Never" [arg-type]
Found 1 error in 1 file (checked 1 source file)
STRING
自分の手元(uvで3.14)だとoptionの部分が以下のように表示されましたが、違いますかね?
options:
-h, --help show this help message and exit
-s, --string STRING string to display
-n, --num NUM number of times repeatedly display the string
>>> current_mask = 0o0 # 「umask 000」を実行するとumaskにはこの値が設定される # 「
の前に空白文字がありそう??
import psutil
psutilはサードパーティ製のため、インストールしない場合はModuleNotFoundErrorとなりますが、インストール手順の記載はなくてもよいですかね?。サードパーティ製と明記されているので理解はされると思いますし、現時点でこの件に関する問い合わせもないようであれば、このままでも問題ないと思います!が、気になった点としてコメントします。
os.cpu_count()はバージョン3.4で追加されました。
本書の対象バージョンが3.14とかなり進んでおり、3.4以降に追加された他の機能についても特に明記されていないため、この記述は削除してもいいかなと思いました。
複数の属性にまたがる
少し読みづらかったので、以下みたいにするのどうでしょうか? 「複数の属性にまたがるデータ検証を行いたい場合は、@model_validator デコレータを使用します。」
print_call_graph
print_call_graph()を試してみましょう とありますが、以下のコードででてきていないです?
format_call_graph
余力があれば、これの使い方も参考にあると嬉しいと思いました。
グラフ
awaitグラフ としたほうがわかりやすいですかね? awaitグラフが、どういうものかわからなかったので、ここの文章もちょっとピンときませんでした。最初にこの言葉が出てきた時に、軽く説明があるとよいと思いました。
追加のデバッグコードをアプリケーションへの組み込み不要
少し読みづらかったので、 追加のデバッグコードをアプリケーションへ組み込む必要なし とかどうでしょうか?
データベース
データベースは何が起動するのでしょうか?デフォルトでついてる感じになりますか?その辺の記載も軽くあるあと嬉しいと思いました。
デフォルトのテストデータ数は100
(感想)デフォルト100もあったのですね!
(4)のコード
(4)のコードを書いている理由がよくわからなかったので、def test_api(case, a, b):のcaseにどんな情報が入っているかがわかるとよいと思いました。
アップロール
アップロード ?
Provenance(物の起源)という情報が増えています
画像からは、なかなか該当箇所を見つけることができなかったので、わかりやすいように枠とかで囲んであげるとよいと思いました。
Flask においては、以下のようにルーティングを設定します。
FlaskとWerkzeugの設定方法の対比を見せる意味で、同じURLを提示した方がわかりやすいかなと思いました。 下記のFastAPI/- も同様に。
POST 通信
POST通信という言葉はあまり聞きなれない言葉だったのですが、一般的ですかね? 「POSTリクエスト」という表現の方がよい気がしました。
Web サーバーとして動作することになります。
「Webサーバーとして動作することになる」?のがよくわからなかったのですが、 「この規格に準拠した Python アプリケーションを作成することで、さまざまな Web サーバー上で動作させることが可能になります。」ということですかね?
ツールキット化されたものを使っていません
ツールキット化されたもの? と一瞬思ったので、「ツールキットを使っていません」でもいいような気がしました。
マルチプロセスによる並列化や、C拡張を使った実装な
これが回避策であることが明確に伝わる様に、「マルチプロセスによる並列化や、C拡張を使った実装を行う必要がある」という表現にしても良いかもと思いまいた。
表示されます。
この文と次の文のつながりがよくわからず読みづらかったため、 「〜表示されます。そのため、内容を確認したい〜」
と「そのため」みたにな接続詞があるとよいかなと思いました。
Power Query
注釈かリンクかで、軽く説明があってもよいかなと思いました。
以下の行うとのことです。
以下を行う もしくは「以下のことを行う」?
Rebecca Chen
上の3人は〜の著者とあるので、こちらもpytypeの何をした方なのかわかるような記載があるとよいと思いました。
内部で表示形式を自動に選択され、相応の
内部で表示形式「が」自動「で」選択され、
という助詞の方がわかりやすいですかね? あと、「相応の表示」というのがわかりにくかったので、takanory さんのコメントに + 1です。
Deplyボタンをクリック
「Advanced settings」でPythonのバージョンが選択できることにも簡単に記載があるとよいと思いました。
st.write()
「st.write()で」の部分から前の文章とのつながりがよくわからなかったので、
この段落自体の先頭に「一方で」を加えて話を切り替えるとかどうでしょうか?
「一方でStreamlitには、DataFrameを表示する st.dataframe() や 画像を表示する st.image() といった専用の機能が存在します。専用の機能には、表示する大きさなどの引数があります。専用の機能を用いることで、表示をより細かく制御することができます」