[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Corrected patch to convert-ly
From: |
Han-Wen Nienhuys |
Subject: |
Re: Corrected patch to convert-ly |
Date: |
Mon, 5 Aug 2002 00:39:21 +0200 |
address@hidden writes:
> This being a good example of something not very readable. Nor
> writeable, since:
>
> matchobj = re.match ('(breakAlignOrder *= )*\([^)]+\)(.*)',
> str)
>
> returns a matchobj of "None" when str comes from a file with some
> breakAlignOrder groups. And I have no idea how to figure out what's
> wrong.
I was trying to give a hint, not an exact solution. In my
recollection, convert-ly was line based, but now it is longer, the
above idea won't work completely. More hints
* re.match () always matches the beginning of the string, you want
re.search ().
* the re would be r"breakAlignOrder *= *#'\(([a-z_A-Z ]+)\)"
* the func would then be
def func(match):
props = m.group ()
# .. apply subst.
return "breakAlignOrder = #'( %s )" % props
str = re.sub (r"breakAlignOrder *= *#'\(([a-z_A-Z ]+)\)", func, str)
Please try again, I _really_, _really_ prefer code that is tight.
> Since convert-ly is in general a one-time thing, I would think
> correctness was a better figure of merit than compactness.
>
> I'm sure there's a more idiomatic to python way to write this, but if
> it were that easy, someone would have written it by now. I can't be
> the only person who needs it to convert their 4.x code to 5.x.
I think you're the only one that needs to convert breakAlignOrder. Not
many people use it.
--
Han-Wen Nienhuys | address@hidden | http://www.cs.uu.nl/~hanwen