urlstd.parse.HostValidator#

class urlstd.parse.HostValidator

Bases: object

Validates a host string.

Examples

>>> HostValidator.is_valid('a..b')
False
>>> HostValidator.is_valid('127.0.0x0.1')
False
>>> HostValidator.is_valid('[1::1::1]')
False
>>> validity = ValidityState()
>>> HostValidator.is_valid('a..b', validity=validity)
False
>>> validity
ValidityState(valid=False, error_types=['domain-to-ASCII'],
descriptions=["domain-to-ASCII: Unicode ToASCII records an error: domain='a..b' errors=UIDNA_ERROR_EMPTY_LABEL (0x0001)"],
validation_errors=1, disable_logging=True)
>>> HostValidator.is_valid('127.0.0x0.1', validity=validity)
False
>>> validity
ValidityState(valid=False, error_types=['IPv4-non-decimal-part'],
descriptions=["IPv4-non-decimal-part: IPv4 address contains numbers expressed using hexadecimal or octal digits: '0x0' in '127.0.0x0.1'"],
validation_errors=1, disable_logging=True)
>>> HostValidator.is_valid('[1::1::1]', validity=validity)
False
>>> validity
ValidityState(valid=False, error_types=['IPv6-multiple-compression'],
descriptions=["IPv6-multiple-compression: IPv6 address is compressed in more than one spot: '1::1::1'"],
validation_errors=1, disable_logging=True)

Methods:

is_valid(host, **kwargs)

Returns True if host is a valid host string (a domain string and an IP address string).

is_valid_domain(domain, **kwargs)

Returns True if domain is a valid domain string.

is_valid_ipv4_address(address, **kwargs)

Returns True if address is a valid IPv4-address string.

is_valid_ipv6_address(address, **kwargs)

Returns True if address is a valid IPv6-address string.

is_valid_opaque_host(host, **kwargs)

Returns True if host is a valid opaque-host string.