~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to profile_imports.py

  • Committer: Martin Pool
  • Date: 2009-11-14 11:50:10 UTC
  • mto: This revision was merged to the branch mainline in revision 5012.
  • Revision ID: mbp@sourcefrog.net-20091114115010-zf7ioqwdsipfew0s
profile_imports avoids deprecation warning by using either re or sre depending on python version

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006 by Canonical Ltd
 
1
# Copyright (C) 2006, 2009 by Canonical Ltd
2
2
# Written by John Arbash Meinel <john@arbash-meinel.com>
3
3
#
4
4
# This program is free software; you can redistribute it and/or modify
17
17
 
18
18
"""A custom importer and regex compiler which logs time spent."""
19
19
 
20
 
import sre
21
20
import sys
22
21
import time
23
22
 
24
23
 
 
24
if sys.version_info < (2, 5, 0):
 
25
    import sre
 
26
    re = sre
 
27
else:
 
28
    import re
 
29
 
 
30
 
25
31
_parent_stack = []
26
32
_total_stack = {}
27
33
_info = {}
146
152
    return mod
147
153
 
148
154
 
149
 
_real_compile = sre._compile
 
155
_real_compile = re._compile
 
156
 
150
157
 
151
158
def timed_compile(*args, **kwargs):
152
159
    """Log how long it takes to compile a regex"""
178
185
def install():
179
186
    """Install the hooks for measuring import and regex compile time."""
180
187
    __builtins__['__import__'] = timed_import
181
 
    sre._compile = timed_compile
 
188
    re._compile = timed_compile
182
189
 
183
190
 
184
191
def uninstall():
185
192
    """Remove the import and regex compile timing hooks."""
186
193
    __builtins__['__import__'] = _real_import
187
 
    sre._compile = _real_compile
 
194
    re._compile = _real_compile
188
195