diff --git a/core/interact/interact.py b/core/interact/interact.py index de612e1..02659c4 100644 --- a/core/interact/interact.py +++ b/core/interact/interact.py @@ -357,14 +357,9 @@ class InteractBase(object): return result def input_process(self, stdin_fd, sq, str): - import sys - if sys.platform != 'win32': - # fix for Linux , Ignoring : - # /usr/lib/python3.6/multiprocessing/semaphore_tracker.py:143: - # UserWarning: semaphore_tracker: There appear to be 1 leaked semaphores to clean up at shutdown - import warnings - warnings.simplefilter(action='ignore', category=UserWarning) - + from core import osex + osex.linux_ignore_UserWarning() + sys.stdin = os.fdopen(stdin_fd) try: inp = input (str) @@ -386,19 +381,15 @@ class InteractBase(object): if time.time() - t > max_time_sec: break p.terminate() + sq.close() old_stdin = sys.stdin sys.stdin = os.fdopen( os.dup(sys.stdin.fileno()) ) old_stdin.close() return inp def input_process_skip_pending(self, stdin_fd): - import sys - if sys.platform != 'win32': - # fix for Linux , Ignoring : - # /usr/lib/python3.6/multiprocessing/semaphore_tracker.py:143: - # UserWarning: semaphore_tracker: There appear to be 1 leaked semaphores to clean up at shutdown - import warnings - warnings.simplefilter(action='ignore', category=UserWarning) + from core import osex + osex.linux_ignore_UserWarning() sys.stdin = os.fdopen(stdin_fd) while True: diff --git a/core/joblib/SubprocessorBase.py b/core/joblib/SubprocessorBase.py index 48c7355..35a2abb 100644 --- a/core/joblib/SubprocessorBase.py +++ b/core/joblib/SubprocessorBase.py @@ -55,17 +55,12 @@ class Subprocessor(object): def progress_bar_inc(self, c): self.c2s.put ( {'op': 'progress_bar_inc' , 'c':c } ) def _subprocess_run(self, client_dict, s2c, c2s): - import sys - if sys.platform != 'win32': - # fix for Linux , Ignoring : - # /usr/lib/python3.6/multiprocessing/semaphore_tracker.py:143: - # UserWarning: semaphore_tracker: There appear to be 1 leaked semaphores to clean up at shutdown - import warnings - warnings.simplefilter(action='ignore', category=UserWarning) - - self.s2c = s2c + from core import osex + osex.linux_ignore_UserWarning() + self.c2s = c2s data = None + is_error = False try: self.on_initialize(client_dict) @@ -85,17 +80,19 @@ class Subprocessor(object): time.sleep(0.001) self.on_finalize() - c2s.put ( {'op': 'finalized'} ) - return + c2s.put ( {'op': 'finalized'} ) except Subprocessor.SilenceException as e: - pass + c2s.put ( {'op': 'error', 'data' : data} ) except Exception as e: + c2s.put ( {'op': 'error', 'data' : data} ) if data is not None: print ('Exception while process data [%s]: %s' % (self.get_data_name(data), traceback.format_exc()) ) else: print ('Exception: %s' % (traceback.format_exc()) ) - - c2s.put ( {'op': 'error', 'data' : data} ) + + c2s.close() + s2c.close() + self.c2s = None # disable pickling def __getstate__(self): diff --git a/core/osex.py b/core/osex.py index 9297ba9..c339df9 100644 --- a/core/osex.py +++ b/core/osex.py @@ -33,4 +33,12 @@ def get_screen_size(): elif 'linux' in sys.platform: pass - return (1366, 768) \ No newline at end of file + return (1366, 768) + +def linux_ignore_UserWarning(): + if sys.platform[0:3] != 'win': + # fix for Linux , Ignoring : + # /usr/lib/python3.6/multiprocessing/semaphore_tracker.py:143: + # UserWarning: semaphore_tracker: There appear to be 1 leaked semaphores to clean up at shutdown + import warnings + warnings.simplefilter(action='ignore', category=UserWarning) \ No newline at end of file diff --git a/localization/localization.py b/localization/localization.py index d15be0b..a603285 100644 --- a/localization/localization.py +++ b/localization/localization.py @@ -25,6 +25,6 @@ linux_font_name_map = { def get_default_ttf_font_name(): platform = sys.platform - if platform == 'win32': return windows_font_name_map.get(system_language, 'cour') + if platform[0:3] == 'win': return windows_font_name_map.get(system_language, 'cour') elif platform == 'darwin': return darwin_font_name_map.get(system_language, 'cour') else: return linux_font_name_map.get(system_language, 'cour') diff --git a/main.py b/main.py index 8625ad9..7c29257 100644 --- a/main.py +++ b/main.py @@ -3,14 +3,9 @@ if __name__ == "__main__": import multiprocessing multiprocessing.set_start_method("spawn") - import sys - if sys.platform != 'win32': - # fix for Linux , Ignoring : - # /usr/lib/python3.6/multiprocessing/semaphore_tracker.py:143: - # UserWarning: semaphore_tracker: There appear to be 1 leaked semaphores to clean up at shutdown - import warnings - warnings.simplefilter(action='ignore', category=UserWarning) - + from core import osex + osex.linux_ignore_UserWarning() + from core.leras import nn nn.initialize_main_env() @@ -19,8 +14,7 @@ if __name__ == "__main__": import time import argparse - from core import pathex - from core import osex + from core import pathex from pathlib import Path from core.interact import interact as io