code: def checkClass(self, klass):
          
          # Check for __new__ support.
          if hasattr(klass, '__new__') and hasattr(klass.__new__, '__call__'):
              # Should be good to go.
              return
  
          # Check that the constructor of the class doesn't require any additonal
          # arguments.
          if not (hasattr(klass, '__init__') and hasattr(klass.__init__, '__call__')):
              return
  
          klass_func = klass.__init__.im_func
  
          if not hasattr(klass_func, 'func_code'):
              # Can't examine it, assume it's OK.
              return
  
          if klass_func.func_defaults:
              available_arguments = len(klass_func.func_defaults) + 1
          else:
              available_arguments = 1
  
          needed_arguments = klass_func.func_code.co_argcount
  
          if available_arguments >= needed_arguments:
              # Looks good to me.
              return
  
          spec = inspect.getargspec(klass_func)
  
          raise TypeError("__init__ doesn't support additional arguments: %s"
              % inspect.formatargspec(*spec))
docs: This function is used to check if the class being aliased fits certain
          criteria. The default is to check that C{__new__} is available or the
          C{__init__} constructor does not need additional arguments. If this is
          the case then L{TypeError} will be raised.
  
          @since: 0.4