code: def do_i_raise_dependency(self, status, inherit_parents, hosts, services, timeperiods):
          # pylint: disable=too-many-locals
          
          # Do I raise dep?
          for stat in status:
              if self.is_state(stat):
                  return True
  
          # If we do not inherit parent, we have no reason to be blocking
          if not inherit_parents:
              return False
  
          # Ok, I do not raise dep, but my dep maybe raise me
          now = time.time()
          for (dep_id, dep_status, _, timeperiod_id, inh_parent) in self.chk_depend_of:
              if dep_id in hosts:
                  dep = hosts[dep_id]
              else:
                  dep = services[dep_id]
              timeperiod = timeperiods[timeperiod_id]
              if dep.do_i_raise_dependency(dep_status, inh_parent, hosts, services, timeperiods):
                  if timeperiod is None or timeperiod.is_time_valid(now):
                      return True
  
          # No, I really do not raise...
          return False
docs: Check if this object or one of its dependency state (chk dependencies) match the status
  
          :param status: state list where dependency matters (notification failure criteria)
          :type status: list
          :param inherit_parents: recurse over parents
          :type inherit_parents: bool
          :param hosts: hosts objects, used to raise dependency check
          :type hosts: alignak.objects.host.Hosts
          :param services: services objects, used to raise dependency check
          :type services: alignak.objects.service.Services
          :param timeperiods: Timeperiods objects, used for all kind of timeperiod (notif, check)
          :type timeperiods: alignak.objects.timeperiod.Timeperiods
          :return: True if one state matched the status list, otherwise False
          :rtype: bool