docs: def _stage_local_files(local_dir, local_files={}):
      """
      Either ``local_files`` and/or ``context`` should be supplied.
      
      Will stage a ``local_files`` dictionary of path:filename pairs where path
      is relative to ``local_dir`` into a local tmp staging directory.
      
      Returns a path to the temporary local staging directory
  
      """
      staging_dir = os.path.join(tempfile.mkdtemp(),os.path.basename(local_dir))
      os.mkdir(staging_dir)
      for root, dirs, files in os.walk(local_dir):
          relative_tree = root.replace(local_dir,'')
          if relative_tree:
              relative_tree = relative_tree[1:]
          if local_files:
              files = local_files.get(relative_tree,[])
          for file in files:
              if relative_tree:
                  filepath = os.path.join(relative_tree,file)
                  if not os.path.exists(os.path.join(staging_dir,relative_tree)):
                      os.mkdir(os.path.join(staging_dir,relative_tree))
              else: filepath = file
              shutil.copy2(os.path.join(root,file),os.path.join(staging_dir,filepath))
      return staging_dir