code: def _imm_new(cls):
      '''
      All immutable new classes use a hack to make sure the post-init cleanup occurs.
      '''
      imm = object.__new__(cls)
      # Note that right now imm has a normal setattr method;
      # Give any parameter that has one a default value
      params = cls._pimms_immutable_data_['params']
      for (p,dat) in six.iteritems(params):
          dat = dat[0]
          if dat: object.__setattr__(imm, p, dat[0])
      # Clear any values; they are not allowed yet
      _imm_clear(imm)
      # Note that we are initializing...
      dd = object.__getattribute__(imm, '__dict__')
      dd['_pimms_immutable_is_init'] = True
      # That should do it!
      return imf _imm_new(cls):
      '''
      All immutable new classes use a hack to make sure the post-init cleanup occurs.
      '''
      imm = object.__new__(cls)
      # Note that right now imm has a normal setattr method;
      # Give any parameter that has one a default value
      params = cls._pimms_immutable_data_['params']
      for (p,dat) in six.iteritems(params):
          dat = dat[0]
          if dat: object.__setattr__(imm, p, dat[0])
      # Clear any values; they are not allowed yet
      _imm_clear(imm)
      # Note that we are initializing...
      dd = object.__getattribute__(imm, '__dict__')
      dd['_pimms_immutable_is_init'] = True
      # That should do it!
      return imm
docs: All immutable new classes use a hack to make sure the post-init cleanup occurs.