class_docstr: The configuration class as stored in the ModelGraph.
  
  Args:
      config (dict):  The configuration dictionary
code: def get_precision(self, layer, var="default"):
      precision = self.layer_name_precision.get(
          layer.name.lower() + "_" + var
      )
      type_name = layer.name.lower() + "_" + var + "_t"
      if precision is None:
          precision = self.layer_name_precision.get(
              layer.name.lower() + "_default"
          )
          type_name = layer.name.lower() + "_default_t"
  
      if precision is None:
          precision = self.layer_type_precision.get(
              layer.class_name.lower() + "_" + var
          )
          type_name = layer.class_name + "_" + var + "_t"
      if precision is None:
          precision = self.layer_type_precision.get(
              layer.class_name.lower() + "_default"
          )
          type_name = layer.class_name + "_default_t"
  
      if precision is None:
          precision = self.model_precision.get(var)
          type_name = var + "_default_t"
      if precision is None:
          precision = self.model_precision.get("default")
          type_name = "model_default_t"
  
      if precision is None:
          raise Exception(
              f"No precision for {layer.name}->{var} found and no default specified."
          )
  
      precision = self.backend.convert_precision_string(precision)
  
      return (precision, type_name)
  
imports: import ctypes
  import os
  import platform
  from collections import OrderedDict
  import numpy
  import numpy.ctypeslib
  from hls4ml.backends import get_backend
  from hls4ml.model.flow import get_flow
  from hls4ml.model.layers import layer_map
  from hls4ml.model.optimizer import get_available_passes, optimize_model
label_desc: Use image node_id 7 for calling the HLSConfig obj's underlying member method code with example usage: obj.get_precision(layer, var) and returns: precision,  type_name