python toolz 1

先端技術開発部の三谷です。
さっそく技術的な投稿を行っていこうと思います。

仕事でPythonを使用してAWS関連の開発をしております。そのPython の中で、私はライブラリ toolz
をよく利用しています。関数型プログラミング的機能を提供するライブラリです。
この中でも、頻繁に利用している機能が、
currypipe です。

説明はリンク先をご覧になっていただくとして、これと boto3ライブラリとを組み合わせて、AWS関連の情報を以下のように取得しています。
各扱いについて、機会があれば詳しく説明していきますが、今回はかなり割愛させていただきます。

例えば、あるAutoscalingグループ名中のインスタンスIDリストを取得したい場合

と書けます。 各行が1ステップをあらわすことによって、非常にみやすいと思います。
そして、この書き方のさらによいところとして、デバッグログが書きやすい点です。

例えば、 3ステップ目と4ステップの間でデバッグ表示を行いたい場合、

でdoをインポートし、

で、デバッグ表示可能となります。
本例で気を付けるべき点として、 filter や map 等、遅延評価される関数がステップに入っている場合には、
その後のデバッグ表示で ”list” 等を追加して、評価する必要があります。これを行わないと、 ”map object” や “filter object” がデバッグ表示されます。

toolzの curry, pipeについて簡単に紹介させていただきました。
toolzにはまだまだ有用な機能がありますので、少しずつでも紹介させていただきたいと思います。

“python toolz 1” への5件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.