Пример #1
0
 def test_oldstyleclass(self):
     from pickle import _EmptyClass
     
     obj = _EmptyClass()
     obj.value = 1234
     
     flattened = self.pickler.flatten(obj)
     self.assertEqual(1234, flattened['value'])
     
     inflated = self.unpickler.restore(flattened)
     self.assertEqual(1234, inflated.value)
Пример #2
0
 def test_oldstyleclass(self):
     from pickle import _EmptyClass
     
     obj = _EmptyClass()
     obj.value = 1234
     
     flattened = self.pickler.flatten(obj)
     self.assertEqual(1234, flattened['value'])
     
     inflated = self.unpickler.restore(flattened)
     self.assertEqual(1234, inflated.value)
Пример #3
0
 def _instantiate(self, klass, k):
     args = tuple(self.stack[k + 1 :])
     del self.stack[k:]
     instantiated = 0
     if not args and type(klass) is ClassType and not hasattr(klass, "__getinitargs__"):
         try:
             value = _EmptyClass()
             value.__class__ = klass
             instantiated = 1
         except RuntimeError:
             # In restricted execution, assignment to inst.__class__ is
             # prohibited
             pass
     if not instantiated:
         try:
             value = klass(*args)
         except TypeError, err:
             raise TypeError, "in constructor for %s: %s" % (klass.__name__, str(err)), sys.exc_info()[2]
Пример #4
0
 def _instantiate(self, klass, k):
     args = tuple(self.stack[k + 1:])
     del self.stack[k:]
     instantiated = 0
     if (not args and type(klass) is ClassType
             and not hasattr(klass, "__getinitargs__")):
         try:
             value = _EmptyClass()
             value.__class__ = klass
             instantiated = 1
         except RuntimeError:
             # In restricted execution, assignment to inst.__class__ is
             # prohibited
             pass
     if not instantiated:
         try:
             value = klass(*args)
         except TypeError, err:
             raise TypeError, "in constructor for %s: %s" % (
                 klass.__name__, str(err)), sys.exc_info()[2]