[Python-ideas] re.compile_lazy - on first use compiled regexes

Ezio Melotti ezio.melotti at gmail.com
Sat Mar 23 13:04:34 CET 2013


Hi,

On Sat, Mar 23, 2013 at 12:42 AM, Gregory P. Smith <greg at krypto.org> wrote:
>
> On Fri, Mar 22, 2013 at 3:31 PM, Ronny Pfannschmidt
> <Ronny.Pfannschmidt at gmx.de> wrote:
>>
>> Hi,
>>
>> while reviewing urllib.parse i noticed a pretty ugly pattern
>>
>> many functions had an attached global and in their own code they would
>> compile an regex on first use and assign it to that global
>>
>> its clear that compiling a regex is expensive, so having them be compiled
>> later at first use would be of some benefit
>
>
> It isn't expensive to do,

Sometimes it is, see e.g. http://bugs.python.org/issue11454.

Best Regards,
Ezio Melotti

> it is expensive to do repeatedly for no reason.
> Thus the use of compiled regexes.  Code like this would be better off
> refactored to reference a precompiled global rather than conditionally check
> if it needs compiling every time it is called.
>
> -gps
>
>>
>>
>> but instead of all that reptetive code there should be an alternative to
>> re.compile that waits with compilation for the first use
>>
>> -- Ronny



More information about the Python-ideas mailing list