diff options
| author | Kevin Van Brunt <kmvanbrunt@gmail.com> | 2021-03-29 12:27:46 -0400 |
|---|---|---|
| committer | anselor <anselor@gmail.com> | 2021-03-30 15:06:18 -0400 |
| commit | 5165edec890575682f345fc42f5a53e10ed575b9 (patch) | |
| tree | b74b8483aec498f18db7c80f178f8bda11a186da | |
| parent | 2397280cad072a27a51f5ec1cc64908039d14bd1 (diff) | |
| download | cmd2-git-5165edec890575682f345fc42f5a53e10ed575b9.tar.gz | |
Changed History to use OrderDict to support Python 3.6 in non-CPython environments.
| -rw-r--r-- | cmd2/cmd2.py | 3 | ||||
| -rw-r--r-- | cmd2/history.py | 14 |
2 files changed, 10 insertions, 7 deletions
diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py index 073e9a2d..d2133ca4 100644 --- a/cmd2/cmd2.py +++ b/cmd2/cmd2.py @@ -43,6 +43,7 @@ from code import ( InteractiveConsole, ) from collections import ( + OrderedDict, namedtuple, ) from contextlib import ( @@ -4359,7 +4360,7 @@ class Cmd(cmd.Cmd): for idx, hi in history.items(): self.poutput(hi.pr(idx, script=args.script, expanded=args.expanded, verbose=args.verbose)) - def _get_history(self, args: argparse.Namespace) -> Dict[int, HistoryItem]: + def _get_history(self, args: argparse.Namespace) -> 'OrderedDict[int, HistoryItem]': """If an argument was supplied, then retrieve partial contents of the history; otherwise retrieve entire history. This function returns a dictionary with history items keyed by their 1-based index in ascending order. diff --git a/cmd2/history.py b/cmd2/history.py index 78377c06..3a2a9ed5 100644 --- a/cmd2/history.py +++ b/cmd2/history.py @@ -4,9 +4,11 @@ History management classes """ import re +from collections import ( + OrderedDict, +) from typing import ( Callable, - Dict, Optional, Union, ) @@ -173,7 +175,7 @@ class History(list): # spanpattern = re.compile(r'^\s*(?P<start>-?[1-9]\d*)?(?P<separator>:|(\.{2,}))(?P<end>-?[1-9]\d*)?\s*$') - def span(self, span: str, include_persisted: bool = False) -> Dict[int, HistoryItem]: + def span(self, span: str, include_persisted: bool = False) -> 'OrderedDict[int, HistoryItem]': """Return a slice of the History list :param span: string containing an index or a slice @@ -222,7 +224,7 @@ class History(list): return self._build_result_dictionary(start, end) - def str_search(self, search: str, include_persisted: bool = False) -> Dict[int, HistoryItem]: + def str_search(self, search: str, include_persisted: bool = False) -> 'OrderedDict[int, HistoryItem]': """Find history items which contain a given string :param search: the string to search for @@ -241,7 +243,7 @@ class History(list): start = 0 if include_persisted else self.session_start_index return self._build_result_dictionary(start, len(self), isin) - def regex_search(self, regex: str, include_persisted: bool = False) -> Dict[int, HistoryItem]: + def regex_search(self, regex: str, include_persisted: bool = False) -> 'OrderedDict[int, HistoryItem]': """Find history items which match a given regular expression :param regex: the regular expression to search for. @@ -277,13 +279,13 @@ class History(list): def _build_result_dictionary( self, start: int, end: int, filter_func: Optional[Callable[[HistoryItem], bool]] = None - ) -> Dict[int, HistoryItem]: + ) -> 'OrderedDict[int, HistoryItem]': """ Build history search results :param start: start index to search from :param end: end index to stop searching (exclusive) """ - results: Dict[int, HistoryItem] = dict() + results: OrderedDict[int, HistoryItem] = OrderedDict() for index in range(start, end): if filter_func is None or filter_func(self[index]): results[index + 1] = self[index] |
