mirror of
https://github.com/dylanaraps/pywal
synced 2024-09-29 03:03:30 +00:00
commit
a2ddff38fd
|
@ -12,6 +12,7 @@ from .settings import CACHE_DIR, CONF_DIR, MODULE_DIR
|
||||||
def template(colors, input_file, output_file=None):
|
def template(colors, input_file, output_file=None):
|
||||||
"""Read template file, substitute markers and
|
"""Read template file, substitute markers and
|
||||||
save the file elsewhere."""
|
save the file elsewhere."""
|
||||||
|
# pylint: disable-msg=too-many-locals
|
||||||
template_data = util.read_file_raw(input_file)
|
template_data = util.read_file_raw(input_file)
|
||||||
for i, l in enumerate(template_data):
|
for i, l in enumerate(template_data):
|
||||||
for match in re.finditer(r"(?<=(?<!\{))(\{([^{}]+)\})(?=(?!\}))", l):
|
for match in re.finditer(r"(?<=(?<!\{))(\{([^{}]+)\})(?=(?!\}))", l):
|
||||||
|
@ -25,7 +26,7 @@ def template(colors, input_file, output_file=None):
|
||||||
# Color to be modified copied into new one
|
# Color to be modified copied into new one
|
||||||
new_color = util.Color(colors[cname].hex_color)
|
new_color = util.Color(colors[cname].hex_color)
|
||||||
# Execute each function to be done
|
# Execute each function to be done
|
||||||
for func in filter(None, funcs.split(")")):
|
for func in filter(None, re.split(r"\)|\.", funcs)):
|
||||||
# Get function name and arguments
|
# Get function name and arguments
|
||||||
func = func.split("(")
|
func = func.split("(")
|
||||||
fname = func[0]
|
fname = func[0]
|
||||||
|
@ -47,11 +48,19 @@ def template(colors, input_file, output_file=None):
|
||||||
if func[0] != '.':
|
if func[0] != '.':
|
||||||
replace_str += "."
|
replace_str += "."
|
||||||
replace_str += "(".join(func) + ")"
|
replace_str += "(".join(func) + ")"
|
||||||
|
else:
|
||||||
|
# if it is an attribute i.e. rgb
|
||||||
|
replace_str += '.' + fname
|
||||||
|
new_color = function
|
||||||
|
|
||||||
|
if isinstance(new_color, util.Color):
|
||||||
|
new_color = new_color.strip
|
||||||
# If the color was changed, replace with a unique identifier.
|
# If the color was changed, replace with a unique identifier.
|
||||||
if new_color is not colors[cname]:
|
if new_color is not colors[cname]:
|
||||||
template_data[i] = l.replace(
|
new_color_clean = new_color.replace('[', '_').replace(']', '_')
|
||||||
replace_str, "color" + new_color.strip)
|
template_data[i] = l.replace(replace_str,
|
||||||
colors["color" + new_color.strip] = new_color
|
"color" + new_color_clean)
|
||||||
|
colors["color" + new_color_clean] = new_color
|
||||||
try:
|
try:
|
||||||
template_data = "".join(template_data).format(**colors)
|
template_data = "".join(template_data).format(**colors)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
Loading…
Reference in a new issue