mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
implemented clear_metadata_from_settings to remove metadata from loaded settings
This commit is contained in:
parent
04bd7783f2
commit
31a2c70b26
1 changed files with 47 additions and 14 deletions
|
|
@ -17,6 +17,13 @@ M_DYNAMIC_KEY_LABEL = "__dynamic_keys_labels__"
|
|||
# NOTE key popping not implemented yet
|
||||
M_POP_KEY = "__pop_key__"
|
||||
|
||||
METADATA_KEYS = (
|
||||
M_OVERRIDEN_KEY,
|
||||
M_ENVIRONMENT_KEY,
|
||||
M_DYNAMIC_KEY_LABEL,
|
||||
M_POP_KEY
|
||||
)
|
||||
|
||||
# Folder where studio overrides are stored
|
||||
STUDIO_OVERRIDES_PATH = os.getenv("PYPE_PROJECT_CONFIGS") or ""
|
||||
|
||||
|
|
@ -413,30 +420,37 @@ def apply_overrides(source_data, override_data):
|
|||
return merge_overrides(_source_data, override_data)
|
||||
|
||||
|
||||
def get_system_settings():
|
||||
def get_system_settings(clear_metadata=True):
|
||||
"""System settings with applied studio overrides."""
|
||||
default_values = get_default_settings()[SYSTEM_SETTINGS_KEY]
|
||||
studio_values = get_studio_system_settings_overrides()
|
||||
return apply_overrides(default_values, studio_values)
|
||||
result = apply_overrides(default_values, studio_values)
|
||||
if clear_metadata:
|
||||
clear_metadata_from_settings(result)
|
||||
return result
|
||||
|
||||
|
||||
def get_default_project_settings():
|
||||
def get_default_project_settings(clear_metadata=True):
|
||||
"""Project settings with applied studio's default project overrides."""
|
||||
default_values = get_default_settings()[PROJECT_SETTINGS_KEY]
|
||||
studio_values = get_studio_project_settings_overrides()
|
||||
|
||||
return apply_overrides(default_values, studio_values)
|
||||
result = apply_overrides(default_values, studio_values)
|
||||
if clear_metadata:
|
||||
clear_metadata_from_settings(result)
|
||||
return result
|
||||
|
||||
|
||||
def get_default_project_anatomy_data():
|
||||
def get_default_project_anatomy_data(clear_metadata=True):
|
||||
"""Project anatomy data with applied studio's default project overrides."""
|
||||
default_values = get_default_settings()[PROJECT_ANATOMY_KEY]
|
||||
studio_values = get_studio_project_anatomy_overrides()
|
||||
|
||||
return apply_overrides(default_values, studio_values)
|
||||
result = apply_overrides(default_values, studio_values)
|
||||
if clear_metadata:
|
||||
clear_metadata_from_settings(result)
|
||||
return result
|
||||
|
||||
|
||||
def get_anatomy_data(project_name):
|
||||
def get_anatomy_data(project_name, clear_metadata=True):
|
||||
"""Project anatomy data with applied studio and project overrides."""
|
||||
if not project_name:
|
||||
raise ValueError(
|
||||
|
|
@ -444,13 +458,16 @@ def get_anatomy_data(project_name):
|
|||
" Call `get_default_project_anatomy_data` to get project defaults."
|
||||
)
|
||||
|
||||
studio_overrides = get_default_project_anatomy_data()
|
||||
studio_overrides = get_default_project_anatomy_data(False)
|
||||
project_overrides = get_project_anatomy_overrides(project_name)
|
||||
|
||||
return apply_overrides(studio_overrides, project_overrides)
|
||||
result = apply_overrides(studio_overrides, project_overrides)
|
||||
if clear_metadata:
|
||||
clear_metadata_from_settings(result)
|
||||
return result
|
||||
|
||||
|
||||
def get_project_settings(project_name):
|
||||
def get_project_settings(project_name, clear_metadata=True):
|
||||
"""Project settings with applied studio and project overrides."""
|
||||
if not project_name:
|
||||
raise ValueError(
|
||||
|
|
@ -458,10 +475,13 @@ def get_project_settings(project_name):
|
|||
" Call `get_default_project_settings` to get project defaults."
|
||||
)
|
||||
|
||||
studio_overrides = get_default_project_settings()
|
||||
studio_overrides = get_default_project_settings(False)
|
||||
project_overrides = get_project_settings_overrides(project_name)
|
||||
|
||||
return apply_overrides(studio_overrides, project_overrides)
|
||||
result = apply_overrides(studio_overrides, project_overrides)
|
||||
if clear_metadata:
|
||||
clear_metadata_from_settings(result)
|
||||
return result
|
||||
|
||||
|
||||
def get_current_project_settings():
|
||||
|
|
@ -491,3 +511,16 @@ def get_environments():
|
|||
"""
|
||||
|
||||
return find_environments(get_system_settings())
|
||||
|
||||
|
||||
def clear_metadata_from_settings(values):
|
||||
"""Remove all metadata keys from loaded settings."""
|
||||
if isinstance(values, dict):
|
||||
for key in tuple(values.keys()):
|
||||
if key in METADATA_KEYS:
|
||||
values.pop(key)
|
||||
else:
|
||||
clear_metadata_from_settings(values[key])
|
||||
elif isinstance(values, list):
|
||||
for item in values:
|
||||
clear_metadata_from_settings(item)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue