Traceable Dictionary
Introduction
Visit MetaParser Key Usage Traceability for the design motivation.
tracabledict module located in metaparser package util directory
(metaparser.util). This module provides dictionary (e.g.:: metaparser output)
key-usage traceability.
TraceableDict Class
TraceableDict is a subclass of Python dict that provides functionality of
key usage tracking. The class allows to convert the native dict into
TraceableDict data structure. All Python common dictionary key usage
functionalities, for example:
dict[‘xx’]
dict.keys()
dict.items()
dict.values()
dict.get()
dict.copy()
dict.pop()
will be traced and saved into class variable - tracer for future access.
- class variable:
tracer: class variable to hold dictionary name and its key usage record, for example: {ShowVersion: {usage}, ShowBgp: {usage}}
- instance attributes:
key_map: dict to store the current key name and its key path
dictname: dictionary identity.
- class functionalities:
convert: class method to recursively convert Pyhton nested dict into
TraceableDict. For example:from genie.metaparser.util.traceabledict import TraceableDict d = {'a': {'aa': 'xxx'}} t = TraceableDict.convert(d, 'my_traced_dict') assert('TraceableDict'== t['a'].__class__.__name__) # access the key usage TraceableDict.tracer