From c40278ef95121f04745d3552fe14376faf468329 Mon Sep 17 00:00:00 2001 From: "Derek B. Kim" Date: Wed, 11 Jul 2018 19:22:28 +0900 Subject: [PATCH] Simplify __all__ in multiprocessing (GH-6856) --- Lib/multiprocessing/__init__.py | 5 ++--- Lib/multiprocessing/context.py | 6 ++---- Lib/test/_test_multiprocessing.py | 6 ++++++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Lib/multiprocessing/__init__.py b/Lib/multiprocessing/__init__.py index 86df6383703..8336f381dec 100644 --- a/Lib/multiprocessing/__init__.py +++ b/Lib/multiprocessing/__init__.py @@ -19,9 +19,8 @@ from . import context # Copy stuff from default context # -globals().update((name, getattr(context._default_context, name)) - for name in context._default_context.__all__) -__all__ = context._default_context.__all__ +__all__ = [x for x in dir(context._default_context) if not x.startswith('_')] +globals().update((name, getattr(context._default_context, name)) for name in __all__) # # XXX These should not really be documented or public. diff --git a/Lib/multiprocessing/context.py b/Lib/multiprocessing/context.py index c98ee434249..871746b1a04 100644 --- a/Lib/multiprocessing/context.py +++ b/Lib/multiprocessing/context.py @@ -5,7 +5,7 @@ import threading from . import process from . import reduction -__all__ = [] # things are copied from here to __init__.py +__all__ = () # # Exceptions @@ -24,7 +24,7 @@ class AuthenticationError(ProcessError): pass # -# Base type for contexts +# Base type for contexts. Bound methods of an instance of this type are included in __all__ of __init__.py # class BaseContext(object): @@ -261,8 +261,6 @@ class DefaultContext(BaseContext): else: return ['fork', 'spawn'] -DefaultContext.__all__ = [x for x in dir(DefaultContext) if x[0] != '_'] - # # Context types for fixed start method # diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index c4810a5ce17..f446ef34fe6 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -4582,6 +4582,12 @@ class TestSimpleQueue(unittest.TestCase): proc.join() + +class MiscTestCase(unittest.TestCase): + def test__all__(self): + # Just make sure names in blacklist are excluded + support.check__all__(self, multiprocessing, extra=multiprocessing.__all__, + blacklist=['SUBDEBUG', 'SUBWARNING']) # # Mixins #