Metadata-Version: 1.0
Name: fivalid
Version: 0.2.2
Summary: Lightweight field data validator.
Home-page: https://github.com/AkiraKito/fivalid
Author: Akira Kito
Author-email: UNKNOWN
License: BSD
Description: fivalid
        =======
        
        fivalid is lightweight field data validator.
        
        Features
        --------
        data validation::
        
        >>> from fivalid import validators
        >>> num = validators.Number(max=20)
        >>> num(10)
        >>> num(21)
        fivalid.validators.InvalidValueError: over max
        
        data validation and conversion::
        
        >>> from fivalid import BaseField, validators, converters
        >>> class PercentageField(BaseField):
        ...   validator = validators.All(
        ...     validators.Number(min=0, max=100),
        ...     validators.String())
        ...   converter = converters.int_converter
        >>> field = PercentageField()
        >>> field('99')
        99
        >>> field('200')
        fivalid.validators.InvalidValueError: over max
        
        structured data (e.g. nested dict, nested list) validation and conversion::
        
        >>> from fivalid import StructuredFields, Dict, BaseField
        >>> from fivalid.validators import String, Length, All, Flag
        >>> from fivalid.converters import truthvalue_converter
        >>> class CommentField(BaseField):
        ...   validator = All(String(), Length(max=500))
        >>> class NicknameField(BaseField):
        ...   validator = All(String(), Length(max=20))
        >>> class RememberMeField(BaseField):
        ...   validator = Flag()
        ...   converter = truthvalue_converter
        >>> rule = Dict(
        ...   {'comment': CommentField(required=True),
        ...    'nickname': NicknameField(),
        ...    'remember me': RememberMeField()}
        ... )
        >>> stfields = StructuredFields(rule)
        >>> stfields({'comment': 'Hello, fivalid.',
        ...           'nickname': 'John Doe',
        ...           'remember me': '1'}
        ... )
        {'comment': u'Hello, fivalid.', 'nickname': u'John Doe', 'remember me': True}
        
        
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.5
Classifier: Topic :: Software Development :: Libraries :: Python Modules
