Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It is, and it will be back soon just like Python's "if __name__ == '__main__'"...


It makes sense to still have a main function. It doesn't make sense to have a class only to wrap that main function.


What? When did that go away? What is the alternative?


In a pyproject.toml file you can create/define scripts that reference an entry function. E.g.:

    # myapp/app.py
    def main():
        print('Hello!')
and in the pyproject.toml:

    [project.scripts]
    app = "myapp.app:main"
You can still use the __name__ check at the end of the file, e.g.:

    if __name__ == '__main__':
        main()
That way it works both as a standalone and when installed via pip/uv. -- Note: The scripts created by the installer are slightly more complicated versions of that __name__ check that handle the application argument (arg 0) and the exit code as the return value from main().




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: