HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/repo_cli/utils/validators.py
import argparse
import datetime
from urllib.parse import urlparse

import requests


def check_cve_score(value):
    try:
        value = float(value)
        if value < 0 or value > 10:
            raise ValueError
        return value
    except ValueError:
        raise argparse.ArgumentTypeError("CVE Score has to be between 0.0 and 10.0")


def check_date_format(value):
    try:
        datetime.datetime.strptime(value, "%Y-%m-%d")
        return value
    except ValueError:
        raise argparse.ArgumentTypeError("Date has to be in correct YYYY-MM-DD format")


def check_url(value):
    result = urlparse(value)
    if not result.netloc or not result.scheme:
        raise argparse.ArgumentTypeError("URL is not correct")
    return value


def check_url_exists(url):
    try:
        response = requests.get(url)
        response.raise_for_status()
        return True
    except:
        return False


def check_proxy_url(value):
    if value == "":
        return value
    check_url(value)
    if not value.lower().startswith("http://"):
        raise argparse.ArgumentTypeError("URL must start with http://")
    return value