docs: def filters(self, *filters):
          """
          Add a list of Filter ingredients to the query. These can either be
          Filter objects or strings representing filters on the service's shelf.
          ``.filters()`` are additive, calling .filters() more than once will add
          to the list of filters being used by the recipe.
  
          The Filter expression will be added to the query's where clause
  
          :param filters: Filters to add to the recipe. Filters can
                           either be keys on the ``shelf`` or
                           Filter objects
          :type filters: list
          """
  
          def filter_constructor(f, shelf=None):
              if isinstance(f, BinaryExpression):
                  return Filter(f)
              else:
                  return f
  
          for f in filters:
              self._cauldron.use(
                  self._shelf.find(
                      f, (Filter, Having), constructor=filter_constructor
                  )
              )
  
          self.dirty = True
          return self