Is this by python convention? It seems intuitive that if a script has a shebang, then it should have executable mode and vice versa. However, if it just has the __main__ block, it may be okay to allow it to be passed as input to the python interpreter explicitly?