Files
blender-portable-repo/scripts/addons/Rokoko Libraries/python311/gql/graphql_request.py
T
2026-03-17 14:58:51 -06:00

38 lines
1.1 KiB
Python

from dataclasses import dataclass
from typing import Any, Dict, Optional
from graphql import DocumentNode, GraphQLSchema
from .utilities import serialize_variable_values
@dataclass(frozen=True)
class GraphQLRequest:
"""GraphQL Request to be executed."""
document: DocumentNode
"""GraphQL query as AST Node object."""
variable_values: Optional[Dict[str, Any]] = None
"""Dictionary of input parameters (Default: None)."""
operation_name: Optional[str] = None
"""
Name of the operation that shall be executed.
Only required in multi-operation documents (Default: None).
"""
def serialize_variable_values(self, schema: GraphQLSchema) -> "GraphQLRequest":
assert self.variable_values
return GraphQLRequest(
document=self.document,
variable_values=serialize_variable_values(
schema=schema,
document=self.document,
variable_values=self.variable_values,
operation_name=self.operation_name,
),
operation_name=self.operation_name,
)