imt-ring 1.6.8__py3-none-any.whl → 1.6.9__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.6.8
3
+ Version: 1.6.9
4
4
  Summary: RING: Recurrent Inertial Graph-based Estimator
5
5
  Author-email: Simon Bachhuber <simon.bachhuber@fau.de>
6
6
  Project-URL: Homepage, https://github.com/SimiPixel/ring
@@ -1,6 +1,6 @@
1
1
  ring/__init__.py,sha256=k7tL-XgggUwWxHCXyv60rQn-OcXHPg82QcIUkKLEd-c,5057
2
2
  ring/algebra.py,sha256=F0GwbP8LQP5qGVkoMUYJmkp9Hn2nKAVIkCVYDEjNjGU,3128
3
- ring/base.py,sha256=BGAJE3PSOUnTHte4UesJc1J7MQraIEiVpStkhrgXhaI,33245
3
+ ring/base.py,sha256=MkkziQx01sdMOpB8MFUDFgFlZUrXCFjpb8hS9yKHUyM,33751
4
4
  ring/maths.py,sha256=qPHH6TpHCK3TgExI98gNEySoSRKOwteN9McUlyUFipI,12207
5
5
  ring/spatial.py,sha256=nmZ-UhRanhyM34bez8uCS4wMwaKqLkuEbgKGP5XNH60,2351
6
6
  ring/algorithms/__init__.py,sha256=IiK9EN5Xgs3dB075-A-H-Yad0Z7vzvKIJF2g6X_-C_8,1224
@@ -83,7 +83,7 @@ ring/utils/randomize_sys.py,sha256=G_vBIo0OwQkXL2u0djwbaoaeb02C4LQCTNNloOYIU2M,3
83
83
  ring/utils/utils.py,sha256=oGC7kh19s5zvmnUvWy8B3fBl9loVU58ppz91osk2m3w,6550
84
84
  ring/utils/register_gym_envs/__init__.py,sha256=PtPIRBQJ16339xZ9G9VpvqrvcGbQ_Pk_SUz4tQPa9nQ,94
85
85
  ring/utils/register_gym_envs/saddle.py,sha256=tA5CyW_akSXyDm0xJ83CtOrUMVElH0f9vZtEDDJQalI,4422
86
- imt_ring-1.6.8.dist-info/METADATA,sha256=FxO8BZbMRGagmYW1cQCHPuUIuiXxsIr8F-zlBkBVHNQ,3820
87
- imt_ring-1.6.8.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
88
- imt_ring-1.6.8.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
89
- imt_ring-1.6.8.dist-info/RECORD,,
86
+ imt_ring-1.6.9.dist-info/METADATA,sha256=kFg-Ht8PsdnYA5lvEQ-KgMxlQSqiX_PtP8M8Q0vjVag,3820
87
+ imt_ring-1.6.9.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
88
+ imt_ring-1.6.9.dist-info/top_level.txt,sha256=EiT790-lAyi8iwTzJArH3f2k77rwhDn00q-4PlmvDQo,5
89
+ imt_ring-1.6.9.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.2.0)
2
+ Generator: setuptools (73.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
ring/base.py CHANGED
@@ -590,12 +590,14 @@ class System(_Base):
590
590
 
591
591
  return sys
592
592
 
593
- def findall_imus(self) -> list[str]:
594
- return [name for name in self.link_names if name[:3] == "imu"]
593
+ def findall_imus(self, names: bool = True) -> list[str] | list[int]:
594
+ bodies = [name for name in self.link_names if name[:3] == "imu"]
595
+ return bodies if names else [self.name_to_idx(n) for n in bodies]
595
596
 
596
- def findall_segments(self) -> list[str]:
597
- imus = self.findall_imus()
598
- return [name for name in self.link_names if name not in imus]
597
+ def findall_segments(self, names: bool = True) -> list[str] | list[int]:
598
+ imus = self.findall_imus(names=True)
599
+ bodies = [name for name in self.link_names if name not in imus]
600
+ return bodies if names else [self.name_to_idx(n) for n in bodies]
599
601
 
600
602
  def _bodies_indices_to_bodies_name(self, bodies: list[int]) -> list[str]:
601
603
  return [self.idx_to_name(i) for i in bodies]
@@ -615,6 +617,11 @@ class System(_Base):
615
617
  bodies = [i for i, _typ in enumerate(self.link_types) if _typ == typ]
616
618
  return self._bodies_indices_to_bodies_name(bodies) if names else bodies
617
619
 
620
+ def children(self, name: str, names: bool = False) -> list[int] | list[str]:
621
+ p = self.name_to_idx(name)
622
+ bodies = [i for i in range(self.num_links()) if self.link_parents[i] == p]
623
+ return bodies if (not names) else [self.idx_to_name(i) for i in bodies]
624
+
618
625
  def scan(self, f: Callable, in_types: str, *args, reverse: bool = False):
619
626
  """Scan `f` along each link in system whilst carrying along state.
620
627