From a1199a17674060dbdc39c4691768f6041df28a69 Mon Sep 17 00:00:00 2001 From: Andrew Hamilton Date: Wed, 4 Sep 2019 15:22:17 +1000 Subject: [PATCH] tools: Add color to pydoc. --- eris/pydoc_color.py | 25 +++++++++++++++++++++++++ eris/tools.py | 11 ----------- eris/tools.toml | 9 +++++++++ setup.py | 3 ++- 4 files changed, 36 insertions(+), 12 deletions(-) create mode 100755 eris/pydoc_color.py diff --git a/eris/pydoc_color.py b/eris/pydoc_color.py new file mode 100755 index 0000000..1a04936 --- /dev/null +++ b/eris/pydoc_color.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3.7 + +# Copyright (C) 2019 Andrew Hamilton. All rights reserved. +# Licensed under the Artistic License 2.0. + + +import pydoc +import sys + +import eris.termstr + + +class TermDoc(pydoc.TextDoc): + + def bold(self, text): + return str(eris.termstr.TermStr(text).bold()) + + +def main(): + path = sys.argv[1] + print(pydoc.render_doc(pydoc.importfile(path), renderer=TermDoc())) + + +if __name__ == "__main__": + main() diff --git a/eris/tools.py b/eris/tools.py index 428e792..03f9ef6 100644 --- a/eris/tools.py +++ b/eris/tools.py @@ -296,17 +296,6 @@ def pytest(path): return status, (stdout + stderr) -@deps(url="https://docs.python.org/3/library/pydoc.html") -def pydoc(path): - stdout, stderr, returncode = _do_command( - [PYTHON_EXECUTABLE, "-m", "pydoc", path], timeout=TIMEOUT) - status = Status.normal if returncode == 0 else Status.not_applicable - if not stdout.startswith("Help on module"): - status = Status.not_applicable - stdout = stdout.replace(os.getcwd() + "/", "") - return status, _fix_input(stdout) - - @deps(deps={"pip/mypy"}, url="http://mypy-lang.org/", executables={"mypy"}) def mypy(path): stdout, stderr, returncode = _do_command( diff --git a/eris/tools.toml b/eris/tools.toml index eec74b2..bdd2dea 100644 --- a/eris/tools.toml +++ b/eris/tools.toml @@ -51,6 +51,15 @@ tools_for_extensions = [ url = "https://en.wikipedia.org/wiki/Python_syntax_and_semantics" command = "python3.7 -m py_compile" +[pydoc] + dependencies = [] + url = "https://docs.python.org/3/library/pydoc.html" + command = "pydoc_color" + success_status = "normal" + error_status = "not_applicable" + has_color = true + timeout = 60 + [pycodestyle] dependencies = ["pip/pycodestyle"] url = "http://pycodestyle.pycqa.org/en/latest/" diff --git a/setup.py b/setup.py index 22030db..cd57867 100755 --- a/setup.py +++ b/setup.py @@ -22,4 +22,5 @@ setup(name="eris", entry_points={"console_scripts": ["eris=eris.__main__:entry_point", "eris-worker=eris.worker:main", - "eris-webserver=eris.webserver:main"]}) + "eris-webserver=eris.webserver:main", + "pydoc_color=eris.pydoc_color:main"]})