docs: def get_validator_format(L):
      """
      Format the LIPD data in the layout that the Lipd.net validator accepts.
  
      '_format' example:
       [
          {"type": "csv", "filenameFull": /path/to/filename.csv, "data": "", ...},
          {"type": "json", "filenameFull": /path/to/metadata.jsonld, "data": "", ...},
          ...
      ]
  
      :param dict L: Metadata
      :return list _api_data: Data formatted for validator API
      """
      _api_data = []
  
      _j, _csvs = get_csv_from_metadata(L["dataSetName"], L)
      _j = rm_values_fields(copy.deepcopy(L))
      _j = idx_name_to_num(_j)
  
      # All the filenames being processed
      _filenames = ["metadata.jsonld", "bagit.txt", "bag-info.txt", "manifest-md5.txt", "tagmanifest-md5.txt"]\
                   + [k for k,v in _csvs.items()]
  
      # Loop for each filename
      for filename in _filenames:
          # Create a blank template
          _file = {"type": "", "filenameFull": "", "filenameShort": "", "data": "", "pretty": ""}
          # filename, no path prefix
          # _short = os.path.basename(filename)
          _short = filename
          # Bagit files
          if filename.endswith(".txt"):
              _file = {"type": "bagit", "filenameFull": filename, "filenameShort": _short}
          # JSONLD files
          elif filename.endswith(".jsonld"):
              _file = {"type": "json", "filenameFull": filename, "filenameShort": _short, "data": _j}
  
          # CSV files
          elif filename.endswith(".csv"):
              _cols_rows = {"cols": 0, "rows": 0}
              ensemble = is_ensemble(_csvs[_short])
              # special case for calculating ensemble rows and columns
              if ensemble:
                  _cols_rows = get_ensemble_counts(_csvs[_short])
  
              # all other non-ensemble csv files.
              else:
                  _cols_rows["cols"] = len(_csvs[_short])
                  for k, v in _csvs[_short].items():
                      _cols_rows["rows"] = len(v["values"])
                      break
  
              # take what we've gathered for this file, and add it to the list.
              _file = {"type": "csv", "filenameFull": filename, "filenameShort": _short,
                       "data": _cols_rows}
  
          _api_data.append(_file)
  
      return _api_data