kopia lustrzana https://github.com/jaseg/gerbolyze
27 wiersze
971 B
Python
27 wiersze
971 B
Python
#!/usr/bin/env python3
|
|
|
|
import multiprocessing as mp
|
|
import subprocess
|
|
import pathlib
|
|
|
|
import click
|
|
from tqdm import tqdm
|
|
|
|
def process_file(indir, outdir, inpath):
|
|
outpath = outdir / inpath.relative_to(indir).with_suffix('.png')
|
|
outpath.parent.mkdir(parents=True, exist_ok=True)
|
|
subprocess.run(['resvg', '--export-id', 'g-top-copper', '--width', '1000', inpath, outpath],
|
|
check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
|
|
|
@click.command()
|
|
@click.argument('indir', type=click.Path(exists=True, file_okay=False, dir_okay=True, path_type=pathlib.Path))
|
|
def export(indir):
|
|
jobs = list(indir.glob('svg/**/*.svg'))
|
|
with tqdm(total = len(jobs)) as tq:
|
|
with mp.Pool() as pool:
|
|
results = [ pool.apply_async(process_file, (indir / 'svg', indir / 'png', path), callback=lambda _res: tq.update(1)) for path in jobs ]
|
|
results = [ res.get() for res in results ]
|
|
|
|
if __name__ == '__main__':
|
|
export()
|