refactor: improve code readability

This commit is contained in:
Tim Grelka
2024-12-11 00:42:24 +01:00
parent 25a1e6bbac
commit 4c82c9fb14
2 changed files with 19 additions and 9 deletions
+9 -3
View File
@@ -53,11 +53,13 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
return f"<u>{self.render_inner(token)}</u>"
@classmethod
def render_unit(cls, token):
unit = token.prefix + cls.format_unit(token.unit)
def render_unit(cls, token: Unit):
unit = token.prefix + cls.convert_unit_helper(token.unit)
if token.unit in ["°", "%"]:
# Special cases with no space between value and unit.
return f"{token.value}{unit}"
else:
# Default case is rendered with a narrow no-break space.
return f"{token.value}&#8239;{unit}"
units = {
@@ -65,7 +67,11 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
}
@classmethod
def format_unit(cls, unit):
def convert_unit_helper(cls, unit: str) -> str:
"""Converts human-typable units to their preferred representation.
:param str unit: The unit to convert
"""
if unit in cls.units.keys():
return cls.units[unit]
else:
+10 -6
View File
@@ -35,17 +35,21 @@ class Unit(SpanToken):
prefixes = ["p", "n", "μ", "m", "k", "M", "G"]
pattern = re.compile(
r"([0-9,]+) ?("
r"(?P<value>[0-9,]+) ?(?P<prefix>"
# Group all prefixes together in a capture group
# Empty string at end of list is required so the group always exists in the resulting match
+ "|".join(prefixes + [""])
+ ")("
+ ")(?P<unit>"
# Group all units together in a capture group.
+ "|".join(units)
+ r")(?!\w)"
)
def __init__(self, match):
self.value = match.group(1)
self.prefix = match.group(2)
self.unit = match.group(3)
value: str
prefix: str
unit: str
def __init__(self, match: re.Match):
self.value = match.group("value")
self.prefix = match.group("prefix") or ""
self.unit = match.group("unit")