`sigma` takes a list and should be `sigmas` to be consistent with `weights`.

Also, the inputs are not sanitized.  Does it break if the argument `sigma=7` is passed?  It should, because `7` is not iterable.