From b0c0dd709bb3a6792211d4602b665062f4f6f79b Mon Sep 17 00:00:00 2001 From: joe <joe@autistici.org> Date: Sun, 23 Jun 2013 13:06:13 +0200 Subject: [PATCH] version bump; adding the validator for ip6 fields --- configdb/db/validation.py | 12 ++++++++++++ setup.py | 5 ++--- 2 files changed, 14 insertions(+), 3 deletions(-) mode change 100644 => 100755 setup.py diff --git a/configdb/db/validation.py b/configdb/db/validation.py index 9d70bc3..62f8027 100644 --- a/configdb/db/validation.py +++ b/configdb/db/validation.py @@ -1,4 +1,5 @@ import formencode +import ipaddr from formencode import validators Invalid = formencode.Invalid @@ -16,6 +17,14 @@ class RelationValidator(formencode.FancyValidator): return value 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 = { 'int': validators.Int(), @@ -28,9 +37,12 @@ _validator_map = { 'ip': validators.IPAddress(), 'cidr': validators.CIDR(), 'relation': RelationValidator(), + 'ip6': IP6Address(), } + + class ValidatorMixin(object): """Mixin class for entity validation.""" diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index 389301c..e750c3f --- a/setup.py +++ b/setup.py @@ -4,13 +4,13 @@ from setuptools import setup, find_packages setup( name='configdb', - version='0.2.1', + version='0.2.2', description='database framework for configuration info', author='ale', author_email='ale@incal.net', url='http://git.autistici.org/p/configdb', install_requires=['argparse', 'Flask', 'formencode', 'inflect', - 'SQLAlchemy>0.7', 'python-dateutil'], + 'SQLAlchemy>0.7', 'python-dateutil', 'ipaddr'], setup_requires=[], zip_safe=True, packages=find_packages(), @@ -21,4 +21,3 @@ setup( ], }, ) - -- GitLab