summaryrefslogtreecommitdiffstats
path: root/pre_commit/output.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 18:05:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 18:05:20 +0000
commitc86df75ab11643fa4649cfe6ed5c4692d4ee342b (patch)
treede847f47ec2669e74b9a3459319579346b7c99df /pre_commit/output.py
parentInitial commit. (diff)
downloadpre-commit-c86df75ab11643fa4649cfe6ed5c4692d4ee342b.tar.xz
pre-commit-c86df75ab11643fa4649cfe6ed5c4692d4ee342b.zip
Adding upstream version 3.6.2.upstream/3.6.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'pre_commit/output.py')
-rw-r--r--pre_commit/output.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/pre_commit/output.py b/pre_commit/output.py
new file mode 100644
index 0000000..4bcf27f
--- /dev/null
+++ b/pre_commit/output.py
@@ -0,0 +1,33 @@
+from __future__ import annotations
+
+import contextlib
+import sys
+from typing import Any
+from typing import IO
+
+
+def write(s: str, stream: IO[bytes] = sys.stdout.buffer) -> None:
+ stream.write(s.encode())
+ stream.flush()
+
+
+def write_line_b(
+ s: bytes | None = None,
+ stream: IO[bytes] = sys.stdout.buffer,
+ logfile_name: str | None = None,
+) -> None:
+ with contextlib.ExitStack() as exit_stack:
+ output_streams = [stream]
+ if logfile_name:
+ stream = exit_stack.enter_context(open(logfile_name, 'ab'))
+ output_streams.append(stream)
+
+ for output_stream in output_streams:
+ if s is not None:
+ output_stream.write(s)
+ output_stream.write(b'\n')
+ output_stream.flush()
+
+
+def write_line(s: str | None = None, **kwargs: Any) -> None:
+ write_line_b(s.encode() if s is not None else s, **kwargs)