summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/extensions/lettering_custom_font_dir.py13
-rw-r--r--lib/extensions/print_pdf.py10
-rw-r--r--lib/gui/presets.py13
-rw-r--r--lib/lettering/utils.py6
-rw-r--r--lib/utils/cache.py12
-rwxr-xr-xlib/utils/paths.py7
6 files changed, 22 insertions, 39 deletions
diff --git a/lib/extensions/lettering_custom_font_dir.py b/lib/extensions/lettering_custom_font_dir.py
index a8ad9d98..626517fd 100644
--- a/lib/extensions/lettering_custom_font_dir.py
+++ b/lib/extensions/lettering_custom_font_dir.py
@@ -6,10 +6,10 @@
import json
import os
-import platformdirs
from inkex import errormsg
from ..i18n import _
+from ..utils import get_user_dir
from .base import InkstitchExtension
@@ -30,20 +30,13 @@ class LetteringCustomFontDir(InkstitchExtension):
data = {'custom_font_dir': '%s' % path}
- try:
- config_path = platformdirs.user_config_dir('inkstitch')
- except ImportError:
- config_path = os.path.expanduser('~/.inkstitch')
- if not os.path.exists(config_path):
- os.makedirs(config_path)
- config_path = os.path.join(config_path, 'custom_dirs.json')
-
+ config_path = get_user_dir('custom_dirs.json')
with open(config_path, 'w', encoding="utf8") as font_data:
json.dump(data, font_data, indent=4, ensure_ascii=False)
def get_custom_font_dir():
- custom_font_dir_path = os.path.join(platformdirs.user_config_dir('inkstitch'), 'custom_dirs.json')
+ custom_font_dir_path = get_user_dir('custom_dirs.json')
try:
with open(custom_font_dir_path, 'r') as custom_dirs:
custom_dir = json.load(custom_dirs)
diff --git a/lib/extensions/print_pdf.py b/lib/extensions/print_pdf.py
index 4111a8d4..0bdd9d81 100644
--- a/lib/extensions/print_pdf.py
+++ b/lib/extensions/print_pdf.py
@@ -14,7 +14,6 @@ from copy import deepcopy
from datetime import date
from threading import Thread
-import platformdirs
import wx
from flask import Flask, Response, jsonify, request, send_from_directory
from jinja2 import Environment, FileSystemLoader, select_autoescape
@@ -27,7 +26,7 @@ from ..i18n import translation as inkstitch_translation
from ..stitch_plan import stitch_groups_to_stitch_plan
from ..svg import render_stitch_plan
from ..threads import ThreadCatalog
-from ..utils import get_resource_dir
+from ..utils import get_resource_dir, get_user_dir
from .base import InkstitchExtension
@@ -36,12 +35,7 @@ def datetimeformat(value, format='%Y/%m/%d'):
def defaults_path():
- defaults_dir = platformdirs.user_config_dir('inkstitch')
-
- if not os.path.exists(defaults_dir):
- os.makedirs(defaults_dir)
-
- return os.path.join(defaults_dir, 'print_settings.json')
+ return get_user_dir('print_settings.json')
def load_defaults():
diff --git a/lib/gui/presets.py b/lib/gui/presets.py
index 0457963e..21917d54 100644
--- a/lib/gui/presets.py
+++ b/lib/gui/presets.py
@@ -4,13 +4,12 @@
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
import json
-import os
import re
import wx
from ..i18n import _
-from ..utils import cache
+from ..utils import cache, get_user_dir
from .dialogs import info_dialog
@@ -88,15 +87,7 @@ class PresetsPanel(wx.Panel):
@cache
def presets_path(self):
- try:
- import platformdirs
- config_path = platformdirs.user_config_dir('inkstitch')
- except ImportError:
- config_path = os.path.expanduser('~/.inkstitch')
-
- if not os.path.exists(config_path):
- os.makedirs(config_path)
- return os.path.join(config_path, '%s.json' % self.suite_name)
+ return get_user_dir(f'{self.suite_name}.json')
def _load_presets(self):
try:
diff --git a/lib/lettering/utils.py b/lib/lettering/utils.py
index 972aff7b..99997643 100644
--- a/lib/lettering/utils.py
+++ b/lib/lettering/utils.py
@@ -5,11 +5,9 @@
import os
-import platformdirs
-
from ..extensions.lettering_custom_font_dir import get_custom_font_dir
from ..lettering import Font
-from ..utils import get_bundled_dir
+from ..utils import get_bundled_dir, get_user_dir
def get_font_list():
@@ -36,7 +34,7 @@ def get_font_paths():
font_paths = {
get_bundled_dir("fonts"),
os.path.expanduser("~/.inkstitch/fonts"),
- os.path.join(platformdirs.user_config_dir('inkstitch'), 'fonts'),
+ get_user_dir('fonts'),
get_custom_font_dir()
}
return font_paths
diff --git a/lib/utils/cache.py b/lib/utils/cache.py
index 76ce2416..18f993e9 100644
--- a/lib/utils/cache.py
+++ b/lib/utils/cache.py
@@ -8,11 +8,12 @@ import os
import pickle
import sqlite3
-import platformdirs
import diskcache
from lib.utils.settings import global_settings
+from .paths import get_user_dir
+
try:
from functools import lru_cache
except ImportError:
@@ -31,16 +32,17 @@ def get_stitch_plan_cache():
global __stitch_plan_cache
if __stitch_plan_cache is None:
- cache_dir = os.path.join(platformdirs.user_config_dir('inkstitch'), 'cache', 'stitch_plan')
+ cache_dir = get_user_dir('cache')
+ stitch_plan_dir = os.path.join(cache_dir, 'stitch_plan')
size_limit = global_settings['cache_size'] * 1024 * 1024
try:
- __stitch_plan_cache = diskcache.Cache(cache_dir, size=size_limit)
+ __stitch_plan_cache = diskcache.Cache(stitch_plan_dir, size=size_limit)
except (sqlite3.DatabaseError, sqlite3.OperationalError):
# reset cache database file if it couldn't parse correctly
- cache_file = os.path.join(platformdirs.user_config_dir('inkstitch'), 'cache', 'stitch_plan', 'cache.db')
+ cache_file = os.path.join(stitch_plan_dir, 'cache.db')
if os.path.exists(cache_file):
os.remove(cache_file)
- __stitch_plan_cache = diskcache.Cache(cache_dir, size=size_limit)
+ __stitch_plan_cache = diskcache.Cache(stitch_plan_dir, size=size_limit)
__stitch_plan_cache.size_limit = size_limit
# reset cache if warnings appear within the files
diff --git a/lib/utils/paths.py b/lib/utils/paths.py
index 6eafbd77..3bc12c2a 100755
--- a/lib/utils/paths.py
+++ b/lib/utils/paths.py
@@ -42,7 +42,12 @@ def get_resource_dir(name):
def get_user_dir(name=None):
- path = platformdirs.user_config_dir("inkstitch")
+ try:
+ path = platformdirs.user_config_dir('inkstitch')
+ except ImportError:
+ path = os.path.expanduser('~/.inkstitch')
+ if not os.path.exists(path):
+ os.makedirs(path)
if name is not None:
path = os.path.join(path, name)