11from __future__ import annotations
2- from typing import override
2+ from typing import TYPE_CHECKING , override
33
44from sphinx .util .docutils import SphinxDirective , SphinxRole
55from sphinx .transforms import SphinxTransform
99from .render import (
1010 EXTRACTX_REGISTRY ,
1111 ParsePhaseContextGenerator ,
12- FullPhaseContextGenerator ,
12+ RenderPhaseContextGenerator ,
1313 ParseCaller ,
1414 Caller ,
15- pending_node ,
1615)
17- from .template import Context
1816
17+ if TYPE_CHECKING :
18+ from typing import Any
1919
2020class MarkupContextGenerator (ParsePhaseContextGenerator ):
2121 @override
22- def generate (self , caller : ParseCaller , n : pending_node ) -> Context :
22+ def generate (self , caller : ParseCaller ) -> Any :
2323 isdir = isinstance (caller , SphinxDirective )
2424 return {
2525 'type' : 'directive' if isdir else 'role' ,
@@ -29,9 +29,9 @@ def generate(self, caller: ParseCaller, n: pending_node) -> Context:
2929 }
3030
3131
32- class DocContextGenerator (FullPhaseContextGenerator ):
32+ class DocContextGenerator (RenderPhaseContextGenerator ):
3333 @override
34- def generate (self , caller : Caller , n : pending_node ) -> Context :
34+ def generate (self , caller : Caller ) -> Any :
3535 if isinstance (caller , SphinxDirective ):
3636 return proxy (caller .state .document )
3737 elif isinstance (caller , SphinxRole ):
@@ -42,33 +42,31 @@ def generate(self, caller: Caller, n: pending_node) -> Context:
4242 assert False
4343
4444
45- class SectionContextGenerator (FullPhaseContextGenerator ):
45+ class SectionContextGenerator (ParsePhaseContextGenerator ):
4646 @override
47- def generate (self , caller : Caller , n : pending_node ) -> Context :
48- if n .parent :
49- return proxy (find_current_section (n .parent ))
50- elif isinstance (caller , SphinxDirective ):
47+ def generate (self , caller : ParseCaller ) -> Any :
48+ if isinstance (caller , SphinxDirective ):
5149 return proxy (find_current_section (caller .state .parent ))
5250 elif isinstance (caller , SphinxRole ):
5351 return proxy (caller .inliner .parent )
5452 else :
5553 assert False
5654
5755
58- class SphinxEnvContextGenerator (FullPhaseContextGenerator ):
56+ class SphinxEnvContextGenerator (RenderPhaseContextGenerator ):
5957 @override
60- def generate (self , caller : Caller , n : pending_node ) -> Context :
58+ def generate (self , caller : Caller ) -> Any :
6159 return proxy (caller .env )
6260
6361
64- class SphinxConfigContextGenerator (FullPhaseContextGenerator ):
62+ class SphinxConfigContextGenerator (RenderPhaseContextGenerator ):
6563 @override
66- def generate (self , caller : Caller , n : pending_node ) -> Context :
64+ def generate (self , caller : Caller ) -> Any :
6765 return proxy (caller .config )
6866
6967
70- EXTRACTX_REGISTRY .add_parsing_phase_context ('markup' , MarkupContextGenerator ())
71- EXTRACTX_REGISTRY .add_full_phase_context ( 'doc ' , DocContextGenerator ())
72- EXTRACTX_REGISTRY .add_full_phase_context ( 'section ' , SectionContextGenerator ())
73- EXTRACTX_REGISTRY .add_full_phase_context ('env' , SphinxEnvContextGenerator ())
74- EXTRACTX_REGISTRY .add_full_phase_context ('config' , SphinxConfigContextGenerator ())
68+ EXTRACTX_REGISTRY .add_parsing ('markup' , MarkupContextGenerator ())
69+ EXTRACTX_REGISTRY .add_parsing ( 'section ' , SectionContextGenerator ())
70+ EXTRACTX_REGISTRY .add_render ( 'doc ' , DocContextGenerator ())
71+ EXTRACTX_REGISTRY .add_render ('env' , SphinxEnvContextGenerator ())
72+ EXTRACTX_REGISTRY .add_render ('config' , SphinxConfigContextGenerator ())
0 commit comments