Skip to content
Snippets Groups Projects
Commit b0c0dd70 authored by joe's avatar joe
Browse files

version bump; adding the validator for ip6 fields

parent 0a450485
No related branches found
No related tags found
No related merge requests found
import formencode import formencode
import ipaddr
from formencode import validators from formencode import validators
Invalid = formencode.Invalid Invalid = formencode.Invalid
...@@ -16,6 +17,14 @@ class RelationValidator(formencode.FancyValidator): ...@@ -16,6 +17,14 @@ class RelationValidator(formencode.FancyValidator):
return value return value
raise Invalid('relation not a list of strings', value, state) raise Invalid('relation not a list of strings', value, state)
class IP6Address(formencode.FancyValidator):
def _to_python(self, addr, state):
try:
ipaddr.IPv6Network( address=addr )
return addr
except ipaddr.AddressValueError, e:
raise Invalid('Not a well formed IPv6 address', addr, state)
_validator_map = { _validator_map = {
'int': validators.Int(), 'int': validators.Int(),
...@@ -28,9 +37,12 @@ _validator_map = { ...@@ -28,9 +37,12 @@ _validator_map = {
'ip': validators.IPAddress(), 'ip': validators.IPAddress(),
'cidr': validators.CIDR(), 'cidr': validators.CIDR(),
'relation': RelationValidator(), 'relation': RelationValidator(),
'ip6': IP6Address(),
} }
class ValidatorMixin(object): class ValidatorMixin(object):
"""Mixin class for entity validation.""" """Mixin class for entity validation."""
......
setup.py 100644 → 100755
...@@ -4,13 +4,13 @@ from setuptools import setup, find_packages ...@@ -4,13 +4,13 @@ from setuptools import setup, find_packages
setup( setup(
name='configdb', name='configdb',
version='0.2.1', version='0.2.2',
description='database framework for configuration info', description='database framework for configuration info',
author='ale', author='ale',
author_email='ale@incal.net', author_email='ale@incal.net',
url='http://git.autistici.org/p/configdb', url='http://git.autistici.org/p/configdb',
install_requires=['argparse', 'Flask', 'formencode', 'inflect', install_requires=['argparse', 'Flask', 'formencode', 'inflect',
'SQLAlchemy>0.7', 'python-dateutil'], 'SQLAlchemy>0.7', 'python-dateutil', 'ipaddr'],
setup_requires=[], setup_requires=[],
zip_safe=True, zip_safe=True,
packages=find_packages(), packages=find_packages(),
...@@ -21,4 +21,3 @@ setup( ...@@ -21,4 +21,3 @@ setup(
], ],
}, },
) )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment