def line(self, *args):

        if len(args) == 1:
            # Client read
            sock, line = None, args[0]
        else:
            # Server read
            sock, line = args

        prefix, command, args = parsemsg(line, encoding=self.encoding)

        command = command.lower()

        if NUMERIC.match(command):
            args.insert(0, int(command))
            command = "numeric"

        if sock is not None:
            self.fire(response.create(command, sock, prefix, *args))
        else:
            self.fire(response.create(command, prefix, *args))
Case insensitive title version of ``get_or_create``. Also
dataset/ETHPy150Open circuits/circuits/circuits/protocols/irc/protocol.py/IRC.line--crossover with--dataset/ETHPy150Open stephenmcd/mezzanine/mezzanine/generic/managers.py/KeywordManager.get_or_create_iexact