|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
From 1d81b5521c1567fb11f680b1e6386b073b2f7a4d Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
From: "Brian C. Lane" <bcl@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
Date: Tue, 28 Apr 2015 09:58:03 -0700
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
Subject: [PATCH] Fix multiprocessing on py3.4
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
---
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
astroid/brain/py2stdlib.py | 83 +++++++++++++++++++++++++++++++++++++++++++++-
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
1 file changed, 82 insertions(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
diff --git a/astroid/brain/py2stdlib.py b/astroid/brain/py2stdlib.py
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
index 2bfcbcd..54cf2a7 100644
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
--- a/astroid/brain/py2stdlib.py
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+++ b/astroid/brain/py2stdlib.py
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
@@ -12,7 +12,7 @@ from textwrap import dedent
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
from astroid import (
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
MANAGER, AsStringRegexpPredicate,
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
- UseInferenceDefault, inference_tip,
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ UseInferenceDefault, inference_tip, BoundMethod,
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
YES, InferenceError, register_module_extender)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
from astroid import exceptions
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
from astroid import nodes
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
@@ -20,6 +20,7 @@ from astroid.builder import AstroidBuilder
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
PY3K = sys.version_info > (3, 0)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
PY33 = sys.version_info >= (3, 3)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+PY34 = sys.version_info >= (3, 4)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
# general function
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
@@ -322,6 +323,83 @@ def infer_enum_class(node):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
break
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
return node
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+def multiprocessing_transform():
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ module = AstroidBuilder(MANAGER).string_build(dedent('''
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ from multiprocessing.managers import SyncManager
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ def Manager():
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return SyncManager()
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ '''))
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ if not PY34:
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return module
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ # On Python 3.4, multiprocessing uses a getattr lookup inside contexts,
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ # in order to get the attributes they need. Since it's extremely
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ # dynamic, we use this approach to fake it.
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ node = AstroidBuilder(MANAGER).string_build(dedent('''
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ from multiprocessing.context import DefaultContext, BaseContext
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ default = DefaultContext()
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ base = BaseContext()
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ '''))
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ try:
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ context = next(node['default'].infer())
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ base = next(node['base'].infer())
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ except InferenceError:
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return module
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ for node in (context, base):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ for key, value in node.locals.items():
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ if key.startswith("_"):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ continue
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ value = value[0]
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ if isinstance(value, nodes.Function):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ # We need to rebound this, since otherwise
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ # it will have an extra argument (self).
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ value = BoundMethod(value, node)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ module[key] = value
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return module
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+def multiprocessing_managers_transform():
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return AstroidBuilder(MANAGER).string_build(dedent('''
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ import array
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ import threading
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ import multiprocessing.pool as pool
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ import six
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ class Namespace(object):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ pass
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ class Value(object):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ def __init__(self, typecode, value, lock=True):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ self._typecode = typecode
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ self._value = value
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ def get(self):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return self._value
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ def set(self, value):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ self._value = value
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ def __repr__(self):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return '%s(%r, %r)'%(type(self).__name__, self._typecode, self._value)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ value = property(get, set)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ def Array(typecode, sequence, lock=True):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ return array.array(typecode, sequence)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ class SyncManager(object):
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Queue = JoinableQueue = six.moves.queue.Queue
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Event = threading.Event
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ RLock = threading.RLock
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ BoundedSemaphore = threading.BoundedSemaphore
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Condition = threading.Condition
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Barrier = threading.Barrier
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Pool = pool.Pool
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ list = list
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ dict = dict
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Value = Value
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Array = Array
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ Namespace = Namespace
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ '''))
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
MANAGER.register_transform(nodes.CallFunc, inference_tip(infer_named_tuple),
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
looks_like_namedtuple)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
@@ -332,3 +410,6 @@ register_module_extender(MANAGER, 'hashlib', hashlib_transform)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
register_module_extender(MANAGER, 'collections', collections_transform)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
register_module_extender(MANAGER, 'pkg_resources', pkg_resources_transform)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
register_module_extender(MANAGER, 'subprocess', subprocess_transform)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+register_module_extender(MANAGER, 'multiprocessing.managers',
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+ multiprocessing_managers_transform)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
+register_module_extender(MANAGER, 'multiprocessing', multiprocessing_transform)
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
--
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
2.1.0
|
|
![](https://seccdn.libravatar.org/avatar/6a8de7c0af10e0293cc9b6b6c2729fedeeff9466e54e50ba18ee58bab1687209?s=16&d=retro) |
df03642 |
|