Pythonのパッケージ・仮想環境・プロジェクト管理ツールいろいろ

Pythonのパッケージや仮想環境、プロジェクトを管理するツールを色々紹介します。 自分用の備忘録も兼ねているので私のコメントにはかなり主観が入っています。

色々紹介しますが、基本的には pip と venv (virtialenv) で十分です。 これらで不便を感じていないのであれば、わざわざ他のツールを使う必要はないと思います。 不満を感じた時にその不満を解消するツールを試してみるのがいいのではないでしょうか。

more ...


Pythonの非同期な関数を同期的に実行できるライブラリ、syncerを作りました

Python 3.5 から使える async/await 記法ですが、テストの際などは非同期な関数を実行するのにひと手間必要で面倒でした。 そこで、非同期な関数を同期的に実行するライブラリ、syncer を作りました。

syncerは @sync というデコレータ用の関数をひとつだけ提供する非常に小さなライブラリです。 主にテストでの利用を想定していますが、テスト以外でも汎用的に使えるライブラリになっています。

more ...



WDOMのテーマ機能と起動オプションの紹介

先日紹介したWDOMの開発者向け機能の紹介です。 CSSフレームワークを使ったテーマ機能と起動オプションについて紹介します。

基本的な機能は前回の記事をご参照ください。

WDOMに色々更新を行ったので、ぜひ最新のバージョンでお試し下さい。 まだPyPIに登録してない&バージョン番号をきちんと管理していないので、pip install -Uだと更新されません。 お手数ですが一旦アンインストールしてインストールし直してください。

pip uinstall -y wdom && pip install git+http://github.com/miyakogi/wdom

前回の記事を見なおしてみると、色々夢は語っていましたが、ほとんど実現できていないですね・・・悲しい・・・ 前回はテキストオンリーで寂しい感じだったので、今回は視覚に訴える感じを目指して書きます。

  • [2016/05/03 追記]: デフォルトのテーマのimport方法を変更しました
  • [2017/08/11 編集]: 最近のアップデートを反映
more ...

GitLabでドキュメントのビルドとホスティング

完全に思いつきで、GitLabでドキュメントをgit管理してCIでビルドしてGitLab Pagesで表示する、というのをやってみました。

GitLabはGitHubみたいなサービスです。 (というかGitHubクローンで、以前はあまりにも似過ぎてたためになんか色々あったらしい、というウワサをどこかで目にしたような・・・?) (そのせいかわかりませんが、プルリクエストはMerge Requestという名前のようですね・・・)

GitHubでも似たようなことはできますが、

  • Travis CI(などのCIサービス)を使ってgh-pagesブランチにプッシュする
  • Read the Docsを使ってそっちでビルド&表示

などいずれにしろ別サービスとの連携が必要になってしまいます。 ローカルでhtmlを作って自分でpushすることもできますが、それは何か少し負けた気がするので却下です。

GitLabはCIもGitLab上で回せるので、

  • リポジトリに変更をpush
  • ビルドしてHTML(静的ページ)生成
  • ページをホスティング

まで一つのサービスで完結できました。

GitLabのアカウントはGitHubの認証で簡単に作れるので、例えば英語ドキュメントの翻訳プロジェクトなどでは使ってみるのもありではないでしょうか。

ということで簡単に手順を紹介します。

ちなみに、思いついてからGitLabのアカウントを作るような状態でしたが、一時間足らずでリポジトリを作ってページを表示するまでできました。

more ...

PythonでブラウザベースのGUIアプリを作るライブラリ、WDOMの紹介

WDOMというPythonでブラウザベースのGUIアプリを作るためのライブラリを作っています。 ちょっとしたGUIツールを作ろうと思った時に満足できるものがなかったので作りました。

miyakogi/wdom: DOM manipulation library for python

WDOMのターゲットは、あくまでブラウザベースのデスクトップGUIアプリです。 ローカルにWebサーバを立ち上げてブラウザ上に表示しますが、Webフレームワークではありません。 ちなみに、拙作LiveMark.vimもこれを使っています。

まだ開発中なので細かいバグはあると思いますし、後方互換性を崩すような変更が入る可能性もありますが、そろそろ試してもらえるくらいにはなってきたので使い方を中心に紹介します。

もしバグを発見したらGitHubのIssueに報告していただけると助かります。

more ...

Vimのパッケージをインストール・アップデートしてヘルプ作るスクリプトを書きました

先日からVim本体のパッケージ機能を使い、プラグインマネージャは使わない生活をしています。 とはいえプラグインのアップデートやヘルプの生成は手作業では面倒なので、そのあたりを処理してくれるPythonのスクリプトを書きました。

始めはdotfileをgit管理(今まではhgで管理してbitbucketに置いてました)にしてプラグインをsubmoduleにすれば十分かと思ったのですが、やってみたら意外と面倒でした。 Pythonで書いたのは、自分の場合VimがあるところならまずPythonもあるというのと、3.4で入ったpathlibというパスをいい感じに扱えるライブラリを使ってみたかったからです。

この記事を書きながらログ周りやオプションを整備してリファクタリングもしましたが、あくまで自分用に書いたスクリプトなので機能は最低限です。 gitにしか対応していませんが、パッケージ機能を試したい方はもし良ければお使いください。 なお、Vimのパッケージ機能についてはヘルプや先日の記事をご参照ください。

more ...

Vimのパッケージ機能を試してみました

最近dein.vimがバズったりVim本体にパッケージ機能が追加されたり、Vim界隈は第二次プラグインマネージャ戦争の気配に包まれています [要出典]。 dein.vimはすでにいくつか紹介記事がありますが、本体の方はあまり情報を見かけかなかったので先日試した結果を含めて紹介します。

この機能は入ったばかりなので、今後仕様の変更があるかもしれませんし、バグもあるかもしれませんし、(たぶん)機能追加もあると思います。 記事の内容が古くなっているかもしれないので、日付とVimのバージョンをよく確認してください。

試す人は本体のデバッグに自分のVimを捧げる気持ちでいきましょう。 バックアップ重要です。

more ...