$39 GRAYBYTE WORDPRESS FILE MANAGER $77

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.160.161 | ADMIN IP 216.73.216.86
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/python311/lib64/python3.11/

HOME
Current File : /opt/alt/python311/lib64/python3.11//sunau.py
"""Stuff to parse Sun and NeXT audio files.

An audio file consists of a header followed by the data.  The structure
of the header is as follows.

        +---------------+
        | magic word    |
        +---------------+
        | header size   |
        +---------------+
        | data size     |
        +---------------+
        | encoding      |
        +---------------+
        | sample rate   |
        +---------------+
        | # of channels |
        +---------------+
        | info          |
        |               |
        +---------------+

The magic word consists of the 4 characters '.snd'.  Apart from the
info field, all header fields are 4 bytes in size.  They are all
32-bit unsigned integers encoded in big-endian byte order.

The header size really gives the start of the data.
The data size is the physical size of the data.  From the other
parameters the number of frames can be calculated.
The encoding gives the way in which audio samples are encoded.
Possible values are listed below.
The info field currently consists of an ASCII string giving a
human-readable description of the audio file.  The info field is
padded with NUL bytes to the header size.

Usage.

Reading audio files:
        f = sunau.open(file, 'r')
where file is either the name of a file or an open file pointer.
The open file pointer must have methods read(), seek(), and close().
When the setpos() and rewind() methods are not used, the seek()
method is not  necessary.

This returns an instance of a class with the following public methods:
        getnchannels()  -- returns number of audio channels (1 for
                           mono, 2 for stereo)
        getsampwidth()  -- returns sample width in bytes
        getframerate()  -- returns sampling frequency
        getnframes()    -- returns number of audio frames
        getcomptype()   -- returns compression type ('NONE' or 'ULAW')
        getcompname()   -- returns human-readable version of
                           compression type ('not compressed' matches 'NONE')
        getparams()     -- returns a namedtuple consisting of all of the
                           above in the above order
        getmarkers()    -- returns None (for compatibility with the
                           aifc module)
        getmark(id)     -- raises an error since the mark does not
                           exist (for compatibility with the aifc module)
        readframes(n)   -- returns at most n frames of audio
        rewind()        -- rewind to the beginning of the audio stream
        setpos(pos)     -- seek to the specified position
        tell()          -- return the current position
        close()         -- close the instance (make it unusable)
The position returned by tell() and the position given to setpos()
are compatible and have nothing to do with the actual position in the
file.
The close() method is called automatically when the class instance
is destroyed.

Writing audio files:
        f = sunau.open(file, 'w')
where file is either the name of a file or an open file pointer.
The open file pointer must have methods write(), tell(), seek(), and
close().

This returns an instance of a class with the following public methods:
        setnchannels(n) -- set the number of channels
        setsampwidth(n) -- set the sample width
        setframerate(n) -- set the frame rate
        setnframes(n)   -- set the number of frames
        setcomptype(type, name)
                        -- set the compression type and the
                           human-readable compression type
        setparams(tuple)-- set all parameters at once
        tell()          -- return current position in output file
        writeframesraw(data)
                        -- write audio frames without pathing up the
                           file header
        writeframes(data)
                        -- write audio frames and patch up the file header
        close()         -- patch up the file header and close the
                           output file
You should set the parameters before the first writeframesraw or
writeframes.  The total number of frames does not need to be set,
but when it is set to the correct value, the header does not have to
be patched up.
It is best to first set all parameters, perhaps possibly the
compression type, and then write audio frames using writeframesraw.
When all frames have been written, either call writeframes(b'') or
close() to patch up the sizes in the header.
The close() method is called automatically when the class instance
is destroyed.
"""

from collections import namedtuple
import warnings

warnings._deprecated(__name__, remove=(3, 13))


_sunau_params = namedtuple('_sunau_params',
                           'nchannels sampwidth framerate nframes comptype compname')

