Closed
Description
def _validate_n(self, n):
"""
Require that `n` be a nonzero integer.
Parameters
----------
n : int
Returns
-------
nint : int
Raises
------
TypeError if `int(n)` raises
ValueError if n != int(n)
"""
try:
nint = int(n)
except (ValueError, TypeError):
raise TypeError('`n` argument must be an integer, '
'got {ntype}'.format(ntype=type(n)))
if n != nint:
raise ValueError('`n` argument must be an integer, '
'got {n}'.format(n=n))
return nint
_validate_n
does not test whether n
is nonzero.
pandas/pandas/_libs/tslibs/offsets.pyx
Line 355 in 601b8c9
_validate_n
is only used in https://github.com/pandas-dev/pandas/blob/601b8c9c45b3cb06ee4ceaf34456bbfd3f5e5d1d/pandas/tseries/offsets.py
It may be that n
does not have to be nonzero. Issue #20517 investigates whether n
actually has to be nonzero in a case where n
is tested again to be nonzero after calling _validate_n
:
pandas/pandas/tseries/offsets.py
Lines 1458 to 1465 in 601b8c9