code: def create_signal_value(
      self, signal_name, value, overwrite=True, time=None
  ):
      if self.index_name == signal_name:
          return (
              False  # make sure that we don't create duplicate signals
          )
  
      if self.last_line_idx_written_to_csv != 0:
          assert signal_name in self.data.columns
  
      if not time:
          time = self.time
      # create only if it doesn't already exist
      if overwrite or not self.signal_value_exists(time, signal_name):
          self.data.loc[time, signal_name] = value
          return True
      return False
  
imports: import atexit
  import datetime
  import os
  import re
  import shutil
  import signal
  import time
  import uuid
  from subprocess import Popen, PIPE
  from typing import Union
  from PIL import Image
  from pandas import DataFrame
  from six.moves import input
label_desc: Use image node_id 3 for calling the BaseLogger obj's underlying member method code with example usage: obj.create_signal_value(signal_name, value, overwrite, time) and returns: False, False, True