34 lines
829 B
Python
34 lines
829 B
Python
from pathlib import Path
|
|
|
|
from lxml import etree
|
|
|
|
|
|
def normalize_value(value: str) -> str:
|
|
try:
|
|
return f"{float(value):.2f}"
|
|
except ValueError:
|
|
pass
|
|
return value
|
|
|
|
|
|
def icon_optimizator(file: Path):
|
|
source_size = file.stat().st_size
|
|
tree = etree.parse(file)
|
|
for node in tree.findall(".//{*}path"):
|
|
d = node.attrib["d"]
|
|
node.attrib["d"] = " ".join(map(normalize_value, d.split(" ")))
|
|
#file = file.parent.parent / "icons.tmp" / file.name
|
|
#file.parent.mkdir(parents=True, exist_ok=True)
|
|
tree.write(file)
|
|
target_size = file.stat().st_size
|
|
print(file.name, source_size, target_size)
|
|
|
|
|
|
def icons_optimizator():
|
|
for file in (Path(__file__).parent / "icons").glob("*.svg"):
|
|
icon_optimizator(file)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
icons_optimizator()
|