GRAYBYTE WORDPRESS FILE MANAGER5868

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/python311/lib64/python3.11/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/python311/lib64/python3.11//pty.py
"""Pseudo terminal utilities."""

# Bugs: No signal handling.  Doesn't set slave termios and window size.
#       Only tested on Linux, FreeBSD, and macOS.
# See:  W. Richard Stevens. 1992.  Advanced Programming in the
#       UNIX Environment.  Chapter 19.
# Author: Steen Lumholt -- with additions by Guido.

from select import select
import os
import sys
import tty

# names imported directly for test mocking purposes
from os import close, waitpid
from tty import setraw, tcgetattr, tcsetattr

__all__ = ["openpty", "fork", "spawn"]

STDIN_FILENO = 0
STDOUT_FILENO = 1
STDERR_FILENO = 2

CHILD = 0

def openpty():
    """openpty() -> (master_fd, slave_fd)
    Open a pty master/slave pair, using os.openpty() if possible."""

    try:
        return os.openpty()
    except (AttributeError, OSError):
        pass
    master_fd, slave_name = _open_terminal()
    slave_fd = slave_open(slave_name)
    return master_fd, slave_fd

def master_open():
    """master_open() -> (master_fd, slave_name)
    Open a pty master and return the fd, and the filename of the slave end.
    Deprecated, use openpty() instead."""

    try:
        master_fd, slave_fd = os.openpty()
    except (AttributeError, OSError):
        pass
    else:
        slave_name = os.ttyname(slave_fd)
        os.close(slave_fd)
        return master_fd, slave_name

    return _open_terminal()

def _open_terminal():
    """Open pty master and return (master_fd, tty_name)."""
    for x in 'pqrstuvwxyzPQRST':
        for y in '0123456789abcdef':
            pty_name = '/dev/pty' + x + y
            try:
                fd = os.open(pty_name, os.O_RDWR)
            except OSError:
                continue
            return (fd, '/dev/tty' + x + y)
    raise OSError('out of pty devices')

def slave_open(tty_name):
    """slave_open(tty_name) -> slave_fd
    Open the pty slave and acquire the controlling terminal, returning
    opened filedescriptor.
    Deprecated, use openpty() instead."""

    result = os.open(tty_name, os.O_RDWR)
    try:
        from fcntl import ioctl, I_PUSH
    except ImportError:
        return result
    try:
        ioctl(result, I_PUSH, "ptem")
        ioctl(result, I_PUSH, "ldterm")
    except OSError:
        pass
    return result

def fork():
    """fork() -> (pid, master_fd)
    Fork and make the child a session leader with a controlling terminal."""

    try:
        pid, fd = os.forkpty()
    except (AttributeError, OSError):
        pass
    else:
        if pid == CHILD:
            try:
                os.setsid()
            except OSError:
                # os.forkpty() already set us session leader
                pass
        return pid, fd

    master_fd, slave_fd = openpty()
    pid = os.fork()
    if pid == CHILD:
        # Establish a new session.
        os.setsid()
        os.close(master_fd)

        # Slave becomes stdin/stdout/stderr of child.
        os.dup2(slave_fd, STDIN_FILENO)
        os.dup2(slave_fd, STDOUT_FILENO)
        os.dup2(slave_fd, STDERR_FILENO)
        if slave_fd > STDERR_FILENO:
            os.close(slave_fd)

        # Explicitly open the tty to make it become a controlling tty.
        tmp_fd = os.open(os.ttyname(STDOUT_FILENO), os.O_RDWR)
        os.close(tmp_fd)
    else:
        os.close(slave_fd)

    # Parent and child process.
    return pid, master_fd

def _read(fd):
    """Default read function."""
    return os.read(fd, 1024)

