Skip to content

Commit 979e94c

Browse files
committed
update
1 parent f908dd8 commit 979e94c

1 file changed

Lines changed: 11 additions & 21 deletions

File tree

src/sphinxnotes/data/render.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@
2121
from .template import Template, Phase, MarkupParser
2222
from . import extra_contexts
2323
from . import utils
24-
from .utils.freestyle import FreeStyleDirective, FreeStyleOptionSpec
2524

2625
logger = 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):
3433
type 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

Comments
 (0)