diff options
author | Julin S <48789920+ju-sh@users.noreply.github.com> | 2020-04-19 14:17:16 +0530 |
---|---|---|
committer | Julin S <48789920+ju-sh@users.noreply.github.com> | 2020-04-19 14:17:16 +0530 |
commit | 0d94278967b63630f7c50a719f765c636a1e7e44 (patch) | |
tree | c176ae320e24c18f2e7a6e8c1d7caf57ee1a46c9 /scripts/asciidoc2html.py | |
parent | 6fab7845f0ce3f77037d73a928fc2a973ddf12f5 (diff) | |
download | qutebrowser-0d94278967b63630f7c50a719f765c636a1e7e44.tar.gz qutebrowser-0d94278967b63630f7c50a719f765c636a1e7e44.zip |
add type annotations to asciidoc2html script
Diffstat (limited to 'scripts/asciidoc2html.py')
-rwxr-xr-x | scripts/asciidoc2html.py | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/scripts/asciidoc2html.py b/scripts/asciidoc2html.py index ce00043fe..cf1d2b200 100755 --- a/scripts/asciidoc2html.py +++ b/scripts/asciidoc2html.py @@ -19,14 +19,12 @@ # along with qutebrowser. If not, see <http://www.gnu.org/licenses/>. """Generate the html documentation based on the asciidoc files.""" -from typing import List, Tuple - +from typing import List, Tuple, Optional import re import os import os.path import sys import subprocess -import glob import shutil import tempfile import argparse @@ -46,17 +44,15 @@ class AsciiDoc: FILES = ['faq', 'changelog', 'contributing', 'quickstart', 'userscripts'] - def __init__(self, asciidoc, website) -> None: - """ - asciidoc: Optional[List[str]] - website: Optional[List[str]]) - """ - self._cmd = None + def __init__(self, + asciidoc: Optional[List[str]], + website: Optional[str]) -> None: + self._cmd = None # type: Optional[List[str]] self._asciidoc = asciidoc self._website = website - self._homedir = None - self._themedir = None - self._tempdir = None + self._homedir = None # type: Optional[pathlib.Path] + self._themedir = None # type: Optional[pathlib.Path] + self._tempdir = None # type: Optional[pathlib.Path] self._failed = False def prepare(self) -> None: @@ -83,9 +79,8 @@ class AsciiDoc: def _build_docs(self) -> None: """Render .asciidoc files to .html sites.""" - files: List[Tuple[pathlib.Path, pathlib.Path]] = [(pathlib.Path('doc/{}.asciidoc'.format(f)), - DOC_DIR / (f + ".html")) - for f in self.FILES] + files = [(pathlib.Path('doc/{}.asciidoc'.format(f)), + DOC_DIR / (f + ".html")) for f in self.FILES] for src in pathlib.Path('doc/help/').glob('*.asciidoc'): dst = DOC_DIR / (src.stem + ".html") files.append((src, dst)) @@ -100,6 +95,7 @@ class AsciiDoc: asciidoc_args = ['-a', 'source-highlighter=pygments'] for src, dst in files: + assert self._tempdir is not None # for mypy modified_src = self._tempdir / src.name with open(modified_src, 'w', encoding='utf-8') as modified_f, \ open(src, 'r', encoding='utf-8') as f: @@ -122,12 +118,12 @@ class AsciiDoc: def _build_website_file(self, root: pathlib.Path, filename: str) -> None: """Build a single website file.""" src = root / filename - src_basename = src.name - dst = pathlib.Path(self._website[0]) - dirname = src.parent + assert self._website is not None # for mypy + dst = pathlib.Path(self._website) dst = src.parent.relative_to('.') / (src.stem + ".html") dst.parent.mkdir(exist_ok=True) - + + assert self._tempdir is not None # for mypy modified_src = self._tempdir / src.name shutil.copy('www/header.asciidoc', modified_src) @@ -187,9 +183,11 @@ class AsciiDoc: def _build_website(self) -> None: """Prepare and build the website.""" theme_file = (pathlib.Path('www') / 'qute.css').resolve() + assert self._themedir is not None # for mypy shutil.copy(theme_file, self._themedir) - outdir = pathlib.Path(self._website[0]) + assert self._website is not None # for mypy + outdir = pathlib.Path(self._website) for item_path in pathlib.Path().rglob('*.asciidoc'): if item_path.stem in ['header', 'OpenSans-License']: @@ -209,12 +207,13 @@ class AsciiDoc: for dst, link_name in [ ('README.html', 'index.html'), ((pathlib.Path('doc') / 'quickstart.html'), 'quickstart.html')]: + assert isinstance(dst, (str, pathlib.Path)) # for mypy try: - (outdir / link_name).symlink_to(dst) # mypy gives error here. Not sure why + (outdir / link_name).symlink_to(dst) except FileExistsError: pass - def _get_asciidoc_cmd(self): # -> List[str] + def _get_asciidoc_cmd(self) -> List[str]: """Try to find out what commandline to use to invoke asciidoc.""" if self._asciidoc is not None: return self._asciidoc @@ -246,6 +245,7 @@ class AsciiDoc: *args: Additional arguments passed to asciidoc. """ print("Calling asciidoc for {}...".format(src.name)) + assert self._cmd is not None # for mypy cmdline = self._cmd[:] if dst is not None: cmdline += ['--out-file', str(dst)] @@ -266,7 +266,7 @@ def parse_args() -> argparse.Namespace: """Parse command-line arguments.""" parser = argparse.ArgumentParser() parser.add_argument('--website', help="Build website into a given " - "directory.", nargs=1) + "directory.") parser.add_argument('--asciidoc', help="Full path to python and " "asciidoc.py. If not given, it's searched in PATH.", nargs=2, required=False, |