code: def evaluate(self, agentml, user=None):
          
          self._log.debug('Evaluating conditional statement: {statement}'
                          .format(statement=' '.join(filter(None, [self.type, self.name, self.operator, self.value]))))
  
          # Get the value of our key type
          if self.type not in agentml.conditions:
              self._log.error('Unknown condition type, "{type}", unable to evaluate condition statement'
                              .format(type=self.type))
              return
  
          key_value = agentml.conditions[self.type].get(agentml, user, self.name)
  
          # Atomic comparisons
          if self.operator is None and key_value:
              return self.contents
  
          if (self.operator == self.IS) and (key_value == self.value):
              return self.contents
  
          if (self.operator == self.IS_NOT) and (key_value != self.value):
              return self.contents
  
          # All remaining self.operators are numeric based, so key_value must contain a valid integer or float
          try:
              key_value = float(key_value)
              value = float(self.value)
          except (ValueError, TypeError):
              return False
  
          # Numeric comparisons
          if (self.operator == self.GREATER_THAN) and (key_value > value):
              return self.contents
  
          if (self.operator == self.GREATER_THAN_OR_EQUAL) and (key_value >= value):
              return self.contents
  
          if (self.operator == self.LESS_THAN) and (key_value < value):
              return self.contents
  
          if (self.operator == self.LESS_THAN_OR_EQUAL) and (key_value <= value):
              return self.contents
  
          return False
docs: Evaluate the conditional statement and return its contents if a successful evaluation takes place
          :param user: The active user object
          :type  user: agentml.User or None
          
          :param agentml: The active AgentML instance
          :type  agentml: AgentML
  
          :return: Condition contents if the condition evaluates successfully, otherwise False
          :rtype : tuple or bool