aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py
diff options
context:
space:
mode:
authorIvan Blinkov <ivan@blinkov.ru>2022-02-10 16:47:10 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:10 +0300
commit1aeb9a455974457866f78722ad98114bafc84e8a (patch)
treee4340eaf1668684d83a0a58c36947c5def5350ad /contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py
parentbd5ef432f5cfb1e18851381329d94665a4c22470 (diff)
downloadydb-1aeb9a455974457866f78722ad98114bafc84e8a.tar.gz
Restoring authorship annotation for Ivan Blinkov <ivan@blinkov.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py')
-rw-r--r--contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py236
1 files changed, 118 insertions, 118 deletions
diff --git a/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py b/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py
index d1eb5f2730..ab971ee05c 100644
--- a/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py
+++ b/contrib/python/prompt-toolkit/py2/prompt_toolkit/history.py
@@ -1,120 +1,120 @@
-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:
+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)
+
+ 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)