実行環境のCPU数(os.process_cpu_count()が返す値)+4と32
CPU数(長い文章)+4、と書いてあるのでそれがまとまりだとわかりにくいと思います。
(os.process_cpu_count()が返す)実行環境のCPU数+4と32のどちらか
だと読みやすいかな
実行環境のCPU数(os.process_cpu_count()が返す値)+4と32
CPU数(長い文章)+4、と書いてあるのでそれがまとまりだとわかりにくいと思います。
(os.process_cpu_count()が返す)実行環境のCPU数+4と32のどちらか
だと読みやすいかな
未取得結果の最大件数を指定し、指定しない場合はすべての要素が即座にスケジューリングされる
この表現ちょっとわかりにくいかなと思いました。
buffersizeが指定されると、その数のプロセスやスレッドなどがスケジュールされ、それ以外は待ちとなる、ということですよね。
「未取得結果の最大件数」という表現がわかりにくいなと思いました
、
や
する
箇条書きで体言止めと、だであるが混ざっているので、どちらかに統一したい派
uv pip list # パッケージ一覧を表示
ここまでの手順を再実行すると多分この結果は得られないはず。手前で環境作り直すとかした方がいいかも?
ampleprojectが削除されている
依存ライブラリも一緒に削除されているのがポイントかなと
uv.lock
uv lockコマンド
依存関係
こっちはまだ依存関係という言葉が残っている。タイトルと表現を合わせたい
uvで
ここはuv の節なので、「uvで」はなくてもいいかなと思った。他も同様
現在インストールされているPython環境の一覧を出力する
インストール可能な一覧とインストールされていたらその場所を出力している
現在インストールされているPython環境の一覧を出力する
インストール可能なPythonの一覧を出力する。が正しいです
List the available Python installations
コマンド名
uv pythonがない
ファイル名
README.mdも説明した方が良いのでは
ディレクトリもあるので「名前」としたい
ファイル、ディレクトリ
2回目は冗長なので「ファイル群」とかでよいかと
uvの主なコマンド
本書で紹介するuvのコマンド
でいいかな。主なというよりはこの書籍で紹介するものを列挙していると思うので
0.9.17
最新版の0.9.17
アンインストール
addは追加するだけどremoveはアンインストールするなので表現が揃っていない。 追加/削除 or インストール/アンインストールに揃えて欲しい
は
が
の方がいいかなー
uvx
uvx とバッククォートで囲みたい。以下同様
サードパーティ
外部パッケージによって提供されるツール
とか?
sample-script
.pyはつけない派?
PEP 723[4]
PEP 723で提案されたけどPyPA関連はのちのち変わっていくので、仕様としてはこちらを参照するのが適切です。
(PEPドキュメントの先頭にもそう書いてある)
https://packaging.python.org/en/latest/specifications/inline-script-metadata/#inline-script-metadata
サードパーティ
外部
。
この手順よりは、新規にディレクトリ作成、uv init実行した後に、pyproject.toml, uv.lockだけコピーしてuv sync実行するみたいな手順がいいのではと思った。
実際のユースケースに合わせる
。
uv pip installした場合はuv addと違ってpyproject.tomlとかuv.lockが更新されないということを書いた方がいいかなぁ
名
名を
uv.lockの更新があるかを事前に調べる
pyproject.tomlの設定を見て、今のuv.lockファイルに存在するパッケージのままか新しいバージョンが存在するかを調べる。
みたいな意味合いだと思います。
あと、これってどっちかというと hoge>4.0.0 とかかいていて、hogeの最新バージョンがでているか(pip list -O)みたいな使い方がメインかなと思ったんですが、そうではない?
pyproject.tomlを書き換えたのはここで例として示しているために必要なだけど、本来はpyproject.toml書き換えたらuv syncの方を使うかなと思ったので(uv 素人なのではずしてたらすいません)
uv.lock
uv.lockファイル
計測にはUnix系OSの標準コマンドであるtimeコマンドを使いました。
トルでもいいかな(あってもいいけど)
uv.lock
uv lock
uv.lockコマンド
uv.lockファイル
uv.lock
uv.lockファイル
(省略)
ハッシュの例はハッシュ値を省略しつつ1行くらいは載せて欲しいかな
ます。
てインストールします。 pyproject.tomlにはdevというセクション(?)が追加され~~
みたいな文章がほしい。
。
このときもpyproject.tomlの中は書き換えられるよ(ですよね?)とか説明があっていいと思う
依存関係にある
依存関係というよりも、「さきほど追加したパッケージが」とかいう説明でよいのではないか
Pythonパッケージがイ
pipコマンドと同様に、とかあってもいいかも
PyPIからダウンロードしてインストールされていることとか触れて欲しい。
依存関係を管理する
依存関係を管理するってちょっとイメージしにくいかなと思いました。
プロジェクトで使用するライブラリを管理する、とか?
実行後
コマンド実行後
利用できますが、
一文が長いので「利用できます。」で一度切ってもいいかも
もう一つの方法として
なにももう一つの方法なのか
仮想環境下のPythonを実行するもう一つの~
とか?
は
に
の方がいいかな
uv-example
さっきとは異なるディレクトリに作ったと言うことですかね。手順で mkdir uv-example がないのでちょっと混乱するかも
は
では
。
◯◯な場合に仮想環境を再作成します。
みたいな用途にも触れてくれるとうれしいなと思った。
「A virtual environment already exists at `.venv`. Do you want to replace it? [y/n]」という
長いし、トルでも意味は通じるかなと
確認するメッセージが表示されます。
を
コマンドを
では、
で
でよさそう
。
仮想環境を有効化した場合は、プロンプトにプロジェクト(ディレクトリ名)が表示されることにも言及して欲しい。
venvは作成したvenv名がプロンプトで表示されていたので
システム
ここで段落を変えてもいいかな
いないません。
typo: いません
.venvディレクトリが作成される
手順にlsを入れるといいかなと。 venvの方にはあった
。
uvで作成する仮想環境は、基本的にvenvで作るやつと同じだよ、みたいな説明がほしいかな
uv-example-script
.py は付けない?
てプロジェクト
Pythonプロジェクト
とか最初は書いておいた方がいいかなと
uv init
この手前に全体を俯瞰したいので、uvで提供しているコマンド一覧がほしい。
全部紹介しないなら、そのうち本書ではこれを紹介するよ、とか言ってほしい
。
これを紹介しているので、あえてバージョン指定してのインストールは教えなくてもいいかなと
特定のバージョンのuvをインストールする場合は
これ必要な場合ってありますか?説明しなくてもいいかなと思った
Pythonの標準パッケージマネージャーはpipですが、
pipはパッケージインストーラーであってマネージャーじゃないかなという意見
https://pip.pypa.io/en/stable/
あー、でもpipの方に「パッケージを管理する」って書いてるのか、じゃあこのままでいいかなぁ
True
nits: コメントでどういうチェックを有効にしたかかいてあるといいかも
起こし
起こり
したりとすると
したりすると
の
トル
Key/value pairs within tables are not guaranteed to be in any specific order.
日本語訳も併記して欲しい
また、parse_float引数にはカスタ
これ、紹介しなくてもいいんじゃないかな。使いどころがなさそう
誤差が出てもエラーにはならないため
これはよくあるエラーなのか?
よくあるエラーだと上にあるTOMLDecodeErrorが出るから、それを見てちゃんと対処してね、っていう話が適切かなと思いました。
どっちかというと周辺知識よりかなと思いました
浮動小数点
浮動小数点数
タイポ
綴り間違い
とかちゃんと書いておきたい
PEP 680においても、パッケージングツールなどでTOMLを読み込むことを目的としていることから、書き込みの必要はないとされています。 その理由としては、以下のようなことがあります。 TOMLのスタイル(インデントや引用符など)にゆらぎがあり、標準化しづらい コメントや書式などのスタイル関連のメタデータを含んだ出力を行うAPIの設計が複雑 現時点では除外する方向として、将来的に再検討する方が安全
ちょっと読みにくいかなと思いました。
PEP 680においても、以下の理由によりTOMLの読み込みのみで書き込みには対応しないことと記述してあります。
パッケージ
ライブラリ
サードパーティパッケージ
外部ライブラリ
サードパーティライブラリ
外部のライブラリ
nameが
バッククォートでかこんで欲しい
writer
最初にコメントで「# さまざまなデータ型を定義」みたいな文があるといいかなと思いました
だけ
のみ
挙げれています。
挙げられています。
最後までよんでPEPの話だと思ったので、この文の最初に
PEP 680中ではtomllibを標準ライブラリとする理由として~~~が挙げられています。
みたいに書いた方がいいかなと思いました。
標準サポートになることは
でTOMLフォーマットを標準サポートすることは
とか
パッケージングに選ばれている
パッケージに関する情報を記述するpyproject.tomlの
とか?(ちょっと表現がふわっとしている&省略されているかなと思った
3.11
Python 3.11
サポート
サポートが連続するので言い換えたい。
プログラミング言語にTOMLファイルに対応したライブラリがあります。
とか
ブーリアン
IMO: 真偽値の方が好み
print(tomllib.load(f))
結果が見にくいのでpprintしてほしい派
Required/NotRequiredの例
サンプルコードがちょっとわかりにくいかなと思いました。
基本的には必須で、任意のフィールドがあるときは NotRequired を指定する
逆に、ほとんど任意で一部必須の場合には、total=Falseを指定して、必須のフィールドにのみRequiredを指定する
だと思うので、この2つを分けて説明するのがいいと思います。
PEP 655
リンクがほしい
本来の引数
「本来の引数」というのが何を指しているのかがちょっとわからないなと思いました
TypedDict
TypedDictの方が使うことが多いと思うので、Anyの次でいいかなと思った
そのまま維持したままラップしたいとき
nits: まま、が連続するので冗長かな
「引数を維持したまま」で意味は通じそう
デコレータ
nits: 表記揺れ: デコレーター
Python 3.12以降では
この文章を5.16のコードの前に持っていく方がいいかなと思いました
PEP 695
リンクを入れて欲しい(脚注にURLが入るはず)
mypy.ini .mypy.ini pyproject.toml setup.cfg
ここ、インデントした方がいいかも?
どちらが主流になるか(またはどちらも廃れるか?)は
今後主流になるかは
くらいでいいのでは
print( convert_movie_info_into_md( "エピソード4
以下は冗長なので省略でよさそう
前述の「Pyreflyの使い方」で使ったサンプルコードを対象に
これだと短すぎるので、なんかのリポジトリをまるっと型チェックとかする方がいいかなと思いました
example.py
このリンクがわかりにくいので、説明を書いて欲しいかな。
サンドボックスでexample.pyを◯◯した結果
みたいな
比較してみる
nits: 比較する、でいいかなと
VSCode
VS Codeと書くのが正しいはず https://code.visualstudio.com/
動作する
nits: 体言止めと~~するがまざっているのでどっちかに統一がいかな
高速に動作 付ける機能
でよさそう
。
あとで比較対象にもなっているので、「型チェッカーにはmypy、pyrightなどがありますが、Pyrefryには◯◯な特徴があります」みたいな感じの文章があるといいなと思いました
round(Decimal('3.5'))
MUST: 結果が書かれていないので追加する
context=None
contextパラメーターも説明を書いて欲しい
ecimal.from_number(0.1)
ここに追加するなら、from_numberメソッドの説明は文章でもしてほしいかな
Decimal('NaN')
このあたりもコメントでどういう数値を作っているか書いて欲しいかな。
Decimal(3.14)
ここコメントでfloatの精度によってこうなっちゃうよって説明して欲しい
数値の丸めを行う
ここか7.2.1に組み込み関数のroundを紹介して、偶数丸めであることを書いて欲しいかなと思った
https://docs.python.org/ja/3.14/library/functions.html#round
次節ではチェック・修正の両方ができるツール
文章の流れが唐突な感じがする。
あります。また、チェック、修正の両方ができるツールにRuffがあります。次節ではRuffについて解説します。
とか?
関数やメソッドの説明はdefの直後に書く
クラスのことも書くといいのでは
https://www.sphinx-doc.org/ja/master/usage/restructuredtext/domains.html#info-field-lists
MUST: リンク先のドキュメントが内容が無いです。変わったっぽいのでURLを変えてください
また、key引数に
ここからkey関数について追記した
counts=None
counts引数の説明を追加して欲しい
7.3.3. ランダムに選択する
こっちの方がよく使うので、先にあってもいいかなって思いました
トグラムとして可視化したグラ
下の図ですが、figureにタイトルを文字列として書いてください。可能なら、顔図としてもヒストグラムの画像そのものを入れて欲しい「図:~~~」の部分の画像が不要
https://pyhack.slack.com/archives/G01CKBZ7J8J/p1762173838549059
表:
「表:」はトルでOK 他も同様
random.seed(10)
seed関数も表7.6で説明して欲しいな
を参照してください。
下の画像に画像タイトルまで含まれているので、タイトルはちゃんと文字として入れて欲しい
https://pyhack.slack.com/archives/G01CKBZ7J8J/p1762173838549059
https://docs.djangoproject.com/
これなんだ? 脚注かなんかのミスかな
ipenv https://pipenv.pypa.io/ Poetry https://python-poetry.org/
今回uvを追加するのでまるっと削除でもいいかも。
¥
nits: PowerShellだとバックスラッシュの方がいいかも?
owerShell
nits: PowerShellの方が最近は一般的だから上の方がいいかな
.gitignoreファイルの内容は以下のとおりです。
これ、.gitignoreの中が「*」なので、venv以下は全部対象外になる、という説明だけでいいと思います。
以下のgitの手順はなくていいかなと(情報が多くて逆に読みにくい) 以下だけでいいのでは感
$ python3.14 -m venv env $ cat env/.gitignore *
pipでは1つの環境に
SHOULD: これよく考えたらpipの制限ではなくて、Python側の制限なんじゃないだろうか。
7.1.6. 浮動小数の非数nanの値を確認する
これ、見出しレベルが違うかも?
2.9.1
1.1.0
当然2.9.1
1.1.0
表タイトル入れる
MUST: 表タイトル入れてください
。
もうちょっと説明がほしいかな。 ハッシュがあるから改ざんに対応できるとか、さっきの課題にどう対応しているかの説明があるとうれしい。
でもそこまで書くとコラムとして書きすぎかなぁ。
を
の?
PEP 751
PEP 751だけだとわかりにくいし脚注もリンクだけなので、どういう内容のPEPかを最初に書いて欲しいです。
◯◯に関するPEP 751が、みたいな
複数の環境
数字の箇条書きであることに意味があるのかが気になった。 優先順位とかがないのであれば、数字なしの箇条書きがいいかなと思います
2.0.0が
nits 最新版の4.0. でもいいかなと思った
peppercorn-0.6
これ、この手順通りにやるとpeppercornはインストール済みなので出力されなそう。ちょっと気になったのでコメントした
バージョン1.2.0をインストール
コメントになっていない
Python 3.4以降では
古いバージョンの話なのでトルでいいかなぁ
6.2.3 フォーマットの指定方法
これ、見出しを設定して参照にしてください。(章、節番号変わるかもなので)
https://ryu22e-chap6.jissen-recipe2.pages.dev/sample/#id18
value
nits: weather みたいな変数名がいいな
また、f-stringはネストさせることができるので、書式の内容を変数に入れて出力結果を動的に変えることもできます。
ちょっとわかりにくいのでもうちょっと説明がほしいかな。
f-stringをネストしているというよりはf-stringの中の {} を入れ子にできるようになった。
以下の例では {value} が展開されて数値になって、そのあと :> の部分でフォーマットされている。
みたいな説明が欲しい。そうすれば逆にコード中のコメントは短くてよくなる
f'{first_name=} {last_name=}' # f'first_name={first_name} last_name={last_name}' と同じ "first_name='Ryuji' last_name='Tsutsui'"
MAY: わかりやすさのために、通常の出力と=ありの両方があると親切かなと思いました
このコメントは文字列に含まれない
SHOULD これがあるので、最初の説明に「コメントも書けます」とか書いて欲しいかな
'-3.14'.zfill(7) # 小数点も文字列にカウントされる
nits: 小数点もって書いてあるけど、別にzfillは先頭の+-以外は特別扱いしないので、そういう説明の方がいいかも
"abc".zfill(5) '00abc'
replace(old, new, /, count=-1)
結構細かく変わってるんだなぁ
overrideデコレ
よさそう
型エイリアスの書き方
良さそう
Self
これも説明してほしい
assert_never()関数
これはよさそう
*kwargs引数にTypedDictの型を付
その手前で、そもそもTypedDictで必須とかオプションとか指定できるようになったので、この話をする必要があるかなと
用いいる
typo: 用いる
Python で管理しやすくしなり、Python でコーディングする際に型ヒントの恩恵が得られるという大きなメリットが得られます。
ここももうちょっと具体的に書きたいですね。
Pythonで◯◯が管理しやすくなる、Pythonでコーディングする際に◯◯での△△の表示など型ヒントの恩恵が
みたいな具体的な文章にしてほしい
dictionary
Pythonの辞書
の方がよいかと
変換
JSONSchemaをPydanticのコードに変換
パターンン
typo: パターン
その
トルでもよさそう
カスタム
時間の変換に?カスタム〜〜
とか
。
公式ドキュメントへのリンクもあるとよさそう
単一の属性
Pydanticには単一の属性
開始時間の範囲
nits: 時間の範囲を表記するとより親切だと思う
データ型を以下のように変更します。
データ型を変更している、と言っていいのかが気になる。
Annotatedは直訳すると「注釈」なので
使うように
使うために
とか
ように、が連続してる
valid_start_time()関数と valid_end_time()関数
バッククォートに囲むとよさそう
場合は、
場合は、2つの時間を
はの
typo の
は
のフォーマットは、
2つのルールに分けた方がよさそう
する場合が
文体を揃えるなら
するものがあります
ctx
ctxがなんの略か気になった
せ
typo
を?
umber: int
負の数使わなそうなので PositiveIntを使いたい派
。
これ、私も意味わかってなかったんですけど ... を指定すると必須だけどデフォルト値がないってこと、ですか?
エリプシス
聞き慣れない人が多いと思うので、公式ドキュメントを引用するとよいかと https://docs.python.org/ja/3.14/library/stdtypes.html#bltin-ellipsis-object
データ検証
データ検証を具体的にするんでしょうか?
私のイメージとしては、データ形式(スキーマ)を具体的にするので、結果としてそのルールでデータ検証されている。というイメージです。
https://docs.pydantic.dev/latest/concepts/models/ にも以下の様に書いてある One of the primary ways of defining schema in Pydantic is via models. Models are simply classes which inherit from BaseModel and define fields as annotated attributes.
。
このようにPydanticは全データを検証して全部のデータをわかりやすく出してくれます。
みたいな文章が欲しい
branch = Branch(**data)
Branchがどこから来るの? と思っちゃうので、別モジュールにして
from model import Branch
とか書いて欲しいかなと思った
import json
このコードの説明を書いて欲しい。 例外が発生したら errors() メソッドでその詳細を出しているよ
みたいな
staff の number キーがない
3人目のスタッフの
とか
辞書で定義したものを JSON ファイルとして読み込んで確認をしてみましょう。
これちょっとわかりにくいなと。
最初に例示していたときはPythonの辞書で、ここで書いているのはJSONってことですかね。 もうちょっとわかりやすく説明して欲しいです。もしくは最初からJSONということで話を始めた方がよいかと
branch_name='東京'
横に長いので改行してほしいなぁ
leader_period: int = 0
さっきのdataclassは int | None だったけど変わっているのはんぜですか。統一して欲しい
。
次に繋げる文章がほしい
こういった◯◯といった課題に対して、Pydanticを使うと〜〜
みたいな
属性が
属性の
number: int | None
値の意味を表すコメントがあるとより親切かと
# スタッフ番号 みたいな
用いいる
typo: 用いる
確認する
確認したりする
このようにデータを使う時に
この文章を上に持っていってもいいのでは。
以下のように、値を確認〜〜
辞書に
スタッフの辞書では、
かな
要素がリストの中に辞書が入っています
staffの中には各スタッフを表す辞書がリストの中に入っています。とか?
要素がリストの中に辞書が入っています。は日本語として意味がわからなかった
branch = {
コードには全部キャプションを入れて欲しいです
```{code-block} python :caption: ここにキャプション
コード ```
Pydantic
Pydantic公式サイトへのリンクがほしい。
ぜひご参考ください。
日本語がへんかなと。
参考にしてください。とか
以下のサンプルコードを用意しました
MUST: コードが消えている。以下の部分でpythonのあとの改行が削除されている
```{code-block} python :caption: レストランを例にしたタスクのつながりのあるサンプル
以降も同様
https://docs.python.org
nits: <>で囲んでりんくにしてください
PyCon JP 2025で紹介します。
記事公開時には終わってそう
タスクの依存関係を可視化
タスクの可視化
が2回でてちょっと冗長かな
awaitグラフを支える低レベルAPI
この節で伝えたいことあんまりわからないです。 _ではじまるやつをユーザーが使うことは想定しているのか?
Python 3.15.0a0 ドキュメント
リンク先は3.14だし、3.14版のドキュメントでよいと思う
Python3.14
Python 3.14
。
どういう動作をする想定のプログラムかを先に説明して欲しい。
$ ps
基本的にコードにはキャプションを付けた方がいいかと
```{code-block} bash :caption: ほげほげ
$ ps ... ```
awaitグラフ
awaitグラフってなんですかー
鎖状
鎖状って表現、一般的ですかね
tid task id
これはなに? ps コマンドでも pstree コマンドでも同じ結果が出る? 違うっぽいな、こっちはpsコマンドの方の実行結果ですよね。
これ、実際に試すためのサンプルコード sample.py を示して上げた方がいいのでは。(手元で試すために
以下のようにして実行します。
主語省略しがち。他の人が読むので福田さんの脳内はわからないです。
◯◯は以下の様にして実行します。
などの
他にもある?