タグ

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

  • 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
    braitom
    braitom 2019/05/09
    pytestのプラグインとして動作するpytest-benchmarkについて。基本的な使い方、実行回数の制御方法、時間のかかるテストの探し方などが書かれている。
  • Python: デコレータについて - CUBE SUGAR CONTAINER

    Python の特徴的な構文の一つにデコレータがある。 便利な機能なんだけど、最初はとっつきにくいかもしれない。 そこで、今回はデコレータについて一通り色々と書いてみる。 先に断っておくと、とても長い。 これを読むと、以下が分かる。 デコレータの質 デコレータはシンタックスシュガー (糖衣構文) に過ぎない デコレータの作り方 引数を取るデコレータと取らないデコレータ デコレータの用途 用途はラッピングとマーキングの二つに大別できる デコレータの種類 デコレータは関数、メソッド、インスタンスで作れる デコレータの対象 デコレートできるのは関数、メソッド以外にクラスもある 今回使った環境は次の通り。 尚、紹介するコードの中には、一部に Python 3 以降でないと動作しないものが含まれている。 $ python -V Python 3.6.6 デコレータについて まずはデコレータのおさら

    Python: デコレータについて - CUBE SUGAR CONTAINER
    braitom
    braitom 2018/09/04
    Pythonのデコレータについて。デコレータの本質、用途、作り方などがまとめられている。
  • Docker イメージをファイルでやり取りする - CUBE SUGAR CONTAINER

    的に Docker イメージは Docker リポジトリからダウンロードしたりアップロードするものだと思う。 とはいえ、インターネットに疎通がなかったりすることもあるし、自前でリポジトリを運用するのもつらい。 そんなときは Docker イメージを、そのままファイルでやり取りしたいなと思うときがある。 結論から先に言ってしまうと、そんなときは docker save コマンドと docker load コマンドを使うと良い。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29 $ docker version Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.9 Git commit: af

    Docker イメージをファイルでやり取りする - CUBE SUGAR CONTAINER
    braitom
    braitom 2017/11/03
    docker save/docker loadコマンドを使うことでイメージをそのままやりとりできる。知らなかった。
  • sqlmap を使って SQL インジェクションの脆弱性を検証する - CUBE SUGAR CONTAINER

    sqlmapSQL インジェクションに特化したオープンソースのペネトレーションテストツール。 これを使うと Web アプリケーションの特定のパラメータに SQL インジェクションの脆弱性があるか否かを確認しやすい。 注意: 外部のサーバに使うことは攻撃となるので絶対にしないように。 今回使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29 $ sqlmap --version 1.1.8#stable $ python --version Python 2.7.10 インストール sqlmap は Homebrew でインストールできる。 $ brew install sqlmap これで sqlmap コマンドが使えるようになる。 $ sqlmap --vers

    sqlmap を使って SQL インジェクションの脆弱性を検証する - CUBE SUGAR CONTAINER
    braitom
    braitom 2017/08/09
    SQLインジェクションを検出するOSSの`sqlmap`の利用方法について。実際に脆弱性のあるコードを書いてそれに対してツールを実行して説明されている。
  • Python: python-fire の CLI 自動生成を試す - CUBE SUGAR CONTAINER

    今回は Google が公開した python-fire というパッケージを試してみた。 python-fire では、クラスやモジュールを渡すことで、定義されている関数やメソッドを元に CLI を自動で生成してくれる。 ただし、一つ注意すべきなのは、できあがる CLI はそこまで親切な作りではない、という点だ。 実際にユーザに提供するような CLI を実装するときは、従来通り Click のようなフレームワークを使うことになるだろう。 では python-fire はどういったときに活躍するかというと、これは開発時のテストだと思う。 実装した内容をトライアンドエラーするための CLI という用途であれば python-fire は非常に強力なパッケージだと感じた。 今回使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion:

    Python: python-fire の CLI 自動生成を試す - CUBE SUGAR CONTAINER
    braitom
    braitom 2017/03/08
    python-fireの具体的な使い方について。
  • 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
  • 1