python

Python とマクロ、代数的データ型

前回はマクロの概要と Python でマクロを実装するための仕組みについて説明しました。 Python とマクロ、インポートフックと抽象構文木 - forest book 動作原理を理解した上で実際にマクロでどういったことができるのか、MacroPy というライブラリで提供され…

Python とマクロ、インポートフックと抽象構文木

どちらがきっかけだったのか忘れてしまいましたが、wikipedia:メタプログラミング か wikipedia:抽象構文木 について調べているうちに マクロ が出てきました。私の中では、マクロと聞くと、C 言語の、プリプロセッサ (コンパイルの前処理) でコードに置き換…

Pyramid ベースの軽量 CMS フレームワーク Kotti の紹介

ここ最近 Kotti アドオンの開発を行っていました。Kotti は、Pyramid の上位でアプリ開発を支援するフレームワークです。いまのところ、軽量 CMS として開発が進められています。Kotti を紹介するウェブサイトも構築されています。まだ概要程度の情報量です…

ローカル環境で複数の Sphinx ドキュメントを参照する

最近の Python パッケージは、Sphinx でドキュメントが書かれていることが多いです。Sphinx でドキュメントが書かれているなら、そのパッケージのソースをクローンしてきて、ローカルでドキュメントをビルドするのも簡単です。私の場合、そのときの開発に用…

コマンドラインオプション付きの which コマンドを実装してみた

すべてのコマンドがperlで実装されているLinuxディストリビューション。誰得 / perl linux URL2012-08-18 00:09:09 via Hatena Ruby / Python の勉強用に Perl Power Tools みたいに Ruby / Python Power Tools を作ってみようかと妄想したことがあるが、現…

PyCon Taiwan 2012 イベントレポート Day 2

6月9-10日に開催された PyCon Taiwan 2012 に参加してきました。前回の記事からちょっと間があきましたが、2日目 (10日) のカンファレンスレポートです。私は基調講演について執筆しました。 PyCon Taiwan 2012, Day 2:「PyCon Taiwan 2012」参加レポート|…

fanstatic による Python パッケージを使った静的リソース管理

最近 Kotti で Web アプリを作ってみようと調査しています。但し、今日は Kotti のお話ではなく、たまたま更新差分を見ていたら、fanstatic という静的リソース管理ツールが新規に使われているのを見つけました。ちょっと調べてみると、とても良さそうに見え…

PyCon Taiwan 2012 イベントレポート Day 1

6月9-10日に開催された PyCon Taiwan 2012 に参加してきました。今回は、初日 (9日) のカンファレンスレポートです。私は基調講演について執筆しました。 PyCon Taiwan 2012, Day 1:「PyCon Taiwan 2012」参加レポート|gihyo.jp … 技術評論社

PyCon Taiwan 2012 イベントレポート Day 0

6月9-10日に開催された PyCon Taiwan 2012 に参加してきました。初めて行った台湾ですが、羽田空港から飛行機で3時間半と近く、とても良いところですっかり気に入りました。そんな雰囲気が分かるレポートになっていると思います。記事は3人で執筆しています…

detox で tox テストを並列実行しよう

複数の Python バージョンでテストを実行するツールに tox があります。 tox と pytest で Python 2/3 両対応のテストを実行する - forest book tox ツールそのものがとても便利なのですが、この tox テストを並列実行してくれるツールがリリースされました…

pytest のドキュメントを翻訳しました

Python のテストツールに pytest があります。ここ最近、徐々にテストを書くのに慣れてきて、さらにテスト設計や知見を高めようという思いが強くなってきました。pytest は、wikipedia:設定より規約 を設計原則とするツールです。Python は明示する文化なの…

pytest-pep8 を 0.7 から 0.8 にアップグレードしたらテストが失敗するようになった

タイトルは釣りです。pytest で pep8 のテストを行う pytest-pep8 プラグインがあります。次のようなサンプルコードを用意します。 (test)$ vi sample.py x=3 class A(object): pass def f(x): return x このサンプルコードを pep8 でチェックすると、たくさ…

virtualenvwrapper のドキュメント (和訳) を更新しました

