nikkie-ftnextの日記

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

コマンドラインツール

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

はじめに ナムコ! nikkieです。 標準ライブラリの中でとりわけヘビーユースしているargparse1。 Pythonスクリプトをコマンドラインツールにできます2。 argparseを使ったスクリプトをVS Codeで開発するうえで、型の表示を改善する小ネタです。 目次 はじめ…

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

はじめに 3月のPython Monthly Topicsを読んでいたnikkie氏。 「パッケージのインストールでpip installとuv pip installの処理時間を比較している。あれ、--no-cache?」 $ time pip install pandas --no-cache $ time uv pip install pandas --no-cache 「…

Clickを使ったCLIアプリケーションのテストについて、ドキュメントの「Testing Click Applications」を読みました(CliRunnerのinvokeメソッドやisolated_filesystemメソッドを知る)

はじめに アプリケーション・テスティング! nikkieです。 Command Line Interface Creation Kit、頭文字を取ってClick。 コマンドラインツールを実装できるライブラリの1つです。 Clickのドキュメントの中にテストの書き方を見つけ、手を動かしてみました。…

Clickで複数コマンドの連鎖をパイプラインとして実装できる! ドキュメント「Multi Command Pipelines」の例も完全に理解しました

はじめに マルチコマンド・パイプライニング! nikkieです。 先日Clickのドキュメントの「Multi Command Chaining」を取り上げました。 今回はそのよくあるユースケースの「Multi Command Pipelines」について、ドキュメントから理解したことをまとめます。 …

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

はじめに マルチコマンド・チェイニング!1 nikkieです。 コマンドラインツール作成は標準ライブラリのargparseが多い私2ですが、サードパーティのClick(Command Line Interface Creation Kitの頭辞語)も覗いてみました。 「argparseではできなさそうです…

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

はじめに 『かがみの孤城』Blu-ray&DVD発売中 全世代にお勧めしたい作品! nikkieです。 Pythonでコマンドラインツールが作れる標準ライブラリのargparseについて、最近知った小ネタをアウトプットします。 目次 はじめに 目次 argparseでコマンドラインツー…

こころちゃんのパラレルワールドでは今日は何曜日なんだろう? ぱっと確認できるkojo-dayコマンドをリリースしました #かがみの孤城

はじめに 『かがみの孤城』円盤発売まであと4️⃣日、今日はスバルきゅん! nikkieです。 この記事は、かがみの孤城 円盤発売アドベントカレンダー 24日目です。 実装にだいぶ力を使ったので簡略版でお届けします。 目次 はじめに 目次 まずは21、22日目をご紹…

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

はじめに 霞柱TUEEEEEEE!! nikkieです。 argparseでサブコマンドを実装する際の小ネタです。 目次 はじめに 目次 前回:argparseでサブコマンドを作る! ドキュメントで見つけた、サブコマンドをスッキリ実装するtips 過去の私はサブコマンド名を格納して、…

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

はじめに はぁ、かわいい... nikkieです。 argparseの小ネタです。 目次 はじめに 目次 argparse argparseでサブコマンドを作る! サブコマンドになっていることをヘルプメッセージから確認 終わりに argparse Python標準ライブラリの1つ。 argparse はモジ…

S3にオブジェクト(ファイル)が存在するか否かシェルスクリプトで確認する 〜提案実装と、行き着くまでの回り道〜

はじめに YAPC::Kyotoのチケット、2/3(金)までの販売に延長!1 nikkieです。 S3にオブジェクトがあるかどうかをシェルスクリプトで確認する方法を考えてみました。 現時点の暫定解としてアウトプットします。 シェルスクリプトやAWSに関しては伸びしろ豊富と…

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

はじめに かがみの孤城、日本アカデミー賞 優秀アニメーション作品賞 受賞1おめでとうございます!! nikkieです Pythonのargparseを例に、CLIツールにおける省略可能な位置引数について考えていきます。 argparseを使ったコードを書いたことがあることを前…

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

はじめに #みんなでアイうた、最高の時間になりました!ありがとうございました nikkieです。 この1月に出た書籍『Pythonエンジニア育成推進協会監修 Python実践レシピ』(以下、『Python実践レシピ』)を読んでいます。 先日、Python標準ライブラリのargpar…

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

はじめに シン・エヴァ、最優秀賞おめでとうございます!1 nikkieです。 この1月に出た書籍『Pythonエンジニア育成推進協会監修 Python実践レシピ』(以下、『Python実践レシピ』)を読んでいます。 Python標準ライブラリのargparseについて、書籍での説明を…

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

はじめに 頑張れば、何かがあるって、信じてる。nikkieです。 このブログでも何回か告知しましたが、12/14の技書博でPythonのargparseモジュールについての本を頒布してきました。 初頒布の身にとっては本当に素晴らしいイベントでした。 年を越して恐縮です…

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

はじめに 頑張れば、何かがあるって、信じてる。nikkieです。 今週末はいよいよ技書博ですね。 最後のアピールとしてブログを書きます。 イベントの概要 イベントサイトはこちら。 サークルチェック機能もあって便利です。 アクセス情報はこちらが参考になり…

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

はじめに 頑張れば、何かがあるって、信じてる。nikkieです。 11/30の pyhack で手を動かした内容を備忘のためにまとめます。 勉強会の概要 (第105回)Python mini Hack-a-thon - connpass 基本的に毎月開催です。スプリントのゆるい版みたいな感じで各自自分…

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

はじめに 頑張れば、何かがあるって、信じてる。nikkieです。 12月の技書博2で、Pythonでコマンドラインツール作成についての薄い本(=同人誌)を頒布します。 現時点の目次や頒布に関する情報をまとめます(随時更新予定) 技書博については公式サイトを参…