prefig 0.4.2.dev20250816053619__tar.gz → 0.4.3.dev20250823053253__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.
Files changed (68) hide show
  1. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/PKG-INFO +1 -1
  2. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/parametric_curve.py +15 -3
  3. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/schema/pf_schema.rnc +1 -0
  4. prefig-0.4.3.dev20250823053253/prefig/resources/schema/pf_schema.rng +787 -0
  5. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/pyproject.toml +1 -1
  6. prefig-0.4.2.dev20250816053619/prefig/resources/schema/pf_schema.rng +0 -2239
  7. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/LICENSE +0 -0
  8. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/README.md +0 -0
  9. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/__init__.py +0 -0
  10. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/cli.py +0 -0
  11. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/CTM.py +0 -0
  12. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/__init__.py +0 -0
  13. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/annotations.py +0 -0
  14. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/area.py +0 -0
  15. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/arrow.py +0 -0
  16. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/axes.py +0 -0
  17. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/calculus.py +0 -0
  18. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/circle.py +0 -0
  19. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/clip.py +0 -0
  20. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/compat.py +0 -0
  21. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/coordinates.py +0 -0
  22. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/definition.py +0 -0
  23. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/diagram.py +0 -0
  24. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/diffeqs.py +0 -0
  25. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/graph.py +0 -0
  26. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/grid_axes.py +0 -0
  27. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/group.py +0 -0
  28. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/image.py +0 -0
  29. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/implicit.py +0 -0
  30. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/label.py +0 -0
  31. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/label_tools.py +0 -0
  32. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/legend.py +0 -0
  33. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/line.py +0 -0
  34. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/math_utilities.py +0 -0
  35. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/network.py +0 -0
  36. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/parse.py +0 -0
  37. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/path.py +0 -0
  38. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/point.py +0 -0
  39. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/polygon.py +0 -0
  40. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/read.py +0 -0
  41. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/rectangle.py +0 -0
  42. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/repeat.py +0 -0
  43. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/riemann_sum.py +0 -0
  44. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/shape.py +0 -0
  45. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/slope_field.py +0 -0
  46. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/statistics.py +0 -0
  47. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/tags.py +0 -0
  48. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/tangent_line.py +0 -0
  49. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/user_namespace.py +0 -0
  50. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/utilities.py +0 -0
  51. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/core/vector.py +0 -0
  52. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/engine.py +0 -0
  53. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/diagcess/diagcess.html +0 -0
  54. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/diagcess/diagcess.js +0 -0
  55. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/de-system.xml +0 -0
  56. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/derivatives.xml +0 -0
  57. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/diffeqs.xml +0 -0
  58. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/implicit.xml +0 -0
  59. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/projection.xml +0 -0
  60. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/riemann.xml +0 -0
  61. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/roots_of_unity.xml +0 -0
  62. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/examples/tangent.xml +0 -0
  63. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/fonts/Braille29.ttf +0 -0
  64. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/js/mj-sre-page.js +0 -0
  65. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/js/package.json +0 -0
  66. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/resources/template/pf_publication.xml +0 -0
  67. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/scripts/__init__.py +0 -0
  68. {prefig-0.4.2.dev20250816053619 → prefig-0.4.3.dev20250823053253}/prefig/scripts/install_mj.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefig
3
- Version: 0.4.2.dev20250816053619
3
+ Version: 0.4.3.dev20250823053253
4
4
  Summary: An authoring system for mathematical diagrams
5
5
  Home-page: https://prefigure.org
6
6
  License: GPL-3.0-or-later
@@ -24,8 +24,9 @@ def parametric_curve(element, diagram, parent, outline_status):
24
24
  log.error(f"Error in <parametric-curve> defining domain={element.get('domain')}")
25
25
  return
26
26
 
27
- N = int(element.get('N', '100'))
27
+ arrows = int(element.get('arrows', '0'))
28
28
 
29
+ N = int(element.get('N', '100'))
29
30
  t = domain[0]
30
31
  dt = (domain[1]-domain[0])/N
31
32
  p = diagram.transform(f(t))
@@ -34,8 +35,21 @@ def parametric_curve(element, diagram, parent, outline_status):
34
35
  t += dt
35
36
  p = diagram.transform(f(t))
36
37
  points.append('L ' + util.pt2str(p))
38
+
37
39
  if element.get('closed', 'no') == 'yes':
38
40
  points.append('Z')
41
+
42
+ if arrows > 0 and element.get('arrow-location', None) is not None:
43
+ arrow_location = un.valid_eval(element.get('arrow-location'))
44
+ num_pts = 5
45
+ t = arrow_location - num_pts*dt
46
+ p = diagram.transform(f(t))
47
+ points.append('M ' + util.pt2str(p))
48
+ for _ in range(num_pts):
49
+ t += dt
50
+ p = diagram.transform(f(t))
51
+ points.append('L ' + util.pt2str(p))
52
+
39
53
  d = ' '.join(points)
40
54
 
41
55
  if diagram.output_format() == 'tactile':
@@ -51,12 +65,10 @@ def parametric_curve(element, diagram, parent, outline_status):
51
65
  diagram.add_id(path, element.get('id'))
52
66
  path.set('d', d)
53
67
  util.add_attr(path, util.get_2d_attr(element))
54
- # path.set('type', 'parametric curve')
55
68
 
56
69
  element.set('cliptobbox', element.get('cliptobbox', 'yes'))
57
70
  util.cliptobbox(path, element, diagram)
58
71
 
59
- arrows = int(element.get('arrows', '0'))
60
72
  forward = 'marker-end'
61
73
  backward = 'marker-start'
62
74
  if element.get('reverse', 'no') == 'yes':
@@ -641,6 +641,7 @@ Parametric-Curve = element parametric-curve {
641
641
  attribute N {text}?,
642
642
  attribute closed {"yes"|"no"}?,
643
643
  attribute arrows {text}?,
644
+ attribute arrow-location {text}?,
644
645
  attribute arrow-width {text}?,
645
646
  attribute arrow-angles {text}?,
646
647
  attribute reverse {"yes"|"no"}?,