def _copy(master_fd, master_read=_read, stdin_read=_read):
    """Parent copy loop.
    Copies
            pty master -> standard output   (master_read)
            standard input -> pty master    (stdin_read)"""
    if os.get_blocking(master_fd):
        # If we write more than tty/ndisc is willing to buffer, we may block
        # indefinitely. So we set master_fd to non-blocking temporarily during
        # the copy operation.
        os.set_blocking(master_fd, False)
        try:
            _copy(master_fd, master_read=master_read, stdin_read=stdin_read)
        finally:
            # restore blocking mode for backwards compatibility
            os.set_blocking(master_fd, True)
        return
    high_waterlevel = 4096
    stdin_avail = master_fd != STDIN_FILENO
    stdout_avail = master_fd != STDOUT_FILENO
    i_buf = b''
    o_buf = b''
    while 1:
        rfds = []
        wfds = []
        if stdin_avail and len(i_buf) < high_waterlevel:
            rfds.append(STDIN_FILENO)
        if stdout_avail and len(o_buf) < high_waterlevel:
            rfds.append(master_fd)
        if stdout_avail and len(o_buf) > 0:
            wfds.append(STDOUT_FILENO)
        if len(i_buf) > 0:
            wfds.append(master_fd)

        rfds, wfds, _xfds = select(rfds, wfds, [])

        if STDOUT_FILENO in wfds:
            try:
                n = os.write(STDOUT_FILENO, o_buf)
                o_buf = o_buf[n:]
            except OSError:
                stdout_avail = False

        if master_fd in rfds:
            # Some OSes signal EOF by returning an empty byte string,
            # some throw OSErrors.
            try:
                data = master_read(master_fd)
            except OSError:
                data = b""
            if not data:  # Reached EOF.
                return    # Assume the child process has exited and is
                          # unreachable, so we clean up.
            o_buf += data

        if master_fd in wfds:
            n = os.write(master_fd, i_buf)
            i_buf = i_buf[n:]

        if stdin_avail and STDIN_FILENO in rfds:
            data = stdin_read(STDIN_FILENO)
            if not data:
                stdin_avail = False
            else:
                i_buf += data

