Python
Twitter や Facebook に限らず、外部APIを叩かなければならない場面は出てくる。ただでさえテストコードかけないと不安になるのに、外部APIの挙動にあわせてうまく連携しないといけないケースでテストコードがかけないのはかなりこわい。そういうとき、mock …
やっぱりだるかった Django アプリのダミーデータを大量投入するスクリプトをかく - AtAsAtAmAtArAのをコピペ運用でもよかったけど、コピペ条件かわったりいちいちもうそういうのだるかったので、やっぱりデータを初期化するところまで自動化することにした…
Facebook app 登録 まあしましょう ドメイン設定が必要 app の設定で localhost とかだとなんかだめっぽかったので以下を参考にした localhost環境で、Facebook のJavaScript APIでOAuth認証をする - Goodpic testapp.comこの場合 Mac がローカルだからいい…
メールを送信する。Python 標準モジュールやライブラリにもありそうだけど、Django 組み込みであるのでそれを利用する。 日本語1.4::メールの送信 — Django 1.4 documentation つかう ドキュメントのままです from django.core.mail import send_mail send_m…
バリデーションとか検索とか だいたい全角半角でどうとか変換とかかませたりする。で、Python で有名なところだと zenhan というのがある。 導入 PyPi にある。うれしい。 pip install zenhan つかう 公式にもあるけど、ヘルプ見た感じでも難しくない import…
補完とかは Python 開発で便利な jedi-vim いれてみたらたしかにライフチェンジングだった - AtAsAtAmAtArA とかみよう。 PEP8 する必要があった 今まではシンタックスだけの pyflakes だけしてた。PEP8 はある程度守ってるけど80行折り返しと行間については…
class base view がわからない 存在は前から知っていたけど、まあ別にいいやって思ってて使ってなかった。でも久々の Django でいろいろ忘れてるし、あと 1.5 を使うのはいいけど class base view が mixin しまくってて拡張や仕様変更や保守に強そうという…
Sphinx でドキュメントを書く必要があったので、せっかくなので make html をいちいち手打ちしないで自動でビルドするようにした。 先人はいる ファイル監視してスクリプトってのはまあある話で、Python なら watchdog というのが使えるようだ。 参考 watchd…
パーフェクトPython (PERFECT SERIES 5)作者: Pythonサポーターズ出版社/メーカー: 技術評論社発売日: 2013/03/05メディア: 大型本購入: 1人 クリック: 47回この商品を含むブログ (2件) を見る 1冊で言語仕様から最新の技術までを網羅した内容。網羅的に解説…
+python コンパイルがだるそうだった Big Sky :: python 補完のVimプラグイン「jedi-vim」がスゲー をみてからきになってはいたけどだらだらしててやってなかった。./configure, make, make install さえだるい*1。けど、誰かの記事でまた「vim + python の…
ある人から「記事一覧機能はいいけど縦長すぎる。はてダみたいなのがほしかった」ほしいというのでどうやらそれっぽいものならできそうなのでつくってみた。所要時間は調査(5分)、実装(15分)、テストやデザインなどの調整(10分)って感じだったので30分くらい…
HTML ファイルをどう扱うか考えていた というのが以前の記事 PhoneGap(Cordova) + jQuery Mobile でアプリを構築しようとして調べた雑多なこと - atas ベタ書きで固定フッターやヘッダーを出力するのはさすがに面倒だし絶対ミスがおこる。一般的な Web フレ…
いつもはコードレビュー受ける側です コードレビューなんてできる立場じゃねーわと思いつつも、忙しくなってくるとなおざりになってくるし、しかしなにもしないのもいやなので「僕がレビューしてもいいですか?」って聞いたら「まあいいんじゃないの」ってこ…
ほえー 知らなかったのでまとめておく テストを skip したいときは @skip デコレータが使える 参考::26.3. unittest — Unit testing framework — Python v3.4.0a1 documentation 実際は Django でやってるけど中身は似てるはず*1。まるまる引用すると class …
Storage を使う必要があるからつかってるんだけど、その Storage で実装されているものと os モジュールで実装されているものでは内部的に若干挙動が異なることがある。というかことなってハマった。 絶対パスか相対パスかって話 具体的には MySQL でこんな…
fabric を扱う可能性が出てきた 今まで概要は知っていたけどもうちょっと知らないといけなさそうだしちょっとさわってみた 概要 公式::Fabric — Fabric 1.7 documentation 参考::Fabric デプロイツールのPythonicな書き方 - Ian Lewis 参考::Fabricを使って…
マサカリが飛び交ったPyCon2012 Day2 基調講演 講演を聞いたけど、いろいろ腑に落ちなかったりした。まあ各セッションとその講演についての感想は pyconjp2012 行ってきたよ各セッション感想 #pyconjp - atas に書いたのでそちらを参照してください。 404 Bl…
感想をメモする おつかれさまでした たぶんいまごろ運営スタッフは打ち上げでしょう。正式にはまだ3日目のSprintもあるけど、自分は参加しないしこういうでかいイベント(YAPCやHTML5ConfやRubyKaigiやPHPカンファレンス)は行ったことがないので新鮮だった。…
Django の Storage ってのがあんまりよくわかっていない とりあえず公式ドキュメントは以下 カスタムのストレージシステムを作成する — Django v1.0 documentation 基本的にはなんかこう OS のファイルシステムみたいな感じにさわれる?まあストレージってい…
油断していると 500 エラーで落ちる なんかちょっと機能をつくったり改修していたりすると、その場では動いても、なんらかの形でデグレったり違う改修によって入力される想定されるデータとは異なるものがはいってきたりする。なので、例外処理必要。油断し…
なんかライブラリとかみてるとたまに __call__ とか callable がでてきた なので軽く調べたけど、a = A(); a() でフックっぽく呼ばれるというのはわかったけどなにがどう便利なのか正直わかんなかった。 イマイチ __call__ がどう便利なのかがわからなかった…
なんか読み込みがおかしい import ssh ... ... conn = ssh.SSHClient() ... ... いろいろあって paramiko だけじゃなくて ssh モジュール単体で同じ事をやろうとした。しかしなぜか ssh モジュールがうまくうごかない。しかたないから dir(ssh) とか see(ssh…
これもそんなに難しい話ではないです。SFTP で Python ってググったらたくさん paramiko がヒットするし、サンプルコードがたくさんみつかります。正直公式ドキュメントは見づらいのでいちおうソースコード軽く読んだりしたけど。 公式ドキュメント::API Doc…
簡易的に FTP サーバーをたてるときにすごく楽。構築方法はググれば簡単だけど、いちおうまとめておく。 公式ドキュメントの参考::pyftpdlib - Python FTP server library - Google Project Hosting 導入 pip でいいです pip install pyftpdlib 構築 で、た…
fabric は Python製のデプロイなどを行うスクリプト 公式ドキュメントは以下 参考::Fabric — Fabric 1.4.4 pre-alpha (76f466d) documentation あとは @IanMLewis さんのドキュメントが詳しい 参考::Fabric デプロイツールのPythonicな書き方 - Ian Lewis で…
基礎的なところから >>> "%s" % 'hoge' 'hoge' >>> "%d" % 10 '10' >>> "%.02d" % 2 '02' さすがにここらへんはわかるんだけど "This %(hoge)s is %(moge)s" % { "hoge":"hogehoge", "moge":"mogemoge" } # hogehoge is mogemoge キーでとることもできる。 %…
最初に言っておく。PILが危険だ easy_install は危険だ!!!!インストールは簡単だがアンインストールがタルい!!!!*1PIL でハマるから pip を使うんだ!!!! Pythonの環境構築メモ - atas PIL まわりでハマる可能性はかなりあるから、公式ドキュメン…
ある特定のディレクトリを掘りたかった もともと toge というディレクトリにファイルを吐き出すという処理をしていたいところに /hoge/moge/toge みたいに掘りたいという話になった。最初はおれは def generate_dir(base_dir): if os.path.exists(u"ほげ"): …
TSV(CSV)から要素(ヘッダー)を取り出して文字コードを変更してなんか処理したい時の話 - atas の続き CSVのある uniq な文字列のヘッダーに対して、その column をとってくる処理をおれはゴリ押しで index つくって作成していた。 import csv csv_file = csv…
ジェネレータについて 普通のリストや関数を返すときは return で返してやればいいけれど、繰り返し処理ができるオブジェクト= itrable なオブジェクトのときは yield で一時的に処理を止めて一つづつ値を返すことができる。 # 関数の定義 >>> def hoge(): .…