docs: def msg_curse(self, args=None, max_width=None):
          """Return the dict to display in the curse interface."""
          # Init the return message
          ret = []
  
          # Only process if stats exist (and non null) and display plugin enable...
          if not self.stats \
             or 'containers' not in self.stats or len(self.stats['containers']) == 0 \
             or self.is_disable():
              return ret
  
          # Build the string message
          # Title
          msg = '{}'.format('CONTAINERS')
          ret.append(self.curse_add_line(msg, "TITLE"))
          msg = ' {}'.format(len(self.stats['containers']))
          ret.append(self.curse_add_line(msg))
          msg = ' (served by Docker {})'.format(self.stats['version']["Version"])
          ret.append(self.curse_add_line(msg))
          ret.append(self.curse_new_line())
          # Header
          ret.append(self.curse_new_line())
          # Get the maximum containers name (cutted to 20 char max)
          name_max_width = min(20, len(max(self.stats['containers'], key=lambda x: len(x['name']))['name']))
          msg = ' {:{width}}'.format('Name', width=name_max_width)
          ret.append(self.curse_add_line(msg))
          msg = '{:>10}'.format('Status')
          ret.append(self.curse_add_line(msg))
          msg = '{:>6}'.format('CPU%')
          ret.append(self.curse_add_line(msg))
          msg = '{:>7}'.format('MEM')
          ret.append(self.curse_add_line(msg))
          msg = '{:>7}'.format('/MAX')
          ret.append(self.curse_add_line(msg))
          msg = '{:>7}'.format('IOR/s')
          ret.append(self.curse_add_line(msg))
          msg = '{:>7}'.format('IOW/s')
          ret.append(self.curse_add_line(msg))
          msg = '{:>7}'.format('Rx/s')
          ret.append(self.curse_add_line(msg))
          msg = '{:>7}'.format('Tx/s')
          ret.append(self.curse_add_line(msg))
          msg = ' {:8}'.format('Command')
          ret.append(self.curse_add_line(msg))
          # Data
          for container in self.stats['containers']:
              ret.append(self.curse_new_line())
              # Name
              ret.append(self.curse_add_line(self._msg_name(container=container,
                                                            max_width=name_max_width)))
              # Status
              status = self.container_alert(container['Status'])
              msg = '{:>10}'.format(container['Status'][0:10])
              ret.append(self.curse_add_line(msg, status))
              # CPU
              try:
                  msg = '{:>6.1f}'.format(container['cpu']['total'])
              except KeyError:
                  msg = '{:>6}'.format('_')
              ret.append(self.curse_add_line(msg, self.get_views(item=container['name'],
                                                                 key='cpu',
                                                                 option='decoration')))
              # MEM
              try:
                  msg = '{:>7}'.format(self.auto_unit(container['memory']['usage']))
              except KeyError:
                  msg = '{:>7}'.format('_')
              ret.append(self.curse_add_line(msg, self.get_views(item=container['name'],
                                                                 key='mem',
                                                                 option='decoration')))
              try:
                  msg = '{:>7}'.format(self.auto_unit(container['memory']['limit']))
              except KeyError:
                  msg = '{:>7}'.format('_')
              ret.append(self.curse_add_line(msg))
              # IO R/W
              unit = 'B'
              for r in ['ior', 'iow']:
                  try:
                      value = self.auto_unit(int(container['io'][r] // container['io']['time_since_update'])) + unit
                      msg = '{:>7}'.format(value)
                  except KeyError:
                      msg = '{:>7}'.format('_')
                  ret.append(self.curse_add_line(msg))
              # NET RX/TX
              if args.byte:
                  # Bytes per second (for dummy)
                  to_bit = 1
                  unit = ''
              else:
                  # Bits per second (for real network administrator | Default)
                  to_bit = 8
                  unit = 'b'
              for r in ['rx', 'tx']:
                  try:
                      value = self.auto_unit(int(container['network'][r] // container['network']['time_since_update'] * to_bit)) + unit
                      msg = '{:>7}'.format(value)
                  except KeyError:
                      msg = '{:>7}'.format('_')
                  ret.append(self.curse_add_line(msg))
              # Command
              if container['Command'] is not None:
                  msg = ' {}'.format(' '.join(container['Command']))
              else:
                  msg = ' {}'.format('_')
              ret.append(self.curse_add_line(msg, splittable=True))
  
          return ret