Beispiel #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()
Beispiel #2
0
 def serialize(value: Any) -> Any:
     if not isinstance(value, dict):
         raise UndefinedType("Dictionary value expected")
     return value
Beispiel #3
0
 def parse_value(value: str):
     try:
         return datetime.fromisoformat(value)
     except ValueError:
         raise UndefinedType()
Beispiel #4
0
 def serialize(value: Any) -> Any:
     if not isinstance(value, datetime):
         raise UndefinedType("datetime value expected")
     return value.isoformat()
Beispiel #5
0
 def parse_value(value: Any) -> Any:
     try:
         return ID.decode(value)
     except ValueError:
         raise UndefinedType()
Beispiel #6
0
 def serialize(self, value: Any) -> str:
     if not isinstance(value, self.source):
         raise UndefinedType("Enum value expected")
     return value.name
Beispiel #7
0
 def parse_value(value: Any) -> Any:
     try:
         return DecimalType(value)
     except InvalidOperation:
         raise UndefinedType()
Beispiel #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
Beispiel #9
0
 def parse_value(value: Any) -> Any:
     try:
         return ast.literal_eval(value)
     except SyntaxError:
         raise UndefinedType()