code: def _pname_and_metadata(in_file):
      
      if os.path.isfile(in_file):
          with open(in_file) as in_handle:
              md, global_vars = _parse_metadata(in_handle)
          base = os.path.splitext(os.path.basename(in_file))[0]
          md_file = in_file
      elif objectstore.is_remote(in_file):
          with objectstore.open_file(in_file) as in_handle:
              md, global_vars = _parse_metadata(in_handle)
          base = os.path.splitext(os.path.basename(in_file))[0]
          md_file = None
      else:
          if in_file.endswith(".csv"):
              raise ValueError("Did not find input metadata file: %s" % in_file)
          base, md, global_vars = _safe_name(os.path.splitext(os.path.basename(in_file))[0]), {}, {}
          md_file = None
      return _safe_name(base), md, global_vars, md_file
docs: Retrieve metadata and project name from the input metadata CSV file.
  
      Uses the input file name for the project name and for back compatibility,
      accepts the project name as an input, providing no metadata.