# from <multimedia/audio_filehdr.h>
AUDIO_FILE_MAGIC = 0x2e736e64
AUDIO_FILE_ENCODING_MULAW_8 = 1
AUDIO_FILE_ENCODING_LINEAR_8 = 2
AUDIO_FILE_ENCODING_LINEAR_16 = 3
AUDIO_FILE_ENCODING_LINEAR_24 = 4
AUDIO_FILE_ENCODING_LINEAR_32 = 5
AUDIO_FILE_ENCODING_FLOAT = 6
AUDIO_FILE_ENCODING_DOUBLE = 7
AUDIO_FILE_ENCODING_ADPCM_G721 = 23
AUDIO_FILE_ENCODING_ADPCM_G722 = 24
AUDIO_FILE_ENCODING_ADPCM_G723_3 = 25
AUDIO_FILE_ENCODING_ADPCM_G723_5 = 26
AUDIO_FILE_ENCODING_ALAW_8 = 27

# from <multimedia/audio_hdr.h>
AUDIO_UNKNOWN_SIZE = 0xFFFFFFFF        # ((unsigned)(~0))

_simple_encodings = [AUDIO_FILE_ENCODING_MULAW_8,
                     AUDIO_FILE_ENCODING_LINEAR_8,
                     AUDIO_FILE_ENCODING_LINEAR_16,
                     AUDIO_FILE_ENCODING_LINEAR_24,
                     AUDIO_FILE_ENCODING_LINEAR_32,
                     AUDIO_FILE_ENCODING_ALAW_8]

class Error(Exception):
    pass

def _read_u32(file):
    x = 0
    for i in range(4):
        byte = file.read(1)
        if not byte:
            raise EOFError
        x = x*256 + ord(byte)
    return x

def _write_u32(file, x):
    data = []
    for i in range(4):
        d, m = divmod(x, 256)
        data.insert(0, int(m))
        x = d
    file.write(bytes(data))

class Au_read:

    def __init__(self, f):
        if type(f) == type(''):
            import builtins
            f = builtins.open(f, 'rb')
            self._opened = True
        else:
            self._opened = False
        self.initfp(f)

    def __del__(self):
        if self._file:
            self.close()

    def __enter__(self):
        return self

    def __exit__(self, *args):
        self.close()

    def initfp(self, file):
        self._file = file
        self._soundpos = 0
        magic = int(_read_u32(file))
        if magic != AUDIO_FILE_MAGIC:
            raise Error('bad magic number')
        self._hdr_size = int(_read_u32(file))
        if self._hdr_size < 24:
            raise Error('header size too small')
        if self._hdr_size > 100:
            raise Error('header size ridiculously large')
        self._data_size = _read_u32(file)
        if self._data_size != AUDIO_UNKNOWN_SIZE:
            self._data_size = int(self._data_size)
        self._encoding = int(_read_u32(file))
        if self._encoding not in _simple_encodings:
            raise Error('encoding not (yet) supported')
        if self._encoding in (AUDIO_FILE_ENCODING_MULAW_8,
                  AUDIO_FILE_ENCODING_ALAW_8):
            self._sampwidth = 2
            self._framesize = 1
        elif self._encoding == AUDIO_FILE_ENCODING_LINEAR_8:
            self._framesize = self._sampwidth = 1
        elif self._encoding == AUDIO_FILE_ENCODING_LINEAR_16:
            self._framesize = self._sampwidth = 2
        elif self._encoding == AUDIO_FILE_ENCODING_LINEAR_24:
            self._framesize = self._sampwidth = 3
        elif self._encoding == AUDIO_FILE_ENCODING_LINEAR_32:
            self._framesize = self._sampwidth = 4
        else:
            raise Error('unknown encoding')
        self._framerate = int(_read_u32(file))
        self._nchannels = int(_read_u32(file))
        if not self._nchannels:
            raise Error('bad # of channels')
        self._framesize = self._framesize * self._nchannels
        if self._hdr_size > 24:
            self._info = file.read(self._hdr_size - 24)
            self._info, _, _ = self._info.partition(b'\0')
        else:
            self._info = b''
        try:
            self._data_pos = file.tell()
        except (AttributeError, OSError):
            self._data_pos = None

    def getfp(self):
        return self._file

    def getnchannels(self):
        return self._nchannels

    def getsampwidth(self):
        return self._sampwidth

    def getframerate(self):
        return self._framerate

    def getnframes(self):
        if self._data_size == AUDIO_UNKNOWN_SIZE:
            return AUDIO_UNKNOWN_SIZE
        if self._encoding in _simple_encodings:
            return self._data_size // self._framesize
        return 0                # XXX--must do some arithmetic here

    def getcomptype(self):
        if self._encoding == AUDIO_FILE_ENCODING_MULAW_8:
            return 'ULAW'
        elif self._encoding == AUDIO_FILE_ENCODING_ALAW_8:
            return 'ALAW'
        else:
            return 'NONE'

    def getcompname(self):
        if self._encoding == AUDIO_FILE_ENCODING_MULAW_8:
            return 'CCITT G.711 u-law'
        elif self._encoding == AUDIO_FILE_ENCODING_ALAW_8:
            return 'CCITT G.711 A-law'
        else:
            return 'not compressed'

    def getparams(self):
        return _sunau_params(self.getnchannels(), self.getsampwidth(),
                  self.getframerate(), self.getnframes(),
                  self.getcomptype(), self.getcompname())

    def getmarkers(self):
        return None

    def getmark(self, id):
        raise Error('no marks')

    def readframes(self, nframes):
        if self._encoding in _simple_encodings:
            if nframes == AUDIO_UNKNOWN_SIZE:
                data = self._file.read()
            else:
                data = self._file.read(nframes * self._framesize)
            self._soundpos += len(data) // self._framesize
            if self._encoding == AUDIO_FILE_ENCODING_MULAW_8:
                with warnings.catch_warnings():
                    warnings.simplefilter('ignore', category=DeprecationWarning)
                    import audioop
                data = audioop.ulaw2lin(data, self._sampwidth)
            return data
        return None             # XXX--not implemented yet

    def rewind(self):
        if self._data_pos is None:
            raise OSError('cannot seek')
        self._file.seek(self._data_pos)
        self._soundpos = 0

    def tell(self):
        return self._soundpos

    def setpos(self, pos):
        if pos < 0 or pos > self.getnframes():
            raise Error('position not in range')
        if self._data_pos is None:
            raise OSError('cannot seek')
        self._file.seek(self._data_pos + pos * self._framesize)
        self._soundpos = pos

    def close(self):
        file = self._file
        if file:
            self._file = None
            if self._opened:
                file.close()

