diff options
| author | shadchin <[email protected]> | 2022-02-10 16:44:30 +0300 |
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:44:30 +0300 |
| commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
| tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard | |
| parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 1 of 2.
Diffstat (limited to 'contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard')
4 files changed, 210 insertions, 210 deletions
diff --git a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/__init__.py b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/__init__.py index 160b50aca5e..4311356cebf 100644 --- a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/__init__.py +++ b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/__init__.py @@ -1,15 +1,15 @@ -from .base import Clipboard, ClipboardData, DummyClipboard, DynamicClipboard -from .in_memory import InMemoryClipboard - -# We are not importing `PyperclipClipboard` here, because it would require the -# `pyperclip` module to be present. - -# from .pyperclip import PyperclipClipboard - -__all__ = [ - "Clipboard", - "ClipboardData", - "DummyClipboard", - "DynamicClipboard", - "InMemoryClipboard", -] +from .base import Clipboard, ClipboardData, DummyClipboard, DynamicClipboard +from .in_memory import InMemoryClipboard + +# We are not importing `PyperclipClipboard` here, because it would require the +# `pyperclip` module to be present. + +# from .pyperclip import PyperclipClipboard + +__all__ = [ + "Clipboard", + "ClipboardData", + "DummyClipboard", + "DynamicClipboard", + "InMemoryClipboard", +] diff --git a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/base.py b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/base.py index c24623dacc0..d492cf8cb01 100644 --- a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/base.py +++ b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/base.py @@ -1,107 +1,107 @@ -""" -Clipboard for command line interface. -""" -from abc import ABCMeta, abstractmethod -from typing import Callable, Optional - -from prompt_toolkit.selection import SelectionType - -__all__ = [ - "Clipboard", - "ClipboardData", - "DummyClipboard", - "DynamicClipboard", -] - - -class ClipboardData: - """ - Text on the clipboard. - - :param text: string - :param type: :class:`~prompt_toolkit.selection.SelectionType` - """ - - def __init__( - self, text: str = "", type: SelectionType = SelectionType.CHARACTERS - ) -> None: - - self.text = text - self.type = type - - -class Clipboard(metaclass=ABCMeta): - """ - Abstract baseclass for clipboards. - (An implementation can be in memory, it can share the X11 or Windows - keyboard, or can be persistent.) - """ - - @abstractmethod - def set_data(self, data: ClipboardData) -> None: - """ - Set data to the clipboard. - - :param data: :class:`~.ClipboardData` instance. - """ - - def set_text(self, text: str) -> None: # Not abstract. - """ - Shortcut for setting plain text on clipboard. - """ - self.set_data(ClipboardData(text)) - - def rotate(self) -> None: - """ - For Emacs mode, rotate the kill ring. - """ - - @abstractmethod - def get_data(self) -> ClipboardData: - """ - Return clipboard data. - """ - - -class DummyClipboard(Clipboard): - """ - Clipboard implementation that doesn't remember anything. - """ - - def set_data(self, data: ClipboardData) -> None: - pass - - def set_text(self, text: str) -> None: - pass - - def rotate(self) -> None: - pass - - def get_data(self) -> ClipboardData: - return ClipboardData() - - -class DynamicClipboard(Clipboard): - """ - Clipboard class that can dynamically returns any Clipboard. - - :param get_clipboard: Callable that returns a :class:`.Clipboard` instance. - """ - - def __init__(self, get_clipboard: Callable[[], Optional[Clipboard]]) -> None: - self.get_clipboard = get_clipboard - - def _clipboard(self) -> Clipboard: - return self.get_clipboard() or DummyClipboard() - - def set_data(self, data: ClipboardData) -> None: - self._clipboard().set_data(data) - - def set_text(self, text: str) -> None: - self._clipboard().set_text(text) - - def rotate(self) -> None: - self._clipboard().rotate() - - def get_data(self) -> ClipboardData: - return self._clipboard().get_data() +""" +Clipboard for command line interface. +""" +from abc import ABCMeta, abstractmethod +from typing import Callable, Optional + +from prompt_toolkit.selection import SelectionType + +__all__ = [ + "Clipboard", + "ClipboardData", + "DummyClipboard", + "DynamicClipboard", +] + + +class ClipboardData: + """ + Text on the clipboard. + + :param text: string + :param type: :class:`~prompt_toolkit.selection.SelectionType` + """ + + def __init__( + self, text: str = "", type: SelectionType = SelectionType.CHARACTERS + ) -> None: + + self.text = text + self.type = type + + +class Clipboard(metaclass=ABCMeta): + """ + Abstract baseclass for clipboards. + (An implementation can be in memory, it can share the X11 or Windows + keyboard, or can be persistent.) + """ + + @abstractmethod + def set_data(self, data: ClipboardData) -> None: + """ + Set data to the clipboard. + + :param data: :class:`~.ClipboardData` instance. + """ + + def set_text(self, text: str) -> None: # Not abstract. + """ + Shortcut for setting plain text on clipboard. + """ + self.set_data(ClipboardData(text)) + + def rotate(self) -> None: + """ + For Emacs mode, rotate the kill ring. + """ + + @abstractmethod + def get_data(self) -> ClipboardData: + """ + Return clipboard data. + """ + + +class DummyClipboard(Clipboard): + """ + Clipboard implementation that doesn't remember anything. + """ + + def set_data(self, data: ClipboardData) -> None: + pass + + def set_text(self, text: str) -> None: + pass + + def rotate(self) -> None: + pass + + def get_data(self) -> ClipboardData: + return ClipboardData() + + +class DynamicClipboard(Clipboard): + """ + Clipboard class that can dynamically returns any Clipboard. + + :param get_clipboard: Callable that returns a :class:`.Clipboard` instance. + """ + + def __init__(self, get_clipboard: Callable[[], Optional[Clipboard]]) -> None: + self.get_clipboard = get_clipboard + + def _clipboard(self) -> Clipboard: + return self.get_clipboard() or DummyClipboard() + + def set_data(self, data: ClipboardData) -> None: + self._clipboard().set_data(data) + + def set_text(self, text: str) -> None: + self._clipboard().set_text(text) + + def rotate(self) -> None: + self._clipboard().rotate() + + def get_data(self) -> ClipboardData: + return self._clipboard().get_data() diff --git a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/in_memory.py b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/in_memory.py index 1902e36a55f..35cb5645709 100644 --- a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/in_memory.py +++ b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/in_memory.py @@ -1,46 +1,46 @@ -from collections import deque -from typing import Deque, Optional - -from .base import Clipboard, ClipboardData - -__all__ = [ - "InMemoryClipboard", -] - - -class InMemoryClipboard(Clipboard): - """ - Default clipboard implementation. - Just keep the data in memory. - - This implements a kill-ring, for Emacs mode. - """ - - def __init__( - self, data: Optional[ClipboardData] = None, max_size: int = 60 - ) -> None: - - assert max_size >= 1 - - self.max_size = max_size - self._ring: Deque[ClipboardData] = deque() - - if data is not None: - self.set_data(data) - - def set_data(self, data: ClipboardData) -> None: - self._ring.appendleft(data) - - while len(self._ring) > self.max_size: - self._ring.pop() - - def get_data(self) -> ClipboardData: - if self._ring: - return self._ring[0] - else: - return ClipboardData() - - def rotate(self) -> None: - if self._ring: - # Add the very first item at the end. - self._ring.append(self._ring.popleft()) +from collections import deque +from typing import Deque, Optional + +from .base import Clipboard, ClipboardData + +__all__ = [ + "InMemoryClipboard", +] + + +class InMemoryClipboard(Clipboard): + """ + Default clipboard implementation. + Just keep the data in memory. + + This implements a kill-ring, for Emacs mode. + """ + + def __init__( + self, data: Optional[ClipboardData] = None, max_size: int = 60 + ) -> None: + + assert max_size >= 1 + + self.max_size = max_size + self._ring: Deque[ClipboardData] = deque() + + if data is not None: + self.set_data(data) + + def set_data(self, data: ClipboardData) -> None: + self._ring.appendleft(data) + + while len(self._ring) > self.max_size: + self._ring.pop() + + def get_data(self) -> ClipboardData: + if self._ring: + return self._ring[0] + else: + return ClipboardData() + + def rotate(self) -> None: + if self._ring: + # Add the very first item at the end. + self._ring.append(self._ring.popleft()) diff --git a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/pyperclip.py b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/pyperclip.py index c8cb7afb672..5491e51bfe1 100644 --- a/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/pyperclip.py +++ b/contrib/python/prompt-toolkit/py3/prompt_toolkit/clipboard/pyperclip.py @@ -1,42 +1,42 @@ -from typing import Optional - -import pyperclip - -from prompt_toolkit.selection import SelectionType - -from .base import Clipboard, ClipboardData - -__all__ = [ - "PyperclipClipboard", -] - - -class PyperclipClipboard(Clipboard): - """ - Clipboard that synchronizes with the Windows/Mac/Linux system clipboard, - using the pyperclip module. - """ - - def __init__(self) -> None: - self._data: Optional[ClipboardData] = None - - def set_data(self, data: ClipboardData) -> None: - self._data = data - pyperclip.copy(data.text) - - def get_data(self) -> ClipboardData: - text = pyperclip.paste() - - # When the clipboard data is equal to what we copied last time, reuse - # the `ClipboardData` instance. That way we're sure to keep the same - # `SelectionType`. - if self._data and self._data.text == text: - return self._data - - # Pyperclip returned something else. Create a new `ClipboardData` - # instance. - else: - return ClipboardData( - text=text, - type=SelectionType.LINES if "\n" in text else SelectionType.CHARACTERS, - ) +from typing import Optional + +import pyperclip + +from prompt_toolkit.selection import SelectionType + +from .base import Clipboard, ClipboardData + +__all__ = [ + "PyperclipClipboard", +] + + +class PyperclipClipboard(Clipboard): + """ + Clipboard that synchronizes with the Windows/Mac/Linux system clipboard, + using the pyperclip module. + """ + + def __init__(self) -> None: + self._data: Optional[ClipboardData] = None + + def set_data(self, data: ClipboardData) -> None: + self._data = data + pyperclip.copy(data.text) + + def get_data(self) -> ClipboardData: + text = pyperclip.paste() + + # When the clipboard data is equal to what we copied last time, reuse + # the `ClipboardData` instance. That way we're sure to keep the same + # `SelectionType`. + if self._data and self._data.text == text: + return self._data + + # Pyperclip returned something else. Create a new `ClipboardData` + # instance. + else: + return ClipboardData( + text=text, + type=SelectionType.LINES if "\n" in text else SelectionType.CHARACTERS, + ) |
