diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2022-03-20 01:49:48 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-20 01:49:48 +0900 |
commit | 2beeaf746fab1634e47f01c215c9ff69d35833ee (patch) | |
tree | 8ce5fb90ee28e2f1a103cb33c2650b646bf65fa3 /utils | |
parent | 109dbb682015bf0d022569f4290eeea31d4b6b56 (diff) | |
parent | aa1bc83c2ac9357b39048b555c3fdb0efff3449c (diff) | |
download | sphinx-git-2beeaf746fab1634e47f01c215c9ff69d35833ee.tar.gz |
Merge branch 'master' into fix-searchtools
Diffstat (limited to 'utils')
-rw-r--r-- | utils/checks.py | 108 | ||||
-rw-r--r-- | utils/doclinter.py | 10 | ||||
-rw-r--r-- | utils/jssplitter_generator.py | 12 |
3 files changed, 4 insertions, 126 deletions
diff --git a/utils/checks.py b/utils/checks.py deleted file mode 100644 index 093817409..000000000 --- a/utils/checks.py +++ /dev/null @@ -1,108 +0,0 @@ -""" - utils.checks - ~~~~~~~~~~~~ - - Custom, Sphinx-only flake8 plugins. - - :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -import os -import re - -import sphinx - -name_mail_re = r'[\w ]+(<.*?>)?' -copyright_re = re.compile(r'^ :copyright: Copyright 200\d(-20\d\d)? ' - r'by %s(, %s)*[,.]$' % (name_mail_re, name_mail_re)) -copyright_2_re = re.compile(r'^ %s(, %s)*[,.]$' % - (name_mail_re, name_mail_re)) -license_re = re.compile(r' :license: (.*?).\n') - - -def flake8ext(_func): - """Decorate flake8_asserts functions""" - _func.name = _func.__name__ - _func.version = sphinx.__version__ - _func.code = _func.__name__.upper() - - return _func - - -@flake8ext -def sphinx_has_header(physical_line, filename, lines, line_number): - """Check for correct headers. - - Make sure each Python file has a correct file header including - copyright and license information. - - X101 invalid header found - """ - # we have a state machine of sorts so we need to start on line 1. Also, - # there's no point checking really short files - if line_number != 1 or len(lines) < 10: - return - - # this file uses a funky license but unfortunately it's not possible to - # ignore specific errors on a file-level basis yet [1]. Simply skip it. - # - # [1] https://gitlab.com/pycqa/flake8/issues/347 - if os.path.samefile(filename, './sphinx/util/smartypants.py'): - return - - # if the top-level package or not inside the package, ignore - mod_name = os.path.splitext(filename)[0].strip('./\\').replace( - '/', '.').replace('.__init__', '') - if mod_name == 'sphinx' or not mod_name.startswith('sphinx.'): - return - - # line number correction - offset = 1 - if lines[0:1] == ['#!/usr/bin/env python3\n']: - lines = lines[1:] - offset = 2 - - llist = [] - doc_open = False - - for lno, line in enumerate(lines): - llist.append(line) - if lno == 0: - if line != '"""\n' and line != 'r"""\n': - return 0, 'X101 missing docstring begin (""")' - else: - doc_open = True - elif doc_open: - if line == '"""\n': - # end of docstring - if lno <= 3: - return 0, 'X101 missing module name in docstring' - break - - if line != '\n' and line[:4] != ' ' and doc_open: - return 0, 'X101 missing correct docstring indentation' - - if lno == 1: - mod_name_len = len(line.strip()) - if line.strip() != mod_name: - return 2, 'X101 wrong module name in docstring heading' - elif lno == 2: - if line.strip() != mod_name_len * '~': - return (3, 'X101 wrong module name underline, should be ' - '~~~...~') - else: - return 0, 'X101 missing end and/or start of docstring...' - - # check for copyright and license fields - license = llist[-2:-1] - if not license or not license_re.match(license[0]): - return 0, 'X101 no correct license info' - - offset = -3 - copyright = llist[offset:offset + 1] - while copyright and copyright_2_re.match(copyright[0]): - offset -= 1 - copyright = llist[offset:offset + 1] - if not copyright or not copyright_re.match(copyright[0]): - return 0, 'X101 no correct copyright info' diff --git a/utils/doclinter.py b/utils/doclinter.py index b4b27748a..6ef8cbe10 100644 --- a/utils/doclinter.py +++ b/utils/doclinter.py @@ -1,12 +1,4 @@ -""" - utils.doclinter - ~~~~~~~~~~~~~~~ - - A linter for Sphinx docs - - :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" +"""A linter for Sphinx docs""" import os import re diff --git a/utils/jssplitter_generator.py b/utils/jssplitter_generator.py index 9b4fe8490..f37559dfa 100644 --- a/utils/jssplitter_generator.py +++ b/utils/jssplitter_generator.py @@ -91,17 +91,11 @@ console.log(' ... ok\\n') ''' -python_src = f'''\ -""" - sphinx.search.jssplitter - ~~~~~~~~~~~~~~~~~~~~~~~~ - - Provides Python compatible word splitter to JavaScript - DO NOT EDIT. This is generated by utils/jssplitter_generator.py +python_src = '''\ +"""Provides Python compatible word splitter to JavaScript - :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. +DO NOT EDIT. This is generated by utils/jssplitter_generator.py """ splitter_code = """ |