diff options
| author | Amit Prasad <17amitprasad@gmail.com> | 2019-12-20 11:34:57 -0500 |
|---|---|---|
| committer | Amit Prasad <17amitprasad@gmail.com> | 2019-12-20 11:34:57 -0500 |
| commit | d4bd389b438df7bc4d3f302d44e23c9bbdaba8ec (patch) | |
| tree | 2df7c17653b557a86ea57dae2847a6d3edfcc33c | |
| parent | f06edfa7a2f8aba5bac24710e21389434604c8cd (diff) | |
Cleaned up code for pylint
| -rw-r--r-- | pywal/export.py | 76 | ||||
| -rw-r--r-- | pywal/util.py | 13 |
2 files changed, 46 insertions, 43 deletions
diff --git a/pywal/export.py b/pywal/export.py index 4c0649f..d9ff16d 100644 --- a/pywal/export.py +++ b/pywal/export.py @@ -5,53 +5,53 @@ import logging import os import re -from .settings import CACHE_DIR, MODULE_DIR, CONF_DIR from . import util +from .settings import CACHE_DIR, CONF_DIR, MODULE_DIR def template(colors, input_file, output_file=None): """Read template file, substitute markers and save the file elsewhere.""" template_data = util.read_file_raw(input_file) - for i in range(len(template_data)): - line = template_data[i] - matches = re.finditer(r"(?<=(?<!\{))(\{([^{}]+)\})(?=(?!\}))", line) - for match in matches: + for i, l in enumerate(template_data): + for match in re.finditer(r"(?<=(?<!\{))(\{([^{}]+)\})(?=(?!\}))", l): # Get the color, and the functions associated with it - color, _, funcs = match.group(2).partition(".") + cname, _, funcs = match.group(2).partition(".") # Check that functions are needed for this color - if len(funcs) != 0: - # Build up a string which will be replaced when the color is done processing - replace_str = color - # The modified color - new_color = colors[color] - # Execute each function to be done - for func in filter(None, funcs.split(")")): - # Get function name and arguments - func_split = func.split("(") - args = [] - if len(func_split) > 1: - args = func_split[1].split(",") - fname = func_split[0] - if fname[0] == '.': - fname = fname[1:] - if not hasattr(new_color, fname): - logging.error( - "Syntax error in template file '%s' on line '%s'", input_file, i) - f = getattr(new_color, fname) - - # If the function is callable, call it - if callable(f): - new_color = f(*args) - # add to the string that will replace the function calls with the generated function. - if func[0] != '.': - replace_str += "." - replace_str += func + ")" - # If the color was changed, replace the template with a unique identifier for the new color. - if not new_color is colors[color]: - cname = "color" + new_color.strip - template_data[i] = line.replace(replace_str, cname) - colors[cname] = new_color + if len(funcs) == 0: + continue + # Build up a string which will be replaced with the new color + replace_str = cname + # Color to be modified copied into new one + new_color = util.Color(colors[cname].hex_color) + # Execute each function to be done + for func in filter(None, funcs.split(")")): + # Get function name and arguments + func = func.split("(") + fname = func[0] + if fname[0] == '.': + fname = fname[1:] + if not hasattr(new_color, fname): + logging.error( + "Syntax error in template file '%s' on line '%s'", + input_file, i) + function = getattr(new_color, fname) + + # If the function is callable, call it + if callable(function): + if len(func) > 1: + new_color = function(*func[1].split(",")) + else: + new_color = function() + # string to replace generated colors + if func[0] != '.': + replace_str += "." + replace_str += "(".join(func) + ")" + # If the color was changed, replace with a unique identifier. + if new_color is not colors[cname]: + template_data[i] = l.replace( + replace_str, "color" + new_color.strip) + colors["color" + new_color.strip] = new_color try: template_data = "".join(template_data).format(**colors) except ValueError: diff --git a/pywal/util.py b/pywal/util.py index 74fe1f0..cd6628a 100644 --- a/pywal/util.py +++ b/pywal/util.py @@ -5,11 +5,11 @@ import colorsys import json import logging import os +import platform +import re import shutil import subprocess import sys -import platform -import re class Color: @@ -60,15 +60,18 @@ class Color: def lighten(self, percent): """Lighten color by percent""" - return Color(lighten_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100)) + percent = float(re.sub(r'[\D\.]', '', str(percent))) + return Color(lighten_color(self.hex_color, percent / 100)) def darken(self, percent): """Darken color by percent""" - return Color(darken_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100)) + percent = float(re.sub(r'[\D\.]', '', str(percent))) + return Color(darken_color(self.hex_color, percent / 100)) def saturate(self, percent): """Saturate a color""" - return Color(saturate_color(self.hex_color, float(re.sub(r'[\D\.]', '', percent)) / 100)) + percent = float(re.sub(r'[\D\.]', '', str(percent))) + return Color(saturate_color(self.hex_color, percent / 100)) def read_file(input_file): |
