python

PyQt4に圧倒された

いままでwxPython弄ってきましたが、ここに来て会社の人にPyQt4を薦められインストールしてみました。そしたら何じゃこりゃ!demoアプリがかっこよさが違う!うにーんうにうにーんって動いてます。以前KDE(Qtをバックエンドに使ったdesktop)を触ったことがあ…

すばらしい

[id:moriyoshi:20091214:1260779899] 参考になるなぁ。多謝。

py++

昨日の続き。py++を使ってみる。 py++をセットアップ http://language-binding.net/pyplusplus/pyplusplus.html 参考 http://anond.hatelabo.jp/20080320141900 [id:kakk0u:20080706:1215365707] http://sourceforge.net/projects/pygccxml/ http://www.gccx…

悪戦苦闘

C++実装された既存のライブラリをpy++でpythonに落とすコードを書いてみていますが、関数のオーバーロードとか、return_opaque_pointerとかの指定がよく分からない。member_functionとかで関数を拾ってきて設定するっぽいのだけど、関数の検索がうまくいかな…

boost.pythonでvirtualのoverride

http://svn.sourceforge.jp/svnroot/shive/junk/diary/2009/20091216_override.tar.gz やってみた。 class Person { public: Person() { } virtual ~Person() { } void say() { printf("[%08X]%s\n", (uintptr_t)this, _what()); } virtual const char* _wha…

C++クラスをpythonへ公開する

http://svn.sourceforge.jp/svnroot/shive/junk/diary/2009/20091215boostpython.tar.gz詳細は↑こちらを参照。 // src\person.cpp #include "stdafx.h" class Person { public: Person() { printf("[%08X]Person.ctor\r\n", (uintptr_t)this); } virtual ~Pe…

Boost.Pythonに挑戦

// src/fibo.cpp #include <boost/python.hpp> int fibo(int n) { if(n == 0) return 0; if(n == 1) return 1; return fibo(n - 1) + fibo(n - 2); } BOOST_PYTHON_MODULE(fibo) { boost::python::def("fibo", fibo); } # SConstruct from os import environ from distutils.sy</boost/python.hpp>…

sconsでpythonモジュールをビルド→試行錯誤中

[id:shive:20090901:1251820396] 環境によってはsconsがvc9ビルドしてくれない件、詳しく調べてみたらeasy_install版とwindowsインストーラ版が両方入っていて、有効になってる方のバージョンだとvc8までしかサポートできていないことがわかった。しかもダメ…

pyparsingラーニング

# -*- coding: utf-8 -*- from pyparsing import * def test(): ur""" >>> import pyparsing >>> from pprint import pprint >>> def check(func, *args): ... try: ... print func(*args) ... except ParseException: ... print 'except!!' # バージョンチ…

pdb

今まで専らpythonのデバッグはimport pdb;pdb.set_trace()でした(笑) そろそろemacs上でもデバッグしたいなぁと思い先日emacsのgud-pdbモードを試してみたのですが、まずシェル上からpdbコマンドを呼べるようにしておく(gudの命令を変更するでもたぶん可?)…

emacs23のpython-mode

emacsは22から使い始めた新参者です。そのころからpythonのアウトライン表示にはoutline-minor-modeを使っていました。しかしこれだとしっくり来なくてずっとガマンして使っていましたが、ふと思い立ってcc-modeで使ってるhs-minor-modeが使えないかなと"ema…

ズームインツール

VisualStudioに付属してたZOOMIN.exeがお気に入りだったんですが、最近は付属されないようで。wxの練習がてら作ってみました。 # -*- coding: utf-8 -*- import wx class MainFrame(wx.Frame): def __init__(self): super(MainFrame, self).__init__(None, w…

基底クラスのコンストラクタ呼び出し

class MainFrame(wx.Frame): def __init__(self): super(type(self), self).__init__(None) 基底クラスのコンストラクタを呼び出す際superを使っていますが、継承元クラス呼び出し用にtype(self)を使っていたけど、これってさらに継承すると破綻しますね。 c…

すげぇぇぇ!!

http://www.fooooo.com/watch.php?id=OMi-uN-6O1Q なんじゃこりゃ。pycomplete入れただけで喜んでる場合じゃないな。 これ調べてみよう。rope? 入れてみた rope: pythonリファクタリングライブラリ ropemacs: ropeを利用するためのemacs mode yasnippet: ス…

