def test_units(self): """ Capture absence of units. """ layout = Layout() layout.units = None layout.layers.append(Layer()) design = Design() design.layout = layout writer = Writer() writer.write(design)
def test_images(self): """ Capture images with no data. """ layer = Layer() layer.images.append(Image()) layout = Layout() layout.units = 'mm' layout.layers.append(layer) design = Design() design.layout = layout writer = Writer() writer.write(design)
def parse(self, infile='.'): """ Parse tokens from gerber files into a design. """ zip_ = infile.endswith('zip') openarchive = zip_ and ZipFile or TarFile.open archive = batch_member = None try: # define multiple layers from folder if LAYERS_CFG in infile: archive = None cfg_name = infile cfg = open(cfg_name, 'r') # define multiple layers from archive else: archive = openarchive(infile) batch = zip_ and archive.namelist or archive.getnames batch_member = zip_ and archive.open or archive.extractfile cfg_name = [n for n in batch() if LAYERS_CFG in n][0] cfg = batch_member(cfg_name) # define single layer from single gerber file except ReadError: name, ext = path.split(infile)[1].rsplit('.', 1) layer_defs = [LayerDef(ext.lower() == 'ger' and name or ext, 'unknown', infile)] self._gen_layers(layer_defs, None, None) # tidy up batch specs else: layer_defs = [LayerDef(rec[0], rec[1], path.join(path.split(cfg_name)[0], rec[2])) for rec in csv.reader(cfg, skipinitialspace=True)] cfg.close() self._gen_layers(layer_defs, archive, batch_member) # tidy up archive finally: if archive: archive.close() # compile design if DEBUG: self._debug_stdout() self.layout.units = (self.params['MO'] == 'IN' and 'inch' or 'mm') design = Design() design.layout = self.layout return design
def test_layers(self): """ Capture absence of layers. """ design = Design() design.layout = Layout() writer = Writer() writer.write(design)