def spawn(argv, master_read=_read, stdin_read=_read):
    """Create a spawned process."""
    if type(argv) == type(''):
        argv = (argv,)
    sys.audit('pty.spawn', argv)

    pid, master_fd = fork()
    if pid == CHILD:
        os.execlp(argv[0], *argv)

    try:
        mode = tcgetattr(STDIN_FILENO)
        setraw(STDIN_FILENO)
        restore = True
    except tty.error:    # This is the same as termios.error
        restore = False

    try:
        _copy(master_fd, master_read, stdin_read)
    finally:
        if restore:
            tcsetattr(STDIN_FILENO, tty.TCSAFLUSH, mode)

    close(master_fd)
    return waitpid(pid, 0)[1]

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 13 2025 08:38:39
root / root
0755
__pycache__
--
May 13 2025 08:37:02
root / linksafe
0755
asyncio
--
May 13 2025 08:37:02
root / linksafe
0755
collections
--
May 13 2025 08:37:02
root / linksafe
0755
concurrent
--
May 13 2025 08:37:02
root / linksafe
0755
config-3.11-x86_64-linux-gnu
--
May 13 2025 08:38:39
root / linksafe
0755
ctypes
--
May 13 2025 08:37:02
root / linksafe
0755
curses
--
May 13 2025 08:37:02
root / linksafe
0755
dbm
--
May 13 2025 08:37:02
root / linksafe
0755
distutils
--
May 13 2025 08:37:02
root / linksafe
0755
email
--
May 13 2025 08:37:02
root / linksafe
0755
encodings
--
May 13 2025 08:37:02
root / linksafe
0755
ensurepip
--
May 13 2025 08:37:02
root / linksafe
0755
html
--
May 13 2025 08:37:02
root / linksafe
0755
http
--
May 13 2025 08:37:02
root / linksafe
0755
importlib
--
May 13 2025 08:37:02
root / linksafe
0755
json
--
May 13 2025 08:37:02
root / linksafe
0755
lib-dynload
--
May 13 2025 08:37:02
root / linksafe
0755
lib2to3
--
May 13 2025 08:40:34
root / linksafe
0755
logging
--
May 13 2025 08:37:02
root / linksafe
0755
multiprocessing
--
May 13 2025 08:37:02
root / linksafe
0755
pydoc_data
--
May 13 2025 08:37:02
root / linksafe
0755
re
--
May 13 2025 08:37:02
root / linksafe
0755
site-packages
--
May 13 2025 08:37:02
root / linksafe
0755
sqlite3
--
May 13 2025 08:37:02
root / linksafe
0755
tomllib
--
May 13 2025 08:37:02
root / linksafe
0755
unittest
--
May 13 2025 08:37:02
root / linksafe
0755
urllib
--
May 13 2025 08:37:02
root / linksafe
0755
venv
--
May 13 2025 08:37:02
root / linksafe
0755
wsgiref
--
May 13 2025 08:37:02
root / linksafe
0755
xml
--
May 13 2025 08:37:02
root / linksafe
0755
xmlrpc
--
May 13 2025 08:37:02
root / linksafe
0755
zoneinfo
--
May 13 2025 08:37:02
root / linksafe
0755
LICENSE.txt
13.609 KB
April 08 2025 14:15:29
root / linksafe
0644
__future__.py
5.096 KB
April 08 2025 14:15:29
root / linksafe
0644
__hello__.py
0.222 KB
April 08 2025 14:15:29
root / linksafe
0644
_aix_support.py
3.31 KB
April 08 2025 14:15:29
root / linksafe
0644
_bootsubprocess.py
2.612 KB
April 08 2025 14:15:29
root / linksafe
0644
_collections_abc.py
29.485 KB
April 08 2025 14:15:29
root / linksafe
0644
_compat_pickle.py
8.556 KB
April 08 2025 14:15:29
root / linksafe
0644
_compression.py
5.548 KB
April 08 2025 14:15:29
root / linksafe
0644
_markupbase.py
14.31 KB
April 08 2025 14:15:29
root / linksafe
0644
_osx_support.py
21.507 KB
April 08 2025 14:15:29
root / linksafe
0644
_py_abc.py
6.044 KB
April 08 2025 14:15:29
root / linksafe
0644
_pydecimal.py
223.83 KB
April 08 2025 14:15:29
root / linksafe
0644
_pyio.py
91.985 KB
April 08 2025 14:15:29
root / linksafe
0644
_sitebuiltins.py
3.055 KB
April 08 2025 14:15:29
root / linksafe
0644
_strptime.py
24.585 KB
April 08 2025 14:15:29
root / linksafe
0644
_sysconfigdata__linux_x86_64-linux-gnu.py
57.282 KB
April 25 2025 15:35:57
root / linksafe
0644
_sysconfigdata_d_linux_x86_64-linux-gnu.py
56.524 KB
April 25 2025 15:18:52
root / linksafe
0644
_threading_local.py
7.051 KB
April 08 2025 14:15:29
root / linksafe
0644
_weakrefset.py
5.755 KB
April 08 2025 14:15:29
root / linksafe
0644
abc.py
6.385 KB
April 08 2025 14:15:29
root / linksafe
0644
aifc.py
33.409 KB
April 08 2025 14:15:29
root / linksafe
0644
antigravity.py
0.488 KB
April 08 2025 14:15:29
root / linksafe
0644
argparse.py
97.933 KB
April 08 2025 14:15:29
root / linksafe
0644
ast.py
60.004 KB
April 08 2025 14:15:29
root / linksafe
0644
asynchat.py
11.299 KB
April 08 2025 14:15:29
root / linksafe
0644
asyncore.py
19.834 KB
April 08 2025 14:15:29
root / linksafe
0644
base64.py
20.548 KB
April 08 2025 14:15:29
root / linksafe
0755
bdb.py
31.702 KB
April 08 2025 14:15:29
root / linksafe
0644
bisect.py
3.062 KB
April 08 2025 14:15:29
root / linksafe
0644
bz2.py
11.569 KB
April 08 2025 14:15:29
root / linksafe
0644
cProfile.py
6.21 KB
April 08 2025 14:15:29
root / linksafe
0755
calendar.py
24.151 KB
April 08 2025 14:15:29
root / linksafe
0644
cgi.py
33.625 KB
April 08 2025 14:15:29
root / linksafe
0755
cgitb.py
12.13 KB
April 08 2025 14:15:29
root / linksafe
0644
chunk.py
5.371 KB
April 08 2025 14:15:29
root / linksafe
0644
cmd.py
14.524 KB
April 08 2025 14:15:29
root / linksafe
0644
code.py
10.373 KB
April 08 2025 14:15:29
root / linksafe
0644
codecs.py
36.279 KB
April 08 2025 14:15:29
root / linksafe
0644
codeop.py
5.769 KB
April 08 2025 14:15:29
root / linksafe
0644
colorsys.py
3.967 KB
April 08 2025 14:15:29
root / linksafe
0644
compileall.py
19.777 KB
April 08 2025 14:15:29
root / linksafe
0644
configparser.py
54.355 KB
April 08 2025 14:15:29
root / linksafe
0644
contextlib.py
26.771 KB
April 08 2025 14:15:29
root / linksafe
0644
contextvars.py
0.126 KB
April 08 2025 14:15:29
root / linksafe
0644
copy.py
8.478 KB
April 08 2025 14:15:29
root / linksafe
0644
copyreg.py
7.497 KB
April 08 2025 14:15:29
root / linksafe
0644
crypt.py
3.821 KB
April 08 2025 14:15:29
root / linksafe
0644
csv.py
15.654 KB
April 08 2025 14:15:29
root / linksafe
0644
dataclasses.py
57.102 KB
April 08 2025 14:15:29
root / linksafe
0644
datetime.py
89.68 KB
April 08 2025 14:15:29
root / linksafe
0644
decimal.py
0.313 KB
April 08 2025 14:15:29
root / linksafe
0644
difflib.py
81.355 KB
April 08 2025 14:15:29
root / linksafe
0644
dis.py
28.229 KB
April 08 2025 14:15:29
root / linksafe
0644
doctest.py
103.806 KB
April 08 2025 14:15:29
root / linksafe
0644
enum.py
77.718 KB
April 08 2025 14:15:29
root / linksafe
0644
filecmp.py
9.939 KB
April 08 2025 14:15:29
root / linksafe
0644
fileinput.py
15.346 KB
April 08 2025 14:15:29
root / linksafe
0644
fnmatch.py
5.858 KB
April 08 2025 14:15:29
root / linksafe
0644
fractions.py
28.005 KB
April 08 2025 14:15:29
root / linksafe
0644
ftplib.py
34.976 KB
April 08 2025 14:15:29
root / linksafe
0644
functools.py
37.513 KB
April 08 2025 14:15:29
root / linksafe
0644
genericpath.py
4.858 KB
April 08 2025 14:15:29
root / linksafe
0644
getopt.py
7.313 KB
April 08 2025 14:15:29
root / linksafe
0644
getpass.py
5.85 KB
April 08 2025 14:15:29
root / linksafe
0644
gettext.py
20.82 KB
April 08 2025 14:15:29
root / linksafe
0644
glob.py
8.527 KB
April 08 2025 14:15:29
root / linksafe
0644
graphlib.py
9.43 KB
April 08 2025 14:15:29
root / linksafe
0644
gzip.py
23.51 KB
April 08 2025 14:15:29
root / linksafe
0644
hashlib.py
11.489 KB
April 08 2025 14:15:29
root / linksafe
0644
heapq.py
22.484 KB
April 08 2025 14:15:29
root / linksafe
0644
hmac.py
7.535 KB
April 08 2025 14:15:29
root / linksafe
0644
imaplib.py
53.923 KB
April 08 2025 14:15:29
root / linksafe
0644
imghdr.py
3.859 KB
April 08 2025 14:15:29
root / linksafe
0644
imp.py
10.357 KB
April 08 2025 14:15:29
root / linksafe
0644
inspect.py
120.526 KB
April 08 2025 14:15:29
root / linksafe
0644
io.py
4.219 KB
April 08 2025 14:15:29
root / linksafe
0644
ipaddress.py
77.27 KB
April 08 2025 14:15:29
root / linksafe
0644
keyword.py
1.036 KB
April 08 2025 14:15:29
root / linksafe
0644
linecache.py
5.517 KB
April 08 2025 14:15:29
root / linksafe
0644
locale.py
77.241 KB
April 08 2025 14:15:29
root / linksafe
0644
lzma.py
12.966 KB
April 08 2025 14:15:29
root / linksafe
0644
mailbox.py
76.982 KB
April 08 2025 14:15:29
root / linksafe
0644
mailcap.py
9.149 KB
April 08 2025 14:15:29
root / linksafe
0644
mimetypes.py
22.424 KB
April 08 2025 14:15:29
root / linksafe
0644
modulefinder.py
23.144 KB
April 08 2025 14:15:29
root / linksafe
0644
netrc.py
6.767 KB
April 08 2025 14:15:29
root / linksafe
0644
nntplib.py
40.124 KB
April 08 2025 14:15:29
root / linksafe
0644
ntpath.py
29.514 KB
April 08 2025 14:15:29
root / linksafe
0644
nturl2path.py
2.819 KB
April 08 2025 14:15:29
root / linksafe
0644
numbers.py
10.105 KB
April 08 2025 14:15:29
root / linksafe
0644
opcode.py
10.202 KB
April 08 2025 14:15:29
root / linksafe
0644
operator.py
10.708 KB
April 08 2025 14:15:29
root / linksafe
0644
optparse.py
58.954 KB
April 08 2025 14:15:29
root / linksafe
0644
os.py
38.604 KB
April 08 2025 14:15:29
root / linksafe
0644
pathlib.py
47.428 KB
April 08 2025 14:15:29
root / linksafe
0644
pdb.py
62.682 KB
April 08 2025 14:15:29
root / linksafe
0755
pickle.py
63.605 KB
April 08 2025 14:15:29
root / linksafe
0644
pickletools.py
91.661 KB
April 08 2025 14:15:29
root / linksafe
0644
pipes.py
8.768 KB
April 08 2025 14:15:29
root / linksafe
0644
pkgutil.py
24.061 KB
April 08 2025 14:15:29
root / linksafe
0644
platform.py
41.296 KB
April 08 2025 14:15:29
root / linksafe
0755
plistlib.py
27.689 KB
April 08 2025 14:15:29
root / linksafe
0644
poplib.py
14.842 KB
April 08 2025 14:15:29
root / linksafe
0644
posixpath.py
16.614 KB
April 08 2025 14:15:29
root / linksafe
0644
pprint.py
24.007 KB
April 08 2025 14:15:29
root / linksafe
0644
profile.py
22.359 KB
April 08 2025 14:15:29
root / linksafe
0755
pstats.py
28.668 KB
April 08 2025 14:15:29
root / linksafe
0644
pty.py
6.169 KB
April 08 2025 14:15:29
root / linksafe
0644
py_compile.py
7.653 KB
April 08 2025 14:15:29
root / linksafe
0644
pyclbr.py
11.129 KB
April 08 2025 14:15:29
root / linksafe
0644
pydoc.py
110.023 KB
April 08 2025 14:15:29
root / linksafe
0755
queue.py
11.227 KB
April 08 2025 14:15:29
root / linksafe
0644
quopri.py
7.11 KB
April 08 2025 14:15:29
root / linksafe
0755
random.py
31.408 KB
April 08 2025 14:15:29
root / linksafe
0644
reprlib.py
5.31 KB
April 08 2025 14:15:29
root / linksafe
0644
rlcompleter.py
7.644 KB
April 08 2025 14:15:29
root / linksafe
0644
runpy.py
12.851 KB
April 08 2025 14:15:29
root / linksafe
0644
sched.py
6.202 KB
April 08 2025 14:15:29
root / linksafe
0644
secrets.py
1.98 KB
April 08 2025 14:15:29
root / linksafe
0644
selectors.py
19.21 KB
April 08 2025 14:15:29
root / linksafe
0644
shelve.py
8.359 KB
April 08 2025 14:15:29
root / linksafe
0644
shlex.py
13.185 KB
April 08 2025 14:15:29
root / linksafe
0644
shutil.py
55.192 KB
April 08 2025 14:15:29
root / linksafe
0644
signal.py
2.437 KB
April 08 2025 14:15:29
root / linksafe
0644
site.py
22.448 KB
April 08 2025 14:15:29
root / linksafe
0644
smtpd.py
30.444 KB
April 08 2025 14:15:29
root / linksafe
0755
smtplib.py
44.366 KB
April 08 2025 14:15:29
root / linksafe
0755
sndhdr.py
7.273 KB
April 08 2025 14:15:29
root / linksafe
0644
socket.py
36.677 KB
April 08 2025 14:15:29
root / linksafe
0644
socketserver.py
26.939 KB
April 08 2025 14:15:29
root / linksafe
0644
sre_compile.py
0.226 KB
April 08 2025 14:15:29
root / linksafe
0644
sre_constants.py
0.227 KB
April 08 2025 14:15:29
root / linksafe
0644
sre_parse.py
0.224 KB
April 08 2025 14:15:29
root / linksafe
0644
ssl.py
53.032 KB
April 08 2025 14:15:29
root / linksafe
0644
stat.py
5.356 KB
April 08 2025 14:15:29
root / linksafe
0644
statistics.py
46.587 KB
April 08 2025 14:15:29
root / linksafe
0644
string.py
11.51 KB
April 08 2025 14:15:29
root / linksafe
0644
stringprep.py
12.614 KB
April 08 2025 14:15:29
root / linksafe
0644
struct.py
0.251 KB
April 08 2025 14:15:29
root / linksafe
0644
subprocess.py
86.646 KB
April 08 2025 14:15:29
root / linksafe
0644
sunau.py
18.047 KB
April 08 2025 14:15:29
root / linksafe
0644
symtable.py
10.125 KB
April 08 2025 14:15:29
root / linksafe
0644
sysconfig.py
29.604 KB
April 08 2025 14:15:29
root / linksafe
0644
tabnanny.py
11.047 KB
April 08 2025 14:15:29
root / linksafe
0755
tarfile.py
105.348 KB
April 08 2025 14:15:29
root / linksafe
0755
telnetlib.py
22.755 KB
April 08 2025 14:15:29
root / linksafe
0644
tempfile.py
31.126 KB
April 08 2025 14:15:29
root / linksafe
0644
textwrap.py
19.256 KB
April 08 2025 14:15:29
root / linksafe
0644
this.py
0.979 KB
April 08 2025 14:15:29
root / linksafe
0644
threading.py
56.866 KB
April 08 2025 14:15:29
root / linksafe
0644
timeit.py
13.215 KB
April 08 2025 14:15:29
root / linksafe
0755
token.py
2.33 KB
April 08 2025 14:15:29
root / linksafe
0644
tokenize.py
25.719 KB
April 08 2025 14:15:29
root / linksafe
0644
trace.py
28.512 KB
April 08 2025 14:15:29
root / linksafe
0755
traceback.py
39.597 KB
April 08 2025 14:15:29
root / linksafe
0644
tracemalloc.py
17.624 KB
April 08 2025 14:15:29
root / linksafe
0644
tty.py
0.858 KB
April 08 2025 14:15:29
root / linksafe
0644
types.py
9.831 KB
April 08 2025 14:15:29
root / linksafe
0644
typing.py
118.116 KB
April 08 2025 14:15:29
root / linksafe
0644
uu.py
7.169 KB
April 25 2025 15:36:40
root / linksafe
0644
uuid.py
26.95 KB
April 08 2025 14:15:29
root / linksafe
0644
warnings.py
20.615 KB
April 08 2025 14:15:29
root / linksafe
0644
wave.py
21.307 KB
April 08 2025 14:15:29
root / linksafe
0644
weakref.py
21.009 KB
April 08 2025 14:15:29
root / linksafe
0644
webbrowser.py
24.56 KB
April 08 2025 14:15:29
root / linksafe
0755
xdrlib.py
5.837 KB
April 08 2025 14:15:29
root / linksafe
0644
zipapp.py
7.358 KB
April 08 2025 14:15:29
root / linksafe
0644
zipfile.py
91.59 KB
April 08 2025 14:15:29
root / linksafe
0644
zipimport.py
30.173 KB
April 08 2025 14:15:29
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF