[Tutor] Weird error message

Mike Hansen mhansen at cso.atmel.com
Wed Nov 5 09:49:42 EST 2003


If you need a HTML template, you might look at htmltmpl at 
http://htmltmpl.sourceforge.net/. It the same templating syntax as 
Perl's HTML::Template. However, if you want to brew your own templating 
system as a learning exercise, then never mind. Although it might be 
worth looking at to see how it's implemented.

Mike

> Subject:
> [Tutor] Weird error message
> From:
> Conrad Koziol <arkamir at softhome.net>
> Date:
> Tue, 04 Nov 2003 15:43:36 -0800
> To:
> tutor at python.org
>
>
>Hey thanks for the tip Danny but it still doesnt work. This is the last
>bit of the code
>
>	posts = posttemplate
>	subsitutes = ['NAME', 'DATE', 'SUBJECT', 'POST']
>	list_of_posts = []
>	content1 = re.escape('<!--INSERT NAME HERE-->')
>	content2 = re.escape('<!--INSERT DATE HERE-->')
>	content3 = re.escape('<!--INSERT SUBJECT HERE-->')
>	content4 = re.escape('<!--INSERT POST HERE-->')
>	
>	for post in postsinfo:
>		for value in range(4):
>			posts = re.sub(content1, post[1], posts)
>			posts = re.sub(content2, post[2], posts)
>			posts = re.sub(content3, post[3], posts)
>			posts = re.sub(content4, post[4], posts)
>			
>			list_of_posts.append(posts)
>			posts = posttemplate
>
>I still get this error though:
>
>
>Traceback (most recent call last):
>  File "<stdin>", line 1, in ?
>  File "retrieveposts.py", line 44, in retrieve_posts
>    posts = re.sub(content1, post[1], posts)
>  File "/usr/lib/python2.2/sre.py", line 143, in sub
>    return _compile(pattern, 0).sub(repl, string, count)
>  File "/usr/lib/python2.2/sre.py", line 257, in _subx
>    template = _compile_repl(template, pattern)
>  File "/usr/lib/python2.2/sre.py", line 242, in _compile_repl
>    p = sre_parse.parse_template(repl, pattern)
>  File "/usr/lib/python2.2/sre_parse.py", line 644, in parse_template
>    s = Tokenizer(source)
>  File "/usr/lib/python2.2/sre_parse.py", line 186, in __init__
>    self.__next()
>  File "/usr/lib/python2.2/sre_parse.py", line 188, in __next
>    if self.index >= len(self.string):
>TypeError: len() of unsized object
>
>This the the templatefile which posts equals:
>
><div class="postholder">
>	<div class="name">
>					<br>
>					<!--INSERT NAME HERE-->
>					<br>
>					<p>Posted on: <!--INSERT DATE HERE-->  </p>
>	</div>
>	<div class="subject">
>	
>		<!--INSERT SUBJECT HERE-->	 
>	</div>
>	<div class="post"> 
>			<br>	
>			<br>
>			
>			<!--INSERT POST HERE-->
>			<br>
>			<br>
>			<br>
>			<br>
>			<br>
>			<br>	
>	</div>
></div>
>
>When I use this code I also get the same error, Except this code is a
>lot prettier so I'd prefer to use this :). Another problem with this
>code is I cant get it to replace the %s in expression with the data. I
>think 
>it has to do with it not finding the regular expression. Any help is
>greatly appreciated.
>
>	posts = posttemplate
>	subsitutes = ['NAME', 'DATE', 'SUBJECT', 'POST']
>	list_of_posts = []
>	expression = '<!--INSERT %s HERE-->' 
>		
>	for post in postsinfo:
>		for value in range(4):
>			
>			posts = re.sub((expression, post[value], posts) % subsitutes[value])
>			
>			list_of_posts.append(posts)
>			posts = posttemplate
>
>Thanks a lot,
>
>	Conrad Koziol
>
>  
>




More information about the Tutor mailing list