def functionNameFrom(vfunc):
    """
    The string used to identify a versionedfunction is defined by:
    * is the last two components of vfunc.__qualname__ [via split('.')]
    * if only 1 component, the prefix by module name of defining module

    class Foo():
        @versionedfunction
        def bar(self):
            pass
    would have 'Foo.bar" as __qualname__ and be used here to identify and map to versions

    <module_foo.py>
    @versionedfunction
    def bar():
        pass
    would have 'module_foo.bar' as name used to identify and map to versions

    This is intended to be a reasonable blend between fully qualified pathnames and only function name.
    """
    components = vfunc.__qualname__.split('.')[-2:] # last two components of name

    if len(components)<2:
        module = vfunc.__module__.split('.')[-1] # last module name
        components.insert(0, module)

    return '.'.join(components)