I kind of prefer the "must be", since it would be kind of non-sensical for the user to enter `kmin_factor=2.3`.  But I wanted it to work if someone inputs an integer that is some other type than int.  e.g. numpy.int16 or something like that.  I could add a test like `if kmin_factor != int(kmin_factor): raise...` if you think it's worth it.