docs: def run(self, *args, **kwargs):
          """
          Probe the input tree and print.
          """
          b_status        = True
          d_probe         = {}
          d_tree          = {}
          d_stats         = {}
          str_error       = ''
          b_timerStart    = False
          d_test          = {}
  
          for k, v in kwargs.items():
              if k == 'timerStart':   b_timerStart    = bool(v)
  
          if b_timerStart:
              other.tic()
  
          if not os.path.exists(self.str_inputDir):
              b_status    = False
              self.dp.qprint(
                      "input directory either not specified or does not exist.", 
                      comms = 'error'
              )
              error.warn(self, 'inputDirFail', exitToOS = True, drawBox = True)
              str_error   = 'error captured while accessing input directory'
  
          if b_status:
              str_origDir = os.getcwd()
              if self.b_relativeDir:
                  os.chdir(self.str_inputDir)
                  str_rootDir     = '.'
              else:
                  str_rootDir     = self.str_inputDir
  
              d_probe     = self.tree_probe(      
                  root    = str_rootDir
              )
              b_status    = b_status and d_probe['status']
              d_tree      = self.tree_construct(  
                  l_files             = d_probe['l_files'],
                  constructCallback   = self.dirsize_get
              )
              b_status    = b_status and d_tree['status']
  
              if self.b_test:
                  d_test      = self.test_run(*args, **kwargs)
                  b_status    = b_status and d_test['status']
              else:
                  if self.b_stats or self.b_statsReverse:
                      d_stats     = self.stats_compute()
                      self.dp.qprint('Total size (raw):   %d' % d_stats['totalSize'],         level = 1)
                      self.dp.qprint('Total size (human): %s' % d_stats['totalSize_human'],   level = 1)
                      self.dp.qprint('Total files:        %s' % d_stats['files'],             level = 1)
                      self.dp.qprint('Total dirs:         %s' % d_stats['dirs'],              level = 1)
                      b_status    = b_status and d_stats['status']
  
              if self.b_jsonStats:
                  print(json.dumps(d_stats, indent = 4, sort_keys = True))
  
              if self.b_relativeDir:
                  os.chdir(str_origDir)
  
          d_ret = {
              'status':       b_status,
              'd_probe':      d_probe,
              'd_tree':       d_tree,
              'd_stats':      d_stats,
              'd_test':       d_test,
              'str_error':    str_error,
              'runTime':      other.toc()
          }
  
          if self.b_json:
              print(json.dumps(d_ret, indent = 4, sort_keys = True))
  
          return d_ret