From e24d4f7e8a89f3eeb60eb2589b1c4fd556806f6a Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 26 Apr 2024 18:11:51 +0200 Subject: [PATCH] Move remaining DEFAULT_* constants to `const.defaults` Some imports are made locally to avoid circular import issues (mainly in `util` module) --- picard/config_upgrade.py | 2 +- picard/const/__init__.py | 17 ----------------- picard/const/defaults.py | 17 +++++++++++++++++ picard/file.py | 2 +- picard/script/__init__.py | 2 +- picard/script/serializer.py | 6 ++---- picard/ui/options/profiles.py | 2 +- picard/ui/scripteditor.py | 4 ++-- picard/ui/widgets/profilelistwidget.py | 2 +- picard/ui/widgets/scriptlistwidget.py | 2 +- picard/util/__init__.py | 16 +++++++++------- test/test_config_upgrade.py | 2 +- test/test_script.py | 2 +- 13 files changed, 38 insertions(+), 38 deletions(-) diff --git a/picard/config_upgrade.py b/picard/config_upgrade.py index 348875c7a..1cf983672 100644 --- a/picard/config_upgrade.py +++ b/picard/config_upgrade.py @@ -45,7 +45,7 @@ from picard.config import ( IntOption, TextOption, ) -from picard.const import ( +from picard.const.defaults import ( DEFAULT_FILE_NAMING_FORMAT, DEFAULT_SCRIPT_NAME, ) diff --git a/picard/const/__init__.py b/picard/const/__init__.py index bc9cb72ca..5dc2bb179 100644 --- a/picard/const/__init__.py +++ b/picard/const/__init__.py @@ -178,21 +178,4 @@ PROGRAM_UPDATE_LEVELS = OrderedDict( ] ) - -DEFAULT_FILE_NAMING_FORMAT = "$if2(%albumartist%,%artist%)/\n" \ - "$if(%albumartist%,%album%/,)\n" \ - "$if($gt(%totaldiscs%,1),$if($gt(%totaldiscs%,9),$num(%discnumber%,2),%discnumber%)-,)" \ - "$if($and(%albumartist%,%tracknumber%),$num(%tracknumber%,2) ,)" \ - "$if(%_multiartist%,%artist% - ,)" \ - "%title%" - - -DEFAULT_SCRIPT_NAME = N_("My script") -DEFAULT_PROFILE_NAME = N_("My profile") -DEFAULT_COPY_TEXT = N_("(copy)") -DEFAULT_NUMBERED_TITLE_FORMAT = N_("{title} ({count})") -DEFAULT_NAMING_PRESET_ID = "Preset 1" - SCRIPT_LANGUAGE_VERSION = '1.1' - -DEFAULT_TIME_FORMAT = '%Y-%m-%d %H:%M:%S' diff --git a/picard/const/defaults.py b/picard/const/defaults.py index a63ae79f6..536dd78d3 100644 --- a/picard/const/defaults.py +++ b/picard/const/defaults.py @@ -13,6 +13,7 @@ from picard.const.sys import ( IS_MACOS, IS_WIN, ) +from picard.i18n import N_ from picard.util import system_supports_long_paths from picard.util.cdrom import discid @@ -127,3 +128,19 @@ DEFAULT_AUTOBACKUP_DIRECTORY = os.path.normpath(QtCore.QStandardPaths.writableLo DEFAULT_CACHE_SIZE_IN_BYTES = 100*CACHE_SIZE_DISPLAY_UNIT DEFAULT_LONG_PATHS = system_supports_long_paths() if IS_WIN else False + +DEFAULT_FILE_NAMING_FORMAT = "$if2(%albumartist%,%artist%)/\n" \ + "$if(%albumartist%,%album%/,)\n" \ + "$if($gt(%totaldiscs%,1),$if($gt(%totaldiscs%,9),$num(%discnumber%,2),%discnumber%)-,)" \ + "$if($and(%albumartist%,%tracknumber%),$num(%tracknumber%,2) ,)" \ + "$if(%_multiartist%,%artist% - ,)" \ + "%title%" + + +DEFAULT_SCRIPT_NAME = N_("My script") +DEFAULT_PROFILE_NAME = N_("My profile") +DEFAULT_COPY_TEXT = N_("(copy)") +DEFAULT_NUMBERED_TITLE_FORMAT = N_("{title} ({count})") +DEFAULT_NAMING_PRESET_ID = "Preset 1" + +DEFAULT_TIME_FORMAT = '%Y-%m-%d %H:%M:%S' diff --git a/picard/file.py b/picard/file.py index b3dff6b76..f1df6e091 100644 --- a/picard/file.py +++ b/picard/file.py @@ -66,7 +66,7 @@ from picard import ( log, ) from picard.config import get_config -from picard.const import DEFAULT_TIME_FORMAT +from picard.const.defaults import DEFAULT_TIME_FORMAT from picard.const.sys import ( IS_MACOS, IS_WIN, diff --git a/picard/script/__init__.py b/picard/script/__init__.py index b33c731f8..e8c8bc45a 100644 --- a/picard/script/__init__.py +++ b/picard/script/__init__.py @@ -37,7 +37,7 @@ from picard import log from picard.config import get_config -from picard.const import ( +from picard.const.defaults import ( DEFAULT_FILE_NAMING_FORMAT, DEFAULT_NAMING_PRESET_ID, ) diff --git a/picard/script/serializer.py b/picard/script/serializer.py index b5b048f4b..4f5d85544 100644 --- a/picard/script/serializer.py +++ b/picard/script/serializer.py @@ -39,10 +39,8 @@ from PyQt6 import ( ) from picard import log -from picard.const import ( - DEFAULT_SCRIPT_NAME, - SCRIPT_LANGUAGE_VERSION, -) +from picard.const import SCRIPT_LANGUAGE_VERSION +from picard.const.defaults import DEFAULT_SCRIPT_NAME from picard.i18n import ( N_, gettext as _, diff --git a/picard/ui/options/profiles.py b/picard/ui/options/profiles.py index 0fe7eac5c..229370fa4 100644 --- a/picard/ui/options/profiles.py +++ b/picard/ui/options/profiles.py @@ -36,7 +36,7 @@ from picard.config import ( SettingConfigSection, get_config, ) -from picard.const import DEFAULT_COPY_TEXT +from picard.const.defaults import DEFAULT_COPY_TEXT from picard.i18n import ( N_, gettext as _, diff --git a/picard/ui/scripteditor.py b/picard/ui/scripteditor.py index 28dc66067..1ec208505 100644 --- a/picard/ui/scripteditor.py +++ b/picard/ui/scripteditor.py @@ -39,11 +39,11 @@ from picard.config import ( SettingConfigSection, get_config, ) -from picard.const import ( +from picard.const import PICARD_URLS +from picard.const.defaults import ( DEFAULT_COPY_TEXT, DEFAULT_NAMING_PRESET_ID, DEFAULT_SCRIPT_NAME, - PICARD_URLS, ) from picard.file import File from picard.i18n import ( diff --git a/picard/ui/widgets/profilelistwidget.py b/picard/ui/widgets/profilelistwidget.py index 635924896..5d7d6e481 100644 --- a/picard/ui/widgets/profilelistwidget.py +++ b/picard/ui/widgets/profilelistwidget.py @@ -30,7 +30,7 @@ from PyQt6 import ( QtWidgets, ) -from picard.const import DEFAULT_PROFILE_NAME +from picard.const.defaults import DEFAULT_PROFILE_NAME from picard.i18n import ( gettext as _, gettext_constants, diff --git a/picard/ui/widgets/scriptlistwidget.py b/picard/ui/widgets/scriptlistwidget.py index adaf25318..1b7706308 100644 --- a/picard/ui/widgets/scriptlistwidget.py +++ b/picard/ui/widgets/scriptlistwidget.py @@ -30,7 +30,7 @@ from PyQt6 import ( QtWidgets, ) -from picard.const import DEFAULT_SCRIPT_NAME +from picard.const.defaults import DEFAULT_SCRIPT_NAME from picard.i18n import ( gettext as _, gettext_constants, diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 19ae5e5ee..377a54f1c 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -71,11 +71,7 @@ from PyQt6 import QtCore from PyQt6.QtGui import QDesktopServices from picard import log -from picard.const import ( - DEFAULT_COPY_TEXT, - DEFAULT_NUMBERED_TITLE_FORMAT, - MUSICBRAINZ_SERVERS, -) +from picard.const import MUSICBRAINZ_SERVERS from picard.const.sys import ( FROZEN_TEMP_PATH, IS_FROZEN, @@ -1090,12 +1086,17 @@ def _regex_numbered_title_fmt(fmt, title_repl, count_repl): ) +def _get_default_numbered_title_format(): + from picard.const.defaults import DEFAULT_NUMBERED_TITLE_FORMAT + return gettext_constants(DEFAULT_NUMBERED_TITLE_FORMAT) + + def unique_numbered_title(default_title, existing_titles, fmt=None): """Generate a new unique and numbered title based on given default title and existing titles """ if fmt is None: - fmt = gettext_constants(DEFAULT_NUMBERED_TITLE_FORMAT) + fmt = _get_default_numbered_title_format() escaped_title = re.escape(default_title) reg_count = r'(\d+)' @@ -1118,7 +1119,7 @@ def get_base_title_with_suffix(title, suffix, fmt=None): removing the suffix and number portion from the end. """ if fmt is None: - fmt = gettext_constants(DEFAULT_NUMBERED_TITLE_FORMAT) + fmt = _get_default_numbered_title_format() escaped_suffix = re.escape(suffix) reg_title = r'(?P.*?)(?:\s*' + escaped_suffix + ')?' @@ -1133,6 +1134,7 @@ def get_base_title_with_suffix(title, suffix, fmt=None): def get_base_title(title): """Extract the base portion of a title, using the standard suffix. """ + from picard.const.defaults import DEFAULT_COPY_TEXT suffix = gettext_constants(DEFAULT_COPY_TEXT) return get_base_title_with_suffix(title, suffix) diff --git a/test/test_config_upgrade.py b/test/test_config_upgrade.py index 35171bc72..dad55b43a 100644 --- a/test/test_config_upgrade.py +++ b/test/test_config_upgrade.py @@ -66,7 +66,7 @@ from picard.config_upgrade import ( upgrade_to_v2_8_0dev2, upgrade_to_v3_0_0dev3, ) -from picard.const import ( +from picard.const.defaults import ( DEFAULT_FILE_NAMING_FORMAT, DEFAULT_SCRIPT_NAME, ) diff --git a/test/test_script.py b/test/test_script.py index 2d242f3f8..e1aa58009 100644 --- a/test/test_script.py +++ b/test/test_script.py @@ -40,7 +40,7 @@ from unittest.mock import MagicMock from test.picardtestcase import PicardTestCase from picard.cluster import Cluster -from picard.const import DEFAULT_FILE_NAMING_FORMAT +from picard.const.defaults import DEFAULT_FILE_NAMING_FORMAT from picard.metadata import ( MULTI_VALUED_JOINER, Metadata,