2023年9月20日水曜日

Pythonのvalidatorsを使ってみる

Pythonのvalidatorsを使ってみる

概要

validators ライブラリは複雑な正規表現を使わずにいろいろなフォーマットのバリデーションが行える便利ライブラリです

今回は URL のバリデーションだけですが使って見ました

環境

  • macOS 13.5.2
  • Python 3.11.3
    • validators 0.22.0

インストール

  • pipenv install validators

サンプルコード

成功している場合は True で失敗している場合は False ではなく ValidationError のオブジェクトが返ってきます

まだまだ開発段階ですべての URL スキームに対応しているわけではないので注意してください

import validators

# OK
print(validators.url("https://kakakikikeke.com"))
print(validators.url("http://localhost.dev"))
print(validators.url("http://localhost", simple_host=True))
print(validators.url("http://localhost:8000", simple_host=True, may_have_port=True))

# Error
print(validators.url("localhost"))  # schema がない
print(validators.url("localhost:8000", simple_host=True, may_have_port=True))  # schema がない
print(validators.url("http://localhost:8000"))  # ポートが指定されている (my_have_port=True がない場合
print(validators.url("mqtt://localhost:1883", simple_host=True, may_have_port=True))  # mqtt スキームはサポートしていない https://github.com/python-validators/validators/blob/master/src/validators/url.py#L41

最後に

他にもいろいろなバリデーションに対応しています
メールフォーマットをチェックした IP アドレスフォーマットのチェック、ホスト名チェックなども行えます

正規表現を愚直に書くよりかはこちらに寄せるほうがコードとしては読みやすくなるかなと思います

そのうち uri というメソッドができるのでそっちでいろいろなスキームに対応できるかなと思います 参考

参考サイト

0 件のコメント:

コメントを投稿