Skip to content

Commit 66e617d

Browse files
committed
restore common parameter formatting for all subclasses
1 parent 7782ee9 commit 66e617d

File tree

2 files changed

+51
-50
lines changed

2 files changed

+51
-50
lines changed

roboticstoolbox/robot/DHLink.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,11 +380,11 @@ def __repr__(self):
380380
name = self.__class__.__name__
381381
args = []
382382
if self.isrevolute:
383-
self._format(args, "d")
383+
self._format_param(args, "d")
384384
else:
385-
self._format(args, "theta", "θ")
386-
self._format(args, "a")
387-
self._format(args, "alpha", "⍺")
385+
self._format_param(args, "theta", "θ")
386+
self._format_param(args, "a")
387+
self._format_param(args, "alpha", "⍺")
388388
args.extend(super()._params())
389389
return name + "(" + ", ".join(args) + ")"
390390

roboticstoolbox/robot/Link.py

Lines changed: 47 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,61 +1367,62 @@ def format(l, fmt, val): # noqa
13671367

13681368
return dyn
13691369

1370+
def _format_param(
1371+
self, l, name, symbol=None, ignorevalue=None, indices=None
1372+
): # noqa # pragma nocover
1373+
# if value == ignorevalue then don't display it
1374+
1375+
v = getattr(self, name)
1376+
s = None
1377+
if v is None:
1378+
return
1379+
if isinstance(v, str):
1380+
s = f'{name} = "{v}"'
1381+
elif isscalar(v) and v != ignorevalue:
1382+
if symbol is not None:
1383+
s = f"{symbol}={v:.3g}"
1384+
else: # pragma: nocover
1385+
try:
1386+
s = f"{name}={v:.3g}"
1387+
except TypeError:
1388+
s = f"{name}={v}"
1389+
elif isinstance(v, np.ndarray):
1390+
# if np.linalg.norm(v, ord=np.inf) > 0:
1391+
# if indices is not None:
1392+
# flat = v.flatten()
1393+
# v = np.r_[[flat[k] for k in indices]]
1394+
# s = f"{name}=[" + ", ".join([f"{x:.3g}" for x in v]) + "]"
1395+
if indices is not None:
1396+
v = v.ravel()[indices]
1397+
s = f"{name}=" + np.array2string(
1398+
v,
1399+
separator=", ",
1400+
suppress_small=True,
1401+
formatter={"float": lambda x: f"{x:.3g}"},
1402+
)
1403+
if s is not None:
1404+
l.append(s)
1405+
13701406
def _params(self, name: bool = True): # pragma nocover
1371-
def format_param(
1372-
self, l, name, symbol=None, ignorevalue=None, indices=None
1373-
): # noqa # pragma nocover
1374-
# if value == ignorevalue then don't display it
1375-
1376-
v = getattr(self, name)
1377-
s = None
1378-
if v is None:
1379-
return
1380-
if isinstance(v, str):
1381-
s = f'{name} = "{v}"'
1382-
elif isscalar(v) and v != ignorevalue:
1383-
if symbol is not None:
1384-
s = f"{symbol}={v:.3g}"
1385-
else: # pragma: nocover
1386-
try:
1387-
s = f"{name}={v:.3g}"
1388-
except TypeError:
1389-
s = f"{name}={v}"
1390-
elif isinstance(v, np.ndarray):
1391-
# if np.linalg.norm(v, ord=np.inf) > 0:
1392-
# if indices is not None:
1393-
# flat = v.flatten()
1394-
# v = np.r_[[flat[k] for k in indices]]
1395-
# s = f"{name}=[" + ", ".join([f"{x:.3g}" for x in v]) + "]"
1396-
if indices is not None:
1397-
v = v.ravel()[indices]
1398-
s = f"{name}=" + np.array2string(
1399-
v,
1400-
separator=", ",
1401-
suppress_small=True,
1402-
formatter={"float": lambda x: f"{x:.3g}"},
1403-
)
1404-
if s is not None:
1405-
l.append(s)
14061407

14071408
l = [] # noqa
14081409
if name:
1409-
format_param(self, l, "name")
1410+
self._format_param(l, "name")
14101411
if self.parent_name is not None:
14111412
l.append('parent="' + self.parent_name + '"')
14121413
elif isinstance(self.parent, BaseLink):
14131414
l.append('parent="' + self.parent.name + '"')
1414-
format_param(self, l, "parent")
1415-
format_param(self, l, "isflip", ignorevalue=False)
1416-
format_param(self, l, "qlim")
1415+
self._format_param(l, "parent")
1416+
self._format_param(l, "isflip", ignorevalue=False)
1417+
self._format_param(l, "qlim")
14171418
if self._hasdynamics:
1418-
format_param(self, l, "m")
1419-
format_param(self, l, "r")
1420-
format_param(self, l, "I", indices=[0, 4, 8, 1, 2, 5])
1421-
format_param(self, l, "Jm")
1422-
format_param(self, l, "B")
1423-
format_param(self, l, "Tc")
1424-
format_param(self, l, "G")
1419+
self._format_param(l, "m")
1420+
self._format_param(l, "r")
1421+
self._format_param(l, "I", indices=[0, 4, 8, 1, 2, 5])
1422+
self._format_param(l, "Jm")
1423+
self._format_param(l, "B")
1424+
self._format_param(l, "Tc")
1425+
self._format_param(l, "G")
14251426

14261427
return l
14271428

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy