human
I wrote the below code

    def positional_decorator(wrapped):
        @functools.wraps(wrapped)
        def positional_wrapper(*args, **kwargs):
            if (len(args) > max_positional_args):
                plural_s = ''
                if (max_positional_args != 1):
                    plural_s = 's'
                message = '{function}()    takes    at    most    {args_max}    positional    argument{plural}    ({args_given}    given)'.format(function=wrapped.__name__, args_max=max_positional_args, args_given=len(args), plural=plural_s)
                if (positional_parameters_enforcement == POSITIONAL_EXCEPTION):
                    raise TypeError(message)
                elif (positional_parameters_enforcement == POSITIONAL_WARNING):
                    logger.warning(message)
            return wrapped(*args, **kwargs)
        return positional_wrapper
    if isinstance(max_positional_args, six.integer_types):
        return positional_decorator
    else:
        (args, _, _, defaults) = inspect.getargspec(max_positional_args)
        return positional((len(args) - len(defaults)))(max_positional_args)

What's a good function header?
assistant
#Here's a good function header.

def positional(max_positional_args):