2013-12-01から1ヶ月間の記事一覧

2013.12 版 python2.4-3.3 までのテストツール対応状況

ここしばらく python 2.5 に対応した python コードを書いていなかったので気にもとめませんでしたが、 diff-highlight を書くときに python 2.4, 2.5 対応でハマったことについてまとめます。 ちなみに diff-highlight を python 2.4, 2.5 に対応させたのは…

git と mercurial の diff を美しく表示するために必要なたった 1つの設定 (原題: diff-highlight 1.0.0 をリリースしました)

Git の diff を美しく表示するために必要なたった 1 つの設定 #git にインスパイアされて作り始めた diff-highlight にあれこれ手を入れ、1.0.0 として正式リリースしました。 diff-highlight と git-contrib/diff-highlight の違い 差分の中で +/- の行数が…

Python のコードを取り込むときの注意点 (Python のライセンスについて)

hg-diff-highlight を実装するにあたって、difflib.Differ クラスの実装を一部コピーしました。Python のライブラリをコピーして自分のプロダクトに取り込むので、 どのように扱えばいいのかライセンス上問題ないか聞いて & 調べてみました。Python の標準ラ…

difflib の使い方 〜hg-diff-highlight を例にして〜

hg-diff-highlight という Mercurial 拡張を作った話を書いたのですが、 このエントリではその実装について、特に内部で使っている difflib の使い方についてご紹介します。 hg との連携部分 hg-diff-highlight では mercurial の diff 計算部分には手を入れ…

続・Mercurial の diff を美しく表示するために必要なたった 1つの設定

つい一昨日、Mercurial の diff を美しく表示するために必要なたった 1つの設定 という記事を書いたばかりですが、 diff-highlight の動作を見ているといくつか気になるところを見つけてしまいました。 diff-highlight のイケてないところ 差分の中で +/- の…

シェルスクリプトで出力先がターミナルかどうかを判定する

先ほどの記事 でエスケープシーケンスまわりについて調べている時に、 「出力先がターミナル(tty)の場合」と「出力先がファイル、その他の場合」でエスケープシーケンスを出し分けする方法が気になりました。たとえば、ls コマンドでは $ ls --color=auto と…

Mercurial の diff を美しく表示するために必要なたった 1つの設定

このエントリは Mercurial Advent Calendar 2013 の17日目です。 タイトルは Git の diff を美しく表示するために必要なたった 1 つの設定 #git のパクリです。すみません。↑の記事を読んで、単語単位で diff 表示のできる git + diff-highlight が羨ましく…

screen の上で 256色の vim を使う

tmux 使えよって罵倒されそうですが、未だに screen を使っています。 ようやく vim のシンタックスハイライトを有効にして生活し始めたのですが、 開発に使っているさくら VPS に設定を反映したところ 16色モードで動いていると判断されているため jellybea…

vim のシンタックスハイライトと自分なりに付き合う

僕は長らく vim を使っている(おそらく 14,5年)のですが、常にシンタックスハイライトをオフにして使っていました。 オフにしている理由は、特にメリットを感じなかったことと、もうひとつは編集時のハイライトの挙動です。 vim のハイライトは編集モードで…

vim で python を書いてる時に flake8 をいい感じに実行する

vim 素人の @tk0miya です。 いままで .vimrc が 1バイト(改行文字)しかないってバカにされていたんですが、ようやくその呪縛を解く時が来ました。python のリントツールとしてよく使われている flake8 を編集時に実行しようと思っていろいろ調べました。 適…

schema2rst 0.9.0 をリリースしました。

一ヶ月ほど前から schema2rst をちょこちょことメンテナンスしています。 はじめは flake8 でコーディング規約のチェックをかけてみただけだったはずなのですが、 その流れであれこれいじっているうちに一ヶ月経ってしまいました。まだドキュメントや実装が…

FakeSphinx は Sphinx 1.2系では動かない

昨日見かけた FakeSphinx を自分のテストコードの参考にしようといじっていたのですが、 その際に FakeSphinx は Sphinx 1.2系では動かないことが判明しました。 File "/Users/tkomiya/work/sphinx-contrib/sadisplay/tests/test_directive.py", line 29, in…

Sphinx 拡張のテストを書く

今日の Sphinx+翻訳 Hack-a-thon のテーマとして、Sphinx 拡張のテーマを書くというのをこつこつやってました。 いままで sphinxcontrib.blockdiag に始まり、sphinxjp.shibukawa に至るまでいくつも Sphinx 拡張を書いてきたのですが、 よく考えるとまとも…

testing.redis を作りました。

testing.* シリーズも、mysqld, cassandra, postgresql と自分が使うであろうものは一段落していたのですが、 隣の同僚がついでに redis やっちゃえよ的なことを言ってきたので、勢いそのまま testing.redis を作りました。このモジュールを作る際にはじめて…

drone.io で Java7 を使う

ここ数日、testing.mysqld や testing.postgresql のコード整理をしていた関係で、 ついでに testing.cassandra もこつこつ直していました。 バグを潰したり、インターフェースを統一したり、python 2.6 に対応してたりしているので、 Python と Cassandra …

python 2.6: 僕と unittest と時々 unittest2

testing.mysqld に @skipIfNotInstalled というデコレータを追加しました。 名前の通り、MySQL がインストールされていない場合にテストをスキップするというものです。 もちろん testing.postgresql にも入っています。(testing.cassandra はこのあと手がけ…

blockdiag の parser を書き直してて気づいた、graphviz の妙な表現集

秋口から blockdiag の parser を書き換えていました。 blockdiag の parser は funcparserlib の graphviz parser (dot parser) のサンプルがベースになっており、 当初の実装はとてもシンプルだったのですが、blockdiag のために文法を足していく中で見通…

testing.postgresql をリリースしてました。

PyPI に testing.postgresql をリリースしました。 以前作った testing.mysqld と testing.cassandra の PostgreSQL 版ですね。 なにをするもの? テストを実行する際に PostgreSQL を起動し、終わった後に終了をしてくれるライブラリです。README の例を持っ…

buildout2.x で appfy.recipe.gae を動かす方法

昨日、@yuitowest に Interactive Shell for blockdiag のデザイン調整を依頼したときに気づいたのですが、 buildout で Google AppEngine の開発環境を整えるためのレシピである appfy.recipe.gae が buildout 2.x系では動作しなくなっていました。具体的に…

#pyfes 2013.11 で教えてもらった pathlib が python2.6 で使えなくて愕然とした話。

タイトルで言い切ってしまった。昨日は Python Developers Festa 2013.11 に参加してきました。 時間までに発表資料を作るタイムトライアル系のイベントだとずっと勘違いしていたのですが、 今回は話すネタがなかったのでまったり過ごすことができました。午…