From 00629b742001bc2d60f3430b5675dfc33d230c9a Mon Sep 17 00:00:00 2001
From: A_D <aunderscored@gmail.com>
Date: Tue, 5 Jan 2021 18:59:56 +0200
Subject: [PATCH] use _str versions of paths for string ops

---
 EDMC.py         |  6 +++---
 dashboard.py    |  6 +++---
 l10n.py         |  4 ++--
 monitor.py      |  2 +-
 plug.py         |  2 +-
 plugins/eddn.py |  2 +-
 prefs.py        | 16 ++++++++--------
 7 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/EDMC.py b/EDMC.py
index 849c9a98..bdc24705 100755
--- a/EDMC.py
+++ b/EDMC.py
@@ -41,7 +41,7 @@ from config import appcmdname, appversion, config
 from monitor import monitor
 from update import EDMCVersion, Updater
 
-sys.path.append(config.internal_plugin_dir)
+sys.path.append(config.internal_plugin_dir_str)
 # This import must be after the sys.path.append.
 # The sys.path.append has to be after `import sys` and `from config import config`
 # isort: off
@@ -189,9 +189,9 @@ sys.path: {sys.path}'''
             # Get state from latest Journal file
             logger.debug('Getting state from latest journal file')
             try:
-                logdir = config.get_str('journaldir', default=str(config.default_journal_dir))
+                logdir = config.get_str('journaldir', default=config.default_journal_dir_str)
                 if not logdir:
-                    logdir = str(config.default_journal_dir)
+                    logdir = config.default_journal_dir_str
 
                 logger.debug(f'logdir = "{logdir}"')
                 logfiles = sorted((x for x in os.listdir(logdir) if JOURNAL_RE.search(x)),
diff --git a/dashboard.py b/dashboard.py
index d0ef8575..e0569070 100644
--- a/dashboard.py
+++ b/dashboard.py
@@ -41,10 +41,10 @@ class Dashboard(FileSystemEventHandler):
         self.root = root
         self.session_start = started
 
-        logdir = config.get_str('journaldir', default=str(config.default_journal_dir))
+        logdir = config.get_str('journaldir', default=config.default_journal_dir_str)
         if logdir == '':
-            logdir = str(config.default_journal_dir)
-        
+            logdir = config.default_journal_dir_str
+
         if not logdir or not isdir(logdir):
             logger.info(f"No logdir, or it isn't a directory: {logdir=}")
             self.stop()
diff --git a/l10n.py b/l10n.py
index 6b9b1494..779a41ac 100755
--- a/l10n.py
+++ b/l10n.py
@@ -117,7 +117,7 @@ class _Translations:
             plugin_path = join(config.plugin_dir, plugin, LOCALISATION_DIR)
             if isdir(plugin_path):
                 try:
-                    self.translations[plugin] = self.contents(cast(str, lang), plugin_path)
+                    self.translations[plugin] = self.contents(cast(str, lang), str(plugin_path))
 
                 except UnicodeDecodeError as e:
                     logger.warning(f'Malformed file {lang}.strings in plugin {plugin}: {e}')
@@ -160,7 +160,7 @@ class _Translations:
         """
         if context:
             # TODO: There is probably a better way to go about this now.
-            context = context[len(str(config.plugin_dir))+1:].split(os.sep)[0]
+            context = context[len(config.plugin_dir_str)+1:].split(os.sep)[0]
             if self.translations[None] and context not in self.translations:
                 logger.debug(f'No translations for {context!r}')
 
diff --git a/monitor.py b/monitor.py
index 793789f9..2fedcd26 100644
--- a/monitor.py
+++ b/monitor.py
@@ -132,7 +132,7 @@ class EDLogs(FileSystemEventHandler):  # type: ignore # See below
         journal_dir = config.get_str('journaldir')
 
         if journal_dir == '' or journal_dir is None:
-            journal_dir = str(config.default_journal_dir)
+            journal_dir = config.default_journal_dir_str
 
         # TODO(A_D): this is ignored for type checking due to all the different types config.get returns
         # When that is refactored, remove the magic comment
diff --git a/plug.py b/plug.py
index 755fec1c..3f1a175a 100644
--- a/plug.py
+++ b/plug.py
@@ -184,7 +184,7 @@ def load_plugins(master):
     PLUGINS.extend(sorted(internal, key=lambda p: operator.attrgetter('name')(p).lower()))
 
     # Add plugin folder to load path so packages can be loaded from plugin folder
-    sys.path.append(config.plugin_dir)
+    sys.path.append(config.plugin_dir_str)
 
     found = []
     # Load any plugins that are also packages first
diff --git a/plugins/eddn.py b/plugins/eddn.py
index 45823dc9..7451f41d 100644
--- a/plugins/eddn.py
+++ b/plugins/eddn.py
@@ -745,7 +745,7 @@ def journal_entry(  # noqa: C901
 
             journaldir = config.get_str('journaldir')
             if journaldir is None or journaldir == '':
-                journaldir = str(config.default_journal_dir)
+                journaldir = config.default_journal_dir_str
 
             path = pathlib.Path(journaldir) / f'{entry["event"]}.json'
 
diff --git a/prefs.py b/prefs.py
index 1fe7d3b6..cfc4aded 100644
--- a/prefs.py
+++ b/prefs.py
@@ -408,7 +408,7 @@ class PreferencesDialog(tk.Toplevel):
         row = AutoInc(start=1)
 
         self.logdir = tk.StringVar()
-        default = str(config.default_journal_dir) if config.default_journal_dir is not None else ''
+        default = config.default_journal_dir_str if config.default_journal_dir is not None else ''
         logdir = config.get_str('journaldir')
         if logdir is None or logdir == '':
             logdir = default
@@ -634,7 +634,7 @@ class PreferencesDialog(tk.Toplevel):
     def __setup_appearance_tab(self, notebook: Notebook) -> None:
         self.languages = Translations.available_names()
         # Appearance theme and language setting
-        self.lang = tk.StringVar(value=self.languages.get(config.get_str('language'), default=_('Default')))
+        self.lang = tk.StringVar(value=self.languages.get(config.get_str('language'), _('Default')))
         self.always_ontop = tk.BooleanVar(value=bool(config.get_int('always_ontop')))
         self.theme = tk.IntVar(value=config.get_int('theme'))
         self.theme_colors = [config.get_str('dark_text'), config.get_str('dark_highlight')]
@@ -985,7 +985,7 @@ class PreferencesDialog(tk.Toplevel):
         entryfield['state'] = tk.NORMAL  # must be writable to update
         entryfield.delete(0, tk.END)
         if platform == 'win32':
-            start = len(config.home.split('\\')) if pathvar.get().lower().startswith(config.home.lower()) else 0
+            start = len(config.home_str.split('\\')) if pathvar.get().lower().startswith(config.home_str.lower()) else 0
             display = []
             components = normpath(pathvar.get()).split('\\')
             buf = ctypes.create_unicode_buffer(MAX_PATH)
@@ -1006,7 +1006,7 @@ class PreferencesDialog(tk.Toplevel):
 
         #                                                   None if path doesn't exist
         elif platform == 'darwin' and NSFileManager.defaultManager().componentsToDisplayForPath_(pathvar.get()):
-            if pathvar.get().startswith(config.home):
+            if pathvar.get().startswith(config.home_str):
                 display = ['~'] + NSFileManager.defaultManager().componentsToDisplayForPath_(pathvar.get())[
                     len(NSFileManager.defaultManager().componentsToDisplayForPath_(config.home)):
                 ]
@@ -1016,8 +1016,8 @@ class PreferencesDialog(tk.Toplevel):
 
             entryfield.insert(0, '/'.join(display))
         else:
-            if pathvar.get().startswith(config.home):
-                entryfield.insert(0, '~' + pathvar.get()[len(config.home):])
+            if pathvar.get().startswith(config.home_str):
+                entryfield.insert(0, '~' + pathvar.get()[len(config.home_str):])
 
             else:
                 entryfield.insert(0, pathvar.get())
@@ -1027,7 +1027,7 @@ class PreferencesDialog(tk.Toplevel):
     def logdir_reset(self) -> None:
         """Reset the log dir to the default."""
         if config.default_journal_dir:
-            self.logdir.set(config.default_journal_dir)
+            self.logdir.set(config.default_journal_dir_str)
 
         self.outvarchanged()
 
@@ -1138,7 +1138,7 @@ class PreferencesDialog(tk.Toplevel):
         )
 
         logdir = self.logdir.get()
-        if config.default_journal_dir and logdir.lower() == config.default_journal_dir.lower():
+        if config.default_journal_dir and logdir.lower() == config.default_journal_dir_str.lower():
             config.set('journaldir', '')  # default location
 
         else: