def _define_fixed(wrapped, callable_):
is_class = inspect.isclass(wrapped)<EOL>style = callable_._splpy_style if hasattr(callable_, '<STR_LIT>') else wrapped._splpy_style<EOL>if style == '<STR_LIT>':<EOL><INDENT>return -<NUM_LIT:1><EOL><DEDENT>fixed_count = <NUM_LIT:0><EOL>if style == '<STR_LIT>':<EOL><INDENT>sig = _inspect.signature(callable_)<EOL>pmds = sig.parameters<EOL>itpmds = iter(pmds)<EOL>if is_class:<EOL><INDENT>next(itpmds)<EOL><DEDENT>for pn in itpmds:<EOL><INDENT>param = pmds[pn]<EOL>if param.kind == _inspect.Parameter.POSITIONAL_OR_KEYWORD:<EOL><INDENT>fixed_count += <NUM_LIT:1><EOL><DEDENT>if param.kind == _inspect.Parameter.VAR_POSITIONAL: <EOL><INDENT>fixed_count = -<NUM_LIT:1><EOL>break<EOL><DEDENT>if param.kind == _inspect.Parameter.VAR_KEYWORD:<EOL><INDENT>break<EOL><DEDENT><DEDENT><DEDENT>return fixed_count<EOL>
For the callable see how many positional parameters are required