タグ

ブックマーク / blog.amedama.jp (7)

  • Python: pytest-benchmark でベンチマークテストを書く - CUBE SUGAR CONTAINER

    最近は Python のテストフレームワークとして pytest がデファクトになりつつある。 今回は、そんな pytest のプラグインの一つである pytest-benchmark を使ってベンチマークテストを書いてみることにする。 ここで、ベンチマークテストというのはプログラムの特定部位のパフォーマンスを計測するためのテストを指す。 ベンチマークテストを使うことで、チューニングの成果を定量的に把握したり、加えた変更によって別の場所で性能がデグレードしていないかを確かめることができる。 なお、チューニングする前のボトルネック探しについては別途プロファイラを使うのが良いと思う。 blog.amedama.jp blog.amedama.jp 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.4 BuildV

    Python: pytest-benchmark でベンチマークテストを書く - CUBE SUGAR CONTAINER
  • dbt (data build tool) を使ってデータをテストする - CUBE SUGAR CONTAINER

    ソフトウェアエンジニアリングの世界では、自動化されたテストを使ってコードの振る舞いを検証するのが当たり前になっている。 同じように、データエンジニアリングの世界でも、自動化されたテストを使ってデータの振る舞いを検証するのが望ましい。 データをテストするのに使える OSS のフレームワークも、いくつか存在する。 今回は、その中でも dbt (data build tool) を使ってデータをテストする方法について見ていく。 dbt 自体はデータのテストを主目的としたツールではないものの、テストに関する機能も備えている。 また、dbt には WebUI を備えたマネージドサービスとしての dbt Cloud と、CLI で操作するスタンドアロン版の dbt Core がある。 今回扱うのは後者の dbt Core になる。 使った環境は次のとおり。 $ sw_vers ProductName:

    dbt (data build tool) を使ってデータをテストする - CUBE SUGAR CONTAINER
  • Python: Streamlit を使って手早く WebUI 付きのプロトタイプを作る - CUBE SUGAR CONTAINER

    Streamlit は、ざっくり言うと主にデータサイエンス領域において WebUI 付きのアプリケーションを手早く作るためのソフトウェア。 使い所としては、ひとまず動くものを見せたかったり、少人数で試しに使うレベルのプロトタイプを作るフェーズに適していると思う。 たとえば、Jupyter で提供すると複数人で使うのに難があるし、かといって Flask や Django を使って真面目に作るほどではない、くらいのとき。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 11.3.1 BuildVersion: 20E241 $ python -V Python 3.8.9 もくじ もくじ 下準備 基的な使い方 基的な書式 プレースホルダー プログレスバーを使った処理の進捗の可視化 基的な可視化 組み込みのグラフ描画機能

    Python: Streamlit を使って手早く WebUI 付きのプロトタイプを作る - CUBE SUGAR CONTAINER
  • Python: コマンドラインパーサの Click が便利すぎた - CUBE SUGAR CONTAINER

    Python のコマンドラインパーサといえば、標準ライブラリに組み込まれている argparse が基。 蛇足になるけど、バージョン 2.7 以前で使われていた optparse は将来的に廃止予定なので新たに使うことは避けた方が良い。 そして、今回紹介する Python のサードパーティ製コマンドラインパーサ Click は、既存のパッケージと比較すると最小限のコードで美しくコマンドラインインターフェースを実装できるように作られている。 どれくらい楽になるかといえば、もう argparse を使っている場合じゃないな、と思えるレベル。 Welcome to Click — Click Documentation (8.0.x) もくじ もくじ Click をインストールする 基的な使い方 コマンドを定義する オプションを追加する 引数を追加する サブコマンドを作る オプションについて

    Python: コマンドラインパーサの Click が便利すぎた - CUBE SUGAR CONTAINER
  • Python: pandas と Google BigQuery を連携させる - CUBE SUGAR CONTAINER

    ぶっちゃけ pandas は大規模なデータセットを扱うのが苦手だ。 だいたい一桁 GB なら我慢と工夫で何とかなるけど、二桁 GB を超えると現実的な処理時間で捌けなくなってくる。 そこで、今回は pandas を Google BigQuery と連携させることで重たい処理をオフロードする方法を試してみる。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.5 BuildVersion: 17F77 $ python -V Python 3.6.5 $ pip list --format=columns | grep -i pandas pandas 0.23.3 pandas-gbq 0.5.0 Google BigQuery を使う下準備 ここから BigQuery を使うための下準備が結構長いので、既

    Python: pandas と Google BigQuery を連携させる - CUBE SUGAR CONTAINER
    manboubird
    manboubird 2020/02/13
    だいたい一桁 GB なら我慢と工夫で何とかなるけど、二桁 GB を超えると現実的な処理時間で捌けなくなってくる。
  • Python: ERAlchemy を使って ER 図を描く - CUBE SUGAR CONTAINER

    今回は ERAlchemy という ER 図を描くツールを使ってみる。 このツールは erd という Haskell で書かれた同様のツールにインスパイアされて作られたものらしい。 ただ、機能的にできることは ERAlchemy の方が多いみたいだ。 ERAlchemy が提供する基的な機能は次の通り。 ER フォーマットのテキストファイルから ER 図を生成する SQLAlchemy 経由で既存のデータベースから ER 図を生成する 後者の既存データベースから ER 図を生成するところなんかは、これまでだと MySQL Workbench を使ったりしてた。 ただ、このやり方だと文字通り MySQL でしか使えないのに対して ERAlchemy はそれ以外のデータベースにも対応している。 今回も試しに SQLite3 のデータベースから ER 図を生成してみている。 ただ、この機能が出

  • Python: pep8 は pycodestyle になったし pep257 は pydocstyle になった - CUBE SUGAR CONTAINER

    意外とまだあんまり知られていないような気がしたので、このブログにも書いておく。 PEP8 と pep8 と pycodestyle Python には PEP8 という有名なコーディングスタイルガイドラインがある。 www.python.org そして、そのコーディングスタイルに沿ったコードになっているのかをチェックするツールとして pep8 というパッケージがあった。 pypi.python.org 過去形にするのは半分正しくなくて、上記のように今もある。 ただ、これは後方互換のために残されているだけで、もうバージョンアップはされないだろう。 今後は代わりに pycodestyle というパッケージを使うことになる。 pypi.python.org これは単にパッケージとコマンドの名前が変わっただけ。 とはいえ、こちらはバージョンアップが続くので最新の PEP8 に追従していくしチェック

    Python: pep8 は pycodestyle になったし pep257 は pydocstyle になった - CUBE SUGAR CONTAINER
  • 1