code: def _events_available_during_other_events(
      events, slots, X, summation_type=None, **kwargs
  ):
      
      summation = lpu.summation_functions[summation_type]
      event_availability_array = lpu.event_availability_array(events)
  
      label = 'Event clashes with another event'
      for slot1, slot2 in lpu.concurrent_slots(slots):
          for row, event in enumerate(event_availability_array):
              if events[row].unavailability:
                  for col, availability in enumerate(event):
                      if availability == 0:
                          yield Constraint(
                              f'{label} - event: {row} and event: {col}',
                              summation(
                                  (X[row, slot1], X[col, slot2])
                              ) <= 1 + availability
                          )
docs: Constraint that ensures that an event is not scheduled at the same time as
      another event for which it is unavailable. Unavailability of events is
      either because it is explicitly defined or because they share a tag.