def parse_money_literal(value_node: ValueNode, variables=None) -> Money: money = value_from_ast_untyped(value_node, variables) if variables is not None and ( # variables are not set when checked with ValuesIOfCorrectTypeRule not money or not is_finite(money.get("amount")) or not isinstance(money.get("currency"), str)): raise GraphQLError("Cannot parse literal money value: " + inspect(money)) return Money(**money)
def floats_are_finite(): assert is_finite(0.0) is True assert is_finite(1.5) is True assert is_finite(-1.5) is True assert is_finite(1e100) is True assert is_finite(-1e100) is True assert is_finite(1e-100) is True
def booleans_are_not_finite(): # they should not be considered as integers 0 and 1 assert is_finite(False) is False assert is_finite(True) is False
def null_is_not_finite(): assert is_finite(None) is False
def undefined_is_not_finite(): assert is_finite(Undefined) is False
def inf_is_not_finite(): assert is_finite(inf) is False assert is_finite(-inf) is False
def nan_is_not_finite(): assert is_finite(nan) is False
def ints_are_finite(): assert is_finite(0) is True assert is_finite(1) is True assert is_finite(-1) is True assert is_finite(1 >> 100) is True
def strings_are_not_finite(): assert is_finite("string") is False
def undefined_is_not_finite(): assert is_finite(INVALID) is False
def strings_are_not_finite(): assert is_finite('string') is False
def booleans_are_finite(): # since they are considered as integers 0 and 1 assert is_finite(False) is True assert is_finite(True) is True