class_docstr: Masks part of the action space to enforce the agent to work in a defined space. For example,
  if the original action space is between -1 and 1, then this filter can be used in order to constrain the agent actions
  to the range 0 and 1 instead. This essentially masks the range -1 and 0 from the agent.
  The resulting action space will be shifted and will always start from 0 and have the size of the unmasked area.
code: def set_masking(
      self,
      masked_target_space_low: Union[None, int, float, np.ndarray],
      masked_target_space_high: Union[None, int, float, np.ndarray],
  ):
      self.masked_target_space_low = masked_target_space_low
      self.masked_target_space_high = masked_target_space_high
      self.offset = masked_target_space_low
      if self.output_action_space:
          self.validate_output_action_space(self.output_action_space)
          self.input_action_space = BoxActionSpace(
              self.output_action_space.shape,
              low=0,
              high=self.masked_target_space_high
              - self.masked_target_space_low,
          )
  
file_path: coach/rl_coach/filters/action/box_masking.py
imports: from typing import Union
  import numpy
  from rl_coach.core_types import ActionType
  from rl_coach.filters.action.action_filter import ActionFilter
  from rl_coach.spaces import BoxActionSpace
label_desc: Use image node_id 2 for calling the BoxMasking obj's underlying member method code with example usage: obj.set_masking(masked_target_space_low, masked_target_space_high) without return types