prefig 0.4.5.dev20250924053306__tar.gz → 0.4.6.dev20250926053320__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/PKG-INFO +1 -1
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/circle.py +1 -1
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/diagram.py +16 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/label.py +14 -4
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/pyproject.toml +1 -1
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/LICENSE +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/README.md +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/__init__.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/cli.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/CTM.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/__init__.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/annotations.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/area.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/arrow.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/axes.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/calculus.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/clip.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/compat.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/coordinates.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/definition.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/diffeqs.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/graph.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/grid_axes.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/group.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/image.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/implicit.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/label_tools.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/legend.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/line.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/math_utilities.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/network.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/parametric_curve.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/parse.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/path.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/point.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/polygon.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/read.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/rectangle.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/repeat.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/riemann_sum.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/shape.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/slope_field.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/statistics.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/tags.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/tangent_line.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/user_namespace.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/utilities.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/vector.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/engine.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/diagcess/diagcess.html +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/diagcess/diagcess.js +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/de-system.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/derivatives.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/diffeqs.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/implicit.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/projection.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/riemann.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/roots_of_unity.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/examples/tangent.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/fonts/Braille29.ttf +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/js/mj-sre-page.js +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/js/package.json +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/schema/pf_schema.rnc +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/schema/pf_schema.rng +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/template/pf_publication.xml +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/scripts/__init__.py +0 -0
- {prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/scripts/install_mj.py +0 -0
|
@@ -52,7 +52,7 @@ def circle(element, diagram, parent, outline_status):
|
|
|
52
52
|
else:
|
|
53
53
|
element.set('fill', 'none')
|
|
54
54
|
else:
|
|
55
|
-
element.set('stroke', element.get('stroke', '
|
|
55
|
+
element.set('stroke', element.get('stroke', 'black'))
|
|
56
56
|
element.set('fill', element.get('fill', 'none'))
|
|
57
57
|
element.set('thickness', element.get('thickness', '2'))
|
|
58
58
|
util.add_attr(circle, util.get_2d_attr(element))
|
|
@@ -109,6 +109,15 @@ class Diagram:
|
|
|
109
109
|
if data_directory is not None:
|
|
110
110
|
self.external = data_directory
|
|
111
111
|
|
|
112
|
+
templates = self.diagram_element.xpath('.//templates')
|
|
113
|
+
if len(templates) > 0:
|
|
114
|
+
templates_element = templates[0]
|
|
115
|
+
for template in templates:
|
|
116
|
+
templates_parent = template.getparent()
|
|
117
|
+
templates_parent.remove(template)
|
|
118
|
+
for child in templates_element:
|
|
119
|
+
self.defaults[child.tag] = child
|
|
120
|
+
|
|
112
121
|
if self.defaults.get('macros', None) is not None:
|
|
113
122
|
label.add_macros(self.defaults.get('macros').text)
|
|
114
123
|
|
|
@@ -487,6 +496,13 @@ class Diagram:
|
|
|
487
496
|
def get_root(self):
|
|
488
497
|
return self.root
|
|
489
498
|
|
|
499
|
+
def apply_defaults(self, tag, element):
|
|
500
|
+
default = self.defaults.get(tag, None)
|
|
501
|
+
if default is not None:
|
|
502
|
+
for attr, value in default.attrib.items():
|
|
503
|
+
if element.get(attr, None) is None:
|
|
504
|
+
element.set(attr, value)
|
|
505
|
+
|
|
490
506
|
# when a graphical component is outlined, we first add the component's path
|
|
491
507
|
# to <defs> so that it can be reused, then we stroke it with a thick white
|
|
492
508
|
def add_outline(self, element, path, parent, outline_width = None):
|
|
@@ -15,6 +15,8 @@ import tempfile
|
|
|
15
15
|
|
|
16
16
|
log = logging.getLogger('prefigure')
|
|
17
17
|
|
|
18
|
+
allowed_fonts = {'serif','sans-serif','monospace'}
|
|
19
|
+
|
|
18
20
|
def init(format, environment):
|
|
19
21
|
global math_labels
|
|
20
22
|
global text_measurements
|
|
@@ -465,10 +467,18 @@ def position_svg_label(element, diagram, ctm, group):
|
|
|
465
467
|
# These lists contain: font, size, italics, bold, color
|
|
466
468
|
label_color = element.get("color", None)
|
|
467
469
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
470
|
+
diagram.apply_defaults('label', element)
|
|
471
|
+
|
|
472
|
+
font_family = element.get('font', 'sans-serif').lower().strip()
|
|
473
|
+
if font_family not in allowed_fonts:
|
|
474
|
+
font_family = 'sans-serif'
|
|
475
|
+
|
|
476
|
+
font_size = un.valid_eval(element.get('font-size', '14'))
|
|
477
|
+
|
|
478
|
+
std_font_face = [font_family, font_size, False, False, label_color]
|
|
479
|
+
it_font_face = [font_family, font_size, True, False, label_color]
|
|
480
|
+
b_font_face = [font_family, font_size, False, True, label_color]
|
|
481
|
+
it_b_font_face = [font_family, font_size, True, True, label_color]
|
|
472
482
|
|
|
473
483
|
label = element
|
|
474
484
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/annotations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/coordinates.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/label_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/math_utilities.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/parametric_curve.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/riemann_sum.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/slope_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/tangent_line.py
RENAMED
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/core/user_namespace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/js/mj-sre-page.js
RENAMED
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/resources/js/package.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/scripts/__init__.py
RENAMED
|
File without changes
|
{prefig-0.4.5.dev20250924053306 → prefig-0.4.6.dev20250926053320}/prefig/scripts/install_mj.py
RENAMED
|
File without changes
|