Skip to content
This repository was archived by the owner on Dec 29, 2025. It is now read-only.

Commit 76fe7ae

Browse files
committed
Simplify black formatter
1 parent 3d63f16 commit 76fe7ae

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

black/format/src/__main__.py

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,38 +24,43 @@ def _detach_wrapper(wrapper):
2424

2525

2626
@contextlib.contextmanager
27-
def _modify_std():
28-
real_stdin = sys.stdin
29-
real_stderr = sys.stderr
30-
real_stdout = sys.stdout
27+
def _modify_std(stdin=None, stdout=None, stderr=None):
28+
if stdin is not None:
29+
real_stdin = sys.stdin
30+
sys.stdin = stdin
31+
if stdout is not None:
32+
real_stdout = sys.stdout
33+
sys.stdout = stdout
34+
if stderr is not None:
35+
real_stderr = sys.stderr
36+
sys.stderr = stderr
3137
try:
3238
yield
3339
finally:
34-
sys.stdin = real_stdin
35-
sys.stdout = real_stdout
36-
sys.stderr = real_stderr
40+
if stdin is not None:
41+
sys.stdin = real_stdin
42+
if stdout is not None:
43+
sys.stdout = real_stdout
44+
if stderr is not None:
45+
sys.stderr = real_stderr
3746

3847

3948
def _run(args):
4049
args = parser.parse_args(args)
4150

4251
output = io.BytesIO()
43-
try:
44-
with _modify_std(), args.src.open() as stdin, args.dest.open(
52+
stderr = io.TextIOWrapper(output, write_through=True)
53+
with args.src.open() as stdin, args.dest.open(
4554
"w"
46-
) as stdout, _detach_wrapper(
47-
io.TextIOWrapper(output, write_through=True)
48-
) as stderr:
49-
sys.stdin = stdin
50-
sys.stdout = stdout
51-
sys.stderr = stderr
55+
) as stdout, _modify_std(stdin=stdin, stdout=stdout, stderr=stderr):
56+
try:
5257
black.main(
5358
args.black_options + ["-q", "--stdin-filename", str(args.src), "-"]
5459
)
55-
except SystemExit as e:
56-
exit_code = e.code
57-
else:
58-
exit_code = 0
60+
except SystemExit as e:
61+
exit_code = e.code
62+
else:
63+
exit_code = 0
5964

6065
return worker.WorkResult(exit_code=exit_code, output=output.getvalue())
6166

0 commit comments

Comments
 (0)