code: def parse_node(self, node_json):
      node_t = str(node_json["type"])
      if node_t not in self.gmeta.node_type_info:
          self.gmeta.node_type_info[node_t] = len(
              self.gmeta.node_type_info
          )
          self.gmeta.node_type_count += 1
  
      for feature in node_json["features"]:
          name = feature["type"] + "_" + feature["name"]
          t = feature["type"]
          v = feature["value"]
  
          if name not in self.gmeta.node_feature_dim:
              self.gmeta.node_feature_dim[name] = 0
          if t == "sparse":
              for i in v:
                  self.gmeta.node_feature_dim[name] = max(
                      i, self.gmeta.node_feature_dim[name]
                  )
          elif t == "dense":
              self.gmeta.node_feature_dim[name] = len(v)
  
          if name not in self.gmeta.node_meta:
              self.node_type_info[t] += 1
              idx = self.node_type_info[t] - 1
              self.gmeta.node_meta[name] = (name, t, idx)
  
file_path: euler/euler/tools/json2meta.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import sys
  import json
  import glob
  import os
  import shutil
  from euler.tools.util import *
  from euler.tools.graph_meta import GraphMeta
label_desc: Use image node_id 4 for calling the Generator obj's underlying member method code with example usage: obj.parse_node(node_json) without return types