Validators Submodule¶
- class rfc3986.validators.Validator¶
Object used to configure validation of all objects in rfc3986.
New in version 1.0.
Example usage:
>>> from rfc3986 import api, validators >>> uri = api.uri_reference('https://github.com/') >>> validator = validators.Validator().require_presence_of( ... 'scheme', 'host', 'path', ... ).allow_schemes( ... 'http', 'https', ... ).allow_hosts( ... '127.0.0.1', 'github.com', ... ) >>> validator.validate(uri) >>> invalid_uri = rfc3986.uri_reference('imap://mail.google.com') >>> validator.validate(invalid_uri) Traceback (most recent call last): ... rfc3986.exceptions.MissingComponentError: ('path was required but missing', URIReference(scheme=u'imap', authority=u'mail.google.com', path=None, query=None, fragment=None), ['path'])
- Validator.allow_schemes(*schemes)¶
Require the scheme to be one of the provided schemes.
New in version 1.0.
- Parameters
schemes – Schemes, without
://
that are allowed.- Returns
The validator instance.
- Return type
- Validator.allow_hosts(*hosts)¶
Require the host to be one of the provided hosts.
New in version 1.0.
- Parameters
hosts – Hosts that are allowed.
- Returns
The validator instance.
- Return type
- Validator.allow_ports(*ports)¶
Require the port to be one of the provided ports.
New in version 1.0.
- Parameters
ports – Ports that are allowed.
- Returns
The validator instance.
- Return type
- Validator.allow_use_of_password()¶
Allow passwords to be present in the URI.
New in version 1.0.
- Returns
The validator instance.
- Return type
- Validator.check_validity_of(*components)¶
Check the validity of the components provided.
This can be specified repeatedly.
New in version 1.1.
- Parameters
components – Names of components from
Validator.COMPONENT_NAMES
.- Returns
The validator instance.
- Return type
- Validator.forbid_use_of_password()¶
Prevent passwords from being included in the URI.
New in version 1.0.
- Returns
The validator instance.
- Return type
- Validator.require_presence_of(*components)¶
Require the components provided.
This can be specified repeatedly.
New in version 1.0.
- Parameters
components – Names of components from
Validator.COMPONENT_NAMES
.- Returns
The validator instance.
- Return type
- Validator.validate(uri)¶
Check a URI for conditions specified on this validator.
New in version 1.0.
- Parameters
uri (rfc3986.uri.URIReference) – Parsed URI to validate.
- Raises
MissingComponentError – When a required component is missing.
UnpermittedComponentError – When a component is not one of those allowed.
PasswordForbidden – When a password is present in the userinfo component but is not permitted by configuration.
InvalidComponentsError – When a component was found to be invalid.