Skip to content

Commit 2dde9eb

Browse files
author
Vijaya Lakshmi Pokala
committed
Fix Axis auto-naming and properly raise invalid label/name usage
1 parent b284b50 commit 2dde9eb

File tree

1 file changed

+48
-4
lines changed

1 file changed

+48
-4
lines changed

src/sbmlsim/plot/plotting.py

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ def __init__(
506506
"""
507507
super(Axis, self).__init__(sid=None, name=None)
508508
if label and name:
509-
ValueError("Either set label or name on Axis.")
509+
raise ValueError("Either set label or name on Axis.")
510510
# if unit is None:
511511
# unit = "?"
512512
if not name:
@@ -517,9 +517,11 @@ def __init__(
517517
else:
518518
name = f"{label} [-]"
519519

520-
self.label: str = label
521-
self.name: str = name
522-
self.unit: str = unit
520+
self._label = label
521+
self._unit = unit
522+
self._auto_name = name is None
523+
self._name = name
524+
self._update_name()
523525
self.scale: AxisScale = scale
524526
self.min: float = min
525527
self.max: float = max
@@ -528,6 +530,46 @@ def __init__(
528530
self.label_visible: bool = label_visible
529531
self.ticks_visible: bool = ticks_visible
530532
self.style = style
533+
534+
def _update_name(self):
535+
if not self._auto_name:
536+
return
537+
538+
if not self._label and not self._unit:
539+
self._name = ""
540+
elif self._unit != "dimensionless":
541+
self._name = f"{self._label} [{self._unit}]"
542+
else:
543+
self._name = f"{self._label} [-]"
544+
545+
@property
546+
def label(self) -> str:
547+
return self._label
548+
549+
@label.setter
550+
def label(self, value: str) -> None:
551+
self._label = value
552+
self._update_name()
553+
554+
@property
555+
def unit(self) -> str:
556+
return self._unit
557+
558+
@unit.setter
559+
def unit(self, value: str) -> None:
560+
self._unit = value
561+
self._update_name()
562+
563+
@property
564+
def name(self) -> str:
565+
return self._name
566+
567+
@name.setter
568+
def name(self, value: str) -> None:
569+
self._name = value
570+
self._auto_name = value is None
571+
if self._auto_name:
572+
self._update_name()
531573

532574
def __repr__(self) -> str:
533575
"""Get string."""
@@ -1478,3 +1520,5 @@ def to_dict(self):
14781520
"subplots": self.subplots,
14791521
}
14801522
return d
1523+
1524+

0 commit comments

Comments
 (0)