MCPcopy Create free account
hub / github.com/google-deepmind/dm_control / disable

Method disable

dm_control/mujoco/wrapper/core.py:382–418  ·  view source on GitHub ↗

Context manager for temporarily disabling MuJoCo flags. Args: *flags: Positional arguments specifying flags to disable. Can be either lowercase strings (e.g. 'gravity', 'contact') or `mjtDisableBit` enum values. Yields: None Raises: ValueError: If any

(self, *flags)

Source from the content-addressed store, hash-verified

380
381 @contextlib.contextmanager
382 def disable(self, *flags):
383 """Context manager for temporarily disabling MuJoCo flags.
384
385 Args:
386 *flags: Positional arguments specifying flags to disable. Can be either
387 lowercase strings (e.g. 'gravity', 'contact') or `mjtDisableBit` enum
388 values.
389
390 Yields:
391 None
392
393 Raises:
394 ValueError: If any item in `flags` is neither a valid name nor a value
395 from `mujoco.mjtDisableBit`.
396 """
397 old_bitmask = self.opt.disableflags
398 new_bitmask = old_bitmask
399 for flag in flags:
400 if isinstance(flag, str):
401 try:
402 field_name = "mjDSBL_" + flag.upper()
403 flag = getattr(mujoco.mjtDisableBit, field_name)
404 except AttributeError:
405 valid_names = [
406 field_name.split("_")[1].lower()
407 for field_name in list(mujoco.mjtDisableBit.__members__)[:-1]
408 ]
409 raise ValueError("'{}' is not a valid flag name. Valid names: {}"
410 .format(flag, ", ".join(valid_names))) from None
411 elif isinstance(flag, int):
412 flag = mujoco.mjtDisableBit(flag)
413 new_bitmask |= flag.value
414 self.opt.disableflags = new_bitmask
415 try:
416 yield
417 finally:
418 self.opt.disableflags = old_bitmask
419
420 @property
421 def name(self):

Callers 10

funcFunction · 0.80
test_scoring_rewardsMethod · 0.80
resetMethod · 0.80
after_resetMethod · 0.80
testDisableFlagsMethod · 0.80

Calls 2

upperMethod · 0.80
lowerMethod · 0.80

Tested by 7

test_scoring_rewardsMethod · 0.64
testDisableFlagsMethod · 0.64