docs: def check_feed_info(
      feed: "Feed", *, as_df: bool = False, include_warnings: bool = False
  ) -> List:
      """
      Analog of :func:`check_agency` for ``feed.feed_info``.
      """
      table = "feed_info"
      problems = []
  
      # Preliminary checks
      if feed.feed_info is None:
          return problems
  
      f = feed.feed_info.copy()
      problems = check_for_required_columns(problems, table, f)
      if problems:
          return format_problems(problems, as_df=as_df)
  
      if include_warnings:
          problems = check_for_invalid_columns(problems, table, f)
  
      # Check feed_publisher_name
      problems = check_column(
          problems, table, f, "feed_publisher_name", valid_str
      )
  
      # Check feed_publisher_url
      problems = check_column(
          problems, table, f, "feed_publisher_url", valid_url
      )
  
      # Check feed_lang
      problems = check_column(problems, table, f, "feed_lang", valid_lang)
  
      # Check feed_start_date and feed_end_date
      cols = ["feed_start_date", "feed_end_date"]
      for col in cols:
          problems = check_column(
              problems, table, f, col, valid_date, column_required=False
          )
  
      if set(cols) <= set(f.columns):
          d1, d2 = f.loc[0, ["feed_start_date", "feed_end_date"]].values
          if pd.notnull(d1) and pd.notnull(d2) and d1 > d1:
              problems.append(
                  [
                      "error",
                      "feed_start_date later than feed_end_date",
                      table,
                      [0],
                  ]
              )
  
      # Check feed_version
      problems = check_column(
          problems, table, f, "feed_version", valid_str, column_required=False
      )
  
      return format_problems(problems, as_df=as_df)