Package: pycerberus
pycerberus is a framework to check user data thoroughly so that you can protect
your application from malicious (or just garbled) input data.Remove stupid code which converts input values: After values are validated, you
can work with real Python types instead of strings - e.g. 42 instead of ‘42’,
convert database IDs to model objects transparently.Implement custom validation rules: Writing custom validators is
straightforward, everything is well documented and pycerberus only uses very
little Python magic.Focus on your value-adding application code: Save time by implementing every
input validation rule only once, but 100% right instead of implementing a
dozen different half-baked solutions.Ready for global business: i18n support (based on GNU gettext) is built in,
adding custom translations is easy.Tune it for your needs: You can implement custom behavior in your validators,
e.g. fetch translations from a database instead of using gettext or define
custom translations for built-in validators.Use it wherever you like: pycerberus is used in a SMTP server, trac macros as
well as web applications - there are no dependencies on a specific context
like web development.Changelog0.6 (24.11.2014)stop using 2to3 for Python 3 compatibility and use exactly the same source
for all Python versions.drop support for Python 2.4 and 2.5bug fix: detect validator message keys correctly also when messages are
specified during validator initialization0.5 (05.08.2013)‘allow_additional_parameters’ can now be specified in the schema constructor
directly as well as a parameter for a declarative schemanew ForEach validator to validate a list of items with the same validatorInvalidDataErrors can return a list of errors using ‘.errors()’.added ‘min_length’, ‘max_length’ parameters when instantiating a
StringValidatorAll validator messages can be overridden during instantiation by specifyingmessagesattribute,new OneOf validator to validate that a value is in a given list of allowed
valuesadded constructor parameter ‘filter_unvalidated_parameters’ (default True)
for SchemaValidators to pass unvalidated parameters instead of removing themInvalidDataErrors can “unpack” their errors so that an ordinary dict is used
as container for sub-errors (instead of another InvalidDataError with an
error_dict)new BooleanCheckbox validator to validate typical HTML checkboxesnew API method for all validators: ‘.copy()’ returns a clone of the validatornew MatchingFields form validator (typically used to verify a password
confirmation field)new AgreeToConditionsCheckbox validator which works like a BooleanCheckbox
but enforces a trueish valueEmailAddressValidator accepts also ‘-’ and ‘+’ characters in local partAPI changes:BaseValidator.error() is deprecated now as the name does not really reflect
that the method also raised the exception. I added a new method named
‘.raise_error()’ which behaves exactly like the old .error() method. In
addition there is a new method ‘.exception()’ which only creates an exception
instance.IntegerValidator now treats ‘’ and None as emptyBaseValidator.to_string() changed to BaseValidator.revert_conversion()
which reflects the actual purpose better. Validators are not required to
return a string anymore.0.4.2 (05.05.2011)More fixes for source distribution because of missing files in tar.gz0.4.1 (16.04.2011)Fix source distribution (distribution_helpers.py were not included)0.4 (13.04.2011)pycerberus now supports Python 3!Fix installation/egg generation without babelAdded a schema which can parse positional parameters from a string into a
dict before processing the data like a normal schema would do0.3.3 (04.07.2010)Fix installation issue: pycerberus is actually not zip-safe0.3.2 (05.06.2010)Fix egg file generation: Include all necessary packages in eggsadded babel support to setup.pyupdated pot file and completed German translationfix exception if translations for preferred locale are not available (fall
back to english messages)0.3.1 (07.04.2010)Fixed bug due to duplicated message in DomainNameValidator/EmailAddressValidatorValidator can now strip inputs (False by default)StringValidator now also treats ‘’ as empty value (as well as None)0.3 (27.03.2010)Python 2.3 compatibilitySchema can raise error if unknown items are processedBasic domain name validatorBasic email address validator0.2 (16.03.2010)You now can declare custom messages as a class-level dictAdded interface to retrieve error details from InvalidDataErrorsAdded validation schemas to validate a set of values (typically a web form).
Schemas can also inherit from other schemas to avoid code duplication.Validators try to make thread-safety violations obviousNicer API to retrieve error details from an InvalidDataError0.1 (30.01.2010)initial release