code: def graphql_node_list(self, query_hash: str, query_variables: Dict[str, Any],
                            query_referer: Optional[str],
                            edge_extractor: Callable[[Dict[str, Any]], Dict[str, Any]],
                            rhx_gis: Optional[str] = None,
                            first_data: Optional[Dict[str, Any]] = None) -> Iterator[Dict[str, Any]]:
          
  
          def _query():
              query_variables['first'] = self._graphql_page_length
              try:
                  return edge_extractor(self.graphql_query(query_hash, query_variables, query_referer, rhx_gis))
              except QueryReturnedBadRequestException:
                  new_page_length = int(self._graphql_page_length / 2)
                  if new_page_length >= 12:
                      self._graphql_page_length = new_page_length
                      self.error("HTTP Error 400 (Bad Request) on GraphQL Query. Retrying with shorter page length.",
                                 repeat_at_end=False)
                      return _query()
                  else:
                      raise
  
          if first_data:
              data = first_data
          else:
              data = _query()
          yield from (edge['node'] for edge in data['edges'])
          while data['page_info']['has_next_page']:
              query_variables['after'] = data['page_info']['end_cursor']
              data = _query()
              yield from (edge['node'] for edge in data['edges'])
docs: Retrieve a list of GraphQL nodes.