private String toCeilVariableExpression(Field field, VariableLiteral variableLiteral, List<Argument> parserArguments, List<Argument> serializerArguments, boolean serialize, boolean suppressPointerAccess, Tracer tracer) {
        tracer = tracer.dive("ceil");
        Term va = variableLiteral.getArgs().orElseThrow(() -> new FreemarkerException("CEIL needs at least one arg"))
            .stream().findFirst().orElseThrow(IllegalStateException::new);
        // The Ceil function expects 64 bit floating point values.
        TypeReference tr = new DefaultFloatTypeReference(SimpleTypeReference.SimpleBaseType.FLOAT, 64);
        emitRequiredImport("from math import ceil");
        return tracer + "ceil(" + toExpression(field, tr, va, parserArguments, serializerArguments, serialize, suppressPointerAccess) + ")";
    }
Returns a Python expression that computes the ceiling of the given
variable literal in Python.

@param field the field of the given type reference
@param variableLiteral the variable literal to access
@param parserArguments the parser arguments
@param serializerArguments the serializer arguments
@param serialize whether to serialize
@param suppressPointerAccess whether to suppress pointer access
@param tracer the tracer for this expression
@return a Python expression that computes the ceiling of the given
variable literal in Python
code-generation/language-python/src/main/java/org/apache/plc4x/language/python/PythonLanguageTemplateHelper.java