~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/lazy_regex.py

  • Committer: Martin Pool
  • Date: 2010-07-16 15:20:17 UTC
  • mfrom: (5346.3.1 pathnotchild)
  • mto: This revision was merged to the branch mainline in revision 5351.
  • Revision ID: mbp@canonical.com-20100716152017-t4c73h9y1uoih7fb
PathNotChild should not give a traceback.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
import re
24
24
 
 
25
from bzrlib import errors
 
26
 
25
27
 
26
28
class LazyRegex(object):
27
29
    """A proxy around a real regex, which won't be compiled until accessed."""
58
60
 
59
61
    def _real_re_compile(self, *args, **kwargs):
60
62
        """Thunk over to the original re.compile"""
61
 
        return _real_re_compile(*args, **kwargs)
 
63
        try:
 
64
            return _real_re_compile(*args, **kwargs)
 
65
        except re.error, e:
 
66
            # raise InvalidPattern instead of re.error as this gives a
 
67
            # cleaner message to the user.
 
68
            raise errors.InvalidPattern('"' + args[0] + '" ' +str(e))
62
69
 
63
70
    def __getattr__(self, attr):
64
71
        """Return a member from the proxied regex object.