diff options
Diffstat (limited to 'meta/lib/oe')
| -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 ea31cf4219..ea53df9bf2 100644 --- a/meta/lib/oe/types.py +++ b/meta/lib/oe/types.py | |||
| @@ -40,6 +40,31 @@ def choice(value, choices): | |||
| 40 | (value, choices)) | 40 | (value, choices)) |
| 41 | return value | 41 | return value |
| 42 | 42 | ||
| 43 | class NoMatch(object): | ||
| 44 | """Stub python regex pattern object which never matches anything""" | ||
| 45 | def findall(self, string, flags=0): | ||
| 46 | return None | ||
| 47 | |||
| 48 | def finditer(self, string, flags=0): | ||
| 49 | return None | ||
| 50 | |||
| 51 | def match(self, flags=0): | ||
| 52 | return None | ||
| 53 | |||
| 54 | def search(self, string, flags=0): | ||
| 55 | return None | ||
| 56 | |||
| 57 | def split(self, string, maxsplit=0): | ||
| 58 | return None | ||
| 59 | |||
| 60 | def sub(pattern, repl, string, count=0): | ||
| 61 | return None | ||
| 62 | |||
| 63 | def subn(pattern, repl, string, count=0): | ||
| 64 | return None | ||
| 65 | |||
| 66 | NoMatch = NoMatch() | ||
| 67 | |||
| 43 | def regex(value, regexflags=None): | 68 | def regex(value, regexflags=None): |
| 44 | """OpenEmbedded 'regex' type | 69 | """OpenEmbedded 'regex' type |
| 45 | 70 | ||
| @@ -59,6 +84,12 @@ def regex(value, regexflags=None): | |||
| 59 | except AttributeError: | 84 | except AttributeError: |
| 60 | raise ValueError("Invalid regex flag '%s'" % flag) | 85 | raise ValueError("Invalid regex flag '%s'" % flag) |
| 61 | 86 | ||
| 87 | if not value: | ||
| 88 | # Let's ensure that the default behavior for an undefined or empty | ||
| 89 | # variable is to match nothing. If the user explicitly wants to match | ||
| 90 | # anything, they can match '.*' instead. | ||
| 91 | return NoMatch | ||
| 92 | |||
| 62 | try: | 93 | try: |
| 63 | return re.compile(value, flagval) | 94 | return re.compile(value, flagval) |
| 64 | except re.error, exc: | 95 | except re.error, exc: |
