Skip to content

Commit be29b64

Browse files
authored
Merge pull request #1190 from vasole/simple
lazy import of multiprocessing
2 parents 1a13689 + ccf7c4d commit be29b64

10 files changed

Lines changed: 9 additions & 74 deletions

File tree

src/PyMca5/PyMcaGui/physics/xrf/ElementsInfo.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,6 @@
3232
__copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
3333
import sys
3434
import logging
35-
if __name__== '__main__':
36-
# avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
37-
if getattr(sys, "frozen", False):
38-
try:
39-
import multiprocessing
40-
multiprocessing.freeze_support()
41-
except Exception:
42-
pass
4335
from PyMca5.PyMcaGui import PyMcaQt as qt
4436
from PyMca5.PyMcaPhysics.xrf import ElementHtml
4537
from PyMca5.PyMcaPhysics.xrf import Elements

src/PyMca5/PyMcaGui/physics/xrf/PeakIdentifier.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,6 @@
3232
__copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
3333
import sys
3434
import logging
35-
if __name__== '__main__':
36-
# avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
37-
if getattr(sys, "frozen", False):
38-
try:
39-
import multiprocessing
40-
multiprocessing.freeze_support()
41-
except Exception:
42-
pass
4335
from PyMca5.PyMcaGui import PyMcaQt as qt
4436
from PyMca5.PyMcaPhysics import Elements
4537
from PyMca5.PyMcaGui.plotting import PyMca_Icons

src/PyMca5/PyMcaGui/pymca/EdfFileSimpleViewer.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@
3030
__copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
3131
import sys
3232
import logging
33-
if __name__== '__main__':
34-
# avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
35-
if getattr(sys, "frozen", False):
36-
try:
37-
import multiprocessing
38-
multiprocessing.freeze_support()
39-
except Exception:
40-
pass
4133
from PyMca5.PyMcaGui import PyMcaQt as qt
4234

4335
QTVERSION = qt.qVersion()

src/PyMca5/PyMcaGui/pymca/Mca2Edf.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,6 @@
3232
import os
3333
import numpy
3434
import time
35-
if __name__== '__main__':
36-
# avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
37-
if getattr(sys, "frozen", False):
38-
try:
39-
import multiprocessing
40-
multiprocessing.freeze_support()
41-
except Exception:
42-
pass
43-
4435
from PyMca5.PyMcaGui import PyMcaQt as qt
4536
QTVERSION = qt.qVersion()
4637
if QTVERSION >= '4.0.0':

src/PyMca5/PyMcaGui/pymca/PyMcaBatch.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,6 @@
3636
import atexit
3737
import logging
3838
import traceback
39-
if __name__== '__main__':
40-
# avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
41-
if getattr(sys, "frozen", False):
42-
try:
43-
import multiprocessing
44-
multiprocessing.freeze_support()
45-
except Exception:
46-
pass
4739
from glob import glob
4840
from contextlib import contextmanager
4941
try:

src/PyMca5/PyMcaGui/pymca/PyMcaMain.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,6 @@
3232
import sys, getopt
3333
import traceback
3434
import logging
35-
if __name__== '__main__':
36-
# avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
37-
if getattr(sys, "frozen", False):
38-
try:
39-
import multiprocessing
40-
multiprocessing.freeze_support()
41-
except Exception:
42-
pass
4335
if sys.platform == 'win32':
4436
import ctypes
4537
from ctypes.wintypes import MAX_PATH

src/PyMca5/PyMcaGui/pymca/PyMcaPostBatch.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,6 @@
3131
import sys
3232
import os
3333
import logging
34-
if __name__== '__main__':
35-
# this is to avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
36-
if getattr(sys, "frozen", False):
37-
try:
38-
import multiprocessing
39-
multiprocessing.freeze_support()
40-
except Exception:
41-
pass
4234
_logger = logging.getLogger(__name__)
4335
if __name__ == "__main__":
4436
# We are going to read. Disable file locking.

src/PyMca5/PyMcaGui/pymca/QStackWidget.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,6 @@
3535
import numpy
3636
import weakref
3737
import logging
38-
if __name__== '__main__':
39-
# avoid issues if some module or dependency tries to use multiprocessing in frozen binaries
40-
if getattr(sys, "frozen", False):
41-
try:
42-
import multiprocessing
43-
multiprocessing.freeze_support()
44-
except Exception:
45-
pass
4638
_logger = logging.getLogger(__name__)
4739

4840
if __name__ == "__main__":

src/PyMca5/PyMcaIO/HDF5Utils.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@
55
import posixpath
66
from queue import Empty
77
_logger = logging.getLogger(__name__)
8-
try:
9-
import multiprocessing
10-
_MULTIPROCESS = True
11-
except Exception:
12-
_logger.info("multiprocessing not available")
13-
_MULTIPROCESS = False
148
from operator import itemgetter
159

1610

@@ -27,16 +21,17 @@ def get_hdf5_group_keys(file_path, data_path=None):
2721

2822

2923
def safe_hdf5_group_keys(file_path, data_path=None):
30-
if _MULTIPROCESS:
24+
try:
3125
return run_in_subprocess(
3226
get_hdf5_group_keys, file_path, data_path=data_path, default=list()
3327
)
34-
else:
35-
_logger.warning("multiprocessing not available")
28+
except Exception:
29+
_logger.warning("run_in_subprocess not available")
3630
return get_hdf5_group_keys(file_path, data_path)
3731

3832

3933
def run_in_subprocess(target, *args, context=None, default=None, **kwargs):
34+
import multiprocessing
4035
ctx = multiprocessing.get_context(context)
4136
queue = ctx.Queue(maxsize=1)
4237
p = ctx.Process(

src/PyMca5/tests/HDF5UtilsTest.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
import datetime
77
import h5py
88
import sys
9+
try:
10+
import multiprocessing
11+
except Exception:
12+
pass
913

1014
from PyMca5.PyMcaIO import HDF5Utils
1115

@@ -43,6 +47,7 @@ def testHdf5GroupKeys(self):
4347
self.assertEqual(HDF5Utils.get_hdf5_group_keys(filename), names)
4448
self.assertEqual(HDF5Utils.safe_hdf5_group_keys(filename), names)
4549

50+
@unittest.skipIf("multiprocessing" not in sys.modules, "skipped multiprocessing missing")
4651
def testSegFault(self):
4752
self.assertEqual(_safe_cause_segfault(default=123), 123)
4853

0 commit comments

Comments
 (0)