code: def _validate_filters(cls, filters, model_class):
      
      if not filters:
        return
  
      properties = model_class.properties()
  
      for f in filters:
        prop, _, val = f
        if prop not in properties:
          raise errors.BadReaderParamsError(
              "Property %s is not defined for entity type %s",
              prop, model_class.kind())
  
        # Validate the value of each filter. We need to know filters have
        # valid value to carry out splits.
        try:
          properties[prop].validate(val)
        except db.BadValueError, e:
          raise errors.BadReaderParamsError(e)
docs: Validate user supplied filters.
  
      Validate filters are on existing properties and filter values
      have valid semantics.
  
      Args:
        filters: user supplied filters. Each filter should be a list or tuple of
          format (<property_name_as_str>, <query_operator_as_str>,
          <value_of_certain_type>). Value type is up to the property's type.
        model_class: the db.Model class for the entity type to apply filters on.
  
      Raises:
        BadReaderParamsError: if any filter is invalid in any way.