Issue 1234985: using some_re.sub() often imports sre.doc (original) (raw)

Why is doc imported from the builtin sre module when a regular expression is substituted replacing a group?

$ python Python 2.4.1 (#2, Mar 30 2005, 21:51:10) [GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2)] on linux2 Type "help", "copyright", "credits" or "license" for more information.

def import_hook(name, globals={}, locals={}, fromlist=[]): ... print name, fromlist ... return original_import(name, globals, locals, fromlist) ... import builtin original_import = builtin.import builtin.import = import_hook

import re re None sre ('',) sys None sre_compile None _sre None sys None sre_constants ('',) sre_parse None sys None sre_constants ('*',) sre_parse None copy_reg None sre ('all',)

re1 = re.compile('foo...bar') sre_parse None

re1.sub('x', 'y') 'y' re1.sub('x', 'fooXXXbar') 'x'

re2 = re.compile('foo(...)bar') sre_parse None re2.sub('x', 'y') 'y' re2.sub('\1', 'fooXXXbar') sre ['doc'] 'XXX'