#!/usr/bin/python3 import re class Rule: def __init__(self, *path, **properties): self.path = path self.properties = properties def _f(self, prop): key, value = prop key = re.sub("([A-Z])", "-\\1", key).lower() return " {}: {};".format(key, value) def __format__(self): result = " ".join(self.path) result += " {\n" result += "\n".join(map(self._f, self.properties.items())) result += "\n}\n" return result def string(*rules): return "\n".join(map(lambda r: r.__format__(), rules)) if __name__ == "__main__": print("CSS Demo") print(Rule(".foo", "#blah", backgroundColor="red").__format__())