nikkie-ftnextの日記

イベントレポートや読書メモを発信

argparse の検索結果:

argparseで解析した引数に型をもたせる(VS Codeで解析結果の属性の型がAnyになる問題の解消方法)

…ヘビーユースしているargparse1。 Pythonスクリプトをコマンドラインツールにできます2。 argparseを使ったスクリプトをVS Codeで開発するうえで、型の表示を改善する小ネタです。 目次 はじめに 目次 parse_argsが返すNamespaceの属性の型がAny問題 parse_argsには、namespace引数がある 2回型を書くのがちょっと面倒 ー Pydanticを使ってみようかな? 終わりに parse_argsが返すNamespaceの属性…

pip installのオプションに--no-cacheなんてあったっけ? --no-cache-dirを短縮できるのか!!

…いて思い出したのは、argparseの例。 https://docs.python.org/ja/3/library/argparse.html#prefix-matching parse_args() メソッドは、デフォルトで、長いオプションに曖昧さがない (先頭文字列が一意である) かぎり、先頭文字列に短縮して指定できます: -baconオプションを-bacと指定する例があります。 pipの実装に使われているoptparseは バージョン 3.2 で非推奨: optpar…

Clickは複数のコマンドを連鎖させて呼び出せる!(awesome_cli command_a command_b command_c) ドキュメント「Multi Command Chaining」の例を完全に理解しました

…成は標準ライブラリのargparseが多い私2ですが、サードパーティのClick(Command Line Interface Creation Kitの頭辞語)も覗いてみました。 「argparseではできなさそうですごいな〜」と思ったMulti Command Chainingについてドキュメントで理解したことを綴ります。 目次 はじめに 目次 動作環境 ClickのMulti Command おことわり:ClickのCommandは知っている前提です ドキュメントの「C…

argparseでバージョン確認もサポートしたコマンドを作る(python script.py --version)

…れる標準ライブラリのargparseについて、最近知った小ネタをアウトプットします。 目次 はじめに 目次 argparseでコマンドラインツールが作れる! コマンドのバージョンを確認したい バージョンを確認できるようにしたスクリプト ポイントは、部分解析! ヘルプメッセージの調整 部分解析を知ったのはpysenのソースコードリーディング 終わりに argparseでコマンドラインツールが作れる! 過去のエントリでも取り上げました。 指定した単語を指定した回数繰り返すコマンド…

argparseで作るサブコマンド、set_defaultsを使うとスッキリ書けます(激薄エントリポイント!)

…nikkieです。 argparseでサブコマンドを実装する際の小ネタです。 目次 はじめに 目次 前回:argparseでサブコマンドを作る! ドキュメントで見つけた、サブコマンドをスッキリ実装するtips 過去の私はサブコマンド名を格納して、分岐を実装していました 終わりに 前回:argparseでサブコマンドを作る! argparseはPython標準ライブラリの1つです。 先日、svn checkout, svn update, svn commitのようなサブコマン…

Sphinxで作ったPDFにフォント埋め込みが必要なのはどうして? そしてどうやる? 3年越しで達成し、理解が深まりました

はじめに やっと意味分かった... nikkieです。 ドキュメント変換ツールSphinxでは、reSTで書いた原稿をPDFに変換することもできます。 Sphinxで作ったPDFに「フォント埋め込みが必要」というのがずっと理解できていなかったのですが、このたび手を動かして理解を深めました。 目次 はじめに 目次 「PDFにフォント埋め込み」との出会い なぜフォント埋め込みが必要? TeX Wikiが詳しかった フォント埋め込みリトライ 脱線:macOSの「プレビュー」でもでき…

Bashのコマンド置換とパイプラインの違いを知る(同じものだと思い込んでいてハマりました)

…す。 import argparse parser = argparse.ArgumentParser() parser.add_argument("file", nargs="+") args = parser.parse_args() コマンド置換ではうまくいきます。 $ python command.py $(find my_lib tests -name '*.py') $ echo $? 0 パイプラインではうまくいきません2。 $ find my_lib test…

argparseでサブコマンドを実装する

…nikkieです。 argparseの小ネタです。 目次 はじめに 目次 argparse argparseでサブコマンドを作る! サブコマンドになっていることをヘルプメッセージから確認 終わりに argparse Python標準ライブラリの1つ。 argparse はモジュールは、ユーザーフレンドリーなコマンドラインインターフェースの作成を簡単にします。(引用ママ) 基本的な機能を押さえるなら、以下が浮かびます Argparse チュートリアル — Python 3.11…

