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

私が歌川です

@utgwkk が書いている

10m5s などの時間を表す文字列をパースするライブラリを作った

技術

github.com

コマンドラインから、--after=5m みたいな感じで渡される、時間を表す文字列をうまくパースするライブラリ py-timeparser を作りました。

PyPI にも上げたので、pip install py-timeparser でインストールできます。 timeparser っていうライブラリもありますが、別物なので注意しましょう。

pypi.python.org

/(([0-9]+)h(our)?)(([0-9]+)m(in(ute)?)?)(([0-9]+)(s(ec(ond)?)?)?)/ っていう正規表現にマッチする文字列をパースします*1。要するに、

  • 時間は hour, h のいずれかを単位として指定
  • 分は minute, min, m のいずれかを指定
  • 秒は sec, s または単位なし
  • 時間・分・秒の順に並べる

です。

使い方

import timeparser
print(timeparser.parse('10min')) # 600

疑問

  • こういう文字列をパースするときのベストプラクティスってないんですか
  • PyPI にパッケージ登録するのに HTTP 通信しかできないのどうにかなりませんか
    • 生パスワードを送信・保存するの怖すぎる
    • SSH にも対応しているって聞いたけどどうやるんだろう

*1:これもうちょっどどうにかならないかな