# Buggy code
def ppf(self, q, *args, **kwds):
    """
    Percent point function (inverse of `cdf`) at q of the given RV.

    Parameters
    ----------
    q : array_like
        Lower tail probability.
    arg1, arg2, arg3,... : array_like
        The shape parameter(s) for the distribution (see docstring of the
        instance object for more information).
    loc : array_like, optional
        Location parameter (default=0).

    Returns
    -------
    k : array_like
        Quantile corresponding to the lower tail probability, q.

    """
    args, loc, _ = self._parse_args(*args, **kwds)
    _a, _b = self._get_support(*args)
    q, loc = map(asarray, (q, loc))
    args = tuple(map(asarray, args))
    cond0 = self._argcheck(*args) & (loc == loc)
    cond1 = (q > 0) & (q < 1)
    cond2 = (q == 1) & cond0
    cond = cond0 & cond1
    output = valarray(shape(cond), value=self.badvalue, typecode="d")
    # output type 'd' to handle nin and inf
    place(output, (q == 0) * (cond == cond), _a - 1 + loc)
    place(output, cond2, _b + loc)
    if np.any(cond):
        goodargs = argsreduce(cond, *((q,) + args + (loc,)))
        loc, goodargs = goodargs[-1], goodargs[:-1]
        place(output, cond, self._ppf(*goodargs) + loc)

    if output.ndim == 0:
        return output[()]
    return output


# Traceback (TypeError)
In [2]: from scipy.stats import boltzmann, hypergeom, randint

In [3]: boltzmann.pmf(0, 2, [10, 11])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-759dbc29a72d> in <module>
----> 1 boltzmann.pmf(0, 2, [10, 11])

~/mc37scipy/lib/python3.7/site-packages/scipy-1.5.0.dev0+23b6191-py3.7-macosx-10.7-x86_64.egg/scipy/stats/_distn_infrastructure.py in pmf(self, k, *args, **kwds)
3018         """
3019         args, loc, _ = self._parse_args(*args, **kwds)
-> 3020         _a, _b = self._get_support(*args)
3021         k, loc = map(asarray, (k, loc))
3022         args = tuple(map(asarray, args))

~/mc37scipy/lib/python3.7/site-packages/scipy-1.5.0.dev0+23b6191-py3.7-macosx-10.7-x86_64.egg/scipy/stats/_discrete_distns.py in _get_support(self, lambda_, N)
730
731     def _get_support(self, lambda_, N):
--> 732         return self.a, N - 1
733
734     def _pmf(self, k, lambda_, N):

TypeError: unsupported operand type(s) for -: 'list' and 'int'

# Fixed code
def ppf(self, q, *args, **kwds):
    """
    Percent point function (inverse of `cdf`) at q of the given RV.

    Parameters
    ----------
    q : array_like
        Lower tail probability.
    arg1, arg2, arg3,... : array_like
        The shape parameter(s) for the distribution (see docstring of the
        instance object for more information).
    loc : array_like, optional
        Location parameter (default=0).

    Returns
    -------
    k : array_like
        Quantile corresponding to the lower tail probability, q.

    """
    args, loc, _ = self._parse_args(*args, **kwds)
    q, loc = map(asarray, (q, loc))
    args = tuple(map(asarray, args))
    _a, _b = self._get_support(*args)
    cond0 = self._argcheck(*args) & (loc == loc)
    cond1 = (q > 0) & (q < 1)
    cond2 = (q == 1) & cond0
    cond = cond0 & cond1
    output = valarray(shape(cond), value=self.badvalue, typecode="d")
    # output type 'd' to handle nin and inf
    place(output, (q == 0) * (cond == cond), _a - 1 + loc)
    place(output, cond2, _b + loc)
    if np.any(cond):
        goodargs = argsreduce(cond, *((q,) + args + (loc,)))
        loc, goodargs = goodargs[-1], goodargs[:-1]
        place(output, cond, self._ppf(*goodargs) + loc)

    if output.ndim == 0:
        return output[()]
    return output