CLIツールで省略可能な位置引数が複数ある場合、すべてオプション引数に置き換えたい

…です Pythonのargparseを例に、CLIツールにおける省略可能な位置引数について考えていきます。 argparseを使ったコードを書いたことがあることを前提にしています(チュートリアルレベルでかまいません)。 目次 はじめに 目次 位置引数とオプション引数 引数の省略 オプション引数の省略 位置引数の省略 複数の位置引数の一部を省略したい 「前の位置引数はデフォルト値を使い、後ろの位置引数に値を渡したい」ってできる? 関数の場合はキーワード引数がオススメされる 意見…

声をPythonに聴かせて(新章開幕!Whisperの環境構築、いっちゃうよ〜📣)

…ad62a4f851b49f/whisper/transcribe.py#L78↩ https://github.com/openai/whisper#command-line-usage↩ argparseを使っていて、str2bool関数を定義して渡ってきた文字列('True'または'False')をboolに変換しています。これは好みなんですけどargparseならactionがオススメです(この実装をしないといけない理由があるのかな?)↩ どうか次回がありますように↩

#アイの歌声を聴かせて 非公式Twitter Bot、これまでの開発録(ソースコード公開しました!)

…」 標準ライブラリのargparseの単体テストが記述量少なかったことを思い出す 読み解くとメタクラスを使っていた メタクラスを使い、単体テストの記述量を減らした 機能を追加するたびlambda_handler.py(1ファイル)が大きくなる harmonizer_botの機能はパッケージに切り出している(後述するリファクタリング中) lambda_handler.pyはエントリポイントなので薄くする方針 『The Art of Agile Development』で説明され…

