code: def auto_assign_decodings(self, decodings):
          
          nrz_decodings = [decoding for decoding in decodings if decoding.is_nrz or decoding.is_nrzi]
          fallback = nrz_decodings[0] if nrz_decodings else None
          candidate_decodings = [decoding for decoding in decodings
                                 if decoding not in nrz_decodings and not decoding.contains_cut]
  
          for message in self.messages:
              decoder_found = False
  
              for decoder in candidate_decodings:
                  if decoder.applies_for_message(message.plain_bits):
                      message.decoder = decoder
                      decoder_found = True
                      break
  
              if not decoder_found and fallback:
                  message.decoder = fallback
docs: :type decodings: list of Encoding