[Python-Dev] New regex module for 3.2?
MRAB
python at mrabarnett.plus.com
Fri Jul 9 02:35:14 CEST 2010
Nick Coghlan wrote:
> On Fri, Jul 9, 2010 at 7:54 AM, MRAB <python at mrabarnett.plus.com> wrote:
>> You should be able to replace:
>>
>> import re
>>
>> with:
>>
>> import regex as re
>>
>> and still have everything work the same, ie it's backwards compatible
>> with re.
>
> That's not what I'm asking. I'm asking what happens if you take an
> existing Python installation's re module, move it aside, and drop
> regex in its place as "re.py".
>
> Doing that and then running Python's own test suite as well as the
> test suites of major Python applications and frameworks like Twisted,
> Zope and Django would provide solid evidence that the new version
> really *is* backwards compatible, rather than that it is *meant* to be
> backwards compatible.
>
I had to recompile the .pyd to change its internal name from "regex" to
"re", but apart from that it passed Python's own test suite except for
where I expected it to fail:
1. Some of the inline flags are scoped; for example, putting "(?i)" at
the end of a regex will now have no effect because it's no longer a
global, all-or-nothing, flag.
2. The .sub method will treat unmatched groups in an expansion as empty
strings. The re module raises an exception in such cases, which means
that users currently need a workaround.
More information about the Python-Dev
mailing list