Skip to content

Commit 6e4df0a

Browse files
authored
Merge pull request #9029 from tk0miya/refactor_vartypes_transforms
refactor: Use PEP-526 based variable annotation (sphinx.transforms)
2 parents 141735f + 7e6ea15 commit 6e4df0a

File tree

6 files changed

+23
-23
lines changed

6 files changed

+23
-23
lines changed

sphinx/transforms/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ class SphinxTransformer(Transformer):
7272
A transformer for Sphinx.
7373
"""
7474

75-
document = None # type: nodes.document
76-
env = None # type: BuildEnvironment
75+
document: nodes.document = None
76+
env: "BuildEnvironment" = None
7777

7878
def set_environment(self, env: "BuildEnvironment") -> None:
7979
self.env = env
@@ -170,7 +170,7 @@ class AutoNumbering(SphinxTransform):
170170
default_priority = 210
171171

172172
def apply(self, **kwargs: Any) -> None:
173-
domain = self.env.get_domain('std') # type: StandardDomain
173+
domain: StandardDomain = self.env.get_domain('std')
174174

175175
for node in self.document.traverse(nodes.Element):
176176
if (domain.is_enumerable_node(node) and

sphinx/transforms/compact_bullet_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def visit_bullet_list(self, node: nodes.bullet_list) -> None:
3232
pass
3333

3434
def visit_list_item(self, node: nodes.list_item) -> None:
35-
children = [] # type: List[Node]
35+
children: List[Node] = []
3636
for child in node.children:
3737
if not isinstance(child, nodes.Invisible):
3838
children.append(child)

sphinx/transforms/i18n.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,10 @@ def apply(self, **kwargs: Any) -> None:
275275
patch = patch.next_node()
276276

277277
# ignore unexpected markups in translation message
278-
unexpected = (
278+
unexpected: Tuple[Type[Element], ...] = (
279279
nodes.paragraph, # expected form of translation
280280
nodes.title # generated by above "Subelements phase2"
281-
) # type: Tuple[Type[Element], ...]
281+
)
282282

283283
# following types are expected if
284284
# config.gettext_additional_targets is configured
@@ -296,16 +296,16 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
296296
lst.append(new)
297297

298298
is_autofootnote_ref = NodeMatcher(nodes.footnote_reference, auto=Any)
299-
old_foot_refs = node.traverse(is_autofootnote_ref) # type: List[nodes.footnote_reference] # NOQA
300-
new_foot_refs = patch.traverse(is_autofootnote_ref) # type: List[nodes.footnote_reference] # NOQA
299+
old_foot_refs: List[nodes.footnote_reference] = node.traverse(is_autofootnote_ref)
300+
new_foot_refs: List[nodes.footnote_reference] = patch.traverse(is_autofootnote_ref)
301301
if len(old_foot_refs) != len(new_foot_refs):
302302
old_foot_ref_rawsources = [ref.rawsource for ref in old_foot_refs]
303303
new_foot_ref_rawsources = [ref.rawsource for ref in new_foot_refs]
304304
logger.warning(__('inconsistent footnote references in translated message.' +
305305
' original: {0}, translated: {1}')
306306
.format(old_foot_ref_rawsources, new_foot_ref_rawsources),
307307
location=node)
308-
old_foot_namerefs = {} # type: Dict[str, List[nodes.footnote_reference]]
308+
old_foot_namerefs: Dict[str, List[nodes.footnote_reference]] = {}
309309
for r in old_foot_refs:
310310
old_foot_namerefs.setdefault(r.get('refname'), []).append(r)
311311
for newf in new_foot_refs:
@@ -339,8 +339,8 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
339339
# * use translated refname for section refname.
340340
# * inline reference "`Python <...>`_" has no 'refname'.
341341
is_refnamed_ref = NodeMatcher(nodes.reference, refname=Any)
342-
old_refs = node.traverse(is_refnamed_ref) # type: List[nodes.reference]
343-
new_refs = patch.traverse(is_refnamed_ref) # type: List[nodes.reference]
342+
old_refs: List[nodes.reference] = node.traverse(is_refnamed_ref)
343+
new_refs: List[nodes.reference] = patch.traverse(is_refnamed_ref)
344344
if len(old_refs) != len(new_refs):
345345
old_ref_rawsources = [ref.rawsource for ref in old_refs]
346346
new_ref_rawsources = [ref.rawsource for ref in new_refs]
@@ -368,7 +368,7 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
368368
is_refnamed_footnote_ref = NodeMatcher(nodes.footnote_reference, refname=Any)
369369
old_foot_refs = node.traverse(is_refnamed_footnote_ref)
370370
new_foot_refs = patch.traverse(is_refnamed_footnote_ref)
371-
refname_ids_map = {} # type: Dict[str, List[str]]
371+
refname_ids_map: Dict[str, List[str]] = {}
372372
if len(old_foot_refs) != len(new_foot_refs):
373373
old_foot_ref_rawsources = [ref.rawsource for ref in old_foot_refs]
374374
new_foot_ref_rawsources = [ref.rawsource for ref in new_foot_refs]
@@ -385,8 +385,8 @@ def list_replace_or_append(lst: List[N], old: N, new: N) -> None:
385385

386386
# citation should use original 'ids'.
387387
is_citation_ref = NodeMatcher(nodes.citation_reference, refname=Any)
388-
old_cite_refs = node.traverse(is_citation_ref) # type: List[nodes.citation_reference] # NOQA
389-
new_cite_refs = patch.traverse(is_citation_ref) # type: List[nodes.citation_reference] # NOQA
388+
old_cite_refs: List[nodes.citation_reference] = node.traverse(is_citation_ref)
389+
new_cite_refs: List[nodes.citation_reference] = patch.traverse(is_citation_ref)
390390
refname_ids_map = {}
391391
if len(old_cite_refs) != len(new_cite_refs):
392392
old_cite_ref_rawsources = [ref.rawsource for ref in old_cite_refs]
@@ -456,7 +456,7 @@ def get_ref_key(node: addnodes.pending_xref) -> Tuple[str, str, str]:
456456
if 'index' in self.config.gettext_additional_targets:
457457
# Extract and translate messages for index entries.
458458
for node, entries in traverse_translatable_index(self.document):
459-
new_entries = [] # type: List[Tuple[str, str, str, str, str]]
459+
new_entries: List[Tuple[str, str, str, str, str]] = []
460460
for type, msg, tid, main, key_ in entries:
461461
msg_parts = split_index_msg(type, msg)
462462
msgstr_parts = []

sphinx/transforms/post_transforms/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ class SphinxPostTransform(SphinxTransform):
3838
They do resolving references, convert images, special transformation for each output
3939
formats and so on. This class helps to implement these post transforms.
4040
"""
41-
builders = () # type: Tuple[str, ...]
42-
formats = () # type: Tuple[str, ...]
41+
builders: Tuple[str, ...] = ()
42+
formats: Tuple[str, ...] = ()
4343

