2021年9月8日

Grail って何?

こちらで webbrowser ライブラリを紹介しましたが、そのソースコードを見てみると、対応しているブラウザが分かります。
色々なブラウザがサポートされており、(少なくとも私が)聞いたことのないブラウザもあります。

中でも目を引いたのが Grail です。
完全に初耳だったのですが、調べてみると、Python で書かれたブラウザとのことです。冷静に考えて Python がブラウザの実装言語(特にレンダリング)に向いているとは思えませんが、かつてはそのようなブラウザが存在したということが驚きです。

残念ながら(?)、1999年で開発は停止しており、webbrowser ライブラリでも

# Grail, the Python browser. Does anybody still use it?
if shutil.which("grail"):
    register("grail", Grail, None)
と書かれています。

2020年7月25日

Python 3.8 の細かな改善点

Python 3.8 の変更点をまとめたページに、以下のような内容があります。


どういうことかと言うと、以下のように finally節に continue があると、Python 3.7 まではコンパイルエラーが発生していました。
while True:
    try:
        pass
    finally:
        continue

SyntaxError: 'continue' not supported inside 'finally' clause
普通に考えれば、continue により while まで戻るのが当然です。が、実装上の都合として、コンパイルエラーが起こっていました。随分淡白な対応なように思います。また、break や return は finally節の中でも動作するわけで、continue のみコンパイルエラーというのは意外過ぎる対応であると言えます。

Python 3.8 からは、finally節の中の continue が許可されるようになりました。言語として、少し改善されたのではと思います。

2020年7月19日

続・TOMLを使ってみよう

以前 こちらの記事 で、データ記述言語 TOML と、TOML に関する Python の状況について述べました。
この記事より数年が経ち、現在どのような状況になっているかについて、改めて述べたいと思います。


まず、TOML の変化ですが、

  • Version 1.0 が出た
  • リストに複数の型を含めることができるようになった
となります。

前回の記事 時点ではまだ Version 0.4 でしたが、無事に正式版 1.0 がリリースされています。
また、リストに1つの型しか適用できないという仕様は、データを格納する目的で TOML を使用する際の大きな足かせになることが考えられましたが、Version 1.0 への更新過程で撤廃されました。

この2点を考えると、TOML は十分実用可能段階であり、JSON からの置き換えを積極的に進められる状態にあると言えます。


続いて Python 側の変化ですが、

  • pip でインストールできる toml モジュールがある
となります。

前回の記事 当時は、1ファイルからなるモジュールを入手可能でしたが、細かなバグがあちこちにあり、実使用には少々難がありました。現在の toml モジュールを試したところ、私が気づいてたバグは全て修正されていました。

Python 側の TOML への対応も十分準備ができていると言えます。


あとは、toml モジュールが標準へ昇格すれば、いよいよ大手を振って TOML の時代が来たと言えることになります。