Skip to content

Instantly share code, notes, and snippets.

@carlsmith
Last active December 8, 2022 22:43
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carlsmith/800cbe3e11f630ac8aa0 to your computer and use it in GitHub Desktop.
Save carlsmith/800cbe3e11f630ac8aa0 to your computer and use it in GitHub Desktop.
Main function decorator (for Python 2 and 3).
import inspect
def main(function):
locale = inspect.stack()[1][0].f_locals
module = locale.get("__name__", None)
if module == "__main__":
locale[function.__name__] = function
function()
return function
@carlsmith
Copy link
Author

I haven't used it for years to be honest. I tested it before posting it, but that was ages ago.

@TaurusEight
Copy link

The following modifications work fine for me under 3.10.5

from inspect import stack

def automain( func ) :
  locale = stack()[ 1 ].frame.f_locals
  module = locale.get( '__name__', None )
  if module == '__main__' :
    locale[ func.__name__ ] = func
    func()
  return func

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment