code: def set_response_headers(self, response, ttl):
      # Set far-future cache expiry
      if self.ds.cache_headers and response.status == 200:
          ttl = int(ttl)
          if ttl == 0:
              ttl_header = "no-cache"
          else:
              ttl_header = f"max-age={ttl}"
          response.headers["Cache-Control"] = ttl_header
      response.headers["Referrer-Policy"] = "no-referrer"
      if self.ds.cors:
          add_cors_headers(response.headers)
      return response
  
imports: import asyncio
  import csv
  import hashlib
  import sys
  import textwrap
  import time
  import urllib
  from markupsafe import escape
  import pint
  from datasette import __version__
  from datasette.database import QueryInterrupted
  from datasette.utils.asgi import Request
  from datasette.utils import add_cors_headers, await_me_maybe, EscapeHtmlWriter, InvalidSql, LimitedWriter, call_with_supported_arguments, path_from_row_pks, path_with_added_args, path_with_removed_args, path_with_format, sqlite3
  from datasette.utils.asgi import AsgiStream, NotFound, Response, BadRequest
label_desc: Use image node_id 2 for calling the DataView obj's underlying member method code with example usage: obj.set_response_headers(response, ttl) and returns: response