code: def construct_col_names(
      name,
      num_vars,
      num_discrete_vars,
      num_discrete_levels,
      one_hot_encode,
  ):
      colnames = [
          (name + str(i))
          for i in range(0, num_vars - num_discrete_vars)
      ]
      if one_hot_encode:
          discrete_colnames = [
              name + str(i) + "_" + str(j)
              for i in range(num_vars - num_discrete_vars, num_vars)
              for j in range(0, num_discrete_levels)
          ]
          colnames = colnames + discrete_colnames
      else:
          colnames = colnames + [
              (name + str(i))
              for i in range(num_vars - num_discrete_vars, num_vars)
          ]
  
      return colnames
  
imports: import math
  import string
  import networkx
  import numpy
  import pandas
  import scipy.stats
  from numpy.random import choice
  from scipy.stats import bernoulli, halfnorm, poisson, uniform
  from sklearn.neural_network import MLPRegressor
  from dowhy.utils.graph_operations import add_edge, del_edge, get_random_node_pair, get_simple_ordered_tree
label_desc: Use image node_id 5 for calling a global function with example usage: construct_col_names(name, num_vars, num_discrete_vars, num_discrete_levels, one_hot_encode) and returns: colnames