2010-12-31 に virtualenvwrapper のドキュメントを翻訳したときのバージョンは 2.6.1 でした。 virtualenvwrapper のドキュメントを翻訳しました - forest book 現時点の最新バージョンは 3.2 です。その後も着々と機能拡張、バージョンアップが行われてい…

PyCon US 2012 イベントレポート

https://us.pycon.org/2012/ に参加してきました。 そのときのイベントレポートを 「PyCon US 2012」 イベントレポート:レポート|gihyo.jp … 技術評論社 に書きました。face to face でコミュニケーションを取ることの重要さを実感しました。

tox と pytest で Python 2/3 両対応のテストを実行する

pytest *1 に関連して tox も一緒に覚えておくと良さそうです。 @t2y @methane 少し前からtox + py.test が鉄板な気がしますねえ2012-02-07 20:50:23 via twicca to @t2y tox については id:Ehren の入門記事が分かりやすいです。 Pythonでのテストツールtox…

データ駆動テストを nose と pytest でやってみた

pytest で初めてテストを書いてみました。 今度こそ帰るー、py.test を使って初めてテストを書いた、評判通りすごく良い2012-02-07 19:48:52 via TweetDeck @t2y noseと比べた感想とか聴きたいです。2012-02-07 19:55:04 via web to @t2y @methane @t2y テス…

イテレーターという抽象概念にもの思い

元ネタ: map_between をやってみる - Study08.net 対シンバシ殲滅用人型機動兵器 http://d.hatena.ne.jp/imagawa_yakata/20120105/1325781387 最近、Java のコードばかり書いています。Java には、Python にはない wikipedia:抽象型 としてのインターフェー…

Jython プログラミング

ずっと積ん読になっていました。購入したのはおよそ3年前。最近、私が Java を勉強し始めたという動機もあり、3日で読んでしまいました。3年も読めなかった本をいま読めてしまうというのは、いつか読むかもしれないから気になった書籍は取りあえず買っとけと…

Mac OS X で プロキシサーバーを使う

あれ、 ikazuchi は Proxy に対応してないのかな。便利なのにぃ。2011-09-25 00:27:30 via TweetIrcGatewayという要望を聞いたので調べてみました。まずはデバッグのためにローカルの開発環境にプロキシサーバーを構築します。ちょっとしたテストに squid : …

EuroPython 2011 イベントレポート 第3回 (最終回)

1週間遅れてしまいましたが、最後の #4 アプリケーションに関する講演,LT,PSFメンバーミーティング,まとめ を書きました。イベントに参加した方、一緒に行ってくれた方、レビューしてくれた方、編集してくれた方、みなさん、お疲れ様でしたー。

EuroPython 2011 イベントレポート 第2回

先週に引き続き、第2回のレポートが公開されました。私が執筆した #2 CPythonについてのハンズオン,講演 と id:rokujyouhitoma が執筆した #3 PyPyについての講演,ハンズオン,スプリント の2本立てです。Python プログラミングのテクニックや (比較的) 新…

EuroPython 2011 イベントレポート 第1回

気付けば1ヶ月以上、ブログを書いていませんでした。 先日、Europython 2011 — EuroPython 2013: Florence, July 1–7 に参加してきました。そのときのイベントレポートを #1 基調講演とカンファレンスの全体像 に書きました。全部で3回書く予定です。楽しん…

EPEL リポジトリを活用して CentOS 5.x で Python 2.6 をインストールする

CentOS 5.6 も Python は 2.4 なの!— Hajime Nakagami (@hajime_nakagami) 2011, 4月 8Twitter を眺めていると、こういった声をちらほら聞くのでその対策をまとめてみます。 背景 CentOS 5.x で標準インストールされている Python のバージョンは 2.4.3 で…

Python Insider の国際化対応

Python Insider ってなに? Python Insider JA: Python Insider へようこそ! を読んでください。 Python Insider のはじまり http://us.pycon.org/2011/home/ で Python Insider という、Python のコア開発チームによるブログが3月の下旬から開始されました…

ローラーコースターでいくら稼げるか

タイトルで釣られた人はごめんなさい。プログラミングのアルゴリズムの話題です。最後の30分ぐらいしか出れなかったけれど、http://community.appliplanet.co.jp/groups/google-code-jam-2011-%E5%8B%89%E5%BC%B7%E4%BC%9A/blog/2011/04/06/%E3%82%B0%E3%83%…

