aboutsummaryrefslogtreecommitdiffstats
path: root/library/python/testing/custom_linter_util/reporter.py
diff options
context:
space:
mode:
authorprettyboy <prettyboy@yandex-team.com>2023-09-08 00:22:12 +0300
committerprettyboy <prettyboy@yandex-team.com>2023-09-08 00:46:04 +0300
commit3a6cd865171eed9b89bf536cd242285f8b583a91 (patch)
tree25e2756c125f7484fb118e0d5724212199662389 /library/python/testing/custom_linter_util/reporter.py
parent67f3f216950849664a29035458cfaa5d12a62846 (diff)
downloadydb-3a6cd865171eed9b89bf536cd242285f8b583a91.tar.gz
[build/plugins/ytest] Allow prebuilt linters for opensource
Без этого, ydb или не сможет запускать flake8 с помощью ya make. Или к ним поедет сборка flake8. Возможно последнее и не так плохо, но сейчас предлагается пока так
Diffstat (limited to 'library/python/testing/custom_linter_util/reporter.py')
-rw-r--r--library/python/testing/custom_linter_util/reporter.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/library/python/testing/custom_linter_util/reporter.py b/library/python/testing/custom_linter_util/reporter.py
new file mode 100644
index 0000000000..8ae559bca0
--- /dev/null
+++ b/library/python/testing/custom_linter_util/reporter.py
@@ -0,0 +1,39 @@
+import json
+import sys
+from enum import Enum
+from typing import Optional
+
+
+class LintStatus(Enum):
+ GOOD = "GOOD"
+ FAIL = "FAIL"
+ SKIPPED = "SKIPPED"
+
+
+class LintReport():
+ def __init__(self):
+ self._report = {}
+
+ def add(self, file_name: str, status: LintStatus, message: str = "", elapsed: float = 0.0):
+ self._report[file_name] = {
+ "status": status.value,
+ "message": message,
+ "elapsed": elapsed,
+ }
+
+ def dump(self, report_file, pretty: Optional[bool] = None):
+ data = {
+ "report": self._report,
+ }
+ if report_file == "-":
+ if pretty is None:
+ pretty = True
+ self._do_dump(sys.stdout, data, pretty)
+ else:
+ with open(report_file, "w") as f:
+ self._do_dump(f, data, pretty)
+
+ @staticmethod
+ def _do_dump(dest, data, pretty):
+ indent = 4 if pretty else None
+ json.dump(data, dest, indent=indent)