human
What is a Python code to determine the keyword\'s name and tags, respectively given the following:
Complete the below
def keyword(name=None, tags=()):

    ''''Decorator to set custom keyword names and tags to functions and methods.
    This decorator creates the ``robot_name`` and ``robot_tags`` attributes on
    the decorated keyword method or function.  Robot Framework checks them to
    determine the keyword\'s name and tags, respectively.
    library.py::
    @keyword(name=\'Login Via User Panel\')
    def login(username, password):
    @keyword(name=\'Logout Via User Panel\', tags=[\'example\', \'tags\'])
    def logout():
    tests.robot::
    Login Via User Panel    myusername    mypassword
    If ``name`` is not given, the actual name of the keyword will not be
    affected, but the ``robot_name`` attribute will still be created.
    This can be useful for marking methods as keywords in a dynamic library.
    In this usage it is possible to also omit parenthesis when using the
    decorator::
    @keyword
    def func():'
    '''
assistant
#Here is Python code to determine the keyword\'s name and tags, respectively.
    if callable(name):
        return keyword()(name)
    def decorator(func):
        func.robot_name = name
        func.robot_tags = tags
        return func
    return decorator