2525
2626 from sphinx .application import Sphinx
2727 from sphinx .environment import BuildEnvironment
28+ from sphinx .registry import SphinxComponentRegistry
2829
2930
3031logger = logging .getLogger (__name__ )
@@ -38,20 +39,6 @@ class SphinxBaseReader(standalone.Reader): # type: ignore[misc]
3839
3940 transforms : list [type [Transform ]] = []
4041
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-
5542 def get_transforms (self ) -> list [type [Transform ]]:
5643 transforms = super ().get_transforms () + self .transforms
5744
@@ -83,9 +70,8 @@ def new_document(self) -> nodes.document:
8370class SphinxStandaloneReader (SphinxBaseReader ):
8471 """A basic document reader for Sphinx."""
8572
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 ()
8975
9076 def read (self , source : Input , parser : Parser , settings : Values ) -> nodes .document : # type: ignore[type-arg]
9177 self .source = source
@@ -130,7 +116,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
130116
131117def create_publisher (app : Sphinx , filetype : str ) -> Publisher :
132118 reader = SphinxStandaloneReader ()
133- reader .setup ( app )
119+ reader ._setup_transforms ( registry = app . registry )
134120
135121 parser = app .registry .create_source_parser (app , filetype )
136122 if parser .__class__ .__name__ == 'CommonMarkParser' and parser .settings_spec == ():
0 commit comments