Skip to content

Commit

Permalink
rendering Fractions now uses simpler implementation from particle.py
Browse files Browse the repository at this point in the history
  • Loading branch information
grayson-helmholz committed Nov 25, 2024
1 parent 1d1e7e0 commit 6333441
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 15 deletions.
12 changes: 1 addition & 11 deletions src/qrules/io/_dot.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from attrs import Attribute, define, field
from attrs.converters import default_if_none

from qrules.particle import Particle, ParticleWithSpin, Spin
from qrules.particle import Particle, ParticleWithSpin, Spin, _render_fraction
from qrules.quantum_numbers import InteractionProperties
from qrules.solving import EdgeSettings, NodeSettings, QNProblemSet, QNResult
from qrules.topology import FrozenTransition, MutableTransition, Topology, Transition
Expand Down Expand Up @@ -321,16 +321,6 @@ def _(obj: dict) -> str:
return "\n".join(lines)


def _render_fraction(fraction: Fraction, plusminus: bool = False) -> str:
if plusminus:
if fraction.denominator == 1:
if fraction.numerator > 0:
return f"{fraction.numerator:+}"
return str(fraction)
return f"{fraction.numerator:+}/{fraction.denominator}"
return str(fraction)


@as_string.register(InteractionProperties)
def _(obj: InteractionProperties) -> str:
lines = []
Expand Down
8 changes: 4 additions & 4 deletions src/qrules/particle.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,14 +114,14 @@ def __repr__(self) -> str:

def _repr_pretty_(self, p: PrettyPrinter, _: bool) -> None:
class_name = type(self).__name__
magnitude = _to_signed_fraction(self.magnitude)
projection = _to_signed_fraction(self.projection, render_plus=True)
magnitude = _render_fraction(self.magnitude)
projection = _render_fraction(self.projection, plusminus=True)
p.text(f"{class_name}({magnitude}, {projection})")


def _to_signed_fraction(fraction: Fraction, render_plus: bool = False) -> str:
def _render_fraction(fraction: Fraction, plusminus: bool = False) -> str:
string_representation = str(fraction)
if render_plus and fraction.numerator > 0:
if plusminus and fraction.numerator > 0:
return f"+{string_representation}"
return string_representation

Expand Down

0 comments on commit 6333441

Please sign in to comment.