<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_role(member, cython=False):
 """Return the reStructuredText role `func`, `class`, or `const` best describing the given member. Some examples based on the site-package |numpy|. |numpy.clip| is a function: 'func' |numpy.ndarray| is a class: 'class' |numpy.ndarray.clip| is a method, for which also the `function` role is returned: 'func' For everything else the `constant` role is returned: 'const' When analysing cython extension modules, set the option `cython` flag to |True|. |Double| is correctly identified as a class: 'class' Only with the `cython` flag beeing |True|, for everything else the `function` text role is returned (doesn't make sense here, but the |numpy| module is not something defined in module |pointerutils| anyway):
 'func' """

        if inspect.isroutine(member) or isinstance(member, numpy.ufunc):
            return 'func'
        elif inspect.isclass(member):
            return 'class'
        elif cython:
            return 'func'
        return 'const'