[Bf-python] svg2obj script.

Martin Poirier theeth at yahoo.com
Wed Mar 28 15:23:51 CEST 2007


--- Campbell Barton <cbarton at metavr.com> wrote:

> Hi JMS, can you resolve this?
> 
> 
>   File
> "/root/.blender/scripts/bpymodules/svg2obj.py", line
> 1086, in 
> control_CONTAINT
>      while txt.count(')',t0)>0:
> TypeError: count() takes exactly one argument (2
> given)
> 
> 
> 
> I went through and hada look and found some other
> areas for improvement.
> 
> 
> 		while DATA.find(d,b1,b2)!=-1 :
> 			tagplace.append(DATA.find(d,b1,b2))
> 			b1=DATA.find(d,b1,b2)+1
> 
> # 3 Lookups, not optimal
> 		
> 		while True:
> 			i = DATA.find(d,b1,b2)
> 			if i==-1: break
> 			b1=i+1

You're missing the append call after the break line.

But otherwise, it's obvious that not doing the double
lookup would be faster.

> Also, your using find in a way thats not very
> readable.
> 
> if pathname.find(os.sep)!=-1:
> 
> is better
> 
> if os.sep in pathname:

It's more readable, yes, but actual speed differences
would be barely noticeable (both __contains__, index
and find use the same code in CPython).

> if ndata.find('-')!=-1 and ndata[ndata.find('-')-1]
> not in [' ', ',', 'e']:
> 
> can be
> 
> if '-' in ndata and ndata[ndata.find('-')-1] not in
> ' ,e':

This is still doing a double lookup of '-' on the
string. Best to split it in two.

i = ndata.find('-')
if i != -1 and ndata[i-1] in ' ,e':

Martin


 
____________________________________________________________________________________
Bored stiff? Loosen up... 
Download and play hundreds of games for free on Yahoo! Games.
http://games.yahoo.com/games/front



More information about the Bf-python mailing list