#mjx Update bind type checks.
PiperOrigin-RevId: 729566363 Change-Id: Ifb4fd3e83988140f781ac1d5db690cf6fbe70fbf
This commit is contained in:
committed by
Copybara-Service
parent
f9bb6cb3db
commit
1532cffdf0
@@ -13,7 +13,7 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
"""Engine support functions."""
|
"""Engine support functions."""
|
||||||
from collections.abc import Sequence
|
from collections.abc import Iterable, Sequence
|
||||||
from typing import Optional, Tuple, Union
|
from typing import Optional, Tuple, Union
|
||||||
|
|
||||||
import jax
|
import jax
|
||||||
@@ -293,10 +293,6 @@ class BindModel(object):
|
|||||||
def __init__(self, model: Model, specs: Sequence[mujoco.MjStruct]):
|
def __init__(self, model: Model, specs: Sequence[mujoco.MjStruct]):
|
||||||
self.model = model
|
self.model = model
|
||||||
self.prefix = ''
|
self.prefix = ''
|
||||||
try:
|
|
||||||
iter(specs)
|
|
||||||
except TypeError:
|
|
||||||
specs = [specs]
|
|
||||||
ids = []
|
ids = []
|
||||||
for spec in specs:
|
for spec in specs:
|
||||||
if isinstance(spec, mujoco.MjsBody):
|
if isinstance(spec, mujoco.MjsBody):
|
||||||
@@ -383,9 +379,13 @@ class BindModel(object):
|
|||||||
|
|
||||||
|
|
||||||
def _bind_model(
|
def _bind_model(
|
||||||
self: Model, obj: Sequence[mujoco.MjStruct]
|
self: Model, obj: mujoco.MjStruct | Iterable[mujoco.MjStruct]
|
||||||
) -> BindModel:
|
) -> BindModel:
|
||||||
"""Bind a Mujoco spec to an MJX Model."""
|
"""Bind a Mujoco spec to an MJX Model."""
|
||||||
|
if isinstance(obj, mujoco.MjStruct):
|
||||||
|
obj = (obj,)
|
||||||
|
else:
|
||||||
|
obj = tuple(obj)
|
||||||
return BindModel(self, obj)
|
return BindModel(self, obj)
|
||||||
|
|
||||||
|
|
||||||
@@ -398,10 +398,6 @@ class BindData(object):
|
|||||||
self.data = data
|
self.data = data
|
||||||
self.model = model
|
self.model = model
|
||||||
self.prefix = ''
|
self.prefix = ''
|
||||||
try:
|
|
||||||
iter(specs)
|
|
||||||
except TypeError:
|
|
||||||
specs = [specs]
|
|
||||||
ids = []
|
ids = []
|
||||||
for spec in specs:
|
for spec in specs:
|
||||||
if isinstance(spec, mujoco.MjsBody):
|
if isinstance(spec, mujoco.MjsBody):
|
||||||
@@ -530,9 +526,13 @@ class BindData(object):
|
|||||||
|
|
||||||
|
|
||||||
def _bind_data(
|
def _bind_data(
|
||||||
self: Data, model: Model, obj: Sequence[mujoco.MjStruct]
|
self: Data, model: Model, obj: mujoco.MjStruct | Iterable[mujoco.MjStruct]
|
||||||
) -> BindData:
|
) -> BindData:
|
||||||
"""Bind a Mujoco spec to an MJX Data."""
|
"""Bind a Mujoco spec to an MJX Data."""
|
||||||
|
if isinstance(obj, mujoco.MjStruct):
|
||||||
|
obj = (obj,)
|
||||||
|
else:
|
||||||
|
obj = tuple(obj)
|
||||||
return BindData(self, model, obj)
|
return BindData(self, model, obj)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user