python

"^L" is 何?

割とどうでもいい話。python2.7 の 標準ライブラリのemail/message.pyの中で"^L"ていう制御コードを見つけた時の話。そもそも "^L"てなんだっけ。。。から始まり、調べてみたら改ページだった。vimエディタの印刷で改ページ : サイト更新停滞ちうっ [ 名無し…

Pythonのloggingで手出しできない所のhandlerを差し替える

ltsvloggerで warn("%s %s", spam, ham) という手出しができないところにあるログ出力を受けたいんだけど、どうすればいいんだろう。— shirou - しろう (@r_rudi) February 10, 2014元ネタ。コレをを見た時、確かにどうやったらいいんだろう? と思ってちょっ…

Django で unittest を高速化する(主にDBの話し)

yuheiさんが書き残してくれたありがたい記事を参考にDjangoのテストを高速化していた時に気になって調べてみた時のメモ Djangoでテストを速くするためにいろいろやってみた - brainstorm この記事には以下の対応が書かれていました。 対応2 sqlite3のin-memo…

Pythonで複数プロセスたちあげて結果を非同期で処理する

python で複数プロセス立ち上げてそれぞれのコマンドの結果を非同期に処理するのどうやったらいいんだろ— ねじめちゃん (@drillbits) October 3, 2013ていうのを見かけたので殺伐とした心を癒すためにやってみる心。 やりたい事 Pythonスクリプトから複数外…

Djangoの抽象モデル(Abstract Model)の単体テスト

DjangoでAbstractなモデルの単体テストってどう書くんだろうなって思って調べたときのメモ。継承した先のモデルをテストすればいいとかあるかもしれないけど、抽象モデルなので実装を持つ事ができる。その実装を独立してテストしたいなぁと思った。簡単な例…

task.delayからへんじがない。ただのしかばねのようだ(Celery+RabbitMQ)

とある開発環境でCelery + RabbitMQを動かしてたら、いつのまにかtask.delay()が息をしてないというかハングアップしてる感じになった時の調査と対処のメモ 環境 Debian squeeze RabbitMQ 3.1.3 (apt-getでinstall) 現象 DjangoアプリからCelelyのtask.delay…

sphinxjp.themes.basicstrap 0.3.0 にしますた

やほー。こんなにいい天気なのにインターネッツの世界にどっぷりな不健康の皆たちー。この前作った、sphinxテーマをアップグレードしたよー。ぶっちゃけ殆ど使われてないだろうけど、なんとなく使ってるBootstrapとかがバージョンアップしてたので、もろもろ…

Mockのpatchの勘違い

良くわからないけど唐突に意識高くなったので俺ブログ書くわ!!!ブログ書くわ!!! けど後2分くらいしかきっと持たない!!!早く書くんだ俺!!!2分後にはまた死んだ魚ような目になってしまうぞ!という訳でPythonのMockで小一時間ハマったネタを書く。…

hc コマンドで、HTTP のステータスコードをすばやくしらべる!

一般的な Web Programmer ならば、HTTP Status code はすべて暗記していると聞きました。しかし、僕は初心者なので、なかなか覚えきれていないので、HTTPのステータスコードをさがすのに便利なツールをPythonで用意しようと思いましたが。。。もう。。あった…

Django と localflavor の 都道府県コード の話 (ドラクエコピペ風)

注意喚起(2013/02/27) localflavorは、Django1.5までにしか含まれていません。1.5では非推奨になっています。1.6では削除される予定です。Django1.5以上を利用している、しようと検討されている方は、利用しない方が良いでしょう。 Django Deprecation Timel…

sphinxjp.themes.basicstrap 0.2.0 リリースしました

というわけで久しぶりのブログ更新。あれですね2012年いつのまに終わってたんですかね。2012年12月に世界が終わるとかなんとか言ってた人たちは今どんな気持ちで生活してるんですかね。ちょっと話てみたいですね。 sphinxjp.themes.basicstrap 0.2.0 : Pytho…

connpass の イベント検索を作る

数日前に「自転車 x エンジニア」のkey3の こんなツイートを見かけた。connpassって検索ないの。。— Mitsukuni `key' Sato (@key3) October 2, 2012 connpass - 人が集まる。人と繋がるイベントサイト。 connpass は確かに検索は出来ないが、APIを提供してく…

collections.pyのnamedtupleが凄いの話

しかしcollections.pyのnamedtupleのところ見ると目を疑いたくなる— 芦屋ひろ (@kk6) September 28, 2012こんなツイートを数日前に見つけた。脊髄反射的にcollections.pyを見に行ったら、確かに凄くて色んな意味で感動した。見てもらえれば、分かると思うけ…

Django Template で for でループしたい

プロトタイプとか作ってて、単純に部分的なHTMLを、ループで表示させたい。そんな時、Django テンプレートで 単純に指定の回数だけforでループする方法。 {% for i in "xxxxx" %} box {% endfor %} Numeric for loop in Django templates - Stack Overflow …

一体いつから私がPyCon JP 2012 に参加したと錯覚していた?

といわけで、PyCon JP 2012 に参加したとか、しないとか、発表したとか、しないとか、そういう噂があるらしいですね。懸命なる皆様におかれましては、流言飛語に惑わされぬよう、くれぐれもお気をつけください。 PyCon JP 2012 開催します! - PyCon JP 2012…

DjangoのMasterSlaveRouterの話し(稲川淳二風)

これは最近Djangoを使い始めた人の話しなんですけどね。Djangoは複数DBが扱えるんですよ。ええ。それでMaster/Slaveなレプリケーションを扱いたいなーなんて思ってたんです。ところがね。ドキュメントに書いてあるMasterSlaveRouterを使った時に不思議な現象…

Python の Coding Style あれこれ

唐突ですが、Python の Coding Style について参考になりそうなものをまとめてみるテスト。 主にベースとなるPEP8の他に、僕が見聞きしたWebフレームワークのCoding Styleを列挙しています。 PEP 8 Style Guide for Python Code http://www.python.org/dev/p…

bpmappers 便利!

今日は bpmappers というライブラリが、すごく便利で感動したという事を書く bpmappers ドキュメント — bpmappers v0.5 documentation 良くJSONを返すようなAPIを作るときに、オブジェクトの必要な部分だけを、辞書に変換してからJSONにするなんて事をすると…

ディレクトリ内のファイルを作成時刻でソートして連番をつけてリネームする

という感じのブログを見つけたので自分だったらどうやるかなぁと思ってやってみる。 [Python]ディレクトリ内のファイルを作成時間の昇順ルールで添え字をつけてリネームするスクリプト - Kshi_Kshi's blog 前提 とりあえず上のブログを見習って、なるべく限…

利用可能なモジュール一覧を取得する

ふとPythonで利用可能なモジュールの一覧を取得したくなったのでメモ。 条件 ここでいう利用可能なモジュール および パッケージ一覧とは、以下のようなものとする。 ビルトインで組み込まれてるやつ site-packages にインストールされてるやつ virtualenvな…

Google Appengine で datastore_admin が使えなくなった

GoogleAppengine の Python SDK の バージョン1.6.2が出ましたね。早速upgradeしてみたら。下記のようなエラーに遭遇したのでメモ SdkReleaseNotes - googleappengine - Google App Engine Python SDK Release Notes - Google App Engine - Google Project H…

ASCII to EBCDIC(符号付き数値)

数年前、全銀協のフォーマットで且つ、EBCDICコードで相手側のシステムに送信しなければならないという案件と格闘していた。全銀協とは全国銀行協会の略で、全国の銀行は、ここが定めるプロトコルおよび、データフォーマットで振込情報のやりとりやらなんや…

辞書のマージ(同一キーの値は加算) 其の二

さてこの前下記のようなエントリを書いたら、エアリプライが大好きな、戦国大名の人が「同一のキーの値の加算」だったら、Counterオブジェクトでいいのにねぇ。。。みたいな事を、そうエアリプライで教えてくれましたw エアリプライでw ありがとうございます…

辞書のマージ(同一キーの値は加算)

辞書のマージで、同一のキーが存在してたら、値を加算するような事がしたかった。 {'a': 1, 'c': 3, 'b': 2} + {'a': 1, 'c': 3, 'b': 2} #=> {'a': 2, 'c': 6, 'b': 4} 単にマージするだけだったら、dict.updateで出来るけど、同一キーの場合に値を加算する…

Flask に manage.py が欲しい

そういえば、どこかでタイトルのような話をどこかで見た気がするけど忘れた。Djangoでは、runserverや、カスタムでコマンドを定義したいときに、manage.pyを使うらしいが、それと似たような事ができる、エクステションもある。Flask-Scriptというヤツだ。htt…

Flask の Jinja2 の autoescape について

こんな現象に遭遇したので覚え書き そもそも Flask は テンプレートエンジンにJinja2を採用している。 Welcome to Jinja2 — Jinja2 2.7-dev documentation テンプレートをレンダリングする時は自動エスケープ(autoescape)される。 エスケープされない autoes…

github のプロジェクトにSphinxドキュメントを良さげな感じにおきたい 其の二

昨日の続き。色々なんか眠いので端折るでしかし。 昨日の話 http://tell-k.hatenablog.com/entry/2012/01/18/224126 面倒な事 昨日までの話だと、こんな感じに、ブランチを切り替えながら作業しなければなりません。 Sphinxドキュメントを編集する -> gh-pag…

github のプロジェクトにSphinxドキュメントを良さげな感じにおきたい 其の一

大分前にこんな感じの事をしたので、その時の覚え書き。githubで管理されているOSSなんかでは良く、下記のようなURLでドキュメントを公開しているプロジェクトがありますよね。 http://[account_name].github.com/[repository_name]/ account_name(アカウン…

virtualenv の --no-site-packages オプションを間違って覚えてた

こんにちわこんにちわ。唐突ですが、皆さんvirtualenv 使ってますか?今まではvirtualenv を使うときにシステムに入ってるsite-packagesを使わないように、以下のようなオプション指定していました。 $ virtualenv --no-site-package hoge ところが、社内の…

Sphinx で自動的にAPIリファレンスを作成したい

今日はこのネタです。タイトルの通りなんですが、PythonでそもそもAPIリファレンス的なドキュメントをどうやって作ったら良いのか知りませんでした。他の言語であれば下記のようなツールを過去に使った事がありました。 Java なら Javadoc Perl なら pod2htm…