Search code examples
pythondjangointrospectiontraceback

How to get the path of the function call in Python?


I'm designing something similar to Admin.Autodiscover() of Django.

The first hurdle that I'm facing is getting the path of the file from which admin.autodiscover() is called, so that I can traverse the apps/libraries in that folder and figure out which models should be kept in admin.

How do I do that?


Solution

  • The Zen of Python says: Explicit is better than implicit.

    Why not call it like this: your.autodiscover(__file__), or even your.autodiscover(dirname(__file__)). That way, someone who reads your code doesn't have to look for the magic in your autodiscover function, or look it up in the documentation.