'add values for bind parameters which may have been
specified in filter().
parameters may be specified using \**kwargs, or optionally a single
dictionary as the first positional argument. The reason for both is
that \**kwargs is convenient, however some parameter dictionaries
contain unicode keys in which case \**kwargs cannot be used.'

@_generative()
def params(self, *args, **kwargs):

    if (len(args) == 1):
        kwargs.update(args[0])
    elif (len(args) > 0):
        raise sa_exc.ArgumentError('params()    takes    zero    or    one    positional    argument,    which    is    a    dictionary.')
    self._params = self._params.copy()
    self._params.update(kwargs)
