allow wrapping img2pdf main() in contextlib.redirect_stdout()
This commit is contained in:
parent
b39e755424
commit
78183c642b
1 changed files with 6 additions and 1 deletions
|
@ -1787,9 +1787,14 @@ Report bugs at https://gitlab.mister-muffin.de/josch/img2pdf/issues
|
||||||
title='General output arguments',
|
title='General output arguments',
|
||||||
description='Arguments controlling the output format.')
|
description='Arguments controlling the output format.')
|
||||||
|
|
||||||
|
# In Python3 we have to output to sys.stdout.buffer because we write are
|
||||||
|
# bytes and not strings. In certain situations, like when the main
|
||||||
|
# function is wrapped by contextlib.redirect_stdout(), sys.stdout does not
|
||||||
|
# have the buffer attribute. Thus we write to sys.stdout by default and
|
||||||
|
# to sys.stdout.buffer if it exists.
|
||||||
outargs.add_argument(
|
outargs.add_argument(
|
||||||
'-o', '--output', metavar='out', type=argparse.FileType('wb'),
|
'-o', '--output', metavar='out', type=argparse.FileType('wb'),
|
||||||
default=sys.stdout.buffer if PY3 else sys.stdout,
|
default=sys.stdout.buffer if hasattr(sys.stdout, "buffer") else sys.stdout,
|
||||||
help='Makes the program output to a file instead of standard output.')
|
help='Makes the program output to a file instead of standard output.')
|
||||||
outargs.add_argument(
|
outargs.add_argument(
|
||||||
'-C', '--colorspace', metavar='colorspace', type=parse_colorspacearg,
|
'-C', '--colorspace', metavar='colorspace', type=parse_colorspacearg,
|
||||||
|
|
Loading…
Reference in a new issue