don't use sys.exit(...) inside main(), but only under if __name__ == "__main__"

The convention is that sys.exit(...) is called only if a module is run as a script,
and that main() entry points use return statements to report exit codes: 0 (or None)
for successful execution, or any non-zero integer for errors.

E.g. see the console scripts generated when installing with pip.
This commit is contained in:
Cosimo Lupo 2017-01-11 12:10:58 +00:00
parent ae05b2a583
commit b7bb391033
No known key found for this signature in database
GPG Key ID: B61AAAD0B53A6419
15 changed files with 33 additions and 28 deletions

View File

@ -1,7 +1,8 @@
from __future__ import print_function, division, absolute_import from __future__ import print_function, division, absolute_import
import sys
def main(args=None): def main(args=None):
import sys
if args is None: if args is None:
args = sys.argv[1:] args = sys.argv[1:]
@ -27,5 +28,6 @@ def main(args=None):
import runpy import runpy
runpy.run_module(mod, run_name='__main__') runpy.run_module(mod, run_name='__main__')
if __name__ == '__main__': if __name__ == '__main__':
main() sys.exit(main())

View File

@ -262,10 +262,10 @@ def main(args=None):
args = sys.argv[1:] args = sys.argv[1:]
if len(args) < 1: if len(args) < 1:
print("usage: pyftinspect font...", file=sys.stderr) print("usage: pyftinspect font...", file=sys.stderr)
sys.exit(1) return 1
for arg in args: for arg in args:
Inspect(arg) Inspect(arg)
gtk.main() gtk.main()
if __name__ == "__main__": if __name__ == "__main__":
main() sys.exit(main())

View File

@ -932,7 +932,7 @@ def main(args=None):
if len(args) < 1: if len(args) < 1:
print("usage: pyftmerge font...", file=sys.stderr) print("usage: pyftmerge font...", file=sys.stderr)
sys.exit(1) return 1
configLogger(level=logging.INFO if options.verbose else logging.WARNING) configLogger(level=logging.INFO if options.verbose else logging.WARNING)
if options.timing: if options.timing:
@ -948,4 +948,4 @@ def main(args=None):
if __name__ == "__main__": if __name__ == "__main__":
main() sys.exit(main())

View File

@ -1151,11 +1151,14 @@ def build(f, font, tableTag=None):
return parseTable(lines, font, tableTag=tableTag) return parseTable(lines, font, tableTag=tableTag)
def main(args, font=None): def main(args=None, font=None):
import sys import sys
from fontTools import configLogger from fontTools import configLogger
from fontTools.misc.testTools import MockFont from fontTools.misc.testTools import MockFont
if args is None:
args = sys.argv[1:]
# configure the library logger (for >= WARNING) # configure the library logger (for >= WARNING)
configLogger() configLogger()
# comment this out to enable debug messages from mtiLib's logger # comment this out to enable debug messages from mtiLib's logger
@ -1186,6 +1189,7 @@ def main(args, font=None):
writer.endtag(tag) writer.endtag(tag)
writer.newline() writer.newline()
if __name__ == '__main__': if __name__ == '__main__':
import sys import sys
main (sys.argv[1:]) sys.exit(main())

View File

@ -2872,7 +2872,7 @@ def main(args=None):
if '--help' in args: if '--help' in args:
print(__doc__) print(__doc__)
sys.exit(0) return 0
options = Options() options = Options()
try: try:
@ -2885,11 +2885,11 @@ def main(args=None):
except options.OptionError as e: except options.OptionError as e:
usage() usage()
print("ERROR:", e, file=sys.stderr) print("ERROR:", e, file=sys.stderr)
sys.exit(2) return 2
if len(args) < 2: if len(args) < 2:
usage() usage()
sys.exit(1) return 1
configLogger(level=logging.INFO if options.verbose else logging.WARNING) configLogger(level=logging.INFO if options.verbose else logging.WARNING)
if options.timing: if options.timing:
@ -2995,4 +2995,4 @@ __all__ = [
] ]
if __name__ == '__main__': if __name__ == '__main__':
main() sys.exit(main())

View File

@ -1,6 +1,7 @@
from __future__ import print_function, division, absolute_import from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import * from fontTools.misc.py23 import *
import sys
from fontTools.subset import main from fontTools.subset import main
if __name__ == '__main__': if __name__ == '__main__':
main() sys.exit(main())

View File

@ -414,4 +414,4 @@ def main(args=None):
if __name__ == "__main__": if __name__ == "__main__":
main() sys.exit(main())

View File

@ -449,7 +449,6 @@ def main(args=None):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
if len(sys.argv) > 1: if len(sys.argv) > 1:
main() sys.exit(main())
#sys.exit(0)
import doctest, sys import doctest, sys
sys.exit(doctest.testmod().failed) sys.exit(doctest.testmod().failed)

View File

@ -1,6 +1,7 @@
from __future__ import print_function, division, absolute_import from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import * from fontTools.misc.py23 import *
import sys
from fontTools.varLib import main from fontTools.varLib import main
if __name__ == '__main__': if __name__ == '__main__':
main() sys.exit(main())

View File

@ -337,7 +337,6 @@ def main(args=None):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
if len(sys.argv) > 1: if len(sys.argv) > 1:
main() sys.exit(main())
#sys.exit(0)
import doctest, sys import doctest, sys
sys.exit(doctest.testmod().failed) sys.exit(doctest.testmod().failed)

View File

@ -60,7 +60,6 @@ def main(args=None):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
if len(sys.argv) > 1: if len(sys.argv) > 1:
main() sys.exit(main())
#sys.exit(0)
import doctest, sys import doctest, sys
sys.exit(doctest.testmod().failed) sys.exit(doctest.testmod().failed)

View File

@ -140,4 +140,5 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
main() import sys
sys.exit(main())

View File

@ -13,7 +13,7 @@ def main(args=None):
args = sys.argv[1:] args = sys.argv[1:]
if len(args) < 1: if len(args) < 1:
print("One argument, the input filename, must be provided.", file=sys.stderr) print("One argument, the input filename, must be provided.", file=sys.stderr)
sys.exit(1) return 1
filename = args[0] filename = args[0]
outfilename = makeOutputFileName(filename, outputDir=None, extension='.woff2') outfilename = makeOutputFileName(filename, outputDir=None, extension='.woff2')
@ -26,4 +26,4 @@ def main(args=None):
if __name__ == '__main__': if __name__ == '__main__':
main() sys.exit(main())

View File

@ -23,7 +23,7 @@ def main(args=None):
args = sys.argv[1:] args = sys.argv[1:]
if len(args) < 1: if len(args) < 1:
print("One argument, the input filename, must be provided.", file=sys.stderr) print("One argument, the input filename, must be provided.", file=sys.stderr)
sys.exit(1) return 1
filename = args[0] filename = args[0]
outfilename = make_output_name(filename) outfilename = make_output_name(filename)
@ -36,4 +36,4 @@ def main(args=None):
if __name__ == '__main__': if __name__ == '__main__':
main() sys.exit(main())

View File

@ -9,5 +9,4 @@ sys.path.insert(0, libdir)
from fontTools.__main__ import main from fontTools.__main__ import main
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(main())
main()