buildoutなどなどの練習を兼ねてwebAPIのラッパークラスを書いた
どうもこんにちは、素振り大好きっ子です。
海外のPDFを買う時に、通貨換算にCurrency converter | Xurrencyを使っています。
このサイトwebAPIも持っていますので、近頃学習したことのまとめとして、pypiにパッケージを作成してみました。
pyXurrency 0.0.1 : Python Package Index
目的
- buildoutの練習(buildout入門(エキスパートPythonプログラミング読書会09に参加してきました) - Ehrenの日記)
- minimockを使ってみたかった
- noseの使い方の練習
- coverageの使い方の練習
- webAPIでのラッパークラスのテストを書いてみたかった
- クリーンコード読んでるのでせっかくなので何か書いてみたかった
- github/gitに慣れる
buildout/setup.pyの書き方
以下のbuildoutを参考にさせていただいきました
- id:t2y-1979 さん作のikazuchi
- 清水川 さん作のsphinxjp.themes.s6
- Deliverance
bin/buildoutでテスト用のコマンドを作りたい
buildout.cfgのrecipeにpbp.recipe.noserunner
を指定する。ちなみにdefaultsにはnosetestsのコマンドラインオプションを指定可能です。
テストするときはbin/testとします。
[test] recipe = pbp.recipe.noserunner eggs = pyXurrency[test] defaults = --verbosity=3 --with-doctest
bin/buildoutでcoverage用のコマンドを作りたい
テストと同様にbuildout.cfgのrecipeにpbp.recipe.noserunner
を指定する。
eggsにcoverageを入れて、後はdefaultsでコマンドオプションを指定する。
↓の例ではdocs/coverge/内に結果をhtmlファイルで出力しています。
[coverage] recipe = pbp.recipe.noserunner eggs = coverage pyXurrency[test] defaults = --verbosity=3 --with-doctest --doctest-extension=txt --with-coverage --cover-package=xurrency --cover-html --cover-html-dir=${buildout:directory}/docs/coverage
coverageを取るときはbin/coverageとします。
pypiにアップロードしてみる。
ついでにpypiへのアップロードは以下のようにする。
# python setup.py sdist bdist_egg upload
↓の清水川さんの記事を熟読するとmuch better
PyPIデビュー
まとめ
一つ一つのツールはまだまだ慣れていませんが、今後も使うことで身につけていきたいと思います。
探せば英語でも日本語でもドキュメントがありますので非常にありがたいです。
先人の方々に感謝いたします。