add tclint
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
"""Schema validation for Python data structures.
|
||||
|
||||
Given eg. a nested data structure like this:
|
||||
|
||||
{
|
||||
'exclude': ['Users', 'Uptime'],
|
||||
'include': [],
|
||||
'set': {
|
||||
'snmp_community': 'public',
|
||||
'snmp_timeout': 15,
|
||||
'snmp_version': '2c',
|
||||
},
|
||||
'targets': {
|
||||
'localhost': {
|
||||
'exclude': ['Uptime'],
|
||||
'features': {
|
||||
'Uptime': {
|
||||
'retries': 3,
|
||||
},
|
||||
'Users': {
|
||||
'snmp_community': 'monkey',
|
||||
'snmp_port': 15,
|
||||
},
|
||||
},
|
||||
'include': ['Users'],
|
||||
'set': {
|
||||
'snmp_community': 'monkeys',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
A schema like this:
|
||||
|
||||
>>> settings = {
|
||||
... 'snmp_community': str,
|
||||
... 'retries': int,
|
||||
... 'snmp_version': All(Coerce(str), Any('3', '2c', '1')),
|
||||
... }
|
||||
>>> features = ['Ping', 'Uptime', 'Http']
|
||||
>>> schema = Schema({
|
||||
... 'exclude': features,
|
||||
... 'include': features,
|
||||
... 'set': settings,
|
||||
... 'targets': {
|
||||
... 'exclude': features,
|
||||
... 'include': features,
|
||||
... 'features': {
|
||||
... str: settings,
|
||||
... },
|
||||
... },
|
||||
... })
|
||||
|
||||
Validate like so:
|
||||
|
||||
>>> schema({
|
||||
... 'set': {
|
||||
... 'snmp_community': 'public',
|
||||
... 'snmp_version': '2c',
|
||||
... },
|
||||
... 'targets': {
|
||||
... 'exclude': ['Ping'],
|
||||
... 'features': {
|
||||
... 'Uptime': {'retries': 3},
|
||||
... 'Users': {'snmp_community': 'monkey'},
|
||||
... },
|
||||
... },
|
||||
... }) == {
|
||||
... 'set': {'snmp_version': '2c', 'snmp_community': 'public'},
|
||||
... 'targets': {
|
||||
... 'exclude': ['Ping'],
|
||||
... 'features': {'Uptime': {'retries': 3},
|
||||
... 'Users': {'snmp_community': 'monkey'}}}}
|
||||
True
|
||||
"""
|
||||
|
||||
# flake8: noqa
|
||||
# fmt: off
|
||||
from voluptuous.schema_builder import *
|
||||
from voluptuous.util import *
|
||||
from voluptuous.validators import *
|
||||
|
||||
from voluptuous.error import * # isort: skip
|
||||
|
||||
# fmt: on
|
||||
|
||||
__version__ = '0.15.2'
|
||||
__author__ = 'alecthomas'
|
||||
Reference in New Issue
Block a user