From 7b6d0d20df354c84d2dc66324d0c95af066924cf Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 24 Feb 2021 17:53:33 +0100 Subject: [PATCH] default project is stored under constant key in local settings --- pype/settings/constants.py | 1 + pype/settings/handlers.py | 20 -------------------- pype/settings/lib.py | 7 ++++--- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/pype/settings/constants.py b/pype/settings/constants.py index fcc3a1d2dc..ce19ad3f93 100644 --- a/pype/settings/constants.py +++ b/pype/settings/constants.py @@ -17,6 +17,7 @@ PROJECT_SETTINGS_KEY = "project_settings" PROJECT_ANATOMY_KEY = "project_anatomy" LOCAL_SETTING_KEY = "local_settings" +DEFAULT_PROJECT_KEY = "__default_project__" __all__ = ( "M_OVERRIDEN_KEY", diff --git a/pype/settings/handlers.py b/pype/settings/handlers.py index 135201048a..89f9645be7 100644 --- a/pype/settings/handlers.py +++ b/pype/settings/handlers.py @@ -526,13 +526,7 @@ class MongoLocalSettingsHandler(LocalSettingsHandler): Data have 2 query criteria. First is key "type" stored in constant `LOCAL_SETTING_KEY`. Second is key "site_id" which value can be obstained with `get_local_site_id` function. - - Because project specific values are stored by project name the default - project would have key `None` which is not allowed. Because of that is - `None` replaced with `default_project_key` value on save and the key - is replaced with `None` of load. """ - default_project_key = "__default_project__" def __init__(self, local_site_id=None): # Get mongo connection @@ -571,12 +565,6 @@ class MongoLocalSettingsHandler(LocalSettingsHandler): """ data = data or {} - # Replace key `None` (default project values) with constant string - if "projects" in data and None in data["projects"]: - data["projects"][self.default_project_key] = ( - data["projects"].pop(None) - ) - self.local_settings_cache.update_data(data) self.collection.replace_one( @@ -601,13 +589,5 @@ class MongoLocalSettingsHandler(LocalSettingsHandler): }) self.local_settings_cache.update_from_document(document) - data = self.local_settings_cache.data - if ( - "projects" in data - and self.default_project_key in data["projects"] - ): - data["projects"][None] = data["projects"].pop( - self.default_project_key - ) return self.local_settings_cache.data_copy() diff --git a/pype/settings/lib.py b/pype/settings/lib.py index fb0bb733c9..1fbcbeabb8 100644 --- a/pype/settings/lib.py +++ b/pype/settings/lib.py @@ -12,7 +12,8 @@ from .constants import ( SYSTEM_SETTINGS_KEY, PROJECT_SETTINGS_KEY, - PROJECT_ANATOMY_KEY + PROJECT_ANATOMY_KEY, + DEFAULT_PROJECT_KEY ) log = logging.getLogger(__name__) @@ -402,7 +403,7 @@ def apply_local_settings_on_anatomy_settings( return current_platform = platform.system().lower() - local_defaults = local_project_settings.get(None) + local_defaults = local_project_settings.get(DEFAULT_PROJECT_KEY) root_data = anatomy_settings["roots"] if local_defaults and "roots" in local_defaults: for root_name, path in local_defaults["roots"].items(): @@ -411,7 +412,7 @@ def apply_local_settings_on_anatomy_settings( anatomy_settings["roots"][root_name][current_platform] = ( path ) - if project_name is None: + if project_name == DEFAULT_PROJECT_KEY: return local_projects = local_project_settings.get(project_name)