<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fn_available_argcount(callable):
 """Returns the number of explicit non-keyword arguments that the callable can be called with. Bound methods are called with an implicit first argument, so this takes that into account. Excludes *args and **kwargs declarations. """

    fn = get_fn_or_method(callable)
    if _inspect.isfunction(fn):
        return fn.__code__.co_argcount
    else: # method
        if fn.__self__ is None:
            return fn.__func__.__code__.co_argcount
        else:
            return fn.__func__.__code__.co_argcount - 1