def test_convert_label(self): """ Tests converting Lable objects to label commands. """ label = shape.Label(0, 0, 'test label', align='center', rotation=0.0) command = self.geda_writer._convert_label(label) self.assertEquals(command, ['T 0 0 9 10 1 1 0 3 1', 'test label']) label = shape.Label(0, 0, 'test label', align='left', rotation=0.5) command = self.geda_writer._convert_label(label) self.assertEquals(command, ['T 0 0 9 10 1 1 270 0 1', 'test label'])
def _parse_P(self, stream, params, pinnumber=0): """ Creates a Pin object from the parameters in *param* and text attributes provided in the following environment. The environment is enclosed in ``{}`` and is required. If no attributes can be extracted form *stream* an GEDAError is raised. The *pin_id* is retrieved from the 'pinnumber' attribute and all other attributes are ignored. The conneted end of the pin is taken from the 'whichend' parameter as defined in the gEDA documentation. Returns a Pin object. """ ## pin requires an attribute enviroment, so parse it first attributes = self._parse_environment(stream) if attributes is None: log.warn('mandatory pin attributes missing') attributes = { '_pinnumber': pinnumber, } if '_pinnumber' not in attributes: attributes['_pinnumber'] = pinnumber log.warn("mandatory attribute '_pinnumber' not assigned to pin") whichend = params['whichend'] pin_x1, pin_x2 = params['x1'], params['x2'] if self._is_mirrored_command(params): pin_x1 = 0 - pin_x1 pin_x2 = 0 - pin_x2 ## determine wich end of the pin is the connected end ## 0: first point is connector ## 1: second point is connector if whichend == 0: connect_end = self.conv_coords(pin_x1, params['y1']) null_end = self.conv_coords(pin_x2, params['y2']) else: null_end = self.conv_coords(pin_x1, params['y1']) connect_end = self.conv_coords(pin_x2, params['y2']) label = None if '_pinlabel' in attributes: label = shape.Label(connect_end[0], connect_end[1], attributes.get('_pinlabel'), 'left', 0.0) pin = components.Pin( attributes['_pinnumber'], #pin number null_end, connect_end, label=label) ## store style parameters in shape's style dict self._save_parameters_to_object(pin, params) return pin
def as_label(self): """ Generate label from text object using parsed parameters. Returns ``Label`` instance. """ text_x = self.params.get('x', 0) if self.params.get('mirrored', False): text_x = 0 - text_x label = shape.Label( text_x, self.params.get('y', 0), self.content, 'left', self.params.get('angle', 0), ) return self.store_styles_in_label(label)
def test_create_pin(self): """ Tests creating pin commands. """ pin = components.Pin('E', (0, 0), (0, 30)) command = self.geda_writer._create_pin(1, pin) self.assertEquals(command, [ 'P 0 300 0 0 1 0 0', '{', 'T 100 400 5 10 0 1 0 0 1', 'pinseq=1', 'T 100 500 5 10 0 1 0 0 1', 'pinnumber=E', '}' ]) label = shape.Label(10, 0, 'p1', align='left', rotation=0.5) pin = components.Pin('E', (0, 0), (0, 30), label=label) command = self.geda_writer._create_pin(1, pin) self.assertEquals(command, [ 'P 0 300 0 0 1 0 0', '{', 'T 100 0 5 10 1 1 270 0 1', 'pinlabel=p1', 'T 100 400 5 10 0 1 0 0 1', 'pinseq=1', 'T 100 500 5 10 0 1 0 0 1', 'pinnumber=E', '}' ])