/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/lazy_regex.py

  • Committer: Jelmer Vernooij
  • Date: 2010-12-24 23:15:44 UTC
  • mto: This revision was merged to the branch mainline in revision 5581.
  • Revision ID: jelmer@samba.org-20101224231544-wlh932a07xv52k1y
Convert bzrlib.timestamp.unpack_highres_date doc test to a unit test.

This also fixes some issues with the number of decimals that get returned when formatting
a float, which differs between Python versions.

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.