code: def add_tree_viz(fout, model_path, fold_cnt, repeat_cnt):
      tree_viz = [f for f in os.listdir(model_path) if "_tree.svg" in f]
      if len(tree_viz):
          fout.write("\n\n## Decision Tree \n")
          for repeat in range(repeat_cnt):
              repeat_str = (
                  f", Repeat #{repeat+1}" if repeat_cnt > 1 else ""
              )
              for fold in range(fold_cnt):
                  learner_name = construct_learner_name(
                      fold, repeat, repeat_cnt
                  )
                  fname = learner_name + "_tree.svg"
                  if fname in tree_viz:
                      fout.write(f"\n### Tree #{fold+1}{repeat_str}\n")
                      fout.write(
                          f"![Tree {fold+1}{repeat_str}]({fname})"
                      )
                  try:
                      fname = os.path.join(
                          model_path, learner_name + "_rules.txt"
                      )
                      if os.path.exists(fname):
                          fout.write("\n\n### Rules\n\n")
                          with open(fname, "r") as fin:
                              fout.write(fin.read() + "\n\n")
                  except Exception as e:
                      logger.info(
                          "Problem with adding rules to report. "
                          + str(e)
                      )
  
imports: import copy
  import json
  import logging
  import os
  import time
  import uuid
  import warnings
  import numpy
  import pandas
  from sklearn.metrics import accuracy_score, classification_report, confusion_matrix, f1_score, matthews_corrcoef, mean_absolute_error, mean_absolute_percentage_error, mean_squared_error, precision_score, r2_score, recall_score, roc_auc_score
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION
  from supervised.utils.metric import logloss
  from supervised.utils.config import LOG_LEVEL
  from tabulate import tabulate
  from supervised.fairness.metrics import FairnessMetrics
  from supervised.fairness.report import FairnessReport
  from supervised.fairness.utils import accuracy, false_negative_rate, false_positive_rate, selection_rate, true_negative_rate, true_positive_rate
  from supervised.utils.additional_plots import AdditionalPlots
  from supervised.utils.common import construct_learner_name, get_fold_repeat_cnt
  from supervised.utils.learning_curves import LearningCurves
  from supervised.utils.jsonencoder import MLJSONEncoder
label_desc: Use image node_id 11 for calling the AdditionalMetrics obj's underlying member method code with example usage: obj.add_tree_viz(fout, model_path, fold_cnt, repeat_cnt) without return types