code: def disallow_positional_args(wrapped=None, allowed=None):
    
    # See
    # https://wrapt.readthedocs.io/en/latest/decorators.html#decorators-with-optional-arguments
    # for decorator pattern.
    if wrapped is None:
      return functools.partial(disallow_positional_args, allowed=allowed)
  
    @wrapt.decorator
    def disallow_positional_args_dec(fn, instance, args, kwargs):
      ismethod = instance is not None
      _check_no_positional(fn, args, ismethod, allowed=allowed)
      _check_required(fn, kwargs)
      return fn(*args, **kwargs)
  
    return disallow_positional_args_dec(wrapped)
docs: Requires function to be called using keyword arguments.