読者です 読者をやめる 読者になる 読者になる

uokadaの見逃し三振は嫌いです

ここで述べられていることは私の個人的な意見に基づくものであり、私が所属する組織には一切の関係はありません。

FlaskアプリにLDAP認証を組み込みたい

Flask製のアプリケーションにLDAP認証を組み込めないかと色々画策している。 Index of Packages Matching ‘flask’ : Python Package Index それで、PyPIを探してみると何個かライブラリがあるのでどれを使っていいのか迷っている。 自分の中で同じことが出来…

pdbでデバッグするやつの補足

racchai.hatenablog.com 初心者向けのpdbの紹介記事を見かけたのでバット読んだけど、 このやり方も書いて欲しいなと思ってこのエントリを書いてみた。 #!/usr/bin/env python import sys def log(args): print args def main(args): log(args) #import pdb;…

CentOS7のpythonpathを調べる

rpmファイル作ってる時にnoarchのパッケージってどの順番で読み込まれるんだっけとなって調べてみた。 とりあえず、python2.7コマンドを立ち上げる。 % /usr/bin/python2.7 Python 2.7.5 (default, Jun 24 2015, 00:41:19) [GCC 4.8.3 20140911 (Red Hat 4.8…

Flask関連の英語エントリ

How I Structure My Flask Applications Designing a RESTful API with Python and Flask - miguelgrinberg.com 時間があるときにこのあたりちゃんと読みたい。 チラ見した限りでは結構良さげだった。

pyfesに行ってきた

Python Developers Festa 2013.07 (一般枠) - connpass #pyfes 2013.07 非公式懇親会 - connpass pyfes/201307.rst at develop · pyspa/pyfes 順番はごちゃまぜになってるけど発表の軽いまとめ。 パターンマッチ指向プログラミング言語 Egison Haskellベース…

Fabricの拡張を書きたいのでその下調べメモ

Fabric — Fabric 1.6.1 documentation Fabricの拡張を書きたいと思ったのでちょっと調べ物。 小さな単位でパッケージ化したいんだけどfabric.contrib以下にファイル置くのってどうやるんだっけって思って調べたことをメモ程度にエントリ化。 setup.pyにnames…

Fabricでtail -F出来なくてハマった時の対処法

最近、Fabricが流行ってるのでそのうち誰かがハマりそうなことを上げておく。 Fabriでは下のコマンドがうまく実行出来ない。 tail -F 例として下のようなスクリプトを作ってみる。 #!/usr/bin/env python2.7 # -*- coding: utf-8 -*- from fabric.api import…

VPS上でvirtualenv環境作ったらエラーが出た。

% pip-2.7 freeze Traceback (most recent call last): File "/home/hogehoge/.virtualenvs/flatw/bin/pip-2.7", line 8, in <module> load_entry_point('pip==1.3.1', 'console_scripts', 'pip-2.7')() File "/home/hogehoge/.virtualenvs/flatw/lib/python2.7/site</module>…

Fabricについて一言だけ言っときたい。

ここ1~2年ぐらいpython使い込んでるので、 Fabricも使い込んできたけど1つ不満がある。 それは, tail -f 出来ないところ。 ここがクリア出来れば運用ツールとしてかなりやりやすいんだけど、 8.3. collections — 高性能なコンテナ・データ型 — Python 2.7ja1…

sphinxcontrib.httpdomainが結構便利だった。

sphinxcontrib.httpdomainとは? sphinxcontrib.httpdomain — Documenting RESTful HTTP APIs — sphinxcontrib-httpdomain v1.1.7 documentation sphinxはpython製のドキュメント生成ツールであり、 その中でも sphinxcontrib.httpdomain はWebページの仕様…

socketからmemcachedにつないでみる

こんな感じのコードで動いた。 #!/usr/bin/env python2.7 # -*- coding:utf-8 -*- import socket from pprint import pprint # 接続処理 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect( ("localhost", 11211) ) # 変なシンタック…

FlaskでLast-Modifiedを設定する最も簡単な方法

flaskでjsonを返すサンプルコード - uokadaの日記 上のエントリからしばらく開いてしまったけどStack Overflowみてたら簡単な方法を見つけたので紹介する。 http - RFC 1123 Date Representation in Python? - Stack Overflow from wsgiref.handlers import …

SQLAlchemyでINNER JOINする方法

あんまり情報が無くてハマったのでメモっとく。 今回はMySQLが用意しているサンプルテーブルを使ってINNER JOINの例を示してみる。 MySQL :: MySQL Documentation: Other MySQL Documentation 上のページのmenagerie databaseの右のリンクからサンプルデータ…

Flaskを1ヶ月間使ってみた感想

2012年にpyconjpなどでFlaskを知ってマイクロフレームワークだし小さなサービス作るぐらいには使えそうって良さ気な印象をもった。 PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール それからしばらくして、…

SQLAlchemyで生クエリを発行する

pythonのORMであるSQLAlchemyを使って生のSQL(SELECT文)を発行して 結果を取得する際のコードを書いてみる。 生のSQLの発行方法がググっても全然ヒットしなかったのでドキュメント読みながら試行錯誤して達成出来ました。 #!/usr/bin/env python2.7 # -*- co…

Flask-debugtoolbarで開発を楽に!

Flaskを使った開発をやろうと思っていろいろ調べてるんだがその中でデバッグがかなり便利になりそうな拡張があったので紹介したい。 mgood/flask-debugtoolbar Flask-DebugToolbar 0.7.1 : Python Package Index インストール $ pip install flask-debugtool…

pythonで日付を取り扱う

pythonで日付を取り扱う python-dateutilが使いやすいのでそれを使ってみる。 python-dateutil - Labix 2.X系はversion1.5以下を使う必要があるので注意。 インストール pipからバージョン指定してインストールする。 % pip-2.7 install "python-dateutil==1…

argparseを使ってみる

pythonでデーモンを作る機会があるのでバックグラウンドだけしか動かなせないとデバッグしづらいのでフォアグラウンドでも動くようにスクリプトを作ろうと思う。 引数をとってフォアグラウンド/バックグラウンドの切り替えをするためにargparseを使ってみる…

pep8で特定のエラーを無視する

pythonにはpep8という有名なコーディングスタイルがあります。 なるべくこれにあわせてコードを書くように推奨されます。 そして、pep8のスタイルにあっているかチェックするためのコマンドもpypiのパッケージとして公開されています。 pep8 1.3.3 : Python …

コラッツの問題のベンチマーク

コラッツの問題 1〜1000までの整数についてコラッツの問題を解くコードを pythonとscalaで書いてみてそれぞれのベンチマークをとってみた。 scalaバージョン import scala.testing.Benchmark object BenchCollatz extends Benchmark { override def prefix =…

Last-Modifiedヘッダーを入れてみた

昨日のコードにLast-Modifiedヘッダーを入れてみた。 Add Last-Modified header · 1c354de · yuokada/blog_post · GitHub 参考 datetimeをLast-ModifiedやIf-Modified-Sinceの書式に変換 - brainstorm 8.1. datetime — 基本的な日付型および時間型 — Python …

続・flaskでjsonを返すサンプルコード

1つ前のエントリから改めて普通にjsonを返すコードを書くにはどうするのか試しに書いてみた。 結論から言うとこっちのほうがコードが短くなって直感敵でわかりやすい。 #!/usr/bin/env python2.7 from flask import Flask, Response, json app = Flask(__nam…

flaskでjsonを返すサンプルコード

最近、Flaskというpython製のWAFを業務で使うために追加で調べている。 個人的には使ったことあるんだけど細かいところはどうなんだ?って突っ込んで調べなかったのでメモがてらにブログにポストします。 まず、単純にjson返すコードサンプル。 #!/usr/bin/e…

pytestへの乗り換え調査

pytest で pep8 テストを実行する | ありえるえりあ データ駆動テストを nose と pytest でやってみた - forest book pytest ドキュメント jenkinsの導入するついでにnoseからpytestに移ろうかと思って少し調査中。 実際のテスト書いてみて乗り換えられるか…

pythonでリストのグルーピング

Scala、Java、PHPでソースコードの量を比較してみる | 深追い Fukaoi.org上の記事に影響されてpythonバージョンを書いてみた。 #!/usr/bin/env python2.7 # -*- coding:utf-8 -*- if __name__ == '__main__': yearMonths = [ "2009-11", "2009-01", "2010-01…

コラッツ問題を簡単にといてみた。

コラッツの問題 - Wikipedia #!/usr/bin/env python2.7 # -*- coding: utf-8 -*- def Collatz(x): result = [x] while not x == 1: if x % 2 == 0: x = x/2 else: x = x*3+1 result.append(x) return result max_num = 1 max_times = 0 for item in range(1,…

nosetestsが出すカバレッジ率の罠

leap.py #!/usr/bin/env python2.7 # -*- coding:utf-8 -*- def is_leap(year): """ judgement is leap """ #assert( isinstance(year, int) == True ) if year % 400 == 0 or (year % 100 != 0 and year % 4 == 0): result = True else: result = False ret…

nosetests を使ってをうるう年か判定する関数を実装してみた

とりあえず、nosetests, coverage のインストールから。 pip使ってインストールします。 % pip-2.7 install nose coverage Downloading/unpacking nose Downloading nose-1.1.2.tar.gz (729Kb): 729Kb downloaded Running setup.py egg_info for package nos…

msgpack-rpcでプロファイラを回してみた。

前のエントリからスクリプトに少し手を加えて、 プロファイル見てみた。mオプションでcProfileを指定してsオプションは適当にソートしたいものを指定する。 % python2.7 -mcProfile -s time client.py やってみたらプロファイリング結果が思った以上に長かっ…

msgpack-rpcを試してみる。

msgpack-rpc-python 0.3.0 : Python Package Indexとりあえず、入れてみる。 % sudo pip-2.7 install msgpack-rpc-python Downloading/unpacking msgpack-rpc-python Running setup.py egg_info for package msgpack-rpc-python Requirement already satisfi…

Cassandraにpyhtonで書き込んでみる。

分散データベース管理システムCassandraにPython + Lazyboyでデータ登録 - Symfoware とりあえず、ここで使ってるLazyboyを最初は使おうとしたんだけど、 なんかうまく動かなくてどうしようかなって思ったので公式ドキュメント参照しに行ってみた。ClientOpt…

pythonでdatetimeとtimestampを相互変換するコード

よく忘れるのでメモ。 #!/usr/bin/env python2.7 # -*- coding:utf-8 -*- import time import datetime def convert_dt2epoch(): """convert datetime object to epochtime http://d.hatena.ne.jp/tozawan/20110110/1294666583 """ dt = datetime.datetime.n…

Pasteをインストールしてみた。

PasteっていうPython版のModule::Starterにあたるものを入れてみた。 Paste 1.7.5.1 : Python Package Index PasteScript 1.7.5 : Python Package Index % sudo pip install Paster PasterScriptpip から上のコマンドでインストールしてみる。 % paster crea…

BeautifulSoupを使ってXMLをパースしてみた。

#!/usr/bin/env python2.7 # -*- coding:utf-8 -*- from BeautifulSoup import BeautifulStoneSoup from pprint import pprint import urllib2 api = "http://api.atnd.org/events/users/?event_id=22415" xml = urllib2.urlopen(api).read() xmlobj = Beaut…