docs: def tree_construct(self, *args, **kwargs):
          """
          Processes the <l_files> list of files from the tree_probe()
          and builds the input/output dictionary structures.
  
          Optionally execute a constructCallback function, and return
          results
          """
          l_files                 = []
          d_constructCallback     = {}
          fn_constructCallback    = None
          for k, v in kwargs.items():
              if k == 'l_files':           l_files                 = v
              if k == 'constructCallback': fn_constructCallback    = v
  
          index   = 1
          total   = len(l_files)
          for l_series in l_files:
              str_path    = os.path.dirname(l_series[0])
              l_series    = [ os.path.basename(i) for i in l_series]
              self.simpleProgress_show(index, total)
              self.d_inputTree[str_path]  = l_series
              if fn_constructCallback:
                  kwargs['path']          = str_path
                  d_constructCallback     = fn_constructCallback(l_series, **kwargs)
                  self.d_inputTreeCallback[str_path]  = d_constructCallback
              self.d_outputTree[str_path] = ""
              index += 1
          return {
              'status':                   True,
              'd_constructCalback':       d_constructCallback,   
              'totalNumberOfAllSeries':   index
          }