forked from neuroidss/timeflux_neurofeedback_inverse_gamepad
-
Notifications
You must be signed in to change notification settings - Fork 1
/
timeflux_neurofeedback_inverse_gamepad.py
47 lines (41 loc) · 1.58 KB
/
timeflux_neurofeedback_inverse_gamepad.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import os
import sys
# Module multiprocessing is organized differently in Python 3.4+
try:
# Python 3.4+
if sys.platform.startswith("win"):
import multiprocessing.popen_spawn_win32 as forking
else:
import multiprocessing.popen_fork as forking
except ImportError:
import multiprocessing.forking as forking
if sys.platform.startswith("win"):
# First define a modified version of Popen.
class _Popen(forking.Popen):
def __init__(self, *args, **kw):
if hasattr(sys, "frozen"):
# We have to set original _MEIPASS2 value from sys._MEIPASS
# to get --onefile mode working.
os.putenv("_MEIPASS2", sys._MEIPASS)
try:
super(_Popen, self).__init__(*args, **kw)
finally:
if hasattr(sys, "frozen"):
# On some platforms (e.g. AIX) 'os.unsetenv()' is not
# available. In those cases we cannot delete the variable
# but only set it to the empty string. The bootloader
# can handle this case.
if hasattr(os, "unsetenv"):
os.unsetenv("_MEIPASS2")
else:
os.putenv("_MEIPASS2", "")
# Second override 'Popen' class with our modified version.
forking.Popen = _Popen
import multiprocessing
import re
import sys
from timeflux.timeflux import main
if __name__ == "__main__":
multiprocessing.freeze_support()
sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
sys.exit(main())