argparseのadd_argumentのtype引数には、FileTypeよりもユーザ定義関数を渡すのをオススメしたいです!(#Python実践レシピ を勝手に補足)

…on標準ライブラリのargparseについて、「位置引数もある!」と書籍での説明を補足しましたが、今回は別の点の補足です。 『Python実践レシピ』でargparse.FileTypeを知りました! 「もっと詳しく知りたい!」とドキュメントを調べたところ、「書籍の書き方だけでは情報が十分に伝わっていないかも」という懸念を抱きました。 そこで、「この記事が補完関係になったらいいな」と、いつものおせっかいで勝手に補足しちゃいます! 目次 はじめに 目次 この記事の要点 動作環境…

argparseはオプション引数だけでなく、位置引数も扱えます!!(#Python実践レシピ を勝手に補足)

…on標準ライブラリのargparseについて、書籍での説明を補足したいと強く思い、この記事を書きました。 『Python実践レシピ』は、豊富なライブラリを紹介しています。 リファレンス的に読んでいますが、argparseの取り上げ方については、「情報量が少なく、かえって誤解されてしまうかも」と感じました。 読んだ方が"実践"しやすくなるよう、この記事で勝手に補足します。 おことわり nikkieは『Python実践レシピ』の執筆にもレビューにも関わっておらず、この記事は『Py…

週末ログ | PyTorch Lightningの"Lightning in 2 steps"を触りました⚡️

…います。 from argparse import ArgumentParser from pathlib import Path import pytorch_lightning as pl import torch import torch.nn.functional as F from torch import nn from torch.utils.data import DataLoader, random_split from torchvision import…

イベントレポート | オンライン開催のみんなのPython勉強会#60(マーケティング回)に(半分)スタッフ参加しました #stapy

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2020年8月12日 これまでのオンライン開催では、スタッフと登壇者がZoom Meetingに集まり、参加者の方はYouTube Liveで配信を見ていました。 今回は、参加者もZoom Meetingに集まる趣向を試しました。 始まるまでお品書きスライドを自動プレゼンしながら、参加者が増えていくのを見てワクワクしていました1。 100人に届く直前で本編がスタートしたのですが、直後に100人上…

イベントレポート | Python mini Hack-a-thon(オンライン)で"機械学習しました" #pyhack

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2020年6月13日 うまくいったこと ホットケーキ作りです! #pyhackお昼はホットケーキ焼いて食べました(作り置きも兼ねる)ココアパウダー入れたらほんのりあまい、おいしい連日仕事→PyCon JPスタッフの動きで食料が尽きかけてましたが少し余裕を得てほっ(🥞だけに) pic.twitter.com/JoQi8MlIel— nikkie 技書博のPython argparse本 booth…

イベントレポート | オンライン開催のみんなのPython勉強会#56(サーバサイドエンジニア回)にスタッフ参加しました #stapy

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2020年4月15日 実際の参加者は30名くらいでした。 視聴者の1割くらいというのはやってみての発見です。 ひとまず無事に終わり、今はほっと胸を撫で下ろしています(冷静に考えてみると600人全員来たら大冒険でした)。 参加いただいた方から嬉しい感想もいただきました! 初参加でしたが楽しかったです。(^^)Remo飲みも初めてでしたけど結構楽しかったですし。次回もまた参加します! #stapy—…

transformersのBERTをTensorFlowからいじって多クラス分類しようとしたところ、ハマった末に😫、BERTは特徴量生成に使うのがよさそうと体験しました🤗

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2020年3月16日 3/8の記事で「次回はいまのNLPへのキャッチアップに踏み出す」ことにしていたので、今回はその続きでBERTを触りました。 BERTでテキスト分類をするのが今回手を動かす中での目標でした。 目次 はじめに 目次 動作環境 データセットと前処理 TensorFlowからBERTを使う 🤗 ハマった:TFBertForSequenceClassificationに多クラス分類を…

イベントレポート | みんなのPython勉強会#55 のオンライン開催にスタッフ参加しました #stapy

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2020年3月11日 (19:50頃)会議室のプロジェクターをYouTube Liveに流すことでスライドが映らない問題に対応。これを別のZoom2(登壇者なし)から流して鏡文字も解決? https://t.co/tH6sQW8P5P#stapy 別チャネルこちら!— 岸 慶騎@Python学校やってます (@YasukiKishi) 2020年3月11日 (19:59)Zoom1でもYouTu…

イベントレポート | オンラインで開催された #pycon_shizu 、私の知らないPythonがいくつもありました!

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2020年2月29日 自分の好きとMaker活動が組合せられるとわかったので、推し風Botを現実世界に召喚と夢が膨らみます🤗 2. GUIとPython 岡崎さんによるGUIアプリケーションについてのトーク。 tkinterとPySimpleGUIを比較し、後者が簡単と紹介。 PySimpleGUIで作ったGUIアプリが次々と登場しました。 懇親会では、最近話題になったアスキーアートの記事をGU…

イベントレポート | #技書博 2で初めて一人で執筆して頒布し、いただいたフィードバックから技術同人誌の楽しさを知りました

…書博でPythonのargparseモジュールについての本を頒布してきました。 初頒布の身にとっては本当に素晴らしいイベントでした。 年を越して恐縮ですが、レポートをまとめます。 #技書博 参加者、スタッフの皆さま、1日ありがとうございました。ゆったりしたスペースでチケット制によりお客さんもゆっくり流れ、お隣の電脳世界さんや買いに来てくださった方とPythonの話が直接できて、ものすごく学びがありました。初めてのソロ参戦が技書博でよかったです。運営素晴らしかった— nikki…

イベントレポート | 年の瀬の多用な時期ではありますが #spzcolab のもくもく会にて Django 3系でDjango Girls Tutorialのコードが動くか確認してきました

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2019年12月22日 確認結果を踏まえて、Django 3.0.xで話を進められそうです。 このトークはWeb開発を知らない方を含めてAll向けとしています。 トークではDjangoのクイックツアーをやろうとしていて、Web開発に出てくる概念を簡潔に紹介する必要があると思っています。 モデルやテンプレートに比べて、URLやビューって簡潔に説明できていないと気づきました。 Web開発全般を扱った…

自分が書いたはてなブログの記事でWordCloudを作り、2019年と2018年を比較する

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2019年5月25日 今回は前処理に手を入れて使っています。 はてなブログの記事の取得は新規に実装しました。 ソースコードはこちら 今回の開発で学んだのは大きく2点です: はてなブログの記事一覧(XML)のパース ブログ記事から不要な部分の除去(re.sub) はてなブログの記事一覧のパース 長くなったのでQiitaにまとめました。 今回、XMLの解析とは別の、思ってもみないところでつまづきまし…

告知 | 2020年1月26日(日)にPyCon JP 2019のリジェクトコンを開催します(会場は早稲田駅近く) #rejectpy

…a - BOOTH では「準備の中であの時こうしておけば」という点がいくつも見つかっています。笑 軌道修正できるものは取り入れつつ、走り切った後に振り返ろうと思います。 結果まとめは 週末ログ | #技書博 2にて頒布するargparseを使ってPythonでコマンドラインツールを作る本を書き進めていました - nikkie-ftnextの日記↩ 発表時間の扱いについては Rejectpy ~PyCon JP 2019のリジェクトコン~ - connpass をご覧ください↩

イベントレポート | エンジニアの登壇を応援する会の忘年LT大会でtips、熱、さらにプレゼントまでいただいてきました #engineers_lt

…書博のPython argparse本 boothにて頒布中 (@ftnext) 2019年12月23日 4位:Vue.jsで寿司を回す #engineers_lt @endo_hizumi さんによるsushi回しアプリhttps://t.co/w83doCCn1Gお茶はまわらない— nikkie 技書博のPython argparse本 boothにて頒布中 (@ftnext) 2019年12月23日 詳しくは お前らのクソアプリは間違えてる - Qiita 。 真似から…

ざっくりと2019年を思い出す

…月 #技書博 2にてargparse本を頒布 11-12月 PyCon JP 2020 スタッフ活動動き出し 2019秋クールのアニメ 『フルーツバスケット』『ハイスコアガールⅡ』『ちはやふる』『PSYCHO-PASS 3』『ヒロアカ』と豊作のクール。見切れません! 11月から技術同人執筆に注力して映画館から足が遠のいていたら『空の青さを知る人よ』『HELLO WORLD』が見られなくなっていました。むー、残念。。 「たとえ世界が壊れても、もう一度、君に会いたい」んですが、あ…

告知 | 12/14に日本橋浜町 プラザマームで開かれる #技書博 2にてPythonの標準モジュールargparseでコマンドラインツールを作る本(¥500, 90P)を頒布します(2F-か01)

…ルを作る with argparse」 対象者:Python入門者〜中級者なりたて 価格:試しやすさを重視して 500円(紙も電子も) PayPay対応しています(ポイント付くのは夢のようですね!) このアウトプットはアップデートしていきたいので、紙の購入者にも電子の最新版にアクセスできるようにカードを渡します B5設定でビルドしたら90P超え! 立ち読みは以下からどうぞ(技書博のページと同様の立ち読み先です): なぜ書こうと思ったのか 入門書を読むとPythonのスクリプト…

イベントレポート | #pyhack にて 退py のコードをオブジェクト指向でリファクタリングするというプロポーザル駆動開発を進めました

…できるようにしたい argparseのadd_subparser main関数がまだ知りすぎている(カプセル化しきれていない)ので修正する 存在する画像ファイルが指定されたことの検証 argparseのadd_argumentのtypeを使えばできそう 画像ファイル単体でなく、ディレクトリも指定できるようにしたい ディレクトリの中の各画像を処理する テストを書いていることを活かしてリファクタリング クラスの分け方、もっとよくできないか試したい 終わりに 久々参加の #pyha…

週末ログ | #技書博 2にて頒布するargparseを使ってPythonでコマンドラインツールを作る本を書き進めていました

…ログを共有します。 argparse本執筆状況 PyCon JP 2019のリジェクトコン 執筆状況 先日発信したように、12/14の技書博2にてargparseを扱ったテーマにPython本を頒布します(2F か-01 です)。 土日はモクモク書き進めていました。 現在の目次はこんな感じです(執筆中ですので、頒布物では変更されうる点ご了承ください)。 本編を書き上げたので、「当日頒布はできるようになった」という感触です。 ただまだまだ書きたいことは多く、時間との戦いの様相を…

告知 | 12/14 #技書博 2にて、argparseを使ってPythonでコマンドラインツールを作る方法について同人誌を頒布します(2F-か01)

…イトル:未定(仮称:argparse本) 案1:『Pythonでコマンドラインツールを作る with argparse』 案2:『Pythonでコマンドラインツールをもっとうまく作りたい!〜3段階で学ぶ標準モジュールargparse〜』 ページ数:30Pくらいを予定(※増減ありえます) 頒布価格:気軽に買える価格にしたい(※収支考慮の上決定します) 頒布形態:物理本 / 電子本 両対応 構成(案) Pythonの入門書やレシピブックでPythonスクリプトを動かすことは扱うと…