async def METHOD_NAME(
    self,
    method: Literal["get", "post"],
    query: Optional[str] = None,
    variables: Optional[Dict[str, object]] = None,
    files: Optional[Dict[str, BytesIO]] = None,
    headers: Optional[Dict[str, str]] = None,
    **kwargs: Any,
) -> Response:
    body = self._build_body(
        query=query, variables=variables, files=files, method=method
    )
    if body:
        if method == "get":
            kwargs["params"] = body
        else:
            if files:
                kwargs["data"] = body
            else:
                kwargs["content"] = json.dumps(body)
    if files:
        kwargs["files"] = files
    response = getattr(self.client, method)(
        "/graphql",
        headers=self._get_headers(method=method, headers=headers, files=files),
        **kwargs,
    )
    return Response(
        status_code=response.status_code,
        data=response.content,
        headers=response.headers,
    )