'Estimate a safe maximum line length for the given command.
This is done by assuming the maximum values for nickname length,
realname and hostname combined with the command that needs to be sent
and some guessing. A theoretical maximum value is used because it is
possible that our nickname, username or hostname changes (on the server
side) while the length is still being calculated.'

def _safeMaximumLineLength(self, command):

    theoretical = (':%s!%s@%s    %s' % (('a' * self.supported.getFeature('NICKLEN')), ('b' * 10), ('c' * 63), command))
    fudge = 10
    return ((MAX_COMMAND_LENGTH - len(theoretical)) - fudge)