class Au_write:

    def __init__(self, f):
        if type(f) == type(''):
            import builtins
            f = builtins.open(f, 'wb')
            self._opened = True
        else:
            self._opened = False
        self.initfp(f)

    def __del__(self):
        if self._file:
            self.close()
        self._file = None

    def __enter__(self):
        return self

    def __exit__(self, *args):
        self.close()

    def initfp(self, file):
        self._file = file
        self._framerate = 0
        self._nchannels = 0
        self._sampwidth = 0
        self._framesize = 0
        self._nframes = AUDIO_UNKNOWN_SIZE
        self._nframeswritten = 0
        self._datawritten = 0
        self._datalength = 0
        self._info = b''
        self._comptype = 'ULAW' # default is U-law

    def setnchannels(self, nchannels):
        if self._nframeswritten:
            raise Error('cannot change parameters after starting to write')
        if nchannels not in (1, 2, 4):
            raise Error('only 1, 2, or 4 channels supported')
        self._nchannels = nchannels

    def getnchannels(self):
        if not self._nchannels:
            raise Error('number of channels not set')
        return self._nchannels

    def setsampwidth(self, sampwidth):
        if self._nframeswritten:
            raise Error('cannot change parameters after starting to write')
        if sampwidth not in (1, 2, 3, 4):
            raise Error('bad sample width')
        self._sampwidth = sampwidth

    def getsampwidth(self):
        if not self._framerate:
            raise Error('sample width not specified')
        return self._sampwidth

    def setframerate(self, framerate):
        if self._nframeswritten:
            raise Error('cannot change parameters after starting to write')
        self._framerate = framerate

    def getframerate(self):
        if not self._framerate:
            raise Error('frame rate not set')
        return self._framerate

    def setnframes(self, nframes):
        if self._nframeswritten:
            raise Error('cannot change parameters after starting to write')
        if nframes < 0:
            raise Error('# of frames cannot be negative')
        self._nframes = nframes

    def getnframes(self):
        return self._nframeswritten

    def setcomptype(self, type, name):
        if type in ('NONE', 'ULAW'):
            self._comptype = type
        else:
            raise Error('unknown compression type')

    def getcomptype(self):
        return self._comptype

    def getcompname(self):
        if self._comptype == 'ULAW':
            return 'CCITT G.711 u-law'
        elif self._comptype == 'ALAW':
            return 'CCITT G.711 A-law'
        else:
            return 'not compressed'

    def setparams(self, params):
        nchannels, sampwidth, framerate, nframes, comptype, compname = params
        self.setnchannels(nchannels)
        self.setsampwidth(sampwidth)
        self.setframerate(framerate)
        self.setnframes(nframes)
        self.setcomptype(comptype, compname)

    def getparams(self):
        return _sunau_params(self.getnchannels(), self.getsampwidth(),
                  self.getframerate(), self.getnframes(),
                  self.getcomptype(), self.getcompname())

    def tell(self):
        return self._nframeswritten

    def writeframesraw(self, data):
        if not isinstance(data, (bytes, bytearray)):
            data = memoryview(data).cast('B')
        self._ensure_header_written()
        if self._comptype == 'ULAW':
            with warnings.catch_warnings():
                warnings.simplefilter('ignore', category=DeprecationWarning)
                import audioop
            data = audioop.lin2ulaw(data, self._sampwidth)
        nframes = len(data) // self._framesize
        self._file.write(data)
        self._nframeswritten = self._nframeswritten + nframes
        self._datawritten = self._datawritten + len(data)

    def writeframes(self, data):
        self.writeframesraw(data)
        if self._nframeswritten != self._nframes or \
                  self._datalength != self._datawritten:
            self._patchheader()

    def close(self):
        if self._file:
            try:
                self._ensure_header_written()
                if self._nframeswritten != self._nframes or \
                        self._datalength != self._datawritten:
                    self._patchheader()
                self._file.flush()
            finally:
                file = self._file
                self._file = None
                if self._opened:
                    file.close()

    #
    # private methods
    #

    def _ensure_header_written(self):
        if not self._nframeswritten:
            if not self._nchannels:
                raise Error('# of channels not specified')
            if not self._sampwidth:
                raise Error('sample width not specified')
            if not self._framerate:
                raise Error('frame rate not specified')
            self._write_header()

    def _write_header(self):
        if self._comptype == 'NONE':
            if self._sampwidth == 1:
                encoding = AUDIO_FILE_ENCODING_LINEAR_8
                self._framesize = 1
            elif self._sampwidth == 2:
                encoding = AUDIO_FILE_ENCODING_LINEAR_16
                self._framesize = 2
            elif self._sampwidth == 3:
                encoding = AUDIO_FILE_ENCODING_LINEAR_24
                self._framesize = 3
            elif self._sampwidth == 4:
                encoding = AUDIO_FILE_ENCODING_LINEAR_32
                self._framesize = 4
            else:
                raise Error('internal error')
        elif self._comptype == 'ULAW':
            encoding = AUDIO_FILE_ENCODING_MULAW_8
            self._framesize = 1
        else:
            raise Error('internal error')
        self._framesize = self._framesize * self._nchannels
        _write_u32(self._file, AUDIO_FILE_MAGIC)
        header_size = 25 + len(self._info)
        header_size = (header_size + 7) & ~7
        _write_u32(self._file, header_size)
        if self._nframes == AUDIO_UNKNOWN_SIZE:
            length = AUDIO_UNKNOWN_SIZE
        else:
            length = self._nframes * self._framesize
        try:
            self._form_length_pos = self._file.tell()
        except (AttributeError, OSError):
            self._form_length_pos = None
        _write_u32(self._file, length)
        self._datalength = length
        _write_u32(self._file, encoding)
        _write_u32(self._file, self._framerate)
        _write_u32(self._file, self._nchannels)
        self._file.write(self._info)
        self._file.write(b'\0'*(header_size - len(self._info) - 24))

    def _patchheader(self):
        if self._form_length_pos is None:
            raise OSError('cannot seek')
        self._file.seek(self._form_length_pos)
        _write_u32(self._file, self._datawritten)
        self._datalength = self._datawritten
        self._file.seek(0, 2)

def open(f, mode=None):
    if mode is None:
        if hasattr(f, 'mode'):
            mode = f.mode
        else:
            mode = 'rb'
    if mode in ('r', 'rb'):
        return Au_read(f)
    elif mode in ('w', 'wb'):
        return Au_write(f)
    else:
        raise Error("mode must be 'r', 'rb', 'w', or 'wb'")

Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


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

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