KazuoMoriwaka/Journal/2006-01-01
KazuoMoriwaka/Journal/2006-01-04
KazuoMoriwaka/Journal/2006-01-05
-
速達ってすばらしい!
-
http://www.lexxe.com/ このサイト、異様に検索結果がイイ。。。どうやってるんだろう。
KazuoMoriwaka/Journal/2006-01-07
KazuoMoriwaka/Journal/2006-01-08
KazuoMoriwaka/Journal/2006-01-14
-
ダイソーにいってみたら極めてまともなソーラー&電池併用の電卓が。。
-
これを100円で売れるのはすごい気がする。
KazuoMoriwaka/Journal/2006-01-15
-
概要だけメモ。
-
2006/6/3 更新
-
PEP 308: Conditional Expressions
-
C の条件式みたいなもの。(condition?true_value:false_value なやつ。)
-
x = true_value if condition else false_value
-
感想: 変な文法だ…
-
PEP 309: Partial Function Application
-
関数の引数の一部(または全部)を渡して、それらを省略した新しい関数オブジェクトを作成できるようになるらしい。
-
PEP 314: Metadata for Python Software Packages v1.1
-
Pythonパッケージの依存関係情報を記述できるようになるそうな。
-
ソースのdownload_urlを記述できるようになる。
-
依存関係を調べて必要なパッケージをbuild&install という処理を自動化するための枠を拡張した感じ。
-
PEP 328: Absolute and Relative Imports
-
モジュールのimportを、現在のモジュールから相対的におこなう文法を追加し、通常のimportをグローバルな名前に限定する。
-
同じディレクトリに string とか sys のような、システム組み込みのモジュールと同じ名前を使った時に両方問題なくimportできるように。
-
foo.bar.baz モジュールで from . import hoge をすると foo.bar.hoge モジュールがimportされる。
-
モジュールに関係なく、 import hoge をすると hoge を importしようとする。foo.bar.hoge は import されない。
-
感想: Javaのようにrelative な importは単に禁止してもよかったと思うけど、まあアリかなとおもう。
-
PEP 338: Executing Modules as Scripts
-
python 2.4 で 導入された -m オプション(モジュール名を指定して実行する) を、runpy というpythonスクリプトによる実装に置き換え
-
パッケージ中のモジュールやzipimportに対応
-
PEP 341: Unified try/except/finally
-
try-except-else-finally を組合せて使えるようになった。
try:
block-1 ...
except Exception1:
handler-1 ...
except Exception2:
handler-2 ...
else:
else-block
finally:
final-block
block-1 を実行中に例外が起きたら except節の対応するものを実行
例外が何もおきなければ else節を実行
どちらの場合でもブロックから抜ける直前にfinally節を実行
感想: with と try-finally はぶつかるなあ。
PEP 342: New Generator Features
-
generator に 引数がついたり .send で yield 文の返り値として値を渡したりできるようになるらしい。
PEP 343: The 'with' statement
-
try - finally のかわりに、以下のような文法で条件と終了処理が保証されていることをはっきりさせる。
with expression [as variable]:
with-block
スレッドの例
lock = threading.Lock()
with lock:
# Critical section of code
...
2.5では from __future__ import with_statement が必要。
with がとる expression はcontext management protocol をサポートしている必要がある
-
最初に呼ばれ、as に渡すオブジェクトを返す__enter__(self)と、
-
例外によるまたは通常のブロック終了時によばれる__exit__(self, type, value, tb)メソッドを持つ。
-
context object周辺ライブラリとして、contextlibモジュールが追加される。
PEP 352: Exceptions as New-Style Classes
-
組み込み例外が全てNew-Style Classになります。
-
BaseExceptionが新設され、KeyboardInterruptとSystemExit、Exceptionがその下におかれます。
-
つまり except Exception: は、全ての例外オブジェクトではなく全ての組み込みエラーをキャッチするようになります
-
自分で例外クラスをつくるときは今まで同様にExceptionを継承してつくりましょう。
PEP 353: Using ssize_t as the index type
-
C APIのsizeの型が、int にかわって Py_ssize_t となりました。
-
64bit環境でのサイズ上限問題を回避するためのようです
PEP 357: The '__index__' method
-
スライス[start:end:step]に使う値を返すメソッドが新設されました。Pythonのintかlongを返す必要があります。
そのたの言語仕様変更
-
dict に missing メソッドが追加され、辞書にキーが存在しない時に値を返すことができるようになりました。
-
文字列、ユニコード文字列にpartition(sep) と rpartition(sep)メソッドが追加されました。sepで文字列を区切り、(sepの前にあった文字列, sep, sepの後にあった文字列) のタプルを返します。
-
max, min にsortのように key 引数が使えるように。
-
any(新関数) イテレータの返すオブジェクトに1つでもTrueのがあればTrue。全部FalseならFalse
-
all(新関数) イテレータの返すオブジェクトが全てTrueならTrue。1つでもFalseがあればFalse。
-
継承元クラスリストを空でもいいように。class hoge() のように書けます。
-
quit, exit が終了方法を教えるメッセージを返すオブジェクトになりました。これらは呼び出し可能で、呼び出すとインタプリタを終了します。
モジュール
-
audioop モジュールがa-LAW encodingをサポート。u-LAW encodingが改善
-
codecsモジュールにインクリメンタルエンコーダのサポート追加
-
collections に 対応するキーがないときのデフォルト値を設定できる defaultdict が追加されました
-
contextlib 追加
-
cProfile 追加
-
profileとほぼ同じインタフェースの C言語で実装されたプロファイラが追加されました。
-
pstats のStatsに直接ファイルストリームを渡せるようになりました。
-
csvモジュール拡張、バグフィックス
-
フィールドの最大長が設定できるようになったり。
-
datetimeモジュール拡張
-
strptime メソッドが追加されました。
-
doctestモジュール拡張
-
ドキュメント用で実際には動かない使用例のためにSKIPオプションが追加されました。
-
fileinputモジュール拡張
-
unicodeファイル名サポート
-
inputメソッドにmode引数追加
-
FileInput クラスに fileno() メソッド追加
-
gcモジュール拡張
-
世代別のオブジェクト数を返すget_count() 関数追加
-
gc.collect に対象世代を設定する generation 引数追加
-
hashlib追加
-
md5, sha のおきかえ。SHA-224,256,384,512もサポート。
-
OpenSSLがあればそのライブラリを利用します。
-
md5, sha はhashlibのラッパーに。
-
heapqの変更
-
nsmallest, nlargest関数追加
-
指定されたN個の最大/最小値を取得する
-
sort みたいに key 引数もあるでよ
-
itertools
-
itertools.islice()
-
start, step に None を受けつけるようにしてsliceオブジェクトとの互換性up
-
mailbox
-
書き込みもできるように拡張されました
-
msilib
-
windows用インストーラとCABの作成をサポートするmsilibが追加
-
pdb
-
break pointにひっかかった時に自動的に実行するコマンドを設定できるようになりました
-
operator
-
itemgetter, attrgetter 関数が複数フィールドをサポート。
-
使いみちの例としてsort書いてます。過去のsort結果をオブジェクトに持たせて安定なsortにも使えますな。
-
os
-
os.stat の時間がfloatになったりいろいろ。
-
spwd (新モジュール)
-
shadow passwordへのアクセスライブラリ
-
tarfile
-
TarFileクラスにextractallメソッド追加、cwdに全部展開する
-
xmlrpclib
-
date属性にdatetimeオブジェクトを利用できるようになりますた。
-
Tools/pybench
-
pystoneを改良したpybenchがToolsに追加
-
regex, regsub, statcache, tzparse, whrandom モジュール削除
-
rlcompleter が readlineを必要としなくなったため、非unixプラットフォームでも利用可能になりました。
-
structが高速化
C API
-
PySet関連追加
KazuoMoriwaka/Journal/2006-01-16
-
npr.org のインターネットラジオきいてみたり。会社に入ってから英語全然使わない日々だからリハビリ。
KazuoMoriwaka/Journal/2006-01-17
-
tracの特定ページを書き変えるスクリプト(trac 0.8.4 で動作確認)
-
これを元に適当にいじってお使いくださひ
-
TestPage を foo という中身に置換する。署名は 'put.py'とする
-
なんちゅうかelementtree強すぎ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import urllib
import elementtree.HTMLTreeBuilder as HTMLTreeBuilder
tracbase = 'http://www.example.com/projects/fms/wiki/'
pagename = 'TestPage'
text = 'foo'
author = 'put.py'
# 編集画面
f = urllib.urlopen( tracbase + pagename + '?edit=yes')
et = HTMLTreeBuilder.parse(f)
# バージョン取得
elist = et.findall('*/*/*/form/*/input')
for e in elist:
if e.attrib['name'] == 'edit_version':
version = e.attrib['value']
# 保存
params = urllib.urlencode({'edit_version': version, 'text': text, 'author': author, 'save': 'Save changes'})
urllib.urlopen( tracbase + pagename , params) |
Components:
-
S5/HTML writer と rst2s5.py の追加。HTML + CSS + Javascript でプレゼン
-
newlatex2e writer ほぼ完成
-
DocTree reader追加
-
document treeの書き出し/読み込み用にpublish_doctree, publish_from_doctree 関数を追加
reStructuredText:
-
ディレクティブの追加
-
"container" (汎用ブロックコンテナ)
-
"default-role" ( backtick のrole)
-
"title" (タイトルのメタデータ)
-
"date" (現在の日付)
.. |date| date:: .. |time| date:: %H:%M Today's date is |date|. This document was generated on |date| at |time|.
国際化:
-
日本語と簡体中文の言語マッピング追加
-
CJK文字でのテーブル、章タイトルの幅問題対応
ドキュメント:
-
ディストリビュータ向けガイドの追加
-
開発者向けガイドの追加
そのた:
-
今までのよりかなりよくなったEmacs の reST 編集用モード
-
--strip-comments (コメント削除)オプション追加
-
--embed-stylesheet オブションが HTML writer のデフォルトになった
KazuoMoriwaka/Journal/2006-01-20
-
喉の具合が最悪+ちょっと頭痛なので会社やすんで寝まくり。。
KazuoMoriwaka/Journal/2006-01-21
-
すごい雪! ..の中医者へ。返って具合悪くなりそうな予感w
KazuoMoriwaka/Journal/2006-01-22
-
最近 http://www.npr.org のストリーミングききまくり。
-
でも全然喋れないんだよなあ。
