Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
This fuction returns the custom stylesheet pointing to resources stored at
.../path/name/.
"""
stylesheet = ''
# Check if name is valid
if is_identifier(name):
name = name if name[0].isupper() else name.capitalize()
else:
raise Exception('The custom palette name must be a valid Python '
'identifier!')
# Copy resources folder
rc_loc = os.path.basename(RC_PATH)
qss_loc = os.path.basename(QSS_PATH)
theme_root_path = os.path.join(path, name.lower())
theme_rc_path = os.path.join(theme_root_path, rc_loc)
if os.path.isdir(theme_root_path):
shutil.rmtree(theme_root_path)
shutil.copytree(RC_PATH, theme_rc_path)
# Copy QSS folder and contents
theme_qss_path = os.path.join(theme_root_path, qss_loc)
if os.path.isdir(theme_qss_path):
os.removedirs(theme_qss_path)
shutil.copytree(QSS_PATH, theme_qss_path)
qss_loc = os.path.basename(QSS_PATH)
theme_root_path = os.path.join(path, name.lower())
theme_rc_path = os.path.join(theme_root_path, rc_loc)
if os.path.isdir(theme_root_path):
shutil.rmtree(theme_root_path)
shutil.copytree(RC_PATH, theme_rc_path)
# Copy QSS folder and contents
theme_qss_path = os.path.join(theme_root_path, qss_loc)
if os.path.isdir(theme_qss_path):
os.removedirs(theme_qss_path)
shutil.copytree(QSS_PATH, theme_qss_path)
# Create custom palette
custom_palette = type(name, (DarkPalette, ), {})
custom_palette.COLOR_BACKGROUND_LIGHT = color_background_light
custom_palette.COLOR_BACKGROUND_NORMAL = color_background_normal
custom_palette.COLOR_BACKGROUND_DARK = color_background_dark
custom_palette.COLOR_FOREGROUND_LIGHT = color_foreground_light
custom_palette.COLOR_FOREGROUND_NORMAL = color_foreground_normal
custom_palette.COLOR_FOREGROUND_DARK = color_foreground_dark
custom_palette.COLOR_SELECTION_LIGHT = color_selection_light
custom_palette.COLOR_SELECTION_NORMAL = color_selection_normal
custom_palette.COLOR_SELECTION_DARK = color_selection_dark
custom_palette.SIZE_BORDER_RADIUS = border_radius
custom_palette.PATH_RESOURCES = "'{}'".format(theme_root_path)
# Process images and save them to the custom platte rc folder