metadata added for netns testbed
[nepi.git] / src / nepi / util / validation.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 import ipaddr
5 import re
6
7 def is_bool(value):
8     return isinstance(value, bool)
9
10 def is_integer(value):
11     return isinstance(value, int)
12
13 def is_string(value):
14     return isinstance(value, str)
15
16 def is_ip4_address(value):
17     try:
18         ipaddr.IPv4(value)
19     except ipaddr.Error:
20         return False
21     return True
22
23 def is_ip6_address(value):
24     try:
25         ipaddr.IPv6(value)
26     except ipaddr.Error:
27         return False
28     return True
29
30 def is_mac_address(value):
31     regex = r'^([0-9a-zA-Z]{0,2}:)*[0-9a-zA-Z]{0,2}'
32     found = re.search(regex, value)
33     if not found or value.count(':') != 5:
34         return False
35     return True
36