読者です 読者をやめる 読者になる 読者になる

Blank File

LinuxとかPythonとかVimとか、趣味でいじる感じで

Python3 の async/await/yield from

お題「シンタックス・ハイライト機能で対応してほしい言語」

マイお題への回答ってブログに書けばいいんでしょうか? よくわからない・・・

とりあえず、Python3で追加された yield from 文と 3.5 で追加された async/await が正しくハイライトされないようなので、対応していただけると嬉しいです!

import asyncio

async def a():
    await asyncio.sleep(1)

def b():
    yeild from asyncio.sleep(1)

# yield は OK っぽい
def i_loop(n: int) -> int:
    for i in range(n):
        yield i

他に、async withasync for も追加されました。 (サンプルコードはpythonのドキュメントより)

async for TARGET in ITER:
    BLOCK
else:
    BLOCK2

async with EXPR as VAR:
    BLOCK

8. 複合文 (compound statement) — Python 3.5.1 ドキュメント

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

Python wdom

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

基本的な機能は前回の記事をご参照ください。 昨日、前回の記事にstyle属性の記述やJavaScriptを実行する方法なども追加しています。

h-miyako.hatenablog.com

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

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

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

  • [2016/05/03 追記]: デフォルトのテーマのimport方法を変更しました
続きを読む

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

GitLab CI Python MkDocs

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

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

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

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

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

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

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

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

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

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

続きを読む

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

Python

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

github.com

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

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

もしバグを発見したらGitHubのIssueに報告していただけると助かります。 (できれば英語でお願いします(難しければタイトルだけでも))

続きを読む

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

Python Vim

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

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

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

続きを読む