2023年9月21日木曜日

Python の validators でサポートしていないプロトコルの URL をバリデーションする方法

Python の validators でサポートしていないプロトコルの URL をバリデーションする方法

概要

無理やり対応しているプロトコルに変換して validators.url に投げます

環境

  • macOS 13.5.2
  • Python 3.11.3
    • validators 0.22.0

サンプルコード

import validators


def replace_protocol(url):
    if url.startswith("mqtt"):
        return mqtt_url.replace("mqtt", "http")
    elif url.startswith("mqtts"):
        return mqtt_url.replace("mqtts", "https")
    else:
        raise ValueError()
    

mqtt_url = "mqtts://localhost:1884"
http_url = replace_protocol(mqtt_url)

print(validators.url(http_url, simple_host=True, may_have_port=True))

最後に

苦肉の策としてこんな感じで対応していないプロトコルでも URL バリデーションできます
本当は validators の対応を待つのがいいかなと思います

0 件のコメント:

コメントを投稿