code: def execute(self, document, variable_values=None, timeout=None):
      query_str = print_ast(document)
      payload = {"query": query_str, "variables": variable_values or {}}
  
      data_key = "json" if self.use_json else "data"
      post_args = {
          "headers": self.headers,
          "auth": self.auth,
          "cookies": self.cookies,
          "timeout": timeout or self.default_timeout,
          data_key: payload,
      }
      request = requests.post(self.url, **post_args)
      request.raise_for_status()
  
      result = request.json()
      assert (
          "errors" in result or "data" in result
      ), 'Received non-compatible response "{}"'.format(result)
      return ExecutionResult(
          errors=result.get("errors"), data=result.get("data")
      )
  
file_path: wandb/wandb/vendor/gql-0.2.0/wandb_gql/transport/requests.py
imports: from __future__ import absolute_import
  import requests
  from wandb_graphql.execution import ExecutionResult
  from wandb_graphql.language.printer import print_ast
  from .http import HTTPTransport
label_desc: Use image node_id 2 for calling the RequestsHTTPTransport obj's underlying member method code with example usage: obj.execute(document, variable_values, timeout) and returns: ExecutionResult