| Index: tools/misc_utils.py
|
| diff --git a/tools/misc_utils.py b/tools/misc_utils.py
|
| index c3e09da40f79910548c4645fd6d59966d0c0687e..89a2f924b13b16d539c182d8e54cd2abf3724413 100644
|
| --- a/tools/misc_utils.py
|
| +++ b/tools/misc_utils.py
|
| @@ -11,48 +11,49 @@ import re
|
|
|
|
|
| class ReSearch(object):
|
| - """A collection of static methods for regexing things."""
|
| -
|
| - @staticmethod
|
| - def search_within_stream(input_stream, pattern, default=None):
|
| - """Search for regular expression in a file-like object.
|
| -
|
| - Opens a file for reading and searches line by line for a match to
|
| - the regex and returns the parenthesized group named return for the
|
| - first match. Does not search across newlines.
|
| -
|
| - For example:
|
| - pattern = '^root(:[^:]*){4}:(?P<return>[^:]*)'
|
| - with open('/etc/passwd', 'r') as stream:
|
| - return search_within_file(stream, pattern)
|
| - should return root's home directory (/root on my system).
|
| -
|
| - Args:
|
| - input_stream: file-like object to be read
|
| - pattern: (string) to be passed to re.compile
|
| - default: what to return if no match
|
| -
|
| - Returns:
|
| - A string or whatever default is
|
| - """
|
| - pattern_object = re.compile(pattern)
|
| - for line in input_stream:
|
| - match = pattern_object.search(line)
|
| - if match:
|
| - return match.group('return')
|
| - return default
|
| -
|
| - @staticmethod
|
| - def search_within_string(input_string, pattern, default=None):
|
| - """Search for regular expression in a string.
|
| -
|
| - Args:
|
| - input_string: (string) to be searched
|
| - pattern: (string) to be passed to re.compile
|
| - default: what to return if no match
|
| -
|
| - Returns:
|
| - A string or whatever default is
|
| - """
|
| - match = re.search(pattern, input_string)
|
| - return match.group('return') if match else default
|
| + """A collection of static methods for regexing things."""
|
| +
|
| + @staticmethod
|
| + def search_within_stream(input_stream, pattern, default=None):
|
| + """Search for regular expression in a file-like object.
|
| +
|
| + Opens a file for reading and searches line by line for a match to
|
| + the regex and returns the parenthesized group named return for the
|
| + first match. Does not search across newlines.
|
| +
|
| + For example:
|
| + pattern = '^root(:[^:]*){4}:(?P<return>[^:]*)'
|
| + with open('/etc/passwd', 'r') as stream:
|
| + return search_within_file(stream, pattern)
|
| + should return root's home directory (/root on my system).
|
| +
|
| + Args:
|
| + input_stream: file-like object to be read
|
| + pattern: (string) to be passed to re.compile
|
| + default: what to return if no match
|
| +
|
| + Returns:
|
| + A string or whatever default is
|
| + """
|
| + pattern_object = re.compile(pattern)
|
| + for line in input_stream:
|
| + match = pattern_object.search(line)
|
| + if match:
|
| + return match.group('return')
|
| + return default
|
| +
|
| + @staticmethod
|
| + def search_within_string(input_string, pattern, default=None):
|
| + """Search for regular expression in a string.
|
| +
|
| + Args:
|
| + input_string: (string) to be searched
|
| + pattern: (string) to be passed to re.compile
|
| + default: what to return if no match
|
| +
|
| + Returns:
|
| + A string or whatever default is
|
| + """
|
| + match = re.search(pattern, input_string)
|
| + return match.group('return') if match else default
|
| +
|
|
|