diff --git a/pype/settings/handlers.py b/pype/settings/handlers.py index c1829273b1..300d4492eb 100644 --- a/pype/settings/handlers.py +++ b/pype/settings/handlers.py @@ -5,15 +5,7 @@ from abc import ABCMeta, abstractmethod import six import pype from .constants import ( - M_OVERRIDEN_KEY, - M_ENVIRONMENT_KEY, - M_DYNAMIC_KEY_LABEL, - M_POP_KEY, - - METADATA_KEYS, - SYSTEM_SETTINGS_KEY, - ENVIRONMENTS_KEY, PROJECT_SETTINGS_KEY, PROJECT_ANATOMY_KEY ) @@ -295,3 +287,75 @@ class SettingsFileHandler(SettingsHandler): if not os.path.exists(path_to_json): return {} return self.load_json_file(path_to_json) + + +class MongoSettingsHandler(SettingsHandler): + def __init__(self): + pass + + @classmethod + def save_studio_settings(self, data): + """Save studio overrides of system settings. + + Do not use to store whole system settings data with defaults but only it's + overrides with metadata defining how overrides should be applied in load + function. For loading should be used function `studio_system_settings`. + + Args: + data(dict): Data of studio overrides with override metadata. + """ + + def save_project_settings(self, project_name, overrides): + """Save studio overrides of project settings. + + Data are saved for specific project or as defaults for all projects. + + Do not use to store whole project settings data with defaults but only it's + overrides with metadata defining how overrides should be applied in load + function. For loading should be used function + `get_studio_project_settings_overrides` for global project settings + and `get_project_settings_overrides` for project specific settings. + + Args: + project_name(str, null): Project name for which overrides are + or None for global settings. + data(dict): Data of project overrides with override metadata. + """ + + def save_project_anatomy(self, project_name, anatomy_data): + """Save studio overrides of project anatomy data. + + Args: + project_name(str, null): Project name for which overrides are + or None for global settings. + data(dict): Data of project overrides with override metadata. + """ + + def get_studio_system_settings_overrides(self): + """Studio overrides of system settings.""" + + def get_studio_project_settings_overrides(self): + """Studio overrides of default project settings.""" + + def get_studio_project_anatomy_overrides(self): + """Studio overrides of default project anatomy data.""" + + def get_project_settings_overrides(self, project_name): + """Studio overrides of project settings for specific project. + + Args: + project_name(str): Name of project for which data should be loaded. + + Returns: + dict: Only overrides for entered project, may be empty dictionary. + """ + + def get_project_anatomy_overrides(self, project_name): + """Studio overrides of project anatomy for specific project. + + Args: + project_name(str): Name of project for which data should be loaded. + + Returns: + dict: Only overrides for entered project, may be empty dictionary. + """ \ No newline at end of file