Skip to content

Commit 0c87276

Browse files
committed
Updates
1 parent daef047 commit 0c87276

File tree

6 files changed

+553
-81
lines changed

6 files changed

+553
-81
lines changed

docs/source/gallery/feynman/feynman.ipynb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,9 +268,7 @@
268268
]
269269
}
270270
],
271-
"source": [
272-
"print(fd)"
273-
]
271+
"source": []
274272
},
275273
{
276274
"cell_type": "code",

docs/source/gallery/pyfeyn/pyfeyn.ipynb

Lines changed: 524 additions & 35 deletions
Large diffs are not rendered by default.

pyfeyn2/render/latex/tikzfeynman.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
"empty": "empty dot",
5656
"cross": "crossed dot",
5757
"blob": "blob",
58+
"star": "star, star points=5, fill",
59+
"pentagon": "regular pentagon, pentagon points=5, fill",
60+
"ellipse": "ellipse, fill",
61+
"diamond": "diamond, fill",
5862
}
5963

6064

@@ -88,16 +92,30 @@ def stylize_connect(fd: FeynmanDiagram, c: Connector):
8892
warnings.warn(f"Unknown label-side {label_side}")
8993
ret += ",edge label=" + c.label
9094
if get_property_value(style, "momentum-arrow", None) == "true":
91-
mas = get_property_value(style, "momentum-arrow-sense", None)
95+
dir = get_property_value(style, "momentum-arrow-sense", "1")
96+
rev = ""
97+
if dir == "-1":
98+
rev = "reversed "
99+
elif dir == "1":
100+
rev = ""
101+
else:
102+
warn(
103+
"momentum-arrow=true but momentum-arrow-sense is not 1 or -1, ignoring momentum-arrow-sense"
104+
)
105+
106+
mas = get_property_value(style, "momentum-arrow-side", "1")
92107
if mas == "-1":
93-
ret += ",momentum'=" + c.momentum.name
108+
ret += f",{rev}momentum'=" + (
109+
c.momentum.name if c.momentum is not None else ""
110+
)
94111
elif mas == "0":
95112
warn(
96-
"momentum-arrow=true but momentum-arrow-sense=0, ignoring momentum-arrow"
113+
"momentum-arrow=true but momentum-arrow-side=0, ignoring momentum-arrow"
97114
)
98-
pass
99115
else:
100-
ret += ",momentum=" + c.momentum.name
116+
ret += f",{rev}momentum=" + (
117+
c.momentum.name if c.momentum is not None else ""
118+
)
101119

102120
if style.opacity is not None and style.opacity != "":
103121
ret += ",opacity=" + str(style.opacity)
@@ -254,6 +272,7 @@ def valid_styles(cls) -> bool:
254272
"bend-min-distance",
255273
"momentum-arrow",
256274
"momentum-arrow-sense",
275+
"momentum-arrow-side",
257276
"double-distance",
258277
"label-side",
259278
]

pyfeyn2/render/mpl/feynmanrender.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ def render(
134134
if l.y > maxy:
135135
maxy = l.y
136136

137-
scalex = 1.0 / (maxx - minx) * buffer
138-
scaley = 1.0 / (maxy - miny) * buffer
137+
scalex = 1.0 / (maxx - minx) * buffer if maxx - minx != 0 else 1.0
138+
scaley = 1.0 / (maxy - miny) * buffer if maxy - miny != 0 else 1.0
139139

140140
kickx = -minx + 1 / scalex * (1 - buffer) / 2.0
141141
kicky = -miny + 1 / scaley * (1 - buffer) / 2.0

pyfeyn2/render/pyx/pyxrender.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,4 +243,6 @@ def valid_styles(cls):
243243
"arrow-size",
244244
"arrow-angle",
245245
"arrow-constrict",
246+
"momentum-arrow",
247+
"momentum-arrow-sense",
246248
]

pyfeyn2/render/root/rootpdfrender.py

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -68,39 +68,3 @@ def render(
6868
# Then convert ROOT to LaTeX
6969
self.set_src_diag(NoEscape(root_to_latex(self.get_src_root())))
7070
LatexRender.render(self, file, show, resolution, width, height, clean_up)
71-
72-
@classmethod
73-
def valid_styles(cls) -> bool:
74-
return super().valid_styles() + [
75-
"line",
76-
"symbol",
77-
"symbol-size",
78-
"color",
79-
"opacity",
80-
"bend-direction",
81-
"bend-in",
82-
"bend-out",
83-
"bend-loop",
84-
"bend-min-distance",
85-
"momentum-arrow",
86-
"momentum-arrow-sense",
87-
"double-distance",
88-
"label-side",
89-
]
90-
91-
@classmethod
92-
def valid_attributes(cls) -> List[str]:
93-
return super().valid_attributes() + [
94-
"x",
95-
"y",
96-
"label",
97-
"style",
98-
]
99-
100-
@classmethod
101-
def valid_types(cls) -> List[str]:
102-
return super().valid_types() + []
103-
104-
@classmethod
105-
def valid_shapes(cls) -> List[str]:
106-
return super().valid_types() + []

0 commit comments

Comments
 (0)