2121from .template import Template , Phase , MarkupParser
2222from . import extra_contexts
2323from . import utils
24- from .utils .freestyle import FreeStyleDirective , FreeStyleOptionSpec
2524
2625logger = logging .getLogger (__name__ )
2726
28- class Node (nodes .Node ):
27+ class BaseNode (nodes .Node ):
2928 data : Data
3029 template : Template
3130 schema : Schema
@@ -34,7 +33,7 @@ class Node(nodes.Node):
3433type Caller = SphinxDirective | SphinxRole | SphinxTransform
3534
3635
37- class pending_node (Node , nodes .Invisible , nodes .meta ):
36+ class pending_node (BaseNode , nodes .Invisible , nodes .meta ):
3837 need_external_data : bool = False
3938
4039 def render (self , caller : Caller , replace : bool = False ) -> rendered_node :
@@ -106,7 +105,7 @@ def _caller_exception_hanlder(self, caller: Caller, e: ValueError) -> Exception:
106105 else :
107106 ... # TODO
108107
109- class rendered_node (Node , nodes .container ):
108+ class rendered_node (BaseNode , nodes .container ):
110109 anchor : nodes .Element | None
111110
112111
@@ -212,9 +211,6 @@ class FixedDataDirective(BaseDataDirective):
212211 @classmethod
213212 def derive (cls , name : str , tmpl : Template , schema : Schema ) -> type [FixedDataDirective ]:
214213 """Generate an AnyDirective child class for describing object."""
215- base_classes = []
216- base_classes .append (FixedDataDirective )
217-
218214 if not schema .name :
219215 required_arguments = 0
220216 optional_arguments = 0
@@ -225,26 +221,20 @@ def derive(cls, name: str, tmpl: Template, schema: Schema) -> type[FixedDataDire
225221 required_arguments = 0
226222 optional_arguments = 1
227223
228- if isinstance (schema .attrs , Field ):
229- base_classes .append (FreeStyleDirective )
230- if schema .attrs .required :
231- option_spec = FreeStyleOptionSpec (directives .unchanged_required )
224+ assert not isinstance (schema .attrs , Field ):
225+ option_spec = {}
226+ for name , field in schema .attrs .items ():
227+ if field .required :
228+ option_spec [name ] = directives .unchanged_required
232229 else :
233- option_spec = FreeStyleOptionSpec (directives .unchanged )
234- else :
235- option_spec = {}
236- for name , field in schema .attrs .items ():
237- if field .required :
238- option_spec [name ] = directives .unchanged_required
239- else :
240- option_spec [name ] = directives .unchanged
230+ option_spec [name ] = directives .unchanged
241231
242232 has_content = schema .content is not None
243233
244234 # Generate directive class
245235 return type (
246- 'Any%sDirective ' % name .title (),
247- tuple ( base_classes ),
236+ '%sFixedDataDirective ' % name .title (),
237+ ( FixedDataDirective , ),
248238 {
249239 'schema' : schema ,
250240 'template' : tmpl ,
0 commit comments