Index: grit/lazy_re.py |
=================================================================== |
--- grit/lazy_re.py (revision 202) |
+++ grit/lazy_re.py (working copy) |
@@ -1,45 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-'''In GRIT, we used to compile a lot of regular expressions at parse |
-time. Since many of them never get used, we use lazy_re to compile |
-them on demand the first time they are used, thus speeding up startup |
-time in some cases. |
-''' |
- |
-import re |
- |
- |
-class LazyRegexObject(object): |
- '''This object creates a RegexObject with the arguments passed in |
- its constructor, the first time any attribute except the several on |
- the class itself is accessed. This accomplishes lazy compilation of |
- the regular expression while maintaining a nearly-identical |
- interface. |
- ''' |
- |
- def __init__(self, *args, **kwargs): |
- self._stash_args = args |
- self._stash_kwargs = kwargs |
- self._lazy_re = None |
- |
- def _LazyInit(self): |
- if not self._lazy_re: |
- self._lazy_re = re.compile(*self._stash_args, **self._stash_kwargs) |
- |
- def __getattribute__(self, name): |
- if name in ('_LazyInit', '_lazy_re', '_stash_args', '_stash_kwargs'): |
- return object.__getattribute__(self, name) |
- else: |
- self._LazyInit() |
- return getattr(self._lazy_re, name) |
- |
- |
-def compile(*args, **kwargs): |
- '''Creates a LazyRegexObject that, when invoked on, will compile a |
- re.RegexObject (via re.compile) with the same arguments passed to |
- this function, and delegate almost all of its methods to it. |
- ''' |
- return LazyRegexObject(*args, **kwargs) |