[KiRi] Implemented the "all" layers case
This commit is contained in:
parent
1f62308b8b
commit
2a8c699908
|
|
@ -20,6 +20,7 @@ Dependencies:
|
||||||
version: 2.2.0
|
version: 2.2.0
|
||||||
"""
|
"""
|
||||||
import datetime
|
import datetime
|
||||||
|
import glob
|
||||||
import pwd
|
import pwd
|
||||||
import os
|
import os
|
||||||
from shutil import copy2, rmtree
|
from shutil import copy2, rmtree
|
||||||
|
|
@ -113,16 +114,18 @@ class KiRiOptions(VariantOptions):
|
||||||
|
|
||||||
def create_layers_incl(self, layers):
|
def create_layers_incl(self, layers):
|
||||||
self.incl_file = None
|
self.incl_file = None
|
||||||
if not isinstance(layers, type):
|
if isinstance(layers, type):
|
||||||
layers = Layer.solve(layers)
|
self._solved_layers = None
|
||||||
# TODO no list (ALL)
|
return False
|
||||||
self._solved_layers = layers
|
layers = Layer.solve(layers)
|
||||||
logger.debug('Including layers:')
|
self._solved_layers = layers
|
||||||
with NamedTemporaryFile(mode='w', suffix='.lst', delete=False) as f:
|
logger.debug('Including layers:')
|
||||||
self.incl_file = f.name
|
with NamedTemporaryFile(mode='w', suffix='.lst', delete=False) as f:
|
||||||
for la in layers:
|
self.incl_file = f.name
|
||||||
logger.debug('- {} ({})'.format(la.layer, la.id))
|
for la in layers:
|
||||||
f.write(str(la.id)+'\n')
|
logger.debug('- {} ({})'.format(la.layer, la.id))
|
||||||
|
f.write(str(la.id)+'\n')
|
||||||
|
return True
|
||||||
|
|
||||||
def do_cache(self, name, tmp_wd, hash):
|
def do_cache(self, name, tmp_wd, hash):
|
||||||
name_copy = self.run_git(['ls-files', '--full-name', name])
|
name_copy = self.run_git(['ls-files', '--full-name', name])
|
||||||
|
|
@ -135,15 +138,23 @@ class KiRiOptions(VariantOptions):
|
||||||
subdir = os.path.join(hash[:7], '_KIRI_')
|
subdir = os.path.join(hash[:7], '_KIRI_')
|
||||||
subdir_layers = os.path.join(self.cache_dir, subdir, 'pcb', 'layer-')
|
subdir_layers = os.path.join(self.cache_dir, subdir, 'pcb', 'layer-')
|
||||||
with open(os.path.join(self.cache_dir, subdir, 'pcb_layers'), 'wt') as f:
|
with open(os.path.join(self.cache_dir, subdir, 'pcb_layers'), 'wt') as f:
|
||||||
for la in self._solved_layers:
|
if self._solved_layers:
|
||||||
if os.path.isfile(subdir_layers+('%02d' % la.id)+'.svg'):
|
for la in self._solved_layers:
|
||||||
f.write(str(la.id)+'|'+la.layer+'\n')
|
if os.path.isfile(subdir_layers+('%02d' % la.id)+'.svg'):
|
||||||
|
f.write(str(la.id)+'|'+la.layer+'\n')
|
||||||
|
else:
|
||||||
|
discard = len(subdir_layers)
|
||||||
|
for la in sorted(glob.glob(subdir_layers+'??.svg')):
|
||||||
|
id = int(la[discard:discard+2])
|
||||||
|
f.write(str(id)+'|'+GS.board.GetLayerName(id)+'\n')
|
||||||
|
|
||||||
def solve_layer_colors(self):
|
def solve_layer_colors(self):
|
||||||
# Color theme
|
# Color theme
|
||||||
self._color_theme = load_color_theme(self.color_theme)
|
self._color_theme = load_color_theme(self.color_theme)
|
||||||
if self._color_theme is None:
|
if self._color_theme is None:
|
||||||
raise KiPlotConfigurationError("Unable to load `{}` color theme".format(self.color_theme))
|
raise KiPlotConfigurationError("Unable to load `{}` color theme".format(self.color_theme))
|
||||||
|
if self._solved_layers is None:
|
||||||
|
return
|
||||||
# Assign a color if none was defined
|
# Assign a color if none was defined
|
||||||
layer_id2color = self._color_theme.layer_id2color
|
layer_id2color = self._color_theme.layer_id2color
|
||||||
for la in self._solved_layers:
|
for la in self._solved_layers:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue