2020-01-01から1年間の記事一覧
AWSで稼働するアプリケーションのユニットテストを作るときに厄介なのが、依存しているマネージドサービスのモックをどうやって整えるかです。無しというわけにはいかないですが、unittest.Mockなどで自作するのもかなり大変です。 こうしたモックを簡単に作…
文字列のリストから単語の出現頻度をカウントする、といったケースはしばしばあるかと思います。 dictやdefaultdictで実装すると初期値0の設定が必要だったりしてちょっとめんどくさいです。 words = ["dog", "cat", "dog", "dog", "mouse", "cat"] # dictの…
これまで定数クラスを作ってやり過ごすことが多かったのですが、enumが比較的使いやすかったので、 enum enumはPython 3.4から標準ライブラリに追加されたモジュールで、列挙型をサポートするものです。 docs.python.org 実装 最初にenumをインポートしてお…
SQSのメッセージを別のSQSへ転送するCLIツールを作って、crates.ioに公開しました。 https://crates.io/crates/sqstransfer GitHubでバイナリを公開してます。 github.com 使い方 こちらから自身の環境にあったバイナリをダウンロードいただくか、または、ca…
AWSのマネージドサービスのSDKライブラリの最右翼Rusotoの使い方を、SQSとのメッセージのやり取りを通して、ひと通り触れていきます。 Rusoto RusotoはAWSマネージドサービスの非公式SDKです。AWSの各サービスのAPIを叩くラッパ (バインダ) となっており、cr…
例えば↓のテーブルから 東京都または千葉県 を含む値だけをフィルタする場合に、pandasではどう書くかです。 name 0 東京都葛飾区 1 神奈川県川崎市 2 埼玉県蕨市 3 千葉県蘇我市 pandasのstr.containsは正規表現パターンを含めることができます。 そのため…
DBのエンティティクラスを定義するときなど、データを持つことに特化した構造体のようなクラスが必要なケースがよくあります。 かつてはdict + typeやnamedtupleなどで用をなしてましたが、そういったクラスを簡単に定義できる標準ライブラリとして、Python …
お仕事でバイナリのセンサデータをPythonで入出力する必要がありましたので、標準ライブラリ struct について整理します。 struct structは、Pythonの値 (int, double, charなど) とCの構造体 (Pythonではbytesオブジェクト) を相互変換するためのモジュール…
最近少しずつRustに手を出し始めています。 CPUバウンドとなっている重い処理をPythonから切り出してコンバートするユースケースを考えたときに、PythonからRustを呼び出すための仕組みが必要となります。 今回はPythonからRustバイナリを実行する (あるいは…
PyTorch: DatasetとDataLoader (画像処理タスク編) - け日記 にてDatasetとDataLoaderの使い方を紹介しました。 今回は自然言語処理のにフォーカスし、torchtextを使った自然言語処理 (NLP) タスクの前処理について整理します。 NLPタスクの前処理 大別する…
お仕事のPythonコードを読んでいて、抽象基底クラス (abstract base class: ABC) で実装されているクラスがありました。そういえば使ったことがなかったので、この機に整理しましたのでその覚書です。 $ python --version Python 3.6.8 Pythonでは抽象基底ク…
辞書の値を属性参照 (dic["key"] ではなく dic.keyでアクセスする) したいケースがしばしばあります。JSON形式の設定ファイルを読み込んで、オブジェクトの初期化に使うなどです。 そんなときに便利なAttrDictを紹介します。 typeを使えば良いのでは? 組み…
ちょっとしたツールのためにPythonからGitやDockerなどのコマンドを実行してゴニョゴニョする、ということはよくあるかと思います。 OSコマンドを手軽に実行するPython標準ライブラリ subprocess で頻用する機能について使い方を整理します。 docs.python.or…
年末年始にかけてKubernetesを少しだけインプットしてました。ローカルで環境を整えるのもしんどいし、現実的な利用も考えにくいので、Amazon EKS上でクラスタを作成して動かしてました。 今回はAWSコンソールからクラスタを作成する方法についてまとめまし…
AWSの推論環境の新たな選択肢として登場したInf1インスタンスを使い、PyTorchのモデルをコンパイル・推論させてみます。 概ねチュートリアル (https://github.com/aws/aws-neuron-sdk/blob/master/docs/pytorch-neuron/tutorial-compile-infer.md) をなぞっ…