|
21 | 21 |
|
22 | 22 |
|
23 | 23 | # TODO: provide alternative when multiprocessing is not available |
24 | | -try: |
25 | | - if "MEMPROF_PREFERS_BILLIARD" in os.environ and \ |
26 | | - os.environ["MEMPROF_PREFERS_BILLIARD"] in ["True", "true", "TRUE", "1"]: |
27 | | - from billiard import Process, Pipe |
28 | | -except ImportError: |
29 | | - try: |
30 | | - from multiprocessing import Process, Pipe |
31 | | - except ImportError: |
32 | | - from multiprocessing.dummy import Process, Pipe |
| 24 | +import billiard, multiprocessing |
| 25 | +MULTILIBS = ( |
| 26 | + (billiard, lambda: True if "MEMPROF_PREFERS_BILLIARD" in os.environ and \ |
| 27 | + os.environ["MEMPROF_PREFERS_BILLIARD"] in ["True", "true", "TRUE", "1"]), |
| 28 | + (multiprocessing,), |
| 29 | + (multiprocessing.dummy,) |
| 30 | +) |
| 31 | +for module_tuple in MULTILIBS: |
| 32 | + multi_module, use_if_test = module_tuple |
| 33 | + if use_if_test is None or use_if_test(): |
| 34 | + try: |
| 35 | + from multi_module import Process, Pipe |
| 36 | + break |
| 37 | + except ImportError: |
| 38 | + continue |
| 39 | + |
| 40 | + |
33 | 41 |
|
| 42 | +# try: |
| 43 | +# if "MEMPROF_PREFERS_BILLIARD" in os.environ and \ |
| 44 | +# os.environ["MEMPROF_PREFERS_BILLIARD"] in ["True", "true", "TRUE", "1"]: |
| 45 | +# from billiard import Process, Pipe |
| 46 | +# except ImportError: |
| 47 | +# try: |
| 48 | +# from multiprocessing import Process, Pipe |
| 49 | +# except ImportError: |
| 50 | +# from multiprocessing.dummy import Process, Pipe |
| 51 | +# |
34 | 52 |
|
35 | 53 | try: |
36 | 54 | from IPython.core.magic import Magics, line_cell_magic, magics_class |
|
0 commit comments