diff options
author | monster <monster@ydb.tech> | 2022-07-07 14:41:37 +0300 |
---|---|---|
committer | monster <monster@ydb.tech> | 2022-07-07 14:41:37 +0300 |
commit | 06e5c21a835c0e923506c4ff27929f34e00761c2 (patch) | |
tree | 75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py | |
parent | 03f024c4412e3aa613bb543cf1660176320ba8f4 (diff) | |
download | ydb-06e5c21a835c0e923506c4ff27929f34e00761c2.tar.gz |
fix ya.make
Diffstat (limited to 'contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py')
-rw-r--r-- | contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py b/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py deleted file mode 100644 index d1eb5f2730..0000000000 --- a/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py +++ /dev/null @@ -1,120 +0,0 @@ -from __future__ import unicode_literals -from abc import ABCMeta, abstractmethod -from six import with_metaclass - -import datetime -import os - -__all__ = ( - 'FileHistory', - 'History', - 'InMemoryHistory', -) - - -class History(with_metaclass(ABCMeta, object)): - """ - Base ``History`` interface. - """ - @abstractmethod - def append(self, string): - " Append string to history. " - - @abstractmethod - def __getitem__(self, key): - " Return one item of the history. It should be accessible like a `list`. " - - @abstractmethod - def __iter__(self): - " Iterate through all the items of the history. Cronologically. " - - @abstractmethod - def __len__(self): - " Return the length of the history. " - - def __bool__(self): - """ - Never evaluate to False, even when the history is empty. - (Python calls __len__ if __bool__ is not implemented.) - This is mainly to allow lazy evaluation:: - - x = history or InMemoryHistory() - """ - return True - - __nonzero__ = __bool__ # For Python 2. - - -class InMemoryHistory(History): - """ - :class:`.History` class that keeps a list of all strings in memory. - """ - def __init__(self): - self.strings = [] - - def append(self, string): - self.strings.append(string) - - def __getitem__(self, key): - return self.strings[key] - - def __iter__(self): - return iter(self.strings) - - def __len__(self): - return len(self.strings) - - -class FileHistory(History): - """ - :class:`.History` class that stores all strings in a file. - """ - def __init__(self, filename): - self.strings = [] - self.filename = filename - - self._load() - - def _load(self): - lines = [] - - def add(): - if lines: - # Join and drop trailing newline. - string = ''.join(lines)[:-1] - - self.strings.append(string) - - if os.path.exists(self.filename): - with open(self.filename, 'rb') as f: - for line in f: - line = line.decode('utf-8') - - if line.startswith('+'): - lines.append(line[1:]) - else: - add() - lines = [] - - add() - - def append(self, string): - self.strings.append(string) - - # Save to file. - with open(self.filename, 'ab') as f: - def write(t): - f.write(t.encode('utf-8')) - - write('\n# %s\n' % datetime.datetime.now()) - for line in string.split('\n'): - write('+%s\n' % line) - - def __getitem__(self, key): - return self.strings[key] - - def __iter__(self): - return iter(self.strings) - - def __len__(self): - return len(self.strings) |