diff options
author | ptmcg <ptmcg@austin.rr.com> | 2021-11-02 03:32:43 -0500 |
---|---|---|
committer | ptmcg <ptmcg@austin.rr.com> | 2021-11-02 03:32:43 -0500 |
commit | 08bdeebe71d019e8be3e5a8b3d348ec44daf9e17 (patch) | |
tree | 5675f4ed8d79c17cea5d7b0d697d3c89c27de302 | |
parent | e269b0a3d067e66ef718b8508a4a82927c7606d0 (diff) | |
download | pyparsing-git-08bdeebe71d019e8be3e5a8b3d348ec44daf9e17.tar.gz |
Added type hints for col, line, and lineno public methods; plus black
-rw-r--r-- | pyparsing/core.py | 12 | ||||
-rw-r--r-- | pyparsing/helpers.py | 10 | ||||
-rw-r--r-- | pyparsing/util.py | 30 |
3 files changed, 34 insertions, 18 deletions
diff --git a/pyparsing/core.py b/pyparsing/core.py index 786256b..6fb8f92 100644 --- a/pyparsing/core.py +++ b/pyparsing/core.py @@ -3660,7 +3660,11 @@ class ParseExpression(ParserElement): def _setResultsName(self, name, listAllMatches=False): if __diag__.warn_ungrouped_named_tokens_in_collection: for e in self.exprs: - if isinstance(e, ParserElement) and e.resultsName and not e.resultsName.startswith("_NOWARN"): + if ( + isinstance(e, ParserElement) + and e.resultsName + and not e.resultsName.startswith("_NOWARN") + ): warnings.warn( "{}: setting results name {!r} on {} expression " "collides with {!r} on contained expression".format( @@ -4701,7 +4705,11 @@ class _MultipleMatch(ParseElementEnhance): def _setResultsName(self, name, listAllMatches=False): if __diag__.warn_ungrouped_named_tokens_in_collection: for e in [self.expr] + self.expr.recurse(): - if isinstance(e, ParserElement) and e.resultsName and not e.resultsName.startswith("_NOWARN"): + if ( + isinstance(e, ParserElement) + and e.resultsName + and not e.resultsName.startswith("_NOWARN") + ): warnings.warn( "{}: setting results name {!r} on {} expression " "collides with {!r} on contained expression".format( diff --git a/pyparsing/helpers.py b/pyparsing/helpers.py index 27a4efa..9b1e2e1 100644 --- a/pyparsing/helpers.py +++ b/pyparsing/helpers.py @@ -388,9 +388,15 @@ def original_text_for( endlocMarker = locMarker.copy() endlocMarker.callPreparse = False # prefix these transient names with _NOWARN to suppress ungrouped name warnings - matchExpr = locMarker("_NOWARN_original_start") + expr + endlocMarker("_NOWARN_original_end") + matchExpr = ( + locMarker("_NOWARN_original_start") + + expr + + endlocMarker("_NOWARN_original_end") + ) if asString: - extractText = lambda s, l, t: s[t._NOWARN_original_start : t._NOWARN_original_end] + extractText = lambda s, l, t: s[ + t._NOWARN_original_start : t._NOWARN_original_end + ] else: def extractText(s, l, t): diff --git a/pyparsing/util.py b/pyparsing/util.py index 95ecff3..1309ad6 100644 --- a/pyparsing/util.py +++ b/pyparsing/util.py @@ -38,7 +38,7 @@ class __config_flags: @lru_cache(maxsize=128) -def col(loc: int, strg: str): +def col(loc: int, strg: str) -> int: """ Returns current column within a string, counting newlines as line separators. The first column is number 1. @@ -55,7 +55,7 @@ def col(loc: int, strg: str): @lru_cache(maxsize=128) -def lineno(loc: int, strg: str): +def lineno(loc: int, strg: str) -> int: """Returns current line number within a string, counting newlines as line separators. The first line is number 1. @@ -69,7 +69,7 @@ def lineno(loc: int, strg: str): @lru_cache(maxsize=128) -def line(loc: int, strg: str): +def line(loc: int, strg: str) -> str: """ Returns the line of text containing loc within a string, counting newlines as line separators. """ @@ -84,18 +84,18 @@ class _UnboundedCache: cache_get = cache.get self.not_in_cache = not_in_cache = object() - def get(self, key): + def get(_, key): return cache_get(key, not_in_cache) - def set(self, key, value): + def set_(_, key, value): cache[key] = value - def clear(self): + def clear(_): cache.clear() self.size = None self.get = types.MethodType(get, self) - self.set = types.MethodType(set, self) + self.set = types.MethodType(set_, self) self.clear = types.MethodType(clear, self) @@ -105,20 +105,20 @@ class _FifoCache: cache = collections.OrderedDict() cache_get = cache.get - def get(self, key): + def get(_, key): return cache_get(key, not_in_cache) - def set(self, key, value): + def set_(_, key, value): cache[key] = value while len(cache) > size: cache.popitem(last=False) - def clear(self): + def clear(_): cache.clear() self.size = size self.get = types.MethodType(get, self) - self.set = types.MethodType(set, self) + self.set = types.MethodType(set_, self) self.clear = types.MethodType(clear, self) @@ -170,7 +170,7 @@ class UnboundedMemo(dict): pass -def _escape_regex_range_chars(s: str): +def _escape_regex_range_chars(s: str) -> str: # escape these chars: ^-[] for c in r"\^-[]": s = s.replace(c, _bslash + c) @@ -179,7 +179,9 @@ def _escape_regex_range_chars(s: str): return str(s) -def _collapse_string_to_ranges(s: Union[str, Iterable[str]], re_escape: bool = True): +def _collapse_string_to_ranges( + s: Union[str, Iterable[str]], re_escape: bool = True +) -> str: def is_consecutive(c): c_int = ord(c) is_consecutive.prev, prev = c_int, is_consecutive.prev @@ -222,7 +224,7 @@ def _collapse_string_to_ranges(s: Union[str, Iterable[str]], re_escape: bool = T return "".join(ret) -def _flatten(ll: List): +def _flatten(ll: list) -> list: ret = [] for i in ll: if isinstance(i, list): |