def METHOD_NAME(cls, conditions):
    """
    Returns a dict with keys 'expression','values' if conditions is not empty
    else returns `None`
    example::
        Input : conditions = [
            [["firstName", "=", "John"], ["lastName", "=", "Miles"]],
            [["age", "<", "38"]],
        ]
        Output : {
            'expression':
                '((firstName = ? ) OR (lastName = ? )) AND ((age < ? ))',
            'values':
                 ['John', 'Miles', '38']
            }
    """
    def _make_condition_expression(conditions):
        def make_or(lst):
            val_list = []
            exp = []
            for cnd in lst:
                exp.append(
                    f"(`{cnd.column}` {cnd.operation} {cls.BIND_DECLARATION} )"
                )
                val_list.append(cnd.value)
            result = {"expression": " OR ".join(exp), "values": val_list}
            return result
        lst = map(make_or, conditions)
        result_exps = []
        result_vals = []
        for result in lst:
            temp_exp = result["expression"]
            temp_exp = f"({temp_exp})"
            result_exps.append(temp_exp)
            result_vals.extend(result["values"])
        result_exps = " AND ".join(result_exps)
        result = {"expression": result_exps, "values": result_vals}
        return result
    condition_dict = None
    if (not conditions == None) and (len(conditions) != 0):
        condition_dict = _make_condition_expression(conditions)
    return condition_dict