コマンドライン引数を無駄にif分岐しない方法

if len(sys.argv) < 2 or sys.argv[1] is None: print '-NONE-' else: print sys.argv[1] これを短くしたい。 try: print sys.argv[1] except: print '-NONE-' ぼちぼち。try/exceptは複数行になるしあんま好きじゃない。 print '-NONE-' if len(sys.argv) <…

ファイルブラウザ2

作ってみた。 表示してるのは%DXSDK_DIR% バージョンコントロールのアイコンとコンテキストメニューつければリポジトリブラウザの完成 しかし、相変わらず気合が入らない

アイコンのオーバーレイ

自分用tips:No.2。アイコンにoverlayを入れてみる。サンプルはTortoiseOverlayのオーバーレイアイコン。 import os import wx class MainFrame(wx.Frame): def __init__(self): super(type(self), self).__init__(None, wx.ID_ANY, 'Icon Overlay') tree = w…

ファイルブラウザ

os.listdirでファイル列挙 アイコン管理 wx.TreeCtrlに標準で複数選択があるのはうれしい

タスクバーアイコン

自分用tips。タスクバーアイコンを使う。最小化時にはタスクバーからウィンドウを非表示。アイコンがクリックされたらウィンドウを表示。 import os, sys import wx class MainFrame(wx.Frame): def __init__(self): super(type(self), self).__init__(None)…

パジャマ

http://pyjs.org/pyjamas JavaからJavaScriptを生成するGWTのpython版らしい。pythonからJavaScriptを生成する。 これは興味あり。後日試す。

ElementTreeでダメなsjisファイルを読む方法

以前からsjisのダメな文字('\'を含む文字、表能ソなど)を含むxmlファイルがpythonのElementTreeで読めなくて困っていました。いろいろ試してみて解法が見つかったのでメモしておきます。 <root> <data>表能ソ</data> </root> hoge.xml ダメなxmlファイル import os import sys import …

wxFormBuilderはじめました。

http://wxformbuilder.org/wxFormBuilder wxPythonがサポートされているので、このツールでGUIの雛形コードを作成しimport、それに初期化&拡張を加え表示して使うってのがスマートで気に入りました。VisualStudioのフォームデザイナに似てますね。 標準でサ…

nose

unittestフレームワークnose。pythonは標準でxUnitとdoctestを装備してたんで使ってみましたが、noseは使ったことなかったので試してみました。 まずはinstall $ easy_install noseテストコード test_hoge.py ### test_hoge.py def test_hoge(): assert Fals…

今日見つけたモジュール

http://matplotlib.sourceforge.net/最近ちょっとしたグラフが書きたくてgnuplot調べてたら見つけた。 http://networkx.lanl.gov/これも。面白そう。matplotlibはコンパイルが必要らしくeasy_installではうまく入らなかった。winでやるならインストーラを使…

今日見つけたモジュール

PLY: yacc/lex風parserジェネレータ pyparsing: PLYとは異なるアプローチなparserジェネレータ cmd: コマンドラインモジュール

16進数文字列を整数にキャスト

>>> x='10000' >>> x '10000' >>> int(x) 10000 >>> int(x,16) 65536

データベースの初歩

import sqlite3 import os dbpath = 'hoge.db' if not os.path.exists(dbpath): with sqlite3.connect(dbpath) as conn: conn.execute('CREATE TABLE hoge (id INTEGER PRIMARY KEY, language, author)') with sqlite3.connect(dbpath) as conn: conn.execut…

format

>>> 'num = {0}'.format(3) num = 3 >>> 'num = {num:03d}'.format(num = 3) num = 003

protobuf

前々から気になっていたプロトコルバッファを試してみた。 http://code.google.com/p/protobuf/からprotoc-2.2.0-win32.zipをダウンロードしてPATHの通ったところへ配置。 定義ファイル hoge.proto message Person { required int32 id = 1; required string…

scons

先日のpython26がvc9な件。VisualStudio2008Expressをインストールしてmake.batでvc9のPATHを通して実行したら無事動きました。 さてmake.batもダサいのでsconsで書き直してみたんだけども、こんどはこいつがvc9をスルーしてvc8でビルドしちゃう。 PATH通し…