I think it would be a tad more convincing if there was a way to pass
arguments too (even if just a list of strings). At the very least extra
arguments should end up in sys.argv[1:].

Then again, presumably the function must be specially crafted for this
usage. Why can't you just specially craft a module's main()?

On Tue, Oct 20, 2020 at 7:10 PM Michael Smith <mich...@smith-li.com> wrote:

> There are many ways to invoke a function from the commandline. You can
> use setuptools' console_scripts entrypoint. You can use a decorator
> from click. And of course you can always do the classic
>
> if __name__ == "__main__":
>   main()
>
> to call whatever main() is. But there are inconveniences with these
> approaches. For setuptools, you have to actually run setup, somehow.
> For click, you have to install click. And for __name__, you are either
> locked into a single function name, or you have to write some arg
> parsing to determine what name to use.
>
> I propose it would be nice to be able to call a function from python,
> using syntax like
>
> python -m module:thunk
>
> The simplest proposal, I think, is if the function must accept no
> arguments -- or at least no required ones. This could be as
> straightforward as just being shorthand for
>
> python -c 'import module; module.thunk()'
>
> and remove a small amount of code that is repeated very frequently.
>
> I picked the colon syntax because that is what several other tools
> that enable calling functions from the commandline seem to do, but if
> your only objection is the specific syntax I picked, please propose a
> different one.
>
> What do you think?
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/JWLFOEOVGQKPD6F7ZHS5PWYIEMYOFUQ5/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him **(why is my pronoun here?)*
<http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/2KNIE57Q4TBSFMBAKAD6Z6K2J4M7HSOX/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to