diff options
-rw-r--r-- | meta/lib/oe/types.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/meta/lib/oe/types.py b/meta/lib/oe/types.py index ea31cf421..ea53df9bf 100644 --- a/meta/lib/oe/types.py +++ b/meta/lib/oe/types.py @@ -40,6 +40,31 @@ def choice(value, choices): (value, choices)) return value +class NoMatch(object): + """Stub python regex pattern object which never matches anything""" + def findall(self, string, flags=0): + return None + + def finditer(self, string, flags=0): + return None + + def match(self, flags=0): + return None + + def search(self, string, flags=0): + return None + + def split(self, string, maxsplit=0): + return None + + def sub(pattern, repl, string, count=0): + return None + + def subn(pattern, repl, string, count=0): + return None + +NoMatch = NoMatch() + def regex(value, regexflags=None): """OpenEmbedded 'regex' type @@ -59,6 +84,12 @@ def regex(value, regexflags=None): except AttributeError: raise ValueError("Invalid regex flag '%s'" % flag) + if not value: + # Let's ensure that the default behavior for an undefined or empty + # variable is to match nothing. If the user explicitly wants to match + # anything, they can match '.*' instead. + return NoMatch + try: return re.compile(value, flagval) except re.error, exc: |