code: def parse(self, data):
          
          # initialize graph and list of aggregated nodes
          graph = self._init_graph()
          if len(data) != 0:
              if "links" not in data[0]:
                  raise ParserError('Parse error, "links" key not found')
          # loop over topology section and create networkx graph
          # this data structure does not contain cost information, so we set it as 1
          for node in data:
              for link in node['links']:
                  cost = (link['txRate'] + link['rxRate']) / 2.0
                  graph.add_edge(node['name'],
                                 link['name'],
                                 weight=cost,
                                 tx_rate=link['txRate'],
                                 rx_rate=link['rxRate'])
          return graph
docs: Converts a BMX6 b6m JSON to a NetworkX Graph object
          which is then returned.