I want to create a python library with a 0 argument function that my custom Robot Framework keywords can call.  It needs to know the absolute path of the file where the keyword is defined, and the name of the keyword.  I know how to do something similar with test cases using the robot.libraries.BuiltIn library and the ${SUITE_SOURCE} and ${TEST NAME} variables, but I can't find anything similar for custom keywords.  I don't care how complicated the answer is, maybe I have to dig into the guts of Robot Framework's internal classes and access that data somehow.  Is there any way to do this?
I took a relatively quick look through the sources, and it seems that the execution context does have any reference to currently executing keyword. So, the only way I can think of resolving this is:

Your library needs also to be a listener, since listeners get events when a keyword is started
You need to go through robot.libraries.BuiltIn.EXECUTION_CONTEXT._kw_store.resources to find out which resource file contains the keyword currently executing.

I did not do a POC, so I am not sure whether this actually doable, bu that's the solution that comes to my mind currently.
Robot Framework location and name of keyword