def get_args_kwargs_param_names(fparams) ->(str, str):
    """fparams is inspect.signature(f).parameters
    for some function f.

    Doctests:
    >>> import inspect
    >>> def f(): pass
    >>> get_args_kwargs_param_names(inspect.signature(f).parameters)
    (None, None)
    >>> def f(*args): pass
    >>> get_args_kwargs_param_names(inspect.signature(f).parameters)
    ('args', None)
    >>> def f(a, b, *filters, **kwargs): pass
    >>> get_args_kwargs_param_names(inspect.signature(f).parameters)
    ('filters', 'kwargs')
    >>> def f(x, y, z, user='Joe', **other_users): pass
    >>> get_args_kwargs_param_names(inspect.signature(f).parameters)
    (None, 'other_users')
    """
    args_name = None
    kwargs_name = None
    for name in fparams:
        param = fparams[name]
        if param.kind == param.VAR_KEYWORD:
            kwargs_name = name
        elif param.kind == param.VAR_POSITIONAL:
            args_name = name
        if args_name and kwargs_name:
            break
    return args_name, kwargs_name
