def run_pickled(pickled, *args, **kwargs):
    pickled, kwargs['impl'] = pickle.loads(base64.b64decode(pickled))
    wrapper_kw = {}
    if 'wrapper' in kwargs:
        wrapper_kw['wrapper'] = dumps(kwargs.pop('wrapper'))
    queue = multiprocessing.Queue()
    proc = multiprocessing.Process(target=pickled_runner,
                                   args=(queue, pickled, args, kwargs),
                                   kwargs=wrapper_kw)
    proc.start()
    proc.join()
    return queue.get(timeout=5)
def run_pickled(pickled, *args, **kwargs):
    wrapper_kw = {}
    if 'wrapper' in kwargs:
        wrapper_kw['wrapper'] = dumps(kwargs.pop('wrapper'))
    queue = multiprocessing.Queue()
    proc = multiprocessing.Process(target=pickled_runner, args=(queue, pickled, args, kwargs), kwargs=wrapper_kw)
    proc.start()
    proc.join()
    if proc.exitcode != 0:
        raise SystemError('Pickle process exited abnormally.')
    try:
        return queue.get()
    except:
        return None
def run_pickled(pickled, *args, **kwargs):
    wrapper_kw = {}
    if 'wrapper' in kwargs:
        wrapper_kw['wrapper'] = dumps(kwargs.pop('wrapper'))
    queue = multiprocessing.Queue()
    proc = multiprocessing.Process(target=pickled_runner,
                                   args=(queue, pickled, args, kwargs),
                                   kwargs=wrapper_kw)
    proc.start()
    proc.join()
    if proc.exitcode != 0:
        raise SystemError('Pickle process exited abnormally.')
    try:
        return queue.get()
    except:
        return None
 def testNestedClassObj(self):
     func = _gen_nested_yield_obj()
     obj_serial = base64.b64encode(dumps(func))
     deserial = loads(base64.b64decode(obj_serial))
     self.assertEqual(sum(deserial()(20)), sum(func()(20)))
 def testNestedFunc(self):
     func = _gen_nested_fun()
     obj_serial = base64.b64encode(dumps(func))
     deserial = loads(base64.b64decode(obj_serial))
     self.assertEqual(deserial(20), func(20))
 def testNestedClassObj(self):
     func = _gen_nested_yield_obj()
     obj_serial = base64.b64encode(dumps(func))
     deserial = loads(base64.b64decode(obj_serial))
     self.assertEqual(sum(deserial()(20)), sum(func()(20)))
 def testNestedFunc(self):
     func = _gen_nested_fun()
     obj_serial = base64.b64encode(dumps(func))
     deserial = loads(base64.b64decode(obj_serial))
     self.assertEqual(deserial(20), func(20))
 def testRangeObject(self):
     obj_serial = dumps(range(10))
     deserial = loads(obj_serial)
     self.assertListEqual(list(range(10)), list(deserial))