Would be nice if it still handled http://crbug.com/ and crbug.com/ since
people probably will continue using them for a while.
Also split(', ') ONLY works for when you do 'blah, blah'.  Not 'blah,blah'.
 Not 'blah blah'.  Or any other crazy things people might do.

I didn't know that you could give re.sub a callback to format the replace
text though.  That's cool and could probably make my code simpler.

J


On Thu, Sep 10, 2009 at 12:27 PM, Mohamed Mansour <[email protected]> wrote:

> How about just this:
> def repl(m):
>     issues = m.group(1).split(', ')
>     return ", ".join("<a href='
> http://code.google.com/p/chromium/issues/detail?id=%s'>%s</a>" % (s, s)
> for s in issues)
>
> if __name__ == '__main__':
>     description = "\nBUG=2, 3"
>     description = re.sub("\nBUG=(\d+[, \d+]*)", repl, description)
>     print description
>
>
> Works great!
>
> - Mohamed Mansour
>
>
>
> On Wed, Sep 9, 2009 at 11:25 PM, Jeremy Orlow <[email protected]> wrote:
>
>> I don't have a rietveld dev environment set up, so I wrote a quick script
>> to test the general algorithm.  It's not as pythony as I'd like, but it
>> seems to be fairly robust:
>> #!/usr/bin/python
>> import re
>>
>> description = """\
>> Blah blah blah.
>> Blaaahhhh
>>
>> TEST=none
>> BUG=123,456, 798,0
>> BUG=888
>> BUG=none
>>  BUG = none, 2349,2,asdf
>> BUG = http://crbug.com/123
>> BUG = crbug.com/234 crbug/82
>> """
>>
>> LINK = "<a href='http://code.google.com/p/chromium/issues/detail?id=%s
>> '>%s</a>"
>> def rewrite_bug_numbers(string):
>>   if ',' in string:
>>     right, left = string.split(',', 1)
>>     return rewrite_bug_numbers(right) + ',' + rewrite_bug_numbers(left)
>>   if ' ' in string:
>>     right, left = string.split(' ', 1)
>>     return rewrite_bug_numbers(right) + ' ' + rewrite_bug_numbers(left)
>>
>>   # Base cases:
>>   if string.isdigit():
>>     return LINK % (string, string)
>>   match = re.search(r'^(http://|)crbug.com/(\d+)', string)
>>   if match:
>>     return LINK % (match.group(2), string)
>>   return string
>>
>> output = []
>> for line in description.splitlines():
>>   match = re.search(r'^(\s*BUG\s*=)(.*)$', line)
>>   if match:
>>     line = match.group(1) + rewrite_bug_numbers(match.group(2))
>>   output.append(line)
>> print "<br>\n".join(output)
>>
>>
>>
>> Prints out
>>
>> Blah blah blah.<br>
>> Blaaahhhh<br>
>> <br>
>> TEST=none<br>
>> BUG=<a 
>> href='http://code.google.com/p/chromium/issues/detail?id=123'>123</a>,<a
>> href='http://code.google.com/p/chromium/issues/detail?id=456'>456</a>, <a
>> href='http://code.google.com/p/chromium/issues/detail?id=798'>798</a>,<a
>> href='http://code.google.com/p/chromium/issues/detail?id=0'>0</a><br>
>> BUG=<a href='http://code.google.com/p/chromium/issues/detail?id=888
>> '>888</a><br>
>> BUG=none<br>
>>   BUG = none, <a href='
>> http://code.google.com/p/chromium/issues/detail?id=2349'>2349</a>,<a
>> href='http://code.google.com/p/chromium/issues/detail?id=2
>> '>2</a>,asdf<br>
>> BUG = <a href='http://code.google.com/p/chromium/issues/detail?id=123'>
>> http://crbug.com/123</a><br>
>> BUG = <a href='http://code.google.com/p/chromium/issues/detail?id=234'>
>> crbug.com/234</a> crbug/82
>>
>>
>> If we weren't concerned about preserving formatting, you could do it with
>> replace and split:
>>
>> line = "1234, 23 , 2"
>> bugs = line.replace(",", " ").split()
>>
>>
>> But it's not toooo much more work to keep in all the formatting.
>>
>>
>> On Thu, Sep 10, 2009 at 11:01 AM, John Abd-El-Malek <[email protected]>wrote:
>>
>>> Thanks, glad you enjoy it :)
>>> This was a side distraction to fix the annoying issue of having to
>>> manually copying and pasting the bug ids.  It severely tested my regex-fu
>>> and since the multiple bugs case should be rare, I'll hide behind the excuse
>>> that if they're duplicates they should be marked as such and only end up
>>> with one, and if they're different bugs there should be separate changelists
>>> ;)  The rietveld change is at
>>> http://code.google.com/p/rietveld/source/detail?r=455, if anyone sends
>>> me a patch to make it work with multiple bug ids, I'd be happy to push it.
>>>
>>>
>>> On Wed, Sep 9, 2009 at 6:15 PM, Mohamed Mansour <[email protected]>wrote:
>>>
>>>> Very nice, no longer I have to put crbug.com/#.  Whoever did that
>>>> autolink, can you support multiple bugs as well? The format bugdroid uses 
>>>> is
>>>> BUG=1, 2, 3
>>>> - Mohamed Mansour
>>>>
>>>>
>>>>
>>>> On Wed, Sep 9, 2009 at 8:58 PM, Paweł Hajdan Jr. <
>>>> [email protected]> wrote:
>>>>
>>>>> I just noticed that BUG=1234 lines are autolinked to the correct bug
>>>>> when viewed in Rietveld (codereview.chromium.org). This is very
>>>>> useful, thanks!
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>> >>>
>>>
>>
>

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected] 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to