Exemplo n.º 1
0
 def parse_literal(self, node: ValueNode, _variables: Dict[str, Any] = None):
     if isinstance(
         node,
         (
             graphql_ast.FloatValueNode,
             graphql_ast.StringValueNode,
             graphql_ast.IntValueNode,
         ),
     ):
         return self.parse_value(node.value)
     raise UndefinedType()
Exemplo n.º 2
0
 def serialize(value: Any) -> Any:
     if not isinstance(value, dict):
         raise UndefinedType("Dictionary value expected")
     return value
Exemplo n.º 3
0
 def parse_value(value: str):
     try:
         return datetime.fromisoformat(value)
     except ValueError:
         raise UndefinedType()
Exemplo n.º 4
0
 def serialize(value: Any) -> Any:
     if not isinstance(value, datetime):
         raise UndefinedType("datetime value expected")
     return value.isoformat()
Exemplo n.º 5
0
 def parse_value(value: Any) -> Any:
     try:
         return ID.decode(value)
     except ValueError:
         raise UndefinedType()
Exemplo n.º 6
0
 def serialize(self, value: Any) -> str:
     if not isinstance(value, self.source):
         raise UndefinedType("Enum value expected")
     return value.name
Exemplo n.º 7
0
 def parse_value(value: Any) -> Any:
     try:
         return DecimalType(value)
     except InvalidOperation:
         raise UndefinedType()
Exemplo n.º 8
0
 def serialize(value: Any) -> Any:
     if not isinstance(value, (DecimalType, int, float)):
         raise UndefinedType("Decimal value expected")
     if isinstance(value, DecimalType):
         return float(value)
     return value
Exemplo n.º 9
0
 def parse_value(value: Any) -> Any:
     try:
         return ast.literal_eval(value)
     except SyntaxError:
         raise UndefinedType()