docs: def validate(D, detailed=True):
      """
      Use the Validator API for lipd.net to validate all LiPD files in the LiPD Library.
      Display the PASS/FAIL results. Display detailed results if the option is chosen.
  
      :param dict D: Metadata (single or multiple datasets)
      :param bool detailed: Show or hide the detailed results of each LiPD file. Shows warnings and errors
      :return none:
      """
      start = clock()
      print("\n")
      # Fetch new results by calling lipd.net/api/validator (costly, may take a while)
      print("Fetching results from validator at lipd.net/validator... this may take a few moments.\n")
      try:
          results = []
          # Get the validator-formatted data for each dataset.
          if "paleoData" in D:
              _api_data = get_validator_format(D)
              # A list of lists of LiPD-content metadata
              results.append(call_validator_api(D["dataSetName"], _api_data))
          else:
              for dsn, dat in D.items():
                  _api_data = get_validator_format(dat)
                  # A list of lists of LiPD-content metadata
                  results.append(call_validator_api(dsn, _api_data))
          display_results(results, detailed)
      except Exception as e:
          print("Error: validate: {}".format(e))
  
      end = clock()
      logger_benchmark.info(log_benchmark("validate", start, end))
      return