def create_region(self, name, select, kind='cell', parent=None, check_parents=True, functions=None, add_to_regions=True, allow_empty=False): """ Region factory constructor. Append the new region to self.regions list. """ if check_parents: parents = get_parents(select) for p in parents: if p not in [region.name for region in self.regions]: msg = 'parent region %s of %s not found!' % (p, name) raise ValueError(msg) stack = self._region_stack try: self._bnf.parseString(select) except ParseException: print 'parsing failed:', select raise region = visit_stack(stack, region_op, region_leaf(self, self.regions, select, functions)) region.name = name region.definition = select region.set_kind(kind) region.finalize(allow_empty=allow_empty) region.parent = parent region.update_shape() if add_to_regions: self.regions.append(region) return region
def create_region(self, name, select, kind='cell', parent=None, check_parents=True, extra_options=None, functions=None, add_to_regions=True, allow_empty=False): """ Region factory constructor. Append the new region to self.regions list. """ if check_parents: parents = get_parents(select) for p in parents: if p not in [region.name for region in self.regions]: msg = 'parent region %s of %s not found!' % (p, name) raise ValueError(msg) stack = self._region_stack try: self._bnf.parseString(select) except ParseException: print('parsing failed:', select) raise region = visit_stack(stack, region_op, region_leaf(self, self.regions, select, functions)) region.name = name region.definition = select region.set_kind(kind) region.finalize(allow_empty=allow_empty) region.parent = parent region.extra_options = extra_options region.update_shape() if add_to_regions: self.regions.append(region) return region