optparse のコールバック処理を argparse モジュールへ移行する

Python のコマンドライン引数の解析ツールは getopt と optparse、さらに Python 2.7 から argparse が標準ライブラリとして追加されています。Python 2.6 環境では argparse 使えないからと、私は argparse の使用を少し躊躇していたところがあったのですが…

時間帯重複チェックのお題を解いてみた

ある二つの時間帯(日をまたがない)が重複しているかどうかをチェックする処理を書いて下さい。 時間帯は4つの整数値(開始時,開始分,終了時,終了分)により与えられます。例1) 午前1時から午前5時30分まで (1, 0, 5, 30)例2) 午前9時から午後23時まで (9, 0, 2…

Python で日本語を含むリストやディクショナリの表示にもの思い

大学の友人が Python を学び始め、デバッグしていて抱いた疑問をググったところ、以下の解決方法を見つけたようです。#python で日本語を含むlistとかdictとかを人間が読めるようにprettyprintする方法はURLが王道なのだろうか。2011-03-04 21:50:02 via web…

Remember The Milk でタスク管理をする

Python Hack-a-thon 2011.02 : ATND に参加してきました。会場に到着したら受け付けで id:rokujyouhitoma と出会ったので、その流れ *1 で Remember The Milk: Online to-do list and task management に自分のタスクリストを移行することに決めました。これ…

文字列を適当な長さで区切って diff を表示する

Python の標準ライブラリに difflib というものがあります。これを使うと、いろいろなフォーマットの diff を表示できます。ちょっと使ってみたいだけなら difflib – シーケンスを比較する - Python Module of the Week のチュートリアルを見てみると分かり…

HTML タグ付き文字列を動的に生成する実装のリファクタリング

1年前に開発したアプリケーションの機能拡張に伴い、徹底的にリファクタリングしてやろうと気合を入れて改修中です。そんな中、HTML タグ付き文字列を動的に生成する - forest book で書いた処理を、いま見返すと見た目があまりよろしくありませんね。もうち…

Python の日本語情報は未だ少ないのか

2008年のお正月休みに「初めての Python」*1 を購入したところから私は Python を勉強し始めました。このブログを書き始めた当初の目的も Python の勉強のためでした *2 。当時、Python を勉強しようと思って自分なりに調べた結果、Python チュートリアル と…

Pythonで5分でシステム運用に役立つレシピ

元ネタ: Pythonで5分で便利なことをするレシピ - 西尾泰和のはてなダイアリーお正月なので(?)、挑戦してみます。Python に限ったお話ではないですが、スクリプト言語の嬉しさを実感するのは文字列の扱いがメインのときではないでしょうか。緊急でちょっとデ…

virtualenvwrapper のドキュメントを翻訳しました

モダンな Python の開発環境で virtualenv/virtualenvwrapper は必須らしいです。 http://labs.unoh.net/2009/12/2009python.html Python開発環境 | Go for it! Good night, Posterous virutualenvとvirtualenvwrapperとpipを使う - YAMAGUCHI::weblog Pytho…

軽量、シンプルな Web フレームワーク bobo を使ってみよう

@ymotongpoo (Python製テンプレートエンジンあれこれとJinja2 - YAMAGUCHI::weblog) さんから Python Web フレームワーク アドベントカレンダー2010 のバトンがまわってきました *1 *2 。今年のお題は「Web フレームワーク」です。普通だったら何を書こうか…

はてなアイデアで要望を行う

はてなダイアリーへの要望 によると はてなアイデア で要望や不具合報告を行うようです。はてなアイデア - はてなダイアリーのスーパー pre 記法(シンタックス・ハイライト)で Python の with 文をハイライトしてくださいPython の予約語は __import__ で…

コマンドラインオプションのテストを書く

見てしまった、、、 で、optparseをテストしたいのだが、どうすんべ2010-11-24 17:47:14 via Echofon 昨日の今日なのでやりましょう、頼まれていませんがー(> テスト対象のサンプルとして http://d.hatena.ne.jp/t2y-1979/20101124/1290534464 から optparse…

ログ解析ツールを作る

ログ解析ツールを作っててノッテきてつぶやいたら、 ログ解析ツールを python で書いているときの嬉しさを誰かに共有したい、本当に簡潔に書けて便利なんだよ2010-11-18 20:29:14 via TweetDeck @t2y 例題とかみてみたいです。2010-11-18 22:37:54 via TwitB…

言語設計者たちが考えること

プログラミングは創造性を発揮できる創作活動の1つです。機能を実現したり、決められた仕様通りに出力すること自体は単なるお仕事の作業でしかありません。しかし、要件を満たすためにどう設計、抽象化してメンテナンスし易く拡張性の高い仕組みに創り上げる…

PyQt4 の QtWebKit モジュールを使う

Python Hack-a-thon 2010.11 : ATND で @ransui による PyQt4 のハンズオンに参加してきました。お題は以下の通りです。 「メディアプレーヤ&スクリーンショット作成機能付き俺様ブラウザを作りながらPyQt4の基礎を学ぶ」 GUIとPhononというマルチメディア…

エキスパートPythonプログラミング読書会04に参加しました

エキスパートPythonプログラミング読書会04 : ATND に参加してきました。今回は第3章のクラスのお話です。私は小規模開発や普通のアプリケーション開発にしか携わったことがないのですが、wikipedia:オブジェクト指向プログラミング を行うところの、本質的…

エキスパートPythonプログラミング読書会03に参加しました

エキスパートPythonプログラミング読書会03 : ATND に参加して講師のお手伝いをしてきました。2章の後半、以下の内容を行いました。 イテレータとジェネレータ itertools モジュール デコレータ with と contextlib エキ Py 読書会02 2章後半最後にこんな質…

pypoppler を使用して PDF からテキストを抽出する

最近の Linux だと Poppler というライブラリを使用して PDF の処理を行っているようです *1 。Poppler をインストール(Fedora13 だと poppler-utils パッケージ)すると pdftotext というコマンドが付属していて、そのコマンドからテキスト抽出することもで…

PyQt4 のメインウィンドウの構成を把握する

Qt でフォーム画面を作成する際に QDialog や QWidget でちょっとした画面を作成することもできますが、メイン画面は QMainWindow で作成します。Qt Main Window Framework によると、QMainWindow にはメニューバー、ツールバー、ドックウィジェット、中央ウ…

PyQt4 のスロットを関数名で対応付ける

Qt Designer を使用してウィンドウやフォームを作成すると .ui という XML ファイルが作成されます。そして pyuic4 というコマンドを使用して .ui ファイルから uic モジュール(Python モジュール)へ変換することができます。ここで生成された uic モジュー…

PyQt4 の UI 操作のマルチスレッド処理

PyQt4 のシグナル/スロットの新旧スタイルの違いを比較するサンプル - forest book で紹介したサンプル、指定したディレクトリ配下にあるファイル数を数える簡単なアプリケーションでは、大量のファイルがあるディレクトリを指定した場合、全てのファイル数…

PyQt4 のシグナル/スロットの新旧スタイルの違いを比較するサンプル

wikipedia:Qt ではオブジェクト間通信、具体的には「ボタンをクリックした」「ラベルの表示を変更する」といったオブジェクトやウィジェットの状態の変更を通知する仕組みにシグナルとスロットを使用します。シグナルとスロットの詳細はここ *1 を参照してく…

エキスパートPythonプログラミング読書会02に参加しました

エキスパートPythonプログラミング読書会02 : ATND に参加して講師のお手伝いをしてきました。今回の読書会でお話できたのは第2章のうち以下の内容だけでした。 リスト内包表記 イテレータとジェネレータ ジェネレータ コルーチン ジェネレータ式 準備不足で…

0と1を次々返す方法の実装

0と1を次々返す方法 - When it’s ready. を考えてみました。私だったらこう実装するかな。 #!/usr/bin/env python # -*- coding: utf-8 -*- from operator import not_ def toggle(obj): while True: obj = not_(obj) yield obj def main(): g = toggle(True…

2010/8/12 から 2010/9/1 までの更新

以下の標準モジュールのチュートリアルを翻訳しました。 mailbox – メールアーカイブのアクセスと操作 - Python Module of the Week mhlib – MH メールボックスと連携する - Python Module of the Week os.path – プラットホーム独自のファイル名を操作する …