code: def _matches_filters(self, msg):
          
  
          # if no filters are set, all messages are matched
          if self._filters is None:
              return True
  
          for _filter in self._filters:
              # check if this filter even applies to the message
              if 'extended' in _filter and \
                      _filter['extended'] != msg.is_extended_id:
                  continue
  
              # then check for the mask and id
              can_id = _filter['can_id']
              can_mask = _filter['can_mask']
  
              # basically, we compute
              # `msg.arbitration_id & can_mask == can_id & can_mask`
              # by using the shorter, but equivalent from below:
              if (can_id ^ msg.arbitration_id) & can_mask == 0:
                  return True
  
          # nothing matched
          return False
docs: Checks whether the given message matches at least one of the
          current filters. See :meth:`~can.BusABC.set_filters` for details
          on how the filters work.
  
          This method should not be overridden.
  
          :param can.Message msg:
              the message to check if matching
          :rtype: bool
          :return: whether the given message matches at least one filter