選択肢オプションとして特定の拡張子を指定
ここも書き換えてください
選択肢オプションとして特定の拡張子を指定
ここも書き換えてください
以下の
1つの文で「以下」が連続しているので、こっちはトルでも意味が通じるかな。
ファイルパス引数として存在することを確認
上の文章と似た内容だけど微妙に情報が増えて箇条書きになっている。この箇条書きでなにを伝えたいかを直前に文章で書いて欲しい。
以下は〜〜です。 以下に〜〜を示します。
みたいな
click.Choice(["txt", "md"]
例なのでしょうがないけど、自分でファイル名を指定しつつ、拡張子も指定するというコマンドは、オプションの用途としてピンとこないなと思いました。
何か数え方のルールとかを変えられるといいんだけど。文字数でカウントするかバイト数でカウントするか、とか
required=
これも = をトルでいいと思う
default
キーハード引数を示すときに = って付けるのあんまり見たことないので、トルでいいと思います
。
nits: 表の文章は最後の。はトルでいいかなぁ
@click.command()
キャプションがない。
以降も同様
pass
ここに中身を入れて、実際に動作させた例がほしい
指定
オプションに値が
とか?
は
トル
オプションの後に値を指定しない。
これはコマンドで呼び出すときの話ですよね?ちょっとこの文章だけだと意味が取りにくい
長い形
「短縮形」と「長い形」という表現がいまいちだなと
短いオプション名と長いオプション名とか?
短縮形
表でまとめた方が見やすそう
例えば、--nameオプションは名前を指定するために使用されます.
これはなんか--nameは名前を指定するためだけにしか使われないように読めるので、ちょっと違うかなと。
例えば、名前を指定するための--nameオプション、などです。
とか?
テストを安全に出力することができる
ちょっと意味が分からなかったです。
:caption: clickの基本的な使用例 hello.py
なんか変。以降もcaptionになってない
あ
が
--help
これもバッククォートで囲む
などを
などのデコレーターを
サードパーティ製パッケージ
外部ライブラリ
にしたんじゃないっけか
作成
を作成
。
argparseについては「<project:#argparse>」を参照してください。
とか入れて欲しい
モジュール
標準ライブラリの、と書いてあるのでモジュールはトルでよいかと
@click.command()
バッククォートで囲んで欲しい
os.process_cpu_count()
バッククォートで囲んでほしい
free threading
毎回太字にしなくてよいかと。初出の時だけでよいのでは
Python 3.14
Python 3.13からサポートされていますが、ここでは3.14のことしか書かない?
https://docs.python.org/ja/3.14/howto/free-threading-python.html
コア開発者のモチベーションとしては
これはどこ情報なのか、が気になりました
完全に分離
完全に分離、とはどういう意味かがわかりにくい。
なにから完全に分離しているのか
サブインタプリタ
表記揺れ: インタープリター
実行環境のCPU数(os.process_cpu_count()が返す値)+4と32
CPU数(長い文章)+4、と書いてあるのでそれがまとまりだとわかりにくいと思います。
(os.process_cpu_count()が返す)実行環境のCPU数+4と32のどちらか
だと読みやすいかな
未取得結果の最大件数を指定し、指定しない場合はすべての要素が即座にスケジューリングされる
この表現ちょっとわかりにくいかなと思いました。
buffersizeが指定されると、その数のプロセスやスレッドなどがスケジュールされ、それ以外は待ちとなる、ということですよね。
「未取得結果の最大件数」という表現がわかりにくいなと思いました
...
インデントがずれている
un(coroutine, *, debug=False)
引数が増えているので確認してください
補足
捕捉
引数で受け取ったsecの秒数
コードを書き換えたのでこのコメントは正しくない
asyncio.run(coroutine, *, debug=False)
https://docs.python.org/ja/3/library/asyncio-runner.html#asyncio.run
3.12からloop_factory引数が増えてる
... # 時間のかかる処理
インデントが3文字になっている
複数組み込んでも
なにを複数組み込むのか?
実施
ruff checkとruff formatを実施
とか。なにを実施するか書いて欲しい
各種CI
pre-commitはCIじゃないかなー
各種ツールでruffを使用する方法、とか?
に行っておくと便利です。
日本語がなんか変です。
で行(おこな)っておくと?
それだけで
引数無しで
それだけで
引数無しで
quote-style = "double" # 文字列をダブルクォートで統一する indent-style = "space" # インデントはスペ
これデフォルト設定だからなー。 クォートをシングルにできるけど、設定なしの運用でいいんじゃない?みたいな記述がいいかなーって思ってます。
"
カンマを付けたい派
。
これはストーリーとしては、この前に ruff check --fix を実行していないといけないので、そのように手前で実行している必要がある
import sys import os
使われていないモジュールだとF401が出ちゃうのでisortの意味がない(fixできない)
無理やり使うモジュールを入れましょう
datetimeとかなにかをいれてメッセージに追加する感じで
)
文章(文章)。
が正しい書き方(のはず)
。
トル
なお
この手前でfixされたあとのexample.pyを表示して、import osが削除されていることを確認したい
す
す。
F系
系なくてもいい派です
またはruff.toml
下の設定例だとpyproject.tomlなので
前述の設定ファイルを用いて、にしてコードのキャプションに「説明 - pyproject.toml」とか書くのはどうでしょうか
check
checkコマンド
とか
ルールコードの
長いので、トルでも通じるかなと
表のタイトルを入れてください。
https://myst-parser.readthedocs.io/en/latest/syntax/tables.html#table-with-captions
と
と、
ここで、を打たないと「一部のルール」がFにもかかっているように読める。
もしくはE系の一部とF系のルールが
とか
flake8
Flake8 (以下同様
flake8
Flake8と最初は大文字かなと
indent-width = 4 # インデント文字数
同様にデフォルト設定っぽいものは除外して必要最低限にしてほしい
indent-width = 4 # インデント文字数
デフォルト設定を設定例に書いているのが気になります。
デフォルト設定はここにあることを示して、設定ファイルとしては必要最低限の記述例でいいかなと思います https://docs.astral.sh/ruff/configuration/
フォーマッター
整形
他の箇所と表現を合わせる
が記述されます。
を記述します。
前の文は主体が自分だったので
Ruffは、Astral社https://astral.shから提供さ
他のライブラリとかでuvを使ったインストールには触れていないので、ここはなくてもいいかなぁ
Resolved 29 packages in 11ms Installed 27 packages in 58ms (省略) + pytest-cov==7.0.0 (省略) + sphinx==9.0.4 (省略)
ここも両方指定した場合と同じとか、まるっと省略してもいいかも
olved 29 packages in 13ms Uninstalled 20 packages in 200ms Installe
このへんも2回目以降は省略しちゃってもいいんじゃないかな
uv venvコマンド以外に仮想環境を作成できるコマンド
いいと思います
、
や
する
箇条書きで体言止めと、だであるが混ざっているので、どちらかに統一したい派
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