FancyValidator

FancyValidator is the (abstract) superclass for various validators and converters. A subclass can validate, convert, or do both. There is no formal distinction made here.

Validators have two important external methods:

There are five important methods for subclasses to override, however none of these have to be overridden, only the ones that are appropriate for the validator:

Validators should have no internal state besides the values given at instantiation. They should be reusable and reentrant.

All subclasses can take the arguments/instance variables:

Messages

badType:
The input must be a string (not a %(type)s: %(value)r)
empty:
Please enter a value
noneType:
The input must be a string (not None)

Attributes

a gettextargs

{}

a strip

False

a use_builtins_gettext

True

a accept_python

True

a __singletonmethods__

('to_python', 'from_python', 'message', 'all_messages', 'subvalidators')

a declarative_count

4

a __unpackargs__

()

a compound

False

a not_empty

False

a __mutableattributes__

()

a repeating

False

Methods

f __initargs__(self, new_attrs) ...

f __call__(self, *args, **kw) ...

f __classinit__(cls, new_attrs) ...

f __init__(self, *args, **kw) ...

f __sourcerepr__(self, source, binding=None) ...

f message(self, msgName, state, **kw) ...

f __classsourcerepr__(cls, source, binding=None) ...

f all_messages(self) ...

Return a dictionary of all the messages of this validator, and any subvalidators if present. Keys are message names, values may be a message or list of messages. This is really just intended for documentation purposes, to show someone all the messages that a validator or compound validator (like Schemas) can produce.

@@: Should this produce a more structured set of messages, so that messages could be unpacked into a rendered form to see the placement of all the messages? Well, probably so.

f subvalidators(self) ...

Return any validators that this validator contains. This is not useful for functional, except to inspect what values are available. Specifically the .all_messages() method uses this to accumulate all possible messages.

f to_python(self, value, state=None) ...

f from_python(self, value, state=None) ...

f is_empty(self, value) ...

f empty_value(self, value) ...

f assert_string(self, value, state) ...

f base64encode(self, value) ...

Encode a string in base64, stripping whitespace and removing newlines.

f validate_python(self, value, state) ...

A validation method that doesn't do anything.

f validate_other(self, value, state) ...

A validation method that doesn't do anything.

See the source for more information.