[stem/master] Drop extra join/split

commit c178f932b54e85230e312aeda040a9de1b65283c Author: Damian Johnson <atagar@torproject.org> Date: Tue May 8 12:51:57 2018 -0700 Drop extra join/split We joined the section lines only to immediately split them back apart. --- stem/directory.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/stem/directory.py b/stem/directory.py index cab0f30c..014d07a5 100644 --- a/stem/directory.py +++ b/stem/directory.py @@ -75,13 +75,13 @@ FALLBACK_EXTRAINFO = re.compile('/\* extrainfo=([0-1]) \*/') FALLBACK_IPV6 = re.compile('" ipv6=\[([\da-f:]+)\]:(\d+)"') -def _match_with(content, regexes, required = None): +def _match_with(lines, regexes, required = None): """ Scans the given content against a series of regex matchers, providing back a mapping of regexes to their capture groups. This maping is with the value if the regex has just a single capture group, and a tuple otherwise. - :param str content: text to parse + :param list lines: text to parse :param list regexes: regexes to match against :param list required: matches that must be in the content @@ -90,14 +90,11 @@ def _match_with(content, regexes, required = None): :raises: **ValueError** if a required match is not present """ - if isinstance(content, bytes): - content = str_tools._to_unicode(content) - matches = {} - for line in content.splitlines(): + for line in lines: for matcher in regexes: - m = matcher.search(line) + m = matcher.search(str_tools._to_unicode(line)) if m: match_groups = m.groups() @@ -106,7 +103,7 @@ def _match_with(content, regexes, required = None): if required: for required_matcher in required: if required_matcher not in matches: - raise ValueError('Failed to parse mandatory data from:\n\n%s' % content) + raise ValueError('Failed to parse mandatory data from:\n\n%s' % '\n'.join(lines)) return matches @@ -277,7 +274,7 @@ class Authority(Directory): if section: try: - matches = _match_with('\n'.join(section), (AUTHORITY_NAME, AUTHORITY_V3IDENT, AUTHORITY_IPV6, AUTHORITY_ADDR), required = (AUTHORITY_NAME, AUTHORITY_ADDR)) + matches = _match_with(section, (AUTHORITY_NAME, AUTHORITY_V3IDENT, AUTHORITY_IPV6, AUTHORITY_ADDR), required = (AUTHORITY_NAME, AUTHORITY_ADDR)) nickname, or_port = matches.get(AUTHORITY_NAME) address, dir_port, fingerprint = matches.get(AUTHORITY_ADDR) @@ -448,7 +445,7 @@ class Fallback(Directory): if section: try: - matches = _match_with('\n'.join(section), (FALLBACK_ADDR, FALLBACK_NICKNAME, FALLBACK_EXTRAINFO, FALLBACK_IPV6), required = (FALLBACK_ADDR,)) + matches = _match_with(section, (FALLBACK_ADDR, FALLBACK_NICKNAME, FALLBACK_EXTRAINFO, FALLBACK_IPV6), required = (FALLBACK_ADDR,)) address, dir_port, or_port, fingerprint = matches[FALLBACK_ADDR] results[fingerprint] = Fallback(
participants (1)
-
atagar@torproject.org