Core
momapy.rendering.core
Bases classes and functions for rendering maps or layout elements
Classes:
| Name | Description |
|---|---|
Renderer |
Base class for renderers |
StatefulRenderer |
Base class for stateful renderers |
Functions:
| Name | Description |
|---|---|
register_renderer |
Register a renderer class. |
render_layout_element |
Render a layout element to a file in the given format with the given registered renderer |
render_layout_elements |
Render a collection of layout elements to a file in the given format with the given registered renderer. |
render_map |
Render a map to a file in the given format with the given registered renderer. |
render_maps |
Render a collection of maps to a file in the given format with the given registered renderer. |
Renderer
dataclass
Bases: ABC
Base class for renderers
Methods:
| Name | Description |
|---|---|
begin_session |
Begin a session |
end_session |
End a session |
get_bolder_font_weight |
Return the lightest font weight bolder than the given font weight |
get_lighter_font_weight |
Return the boldest font weight lighter than the given font weight |
new_page |
Make a new page |
render_drawing_element |
Render a drawing element |
render_layout_element |
Render a layout element |
render_map |
Render a map |
begin_session
abstractmethod
end_session
abstractmethod
get_bolder_font_weight
classmethod
get_bolder_font_weight(font_weight: FontWeight | float) -> float
Return the lightest font weight bolder than the given font weight
Source code in src/momapy/rendering/core.py
get_lighter_font_weight
classmethod
get_lighter_font_weight(font_weight: FontWeight | float) -> float
Return the boldest font weight lighter than the given font weight
Source code in src/momapy/rendering/core.py
new_page
abstractmethod
render_drawing_element
abstractmethod
render_drawing_element(drawing_element: DrawingElement)
render_layout_element
abstractmethod
render_layout_element(layout_element: LayoutElement)
StatefulRenderer
dataclass
Bases: Renderer
Base class for stateful renderers
Methods:
| Name | Description |
|---|---|
begin_session |
Begin a session |
end_session |
End a session |
get_bolder_font_weight |
Return the lightest font weight bolder than the given font weight |
get_current_state |
Return the current state |
get_current_value |
Return the current value for an attribute |
get_initial_value |
Return the initial value for an attribute |
get_lighter_font_weight |
Return the boldest font weight lighter than the given font weight |
new_page |
Make a new page |
render_drawing_element |
Render a drawing element |
render_layout_element |
Render a layout element |
render_map |
Render a map |
restore |
Set the current state to the last saved state |
save |
Save the current state |
self_restore |
Restore the internal state of the renderer. |
self_save |
Save the internal state of the renderer. |
set_current_state |
Set the current state to the given state |
set_current_state_from_drawing_element |
Set the current state to a state given by a drawing element |
set_current_value |
Set the current value for an attribute |
begin_session
abstractmethod
end_session
abstractmethod
get_bolder_font_weight
classmethod
get_bolder_font_weight(font_weight: FontWeight | float) -> float
Return the lightest font weight bolder than the given font weight
Source code in src/momapy/rendering/core.py
get_current_state
get_current_value
get_initial_value
Return the initial value for an attribute
Source code in src/momapy/rendering/core.py
get_lighter_font_weight
classmethod
get_lighter_font_weight(font_weight: FontWeight | float) -> float
Return the boldest font weight lighter than the given font weight
Source code in src/momapy/rendering/core.py
new_page
abstractmethod
render_drawing_element
abstractmethod
render_drawing_element(drawing_element: DrawingElement)
render_layout_element
abstractmethod
render_layout_element(layout_element: LayoutElement)
render_map
abstractmethod
render_map(map_: Map)
restore
Set the current state to the last saved state
save
self_restore
abstractmethod
Restore the internal state of the renderer.
This method must be implemented by subclasses to restore any internal state that is not part of the current state dictionary.
Source code in src/momapy/rendering/core.py
self_save
abstractmethod
Save the internal state of the renderer.
This method must be implemented by subclasses to save any internal state that is not part of the current state dictionary.
set_current_state
set_current_state_from_drawing_element
set_current_state_from_drawing_element(drawing_element: DrawingElement)
Set the current state to a state given by a drawing element
Source code in src/momapy/rendering/core.py
set_current_value
Set the current value for an attribute
Source code in src/momapy/rendering/core.py
register_renderer
Register a renderer class.
.. deprecated::
Use momapy.rendering.register_renderer() instead.
render_layout_element
render_layout_element(layout_element: LayoutElement, file_path: str | PathLike, format_: str | None = None, renderer: str | None = None, style_sheet: StyleSheet | None = None, to_top_left: bool = False)
Render a layout element to a file in the given format with the given registered renderer
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
layout_element
|
LayoutElement
|
The layout element to render |
required |
file_path
|
str | PathLike
|
The output file path |
required |
format_
|
str | None
|
The output format. If None, inferred from file extension. |
None
|
renderer
|
str | None
|
The registered renderer to use. If None, auto-detected based on format. |
None
|
style_sheet
|
StyleSheet | None
|
An optional style sheet to apply before rendering |
None
|
to_top_left
|
bool
|
Whether to move the layout element to the top left or not before rendering |
False
|
Source code in src/momapy/rendering/core.py
render_layout_elements
render_layout_elements(layout_elements: Collection[LayoutElement], file_path: str | PathLike, format_: str | None = None, renderer: str | None = None, style_sheet: StyleSheet | None = None, to_top_left: bool = False, multi_pages: bool = True)
Render a collection of layout elements to a file in the given format with the given registered renderer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
layout_elements
|
Collection[LayoutElement]
|
The layout elements to render |
required |
file_path
|
str | PathLike
|
The output file path |
required |
format_
|
str | None
|
The output format. If None, inferred from file extension. |
None
|
renderer
|
str | None
|
The registered renderer to use. If None, auto-detected based on format. |
None
|
style_sheet
|
StyleSheet | None
|
An optional style sheet to apply before rendering |
None
|
to_top_left
|
bool
|
Whether to move the layout elements to the top left before rendering |
False
|
multi_pages
|
bool
|
Whether to render each layout element on a separate page |
True
|
Source code in src/momapy/rendering/core.py
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | |
render_map
render_map(map_: Map, file_path: str | PathLike, format_: str | None = None, renderer: str | None = None, style_sheet: StyleSheet | None = None, to_top_left: bool = False)
Render a map to a file in the given format with the given registered renderer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
map_
|
Map
|
The map to render |
required |
file_path
|
str | PathLike
|
The output file path |
required |
format_
|
str | None
|
The output format. If None, inferred from file extension. |
None
|
renderer
|
str | None
|
The registered renderer to use. If None, auto-detected based on format. |
None
|
style_sheet
|
StyleSheet | None
|
An optional style sheet to apply before rendering |
None
|
to_top_left
|
bool
|
Whether to move the map to the top left before rendering |
False
|
Example
from momapy.io.core import read from momapy.rendering.core import render_map
Read a map from file
result = read("path/to/map.sbgn") sbgn_map = result.obj
Render the map to SVG
render_map(sbgn_map, "output.svg")
Source code in src/momapy/rendering/core.py
render_maps
render_maps(maps: Collection[Map], file_path: str | PathLike, format_: str | None = None, renderer: str | None = None, style_sheet: StyleSheet | None = None, to_top_left: bool = False, multi_pages: bool = True)
Render a collection of maps to a file in the given format with the given registered renderer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
maps
|
Collection[Map]
|
The maps to render |
required |
file_path
|
str | PathLike
|
The output file path |
required |
format_
|
str | None
|
The output format. If None, inferred from file extension. |
None
|
renderer
|
str | None
|
The registered renderer to use. If None, auto-detected based on format. |
None
|
style_sheet
|
StyleSheet | None
|
An optional style sheet to apply before rendering |
None
|
to_top_left
|
bool
|
Whether to move the maps to the top left before rendering |
False
|
multi_pages
|
bool
|
Whether to render each map on a separate page |
True
|
Example
from momapy.io.core import read from momapy.rendering.core import render_maps
Read multiple maps from files
result1 = read("path/to/map1.sbgn") first_map = result1.obj result2 = read("path/to/map2.sbgn") second_map = result2.obj
Render both maps to a multi-page PDF
render_maps([first_map, second_map], "output.pdf", multi_pages=True)