summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2022-03-20 01:49:48 +0900
committerGitHub <noreply@github.com>2022-03-20 01:49:48 +0900
commit2beeaf746fab1634e47f01c215c9ff69d35833ee (patch)
tree8ce5fb90ee28e2f1a103cb33c2650b646bf65fa3 /utils
parent109dbb682015bf0d022569f4290eeea31d4b6b56 (diff)
parentaa1bc83c2ac9357b39048b555c3fdb0efff3449c (diff)
downloadsphinx-git-2beeaf746fab1634e47f01c215c9ff69d35833ee.tar.gz
Merge branch 'master' into fix-searchtools
Diffstat (limited to 'utils')
-rw-r--r--utils/checks.py108
-rw-r--r--utils/doclinter.py10
-rw-r--r--utils/jssplitter_generator.py12
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 = """