2009-01-01から1年間の記事一覧

ラクダを買いました

古本屋でなぜか第2版を。半額だったのを更に1割引してもらって。 視力検査とかネズミとかしか知らない私にとっては、すごく新鮮です。 『視力検査みたいな成績表』という概念を生み出した友人には敬服します。

ネストしたモジュールをimportする関数

ビルトイン関数__import__ は 文字列を引数にとり、import文と同様の事をする関数です。 プログラム実行中に動的にモジュールをimportするときなどに使えるのですが、 __import__はimportと全く同じではありません。ネストしたモジュールをimport出来ないの…

GAE用に2.5がPCに入っていた!

2009-12-14 - 先がまっくろー と、 Pythonで2つの文字列がa == bだけどもnot(a is b)であるようなケース - 西尾泰和のはてなダイアリー を見たら、 The History of Python.jp: なぜ、例外がクラス化されたのか? を思い出しました。 Python 2.6 & 3.0 で廃止…

PythonRecipesに寄稿

126:コレクションのような性質を持つクラスを作る を書きました。 class FrozenMap(Mapping, Hashable): """変更不可能、辞書の様に値を取り出せて、辞書のキーに使用できる""" def __init__(self, adict): self._dict = dict(adict) self._tuple = tuple(ad…

GAEでアクセスカウンター

Google App Engine でアクセスカウンターを作ってみました。 #counter.py #encoding:shuft-jis from __future__ import with_statement, division import os import cgi import datetime import wsgiref.handlers from google.appengine.ext import db from …

grouperと微妙に違うバージョン

Python2.6でitertoolsは、ライブラリ本体だけでなく、 ドキュメントのexampleにも関数が追加されています。 その一つがgrouperで、grouperは値を指定した個数毎にまとめたリストを返しますが、 半端をNoneで埋めるのが気に入らないので、単に小さいリストを…

XmlResourceHandler

wxFormBuilderのメニューにはwxCollapsiblePaneが無いので、 xrc.XmlResourceHandlerを自分で書く必要があります。 from __future__ import with_statement, division, print_function import wx import wx.xrc as xrc Res = xrc.EmptyXmlResource() class C…

カーソル変更

某所で「カーソルを文字列に変更するにはどうすればいいですか?」という質問があったので10分で書いてみました。カーソルを「卵」に変更します。 import wx app = wx.PySimpleApp() bmp = wx.EmptyBitmap(64, 64) dc = wx.MemoryDC() dc.S…

絶対URLを相対URLに変換

Pythonで相対URLを絶対URLに変換 ・・・というのは見つかったのですが、逆に、絶対URLを相対URLに変換は見つからないので書いてみました。 相対パスで書くとメンドクサイことが起こるとか、そういうのがあるのかもしれませんが、それはそれとして。 #encodin…

Bandwidth Limit Exceeded

FileQの1ヶ月分の転送量割り当てを使い切ってしまい、自サイトが表示できなくなってしまいました。 FileQ側のサイトには転送量制限については書いていなかったので、 制限があることに気づいていなかったのです。 問い合わせた所、今のところ転送量を増やす…

PythonでBankAccount

BankAccount オブジェクト指向向けの「踏み絵」的な課題らしいです。 #encoding:shift-jis from __future__ import with_statement, division, print_function class BankAccount(object): """ >>> import bank_account >>> a = bank_account.BankAccou…

ファイルを比較

テキストファイルを比較する - imaitの日記 という記事を見つけたのですが、 単にファイルの一致を確認するだけなら、もっと簡潔に比較できると思います。 テキストに限らない、一般のファイルを。 from contextlib import nested def samefile(path1, path2…

潰れた空間のCG

不規則な生活で頭がおかしくなったのか、 衝動的に、数学的なCGを書いてみたくなりました。 空間から、空間の一部をくりぬくとどう見えるかという、CGを合成します。 と言っても、物理や幾何はサッパリなので、適当に設定します。で、スクリーンと画像の間を…

forループとリスト内包表記の実行時間の差を計測

Python forループとリスト内包表記の実行時間の差を計測 - 複雑系スパゲティソース(はてな版) で、内包表記の方が、forループより10倍速いという結果が出ていたのですが、 疑問のコメントが出ていたので、自分でも測ってみました。 まず、forループと内包…

Goというプログラミング言語が出たらしい

一説には、Go=Pythonの開発速度+C++の実行速度 こ、これは早く試さねば! ・・・しかし、まだ、Windows版は無いらしい(´・ω・`)

関数=クラスのメソッドなモジュール

Life is beautiful: Python Hack : 噛めば噛むほどおいしくなるクロージャの話 の解法に疑問があったので、自分なりに書き直してみます。 書き直すのはこのconfigモジュール。get関数で設定を読み込めて、読み込んだ設定はキャッシュします。グローバル変数…

関数=クラスのメソッドなモジュール (2)

None is None is None: 関数=クラスのメソッドなモジュール で、モジュールの関数 = クラスのメソッドなモジュールを書きましたが、 メソッドが多くなると関数を書くのが面倒になるので、 execで自動生成します。 import types class SomeClass(object): de…

多重デコレート

Pythonでは関数定義の上の行に、@から始まる関数デコレータをつけることが出来ますが、 実は、というか、当然、というかデコレータは何重にもつけることも出来ます。 で、ふと、気になったのが、デコレータはどの順番で適用されるのか、ということです。 >>>…

jsonに限らないschema

Rubyには、yamlデータが期待した条件を満たしているかどうか検証する、 Kwalifyというライブラリがあります。 Rubyist Magazine - プログラマーのための YAML 入門 (検証編) でも、KwalifyにはPython版は無いみたいなのです。別にyamlを検証するライブラリが…

unicodeをHTML用にエスケープ

python-webkit2pngは、HTMLに日本語があると文字化けしてしまったのですが、 non-ascii文字をエスケープすれば正しく表示してくれました。 そこで、unicodeのnon-ascii文字をエスケープするコードを書いてみました。 #encoding:shift-jis from __future__ im…

iTunesのライブラリをfoobar2000に変換

周知の通り、iPodという音楽プレイヤーは、曲の管理にiTunesを使わざるを得ない仕組みになっています。 普段からiTunesを使っている人にとっては便利なのでしょうが、私はiTunesが好きではありません。重いし、アンドゥできないし、リストの選択操作が変だし…

urllib.pathname2urlのバグ?

ローカルのパスをURLに変換するurllib.pathname2urlは、 windowsでは返り値がちょっと変 from urllib import pathname2url print(pathname2url("C:\spam\egg\ham.png")) # => ///C|/spam/egg/ham.png # なぜかドライブ名の次が ":" ではなく "|" URLの仕様と…

PythonのC++拡張ライブラリの速度

PyMugenのPalFxをPure Pythonで作ったら、遅くてお話になりませんでした。 (PalFx:キャラや背景画像のパレットにエフェクトを書ける命令。 色を反転させたり、青成分のみを取り出したりできる。) 単純な計算処理で、典型的な行列演算でもないので、 C++でDL…

メソッドに出来るもの

個人的にfunctools.partialを気に入っています。itertoolsもそうですが、Pythonを関数型言語っぽく使えるので。 でも、残念ながら、functools.partialが返すものは厳密には関数じゃないみたいなんです。 前、どこかで見たのですが、メソッドにするときに、振…

さらばボーランド

自作のフリーウェアSFFAIRMakerをTurboC++から、VisualC#に移植するつもりです。 先日、Turbo C++で作っている自作ソフトに、.pas(Delphiのソースコード)を追加しようとしたら、 dcc32.exeがありませんと言われてしまいました。 そこで、Delphiの無料版を…

Pandocをインストールしたら・・・

HTMLをreStructuredTextに変換しようと、PandocをWindows インストーラを実行したら・・・ インストールで使用する言語を選んでください っ英語 っバスク語 ば、バスク語!?

「なんでも無い」の子供

MHI/3.0 - $ [Python] なぜ、None は is で判定しなければいけないのか だって、None は一応シングルトンだけれども、別に None を継承したクラスのインスタンスがあったっていいだろうし (根拠はないので、よくないかも) ハッ!? そういえば、Noneって継承…

CGIHTTPServerのバグ

CGIHTTPServerでCGIのHello Worldを試してみたのですが、なぜか動きませんでした。ログを見ると、こんなメッセージが・・・ localhost - - [11/Oct/2009 19:08:33] command: C:\Python26\python.exe -u d:\Owner\My Documents\WebPage\dist\cgi-bin\hello.py…

コマンドの出力をひたすら表示するウィンドウ

Python付属ライブラリに、CGIHTTPServerと言う物があります。 python -m CGIHTTPServer を、HTMLなどを置いたディレクトリで実行し、ブラウザで"http://localhost:8000/"を開くと、ローカルでCGIやHTMLをテスト出来るというものです。 大変重宝なのですが、W…

pythonでyamlを使ってみる

自作ソフトで今まで設定ファイルにConfigParserを使っていたのですが、ふと思い立ってPyYamlを使ってみました。 yamlのよいところ yaml.load一発で読み込める (ConfigParserは項目毎に型を指定する必要がある) yaml.dump一発で書き込める (ConfigParserは…