I know the meaning and usage of *args. But sometimes there is nothing like args after the *. For example, in the function pprint
def pprint(object, stream=None, indent=1, width=80, depth=None, *,
           compact=False):
    """Pretty-print a Python object to a stream [default is sys.stdout]."""
    printer = PrettyPrinter(
        stream=stream, indent=indent, width=width, depth=depth,
        compact=compact)
    printer.pprint(object)
there is an * in the signature. What does it mean?
 
    