Fix variable argument support in @deprecate_non_keyword_only_args.

Review Request #12720 — Created Nov. 10, 2022 and submitted

Information

RBTools
release-5.x

Reviewers

The @deprecate_non_keyword_only_args decorator had some flaws when
passing in positional arguments as keyword arguments or when passing in
variable positional arguments.

This was happening in part because we treated *args and **kwargs as
standard arguments, and ended up with incorrect offsets in the arguments
passed during a call. These didn't match up. We actually needed to skip
these instead.

We also needed to skip copying over any positional arguments that were
passed as keyword arguments, for similar reasons.

Unit tests passed.

Initially hit these issues in Review Board's upcoming copy of this
function. This is a backport of those fixes, which are confirmed fixed.

Summary ID
Fix variable argument support in @deprecate_non_keyword_only_args.
The `@deprecate_non_keyword_only_args` decorator had some flaws when passing in positional arguments as keyword arguments or when passing in variable positional arguments. This was happening in part because we treated `*args` and `**kwargs` as standard arguments, and ended up with incorrect offsets in the arguments passed during a call. These didn't match up. We actually needed to skip these instead. We also needed to skip copying over any positional arguments that were passed as keyword arguments, for similar reasons.
031d0ae7a7b9a2b01e564c3d9457488cad471720
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-4.x (a5bfea0)