code: def compare(value1, operation, value2):
          
          if operation == None:
              return False
          
          operation = operation.upper()
  
          if operation in ["=", "==", "EQ"]:
              return ObjectComparator.are_equal(value1, value2)
          if operation in ["!=", "<>", "NE"]:
              return ObjectComparator.are_not_equal(value1, value2)
          if operation in ["<", "LT"]:
              return ObjectComparator.less(value1, value2)
          if operation in ["<=", "LE"]:
              return ObjectComparator.are_equal(value1, value2) or ObjectComparator.less(value1, value2)
          if operation in [">", "GT"]:
              return ObjectComparator.more(value1, value2)
          if operation in [">=", "GE"]:
              return ObjectComparator.are_equal(value1, value2) or ObjectComparator.more(value1, value2)
          if operation == "LIKE":
              return ObjectComparator.match(value1, value2)
  
          return True
docs: Perform comparison operation over two arguments.
          The operation can be performed over values of any type.
  
          :param value1: the first argument to compare
  
          :param operation: the comparison operation: "==" ("=", "EQ"), "!= " ("<>", "NE"); "<"/">"
                                                      ("LT"/"GT"), "<="/">=" ("LE"/"GE"); "LIKE".
  
          :param value2: the second argument to compare
  
          :return: result of the comparison operation