$34 GRAYBYTE WORDPRESS FILE MANAGER $75

SERVER : in-mum-web1330.main-hosting.eu #1 SMP Mon Feb 10 22:45:17 UTC 2025
SERVER IP : 91.108.106.137 | ADMIN IP 216.73.216.215
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/python311/lib/python3.11/site-packages/validators/

HOME
Current File : /opt/alt/python311/lib/python3.11/site-packages/validators//uri.py
"""URI."""

# Read: https://stackoverflow.com/questions/176264
# https://www.rfc-editor.org/rfc/rfc3986#section-3

# local
from .email import email
from .url import url
from .utils import validator


def _file_url(value: str):
    if not value.startswith("file:///"):
        return False
    return True


def _ipfs_url(value: str):
    if not value.startswith("ipfs://"):
        return False
    return True


@validator
def uri(value: str, /):
    """Return whether or not given value is a valid URI.

    Examples:
        >>> uri('mailto:example@domain.com')
        # Output: True
        >>> uri('file:path.txt')
        # Output: ValidationError(func=uri, ...)

    Args:
        value:
            URI to validate.

    Returns:
        (Literal[True]): If `value` is a valid URI.
        (ValidationError): If `value` is an invalid URI.
    """
    if not value:
        return False

    # TODO: work on various validations

    # url
    if any(
        # fmt: off
        value.startswith(item) for item in {
            "ftp", "ftps", "git", "http", "https",
            "irc", "rtmp", "rtmps", "rtsp", "sftp",
            "ssh", "telnet",
        }
        # fmt: on
    ):
        return url(value)

    # email
    if value.startswith("mailto:"):
        return email(value.lstrip("mailto:"))

    # file
    if value.startswith("file:"):
        return _file_url(value)

    # ipfs
    if value.startswith("ipfs:"):
        return _ipfs_url(value)

    # magnet
    if value.startswith("magnet:?"):
        return True

    # telephone
    if value.startswith("tel:"):
        return True

    # data
    if value.startswith("data:"):
        return True

    # urn
    if value.startswith("urn:"):
        return True

    # urc
    if value.startswith("urc:"):
        return True

    return False

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
5 Sep 2025 9.32 AM
root / 996
0755
__pycache__
--
8 May 2024 6.34 PM
root / root
0755
i18n
--
8 May 2024 6.34 PM
root / root
0755
__init__.py
1.86 KB
8 May 2024 6.34 PM
root / root
0644
_extremes.py
1.014 KB
8 May 2024 6.34 PM
root / root
0644
_tld.txt
9.401 KB
8 May 2024 6.34 PM
root / root
0644
between.py
2.387 KB
8 May 2024 6.34 PM
root / root
0644
btc_address.py
1.616 KB
8 May 2024 6.34 PM
root / root
0644
card.py
5.631 KB
8 May 2024 6.34 PM
root / root
0644
country.py
14.569 KB
8 May 2024 6.34 PM
root / root
0644
cron.py
2.228 KB
8 May 2024 6.34 PM
root / root
0644
domain.py
2.401 KB
8 May 2024 6.34 PM
root / root
0644
email.py
2.723 KB
8 May 2024 6.34 PM
root / root
0644
encoding.py
1.337 KB
8 May 2024 6.34 PM
root / root
0644
finance.py
3.222 KB
8 May 2024 6.34 PM
root / root
0644
hashes.py
3.21 KB
8 May 2024 6.34 PM
root / root
0644
hostname.py
4.046 KB
8 May 2024 6.34 PM
root / root
0644
iban.py
1.054 KB
8 May 2024 6.34 PM
root / root
0644
ip_address.py
4.341 KB
8 May 2024 6.34 PM
root / root
0644
length.py
1.45 KB
8 May 2024 6.34 PM
root / root
0644
mac_address.py
0.845 KB
8 May 2024 6.34 PM
root / root
0644
py.typed
0 KB
8 May 2024 6.34 PM
root / root
0644
slug.py
0.732 KB
8 May 2024 6.34 PM
root / root
0644
uri.py
1.777 KB
8 May 2024 6.34 PM
root / root
0644
url.py
7.231 KB
8 May 2024 6.34 PM
root / root
0644
utils.py
3.103 KB
8 May 2024 6.34 PM
root / root
0644
uuid.py
1.039 KB
8 May 2024 6.34 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF