8
8
:license: BSD, see LICENSE for details.
9
9
"""
10
10
11
+ from __future__ import annotations
12
+
11
13
import html
12
14
import os
13
15
from os import path
14
16
from pathlib import Path
15
- from typing import Any , Dict , List , Set , Tuple , Type
17
+ from typing import Any
16
18
17
19
from docutils import nodes
18
20
from docutils .nodes import Element , Node , document
@@ -99,7 +101,7 @@ def chm_htmlescape(s: str, quote: bool = True) -> str:
99
101
class ToCTreeVisitor (nodes .NodeVisitor ):
100
102
def __init__ (self , document : document ) -> None :
101
103
super ().__init__ (document )
102
- self .body = [] # type: List[str ]
104
+ self .body : list [ str ] = [ ]
103
105
self .depth = 0
104
106
105
107
def append (self , text : str ) -> None :
@@ -175,15 +177,15 @@ def init(self) -> None:
175
177
self .lcid , self .encoding = locale
176
178
177
179
@property
178
- def default_translator_class (self ) -> "Type [nodes.NodeVisitor]" : # type: ignore
180
+ def default_translator_class (self ) -> type [nodes .NodeVisitor ]:
179
181
# Use HTML4 writer always
180
182
return HTMLTranslator
181
183
182
- def prepare_writing (self , docnames : Set [str ]) -> None :
184
+ def prepare_writing (self , docnames : set [str ]) -> None :
183
185
super ().prepare_writing (docnames )
184
186
self .globalcontext ['html5_doctype' ] = False
185
187
186
- def update_page_context (self , pagename : str , templatename : str , ctx : Dict , event_arg : str ) -> None : # NOQA
188
+ def update_page_context (self , pagename : str , templatename : str , ctx : dict , event_arg : str ) -> None : # NOQA
187
189
ctx ['encoding' ] = self .encoding
188
190
189
191
def handle_finish (self ) -> None :
@@ -200,7 +202,7 @@ def write_doc(self, docname: str, doctree: document) -> None:
200
202
201
203
super ().write_doc (docname , doctree )
202
204
203
- def render (self , name : str , context : Dict ) -> str :
205
+ def render (self , name : str , context : dict ) -> str :
204
206
template = SphinxRenderer (template_dir )
205
207
return template .render (name , context )
206
208
@@ -223,7 +225,7 @@ def copy_stopword_list(self) -> None:
223
225
def build_project_file (self ) -> None :
224
226
"""Create a project file (.hhp) on outdir."""
225
227
# scan project files
226
- project_files = [] # type: List[str ]
228
+ project_files : list [ str ] = [ ]
227
229
for root , dirs , files in os .walk (self .outdir ):
228
230
dirs .sort ()
229
231
files .sort ()
@@ -275,7 +277,7 @@ def build_hhx(self, outdir: Path, outname: str) -> None:
275
277
with open (filename , 'w' , encoding = self .encoding , errors = 'xmlcharrefreplace' ) as f :
276
278
f .write ('<UL>\n ' )
277
279
278
- def write_index (title : str , refs : List [ Tuple [str , str ]], subitems : List [ Tuple [str , List [ Tuple [str , str ]]]]) -> None : # NOQA
280
+ def write_index (title : str , refs : list [ tuple [str , str ]], subitems : list [ tuple [str , list [ tuple [str , str ]]]]) -> None : # NOQA
279
281
def write_param (name : str , value : str ) -> None :
280
282
item = ' <param name="%s" value="%s">\n ' % (name , value )
281
283
f .write (item )
@@ -308,7 +310,7 @@ def default_htmlhelp_basename(config: Config) -> str:
308
310
return make_filename_from_project (config .project ) + 'doc'
309
311
310
312
311
- def setup (app : Sphinx ) -> Dict [str , Any ]:
313
+ def setup (app : Sphinx ) -> dict [str , Any ]:
312
314
app .setup_extension ('sphinx.builders.html' )
313
315
app .add_builder (HTMLHelpBuilder )
314
316
app .add_message_catalog (__name__ , path .join (package_dir , 'locales' ))
0 commit comments