4444
def apply(self, **kwargs: Any) -> None:
4545
if self.is_supported():
@@ -104,7 +104,7 @@ def run(self, **kwargs: Any) -> None:
104104
newnode = None
105105

106106
if newnode:
107-
newnodes = [newnode] # type: List[Node]
107+
newnodes: List[Node] = [newnode]
108108
else:
109109
newnodes = [contnode]
110110
if newnode is None and isinstance(node[0], addnodes.pending_xref_condition):
@@ -121,7 +121,7 @@ def resolve_anyref(self, refdoc: str, node: pending_xref, contnode: Element) ->
121121
"""Resolve reference generated by the "any" role."""
122122
stddomain = self.env.get_domain('std')
123123
target = node['reftarget']
124-
results = [] # type: List[Tuple[str, Element]]
124+
results: List[Tuple[str, Element]] = []
125125
# first, try resolving as :doc:
126126
doc_ref = stddomain.resolve_xref(self.env, refdoc, self.app.builder,
127127
'doc', target, node, contnode)

sphinx/transforms/post_transforms/code.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def apply(self, **kwargs: Any) -> None:
4949
class HighlightLanguageVisitor(nodes.NodeVisitor):
5050
def __init__(self, document: nodes.document, default_language: str) -> None:
5151
self.default_setting = HighlightSetting(default_language, False, sys.maxsize)
52-
self.settings = [] # type: List[HighlightSetting]
52+
self.settings: List[HighlightSetting] = []
5353
super().__init__(document)
5454

5555
def unknown_visit(self, node: Node) -> None:

sphinx/transforms/post_transforms/images.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def handle(self, node: nodes.image) -> None:
7575

7676
headers = {}
7777
if os.path.exists(path):
78-
timestamp = ceil(os.stat(path).st_mtime) # type: float
78+
timestamp: float = ceil(os.stat(path).st_mtime)
7979
headers['If-Modified-Since'] = epoch_to_rfc1123(timestamp)
8080

8181
r = requests.get(node['uri'], headers=headers)
@@ -178,7 +178,7 @@ class ImageConverter(BaseImageConverter):
178178
#:
179179
#: .. todo:: This should be refactored not to store the state without class
180180
#: variable.
181-
available = None # type: Optional[bool]
181+
available: Optional[bool] = None
182182

183183
#: A conversion rules the image converter supports.
184184
#: It is represented as a list of pair of source image format (mimetype) and
@@ -189,7 +189,7 @@ class ImageConverter(BaseImageConverter):
189189
#: ('image/gif', 'image/png'),
190190
#: ('application/pdf', 'image/png'),
191191
#: ]
192-
conversion_rules = [] # type: List[Tuple[str, str]]
192+
conversion_rules: List[Tuple[str, str]] = []
193193

194194
def __init__(self, *args: Any, **kwargs: Any) -> None:
195195
super().__init__(*args, **kwargs)

0 commit comments

Comments
 (0)