Theorem#

Qualified name: rsm.nodes.Theorem

class rsm.nodes.Theorem(title='', goals=None, stars=0, clocks=0, **kwargs)[source]#

Bases: Heading

Methods

Attributes

autonumber

Whether to automatically assign a number to this node during transform step.

has_handrail

Whether nodes of this class are rendered with a handrail.

newmetakeys

Meta keys to add to those of the parent class.

title

nodeid

Node id - always exists (unlike label), automatically assigned, unique within the tree.

label

Unique identifier.

classes

CSS classes for this node.

handrail_depth

The number of ancestors of this node that have a handrail.

number

Node number.

nonum

Whether this node should be automatically given a number.

reftext_template

Reftext template, or "" to use classreftext.

start_point

The start point of the corresponding concrete syntax tree node.

end_point

The end point of the corresponding concrete syntax tree node.

autonumber: ClassVar[bool] = True[source]#

Whether to automatically assign a number to this node during transform step.

Examples

>>> msc, thm1, thm2 = nodes.Manuscript(), nodes.Theorem(), nodes.Theorem()
>>> (thm1.number, thm2.number) == (None, None)
True
>>> tform = rsm.transformer.Transformer()
>>> tform.transform(msc.append([thm1, thm2]))  
>>> thm1.number, thm2.number
(1, 2)
has_handrail: ClassVar[bool] = True[source]#

Whether nodes of this class are rendered with a handrail.

newmetakeys: ClassVar[set] = {'clocks', 'goals', 'stars', 'title'}[source]#

Meta keys to add to those of the parent class.

Important

Only use this when defining a new Node subclass. When dealing with Node isntances, do not access this attribute directly neither for reading nor writing. Always use metakeys() in that case.

See also

metakeys()

Examples

The keys in newmetakeys are added to the meta keys of the parent class.

>>> nodes.Heading.newmetakeys
{'title'}
>>> nodes.Heading.metakeys() == nodes.Node.metakeys() | {"title"}
True

The intended use, and only supported use, of newmetakeys is at the time of class definition.

>>> class NewNode(nodes.Node):
...     newmetakeys = {"newkey"}
>>> NewNode.metakeys() == nodes.Node.metakeys() | {"newkey"}
True