def __init__(self, blocks): tname, args, section = blocks[0] args = parse_params( args, name=None, expr=None, nowrap=1, expand=None, leaves=None, header=None, footer=None, branches=None, branches_expr=None, sort=None, reverse=1, skip_unauthorized=1, id=None, single=1, url=None, # opened_decoration=None, # closed_decoration=None, # childless_decoration=None, assume_children=1, urlparam=None, prefix=None) has_key = args.has_key if has_key('') or has_key('name') or has_key('expr'): name, expr = name_param(args, 'tree', 1) if expr is not None: args['expr'] = expr elif has_key(''): args['name'] = name else: name = 'a tree tag' if has_key('branches_expr'): if has_key('branches'): raise ParseError, _tm('branches and and branches_expr given', 'tree') args['branches_expr'] = Eval(args['branches_expr']).eval elif not has_key('branches'): args['branches'] = 'tpValues' if not has_key('id'): args['id'] = 'tpId' if not has_key('url'): args['url'] = 'tpURL' if not has_key('childless_decoration'): args['childless_decoration'] = '' prefix = args.get('prefix') if prefix and not simple_name(prefix): raise ParseError, _tm('prefix is not a simple name', 'tree') self.__name__ = name self.section = section.blocks self.args = args
def __init__(self, blocks): tname, args, section = blocks[0] args = parse_params(args, name=None, expr=None, nowrap=1, expand=None, leaves=None, header=None, footer=None, branches=None, branches_expr=None, sort=None, reverse=1, skip_unauthorized=1, id=None, single=1, url=None, # opened_decoration=None, # closed_decoration=None, # childless_decoration=None, assume_children=1, urlparam=None, prefix=None) has_key = args.has_key if has_key('') or has_key('name') or has_key('expr'): name, expr = name_param(args,'tree',1) if expr is not None: args['expr'] = expr elif has_key(''): args['name'] = name else: name='a tree tag' if has_key('branches_expr'): if has_key('branches'): raise ParseError, _tm( 'branches and and branches_expr given', 'tree') args['branches_expr'] = Eval(args['branches_expr']).eval elif not has_key('branches'): args['branches']='tpValues' if not has_key('id'): args['id'] = 'tpId' if not has_key('url'): args['url'] = 'tpURL' if not has_key('childless_decoration'): args['childless_decoration']='' prefix = args.get('prefix') if prefix and not simple_name(prefix): raise ParseError, _tm( 'prefix is not a simple name', 'tree') self.__name__ = name self.section = section.blocks self.args = args
def __init__(self, blocks): tname, args, section = blocks[0] args = parse_params(args, name='', start='1', end='-1', size='10', orphan='0', overlap='1', mapping=1, no_push_item=1, skip_unauthorized=1, previous=1, next=1, expr='', sort='', reverse=1, sort_expr='', reverse_expr='', prefix='') self.args = args if 'sort' in args: self.sort = sort = args['sort'] if sort == 'sequence-item': self.sort = '' if 'sort_expr' in args: self.sort_expr = Eval(args['sort_expr']) if 'reverse_expr' in args: self.reverse_expr = Eval(args['reverse_expr']) if 'reverse' in args: self.reverse = args['reverse'] if 'no_push_item' in args: self.no_push_item = args['no_push_item'] if 'mapping' in args: self.mapping = args['mapping'] for n in 'start', 'size', 'end': if n in args: self.batch = 1 prefix = args.get('prefix') if prefix and not simple_name(prefix): raise ParseError('prefix is not a simple name', 'in') for n in ('orphan', 'overlap', 'previous', 'next'): if n in args and not self.batch: raise ParseError( """ The %s attribute was used but neither of the <code>start</code>, <code>end</code>, or <code>size</code> attributes were used. """ % n, 'in') if 'start' in args: v = args['start'] if isinstance(v, str): try: int(v) except Exception: self.start_name_re = re.compile( '&+' + ''.join(["[%s]" % c for c in v]) + '=[0-9]+&+') name, expr = name_param(args, 'in', 1) if expr is not None: expr = expr.eval self.__name__, self.expr = name, expr self.section = section.blocks if len(blocks) > 1: if len(blocks) != 2: raise ParseError('too many else blocks', 'in') tname, args, section = blocks[1] args = parse_params(args, name='') if args: ename = name_param(args) if ename != name: raise ParseError('name in else does not match in', 'in') self.elses = section.blocks
def __init__(self, blocks): tname, args, section = blocks[0] args=parse_params(args, name='', start='1',end='-1',size='10', orphan='0',overlap='1',mapping=1, no_push_item=1, skip_unauthorized=1, previous=1, next=1, expr='', sort='', reverse=1, sort_expr='', reverse_expr='', prefix='') self.args=args has_key=args.has_key if has_key('sort'): self.sort=sort=args['sort'] if sort=='sequence-item': self.sort='' if has_key('sort_expr'): self.sort_expr=Eval(args['sort_expr']) if has_key('reverse_expr'): self.reverse_expr=Eval(args['reverse_expr']) if has_key('reverse'): self.reverse=args['reverse'] if has_key('no_push_item'): self.no_push_item=args['no_push_item'] if has_key('mapping'): self.mapping=args['mapping'] for n in 'start', 'size', 'end': if has_key(n): self.batch=1 prefix = args.get('prefix') if prefix and not simple_name(prefix): raise ParseError, _tm( 'prefix is not a simple name', 'in') for n in 'orphan','overlap','previous','next': if has_key(n) and not self.batch: raise ParseError, ( """ The %s attribute was used but neither of the <code>start</code>, <code>end</code>, or <code>size</code> attributes were used. """ % n, 'in') if has_key('start'): v=args['start'] if type(v)==type(''): try: int(v) except: self.start_name_re=re.compile( '&+'+ ''.join(["[%s]" % c for c in v])+ '=[0-9]+&+') name,expr=name_param(args,'in',1) if expr is not None: expr=expr.eval self.__name__, self.expr = name, expr self.section=section.blocks if len(blocks) > 1: if len(blocks) != 2: raise ParseError, ( 'too many else blocks', 'in') tname, args, section = blocks[1] args=parse_params(args, name='') if args: ename=name_param(args) if ename != name: raise ParseError, ( 'name in else does not match in', 'in') self.elses=section.blocks