code: def filename(self, appendix=None, create_if_not_existing=False):
          
  
          # if provided path is a relative path and self.data_path exists, build path
          if os.path.isabs(self.settings['path']) == False and self.data_path is not None:
              path = os.path.join(self.data_path, self.settings['path'])
          else:
              path = self.settings['path']
  
          tag = self.settings['tag']#.replace('.','-')
  
          filename = os.path.join(path, "{:s}_{:s}".format(self.start_time.strftime('%y%m%d-%H_%M_%S'),tag))
  
          if os.path.exists(filename) == False and create_if_not_existing:
              os.makedirs(filename)
  
          if appendix is not None:
              filename = os.path.join(filename,  "{:s}_{:s}{:s}".format(self.start_time.strftime('%y%m%d-%H_%M_%S'),tag,appendix))
  
          # windows can't deal with long filenames so we have to use the prefix '\\\\?\\'
          # if len(filename.split('\\\\?\\')) == 1:
          #     filename = '\\\\?\\' + filename
  
          return filename
docs: creates a filename based
          Args:
              appendix: appendix for file
  
          Returns: filename