diff options
| author | karnigen <karnigen@gmail.com> | 2024-01-13 15:42:49 +0100 |
|---|---|---|
| committer | karnigen <karnigen@gmail.com> | 2024-01-13 15:42:49 +0100 |
| commit | 1b1779ee99315d4aa6d5a6852c296d251e52ff00 (patch) | |
| tree | 436c3ba20b37961eb17c2c32a5bfc950e9c5bbb0 /inkstitch.py | |
| parent | bc991aaa250339ea2d1ca96c9d531e39d8027ab7 (diff) | |
style cleanup
Diffstat (limited to 'inkstitch.py')
| -rw-r--r-- | inkstitch.py | 75 |
1 files changed, 26 insertions, 49 deletions
diff --git a/inkstitch.py b/inkstitch.py index d85eaba4..dde884d7 100644 --- a/inkstitch.py +++ b/inkstitch.py @@ -7,8 +7,9 @@ import os import sys from pathlib import Path # to work with paths as objects import configparser # to read DEBUG.ini +from argparse import ArgumentParser # to parse arguments and remove --extension -import lib.debug_utils as debug_utils +import lib.debug_utils as debug_utils SCRIPTDIR = Path(__file__).parent.absolute() @@ -16,8 +17,8 @@ running_as_frozen = getattr(sys, 'frozen', None) is not None # check if running if len(sys.argv) < 2: # no arguments - prevent accidentally running this script - msg = "No arguments given, exiting!" # without gettext localization see _() - if running_as_frozen: # we show dialog only when running from pyinstaller bundle - using wx + msg = "No arguments given, exiting!" # without gettext localization see _() + if running_as_frozen: # we show dialog only when running from pyinstaller bundle - using wx try: import wx app = wx.App() @@ -43,68 +44,33 @@ debug_active = bool((gettrace := getattr(sys, 'gettrace')) and gettrace()) # ch debug_type = 'none' profiler_type = 'none' -if not running_as_frozen: # debugging/profiling only in development mode +if not running_as_frozen: # debugging/profiling only in development mode # specify debugger type - # - if script was already started from debugger then don't read debug type from ini file or cmd line + # but if script was already started from debugger then don't read debug type from ini file or cmd line if not debug_active: - # enable/disable debugger from bash: -d - if os.environ.get('INKSTITCH_DEBUG_ENABLE', '').lower() in ['true', '1', 'yes', 'y']: - debug_enable = True - else: - debug_enable = ini.getboolean("DEBUG","debug_enable", fallback=False) # enable debugger on startup from ini - - debug_type = ini.get("DEBUG","debug_type", fallback="none") # debugger type vscode, pycharm, pydevd - if not debug_enable: - debug_type = 'none' - - debug_to_file = ini.getboolean("DEBUG","debug_to_file", fallback=False) # write debug output to file - if debug_to_file and debug_type == 'none': - debug_type = 'file' - - # enbale/disable profiling from bash: -p - if os.environ.get('INKSTITCH_PROFILE_ENABLE', '').lower() in ['true', '1', 'yes', 'y']: - profile_enable = True - else: - profile_enable = ini.getboolean("PROFILE","profile_enable", fallback=False) # read from ini + debug_type = debug_utils.resole_debug_type(ini) # read debug type from ini file or cmd line - # specify profiler type - profiler_type = ini.get("PROFILE","profiler_type", fallback="none") # profiler type cprofile, profile, pyinstrument - if not profile_enable: - profiler_type = 'none' + profile_type = debug_utils.resole_profile_type(ini) # read profile type from ini file or cmd line if running_from_inkscape: # process creation of the Bash script - should be done before sys.path is modified, see below in prefere_pip_inkex - if ini.getboolean("DEBUG","create_bash_script", fallback=False): # create script only if enabled in DEBUG.ini + if ini.getboolean("DEBUG", "create_bash_script", fallback=False): # create script only if enabled in DEBUG.ini debug_utils.write_offline_debug_script(SCRIPTDIR, ini) - + # disable debugger when running from inkscape - disable_from_inkscape = ini.getboolean("DEBUG","disable_from_inkscape", fallback=False) + disable_from_inkscape = ini.getboolean("DEBUG", "disable_from_inkscape", fallback=False) if disable_from_inkscape: debug_type = 'none' # do not start debugger when running from inkscape # prefer pip installed inkex over inkscape bundled inkex, pip version is bundled with Inkstitch # - must be be done before importing inkex - prefere_pip_inkex = ini.getboolean("LIBRARY","prefer_pip_inkex", fallback=True) + prefere_pip_inkex = ini.getboolean("LIBRARY", "prefer_pip_inkex", fallback=True) if prefere_pip_inkex and 'PYTHONPATH' in os.environ: debug_utils.reorder_sys_path() -from argparse import ArgumentParser # to parse arguments and remove --extension -import logging # to set logger for shapely -from io import StringIO # to store shapely errors - -from lib.exceptions import InkstitchException, format_uncaught_exception - -from inkex import errormsg # to show error message in inkscape -from lxml.etree import XMLSyntaxError # to catch XMLSyntaxError from inkex - -from lib.debug import debug # import global variable debug - don't import whole module - -from lib import extensions # import all supported extensions of institch -from lib.i18n import _ # see gettext translation function _() -from lib.utils import restore_stderr, save_stderr # to hide GTK spam - # enabling of debug depends on value of debug_type in DEBUG.ini file if debug_type != 'none': + from lib.debug import debug # import global variable debug - don't import whole module debug.enable(debug_type, SCRIPTDIR, ini) # check if debugger is really activated debug_active = bool((gettrace := getattr(sys, 'gettrace')) and gettrace()) @@ -117,8 +83,9 @@ if running_as_frozen or not debug_active: # TODO - check if this is still needed for shapely, apparently shapely now uses only exceptions instead of io. # all logs were removed from version 2.0.0 and above - # ---- plan to remove this in future ---- +# import logging # to set logger for shapely +# from io import StringIO # to store shapely errors # set logger for shapely - for old versions of shapely # logger = logging.getLogger('shapely.geos') # attach logger of shapely # logger.setLevel(logging.DEBUG) @@ -132,6 +99,10 @@ if running_as_frozen or not debug_active: # pop '--extension' from arguments and generate extension class name from extension name # example: --extension=params will instantiate Params() class from lib.extensions. + +# we need to import only after possible modification of sys.path, we disable here flake8 E402 +from lib import extensions # noqa: E402 # import all supported extensions of institch + parser = ArgumentParser() parser.add_argument("--extension") my_args, remaining_args = parser.parse_known_args() @@ -154,7 +125,13 @@ if debug_active or profiler_type != "none": # if debug or profile mode debug_utils.profile(profiler_type, SCRIPTDIR, ini, extension, remaining_args) else: # if not debug nor profile mode - save_stderr() # hide GTK spam + from lib.exceptions import InkstitchException, format_uncaught_exception + from inkex import errormsg # to show error message in inkscape + from lxml.etree import XMLSyntaxError # to catch XMLSyntaxError from inkex + from lib.i18n import _ # see gettext translation function _() + from lib.utils import restore_stderr, save_stderr # to hide GTK spam + + save_stderr() # hide GTK spam exception = None try: extension.run(args=remaining_args) |
