25
25
26
26
from sphinx .application import Sphinx
27
27
from sphinx .environment import BuildEnvironment
28
+ from sphinx .registry import SphinxComponentRegistry
28
29
29
30
30
31
logger = logging .getLogger (__name__ )
@@ -38,20 +39,6 @@ class SphinxBaseReader(standalone.Reader): # type: ignore[misc]
38
39
39
40
transforms : list [type [Transform ]] = []
40
41
41
- def __init__ (self , * args : Any , ** kwargs : Any ) -> None :
42
- from sphinx .application import Sphinx
43
-
44
- if len (args ) > 0 and isinstance (args [0 ], Sphinx ):
45
- self ._app = args [0 ]
46
- self ._env = self ._app .env
47
- args = args [1 :]
48
-
49
- super ().__init__ (* args , ** kwargs )
50
-
51
- def setup (self , app : Sphinx ) -> None :
52
- self ._app = app # hold application object only for compatibility
53
- self ._env = app .env
54
-
55
42
def get_transforms (self ) -> list [type [Transform ]]:
56
43
transforms = super ().get_transforms () + self .transforms
57
44
@@ -83,9 +70,8 @@ def new_document(self) -> nodes.document:
83
70
class SphinxStandaloneReader (SphinxBaseReader ):
84
71
"""A basic document reader for Sphinx."""
85
72
86
- def setup (self , app : Sphinx ) -> None :
87
- self .transforms = self .transforms + app .registry .get_transforms ()
88
- super ().setup (app )
73
+ def _setup_transforms (self , * , registry : SphinxComponentRegistry ) -> None :
74
+ self .transforms = self .transforms + registry .get_transforms ()
89
75
90
76
def read (self , source : Input , parser : Parser , settings : Values ) -> nodes .document : # type: ignore[type-arg]
91
77
self .source = source
@@ -130,7 +116,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
130
116
131
117
def create_publisher (app : Sphinx , filetype : str ) -> Publisher :
132
118
reader = SphinxStandaloneReader ()
133
- reader .setup ( app )
119
+ reader ._setup_transforms ( registry = app . registry )
134
120
135
121
parser = app .registry .create_source_parser (app , filetype )
136
122
if parser .__class__ .__name__ == 'CommonMarkParser' and parser .settings_spec == ():
0 commit comments