code: def assert_valid_execution_arguments(
      schema: GraphQLSchema,
      document: DocumentNode,
      raw_variable_values: Dict[str, Any] = None,
  ) -> None:
      
      if not document:
          raise TypeError("Must provide document")
  
      # If the schema used for execution is invalid, throw an error.
      assert_valid_schema(schema)
  
      # Variables, if provided, must be a dictionary.
      if not (raw_variable_values is None or isinstance(raw_variable_values, dict)):
          raise TypeError(
              "Variables must be provided as a dictionary where each property is a"
              " variable value. Perhaps look to see if an unparsed JSON string was"
              " provided."
          )
docs: Check that the arguments are acceptable.
  
      Essential assertions before executing to provide developer feedback for improper use
      of the GraphQL library.