Utility Class
Introduction
util
module is located in metaparser
package util
directory along with
few other utility modules like schemaengine
and exceptions
. This module
defines a set of methods that perform common, often re-used functions to help
parser developers in manipulating the parser output data structures.
Usage example
All the methods defined in util
module are under static scope
The following example shows the usage of util
functions:
# imports utility methods
# -----------------------
from genie.metaparser.util import keynames_exist, \
keynames_convert, \
reform_nestdict_from_keys
dic = {'interface': 'loopback1',
'address': {'ip': '1.1.10', 'mask': '24'}}
# validate the mandatory keys are in dict
keynames_to_check = ['interface', 'address.ip']
assert keynames_exist(dic, keynames_to_check) == None
# changing the keynames to agree with the schema
names_mapping = [('address.ip','ip_address'), ('interface','intf')]
result = keynames_convert(dic, names_mapping)
assert 'ip_address' in result['address']
assert 'intf' in result
# reforming a new dict contains only the desired keys
keys = [['address','ip_address'], ['address','mask']]
new_dict = reform_nestdict_from_keys(dic, keys)
assert 'ip_address' in new_dict['address']
assert 'mask' in new_dict['address']
assert 'intf' not in new_dict