Skip to content

Commit

Permalink
Update _decorators.py
Browse files Browse the repository at this point in the history
Add stacklevel parameter for warnings.warn
  • Loading branch information
alexitkes authored Jul 28, 2019
1 parent d8845df commit e4ce188
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions pandas/util/_decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,8 @@ def wrapper(*args, **kwargs):
def deprecate_nonkeyword_args(version: str,
pos_args: list = None,
*,
n_args: int = None):
n_args: int = None,
stacklevel: int = 2):
"""
Deprecate the function call with too much positional arguments.
Expand All @@ -232,6 +233,8 @@ def deprecate_nonkeyword_args(version: str,
pos_args : list
List of names of the arguments OK to be given as positional.
stacklevel : int, default 2
Stack level for `warnings.warn`
Returns
-------
_deprecate_nonkeyword_args : callable
Expand All @@ -256,14 +259,14 @@ def _deprecate_nonkeyword_args(func):
def wrapper(*args, **kwargs):
if len(args) > n_args:
if pos_args is None:
msg = "%s will only accept %i positional arguments in version %s" % (func.__name__,
n_args,
version)
msg = (
"%s will only accept %i positional arguments in version %s"
) % (func.__name__, n_args,version)
else:
msg = "%s will only accept positional arguments (%s) in version %s" % (func.__name__,
", ".join(pos_args),
version)
warnings.warn(msg, FutureWarning)
msg = (
"%s will only accept positional arguments (%s) in version %s"
) % (func.__name__, ", ".join(pos_args), version)
warnings.warn(msg, FutureWarning, stacklevel=stacklevel)
return func(*args, **kwargs)
return wrapper

Expand Down

0 comments on commit e4ce188

Please sign in to comment.