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 with
と async for
も追加されました。
(サンプルコードはpythonのドキュメントより)
async for TARGET in ITER: BLOCK else: BLOCK2 async with EXPR as VAR: BLOCK
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 編集]: 最近のアップデートを反映
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上で回せるので、
まで一つのサービスで完結できました。
GitLabのアカウントはGitHubの認証で簡単に作れるので、例えば英語ドキュメントの翻訳プロジェクトなどでは使ってみるのもありではないでしょうか。
ということで簡単に手順を紹介します。
ちなみに、思いついてからGitLabのアカウントを作るような状態でしたが、一時間足らずでリポジトリを作ってページを表示するまでできました。
- 試しに作ったリポジトリ: https://gitlab.com/miyakogi/test-doc
- 出力されたページ: https://miyakogi.gitlab.io/test-doc/index.html
PythonでブラウザベースのGUIアプリを作るライブラリ、WDOMの紹介
WDOMというPythonでブラウザベースのGUIアプリを作るためのライブラリを作っています。 ちょっとしたGUIツールを作ろうと思った時に満足できるものがなかったので作りました。
miyakogi/wdom: DOM manipulation library for python
WDOMのターゲットは、あくまでブラウザベースのデスクトップGUIアプリです。 ローカルにWebサーバを立ち上げてブラウザ上に表示しますが、Webフレームワークではありません。 ちなみに、拙作LiveMark.vimもこれを使っています。
まだ開発中なので細かいバグはあると思いますし、後方互換性を崩すような変更が入る可能性もありますが、そろそろ試してもらえるくらいにはなってきたので使い方を中心に紹介します。
もしバグを発見したらGitHubのIssueに報告していただけると助かります。
続きを読む