'Allow subclasses to call __new__() with arguments.
Do NOT list \'cls\' as the first argument, or in the case when
the \'unused_kwds\' dictionary contains the key \'cls\', the function
will complain about multiple argument values for \'cls\'.
Raises:
TypeError if there are no positional arguments.'

def __new__(*args, **unused_kwds):

    if args:
        cls = args[0]
    else:
        raise TypeError('object.__new__():    not    enough    arguments')
    return super(Model, cls).__new__(cls)
