SILENT KILLERPanel

Current Path: > > opt > > alt > python39 > lib64 > python3.9 > >


Operation   : Linux premium131.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
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt//alt/python39/lib64/python3.9//

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
asyncio Directory - -
collections Directory - -
concurrent Directory - -
config-3.9-x86_64-linux-gnu Directory - -
ctypes Directory - -
curses Directory - -
dbm Directory - -
distutils Directory - -
email Directory - -
encodings Directory - -
ensurepip Directory - -
html Directory - -
http Directory - -
importlib Directory - -
json Directory - -
lib-dynload Directory - -
lib2to3 Directory - -
logging Directory - -
multiprocessing Directory - -
pydoc_data Directory - -
site-packages Directory - -
sqlite3 Directory - -
unittest Directory - -
urllib Directory - -
venv Directory - -
wsgiref Directory - -
xml Directory - -
xmlrpc Directory - -
zoneinfo Directory - -
LICENSE.txt File 13937 bytes June 03 2025 18:47:52.
__future__.py File 5147 bytes June 03 2025 18:47:52.
__phello__.foo.py File 64 bytes June 03 2025 18:47:52.
_aix_support.py File 3389 bytes June 03 2025 18:47:52.
_bootlocale.py File 1801 bytes June 03 2025 18:47:52.
_bootsubprocess.py File 2675 bytes June 03 2025 18:47:52.
_collections_abc.py File 29374 bytes June 03 2025 18:47:52.
_compat_pickle.py File 8749 bytes June 03 2025 18:47:52.
_compression.py File 5340 bytes June 03 2025 18:47:52.
_markupbase.py File 14623 bytes June 03 2025 18:47:52.
_osx_support.py File 21773 bytes June 03 2025 18:47:52.
_py_abc.py File 6189 bytes June 03 2025 18:47:52.
_pydecimal.py File 228666 bytes June 03 2025 18:47:52.
_pyio.py File 93316 bytes June 03 2025 18:47:52.
_sitebuiltins.py File 3115 bytes June 03 2025 18:47:52.
_strptime.py File 25277 bytes June 03 2025 18:47:52.
_sysconfigdata__linux_x86_64-linux-gnu.py File 40536 bytes June 19 2025 12:09:48.
_sysconfigdata_d_linux_x86_64-linux-gnu.py File 40272 bytes June 19 2025 12:00:02.
_threading_local.py File 7220 bytes June 03 2025 18:47:52.
_weakrefset.py File 5923 bytes June 03 2025 18:47:52.
abc.py File 4920 bytes June 03 2025 18:47:52.
aifc.py File 32605 bytes June 03 2025 18:47:52.
antigravity.py File 500 bytes June 03 2025 18:47:52.
argparse.py File 98119 bytes June 03 2025 18:47:52.
ast.py File 56256 bytes June 03 2025 18:47:52.
asynchat.py File 11321 bytes June 03 2025 18:47:52.
asyncore.py File 20102 bytes June 03 2025 18:47:52.
base64.py File 19872 bytes June 03 2025 18:47:52.
bdb.py File 31389 bytes June 03 2025 18:47:52.
binhex.py File 14784 bytes June 03 2025 18:47:52.
bisect.py File 2350 bytes June 03 2025 18:47:52.
bz2.py File 12447 bytes June 03 2025 18:47:52.
cProfile.py File 6358 bytes June 03 2025 18:47:52.
calendar.py File 24832 bytes June 03 2025 18:47:52.
cgi.py File 33945 bytes June 03 2025 18:47:52.
cgitb.py File 12096 bytes June 03 2025 18:47:52.
chunk.py File 5435 bytes June 03 2025 18:47:52.
cmd.py File 14860 bytes June 03 2025 18:47:52.
code.py File 10622 bytes June 03 2025 18:47:52.
codecs.py File 36673 bytes June 03 2025 18:47:52.
codeop.py File 6326 bytes June 03 2025 18:47:52.
colorsys.py File 4064 bytes June 03 2025 18:47:52.
compileall.py File 20105 bytes June 03 2025 18:47:52.
configparser.py File 54584 bytes June 03 2025 18:47:52.
contextlib.py File 24624 bytes June 03 2025 18:47:52.
contextvars.py File 129 bytes June 03 2025 18:47:52.
copy.py File 8650 bytes June 03 2025 18:47:52.
copyreg.py File 7274 bytes June 03 2025 18:47:52.
crypt.py File 3819 bytes June 03 2025 18:47:52.
csv.py File 16144 bytes June 03 2025 18:47:52.
dataclasses.py File 49586 bytes June 03 2025 18:47:52.
datetime.py File 89177 bytes June 03 2025 18:47:52.
decimal.py File 320 bytes June 03 2025 18:47:52.
difflib.py File 83307 bytes June 03 2025 18:47:52.
dis.py File 20570 bytes June 03 2025 18:47:52.
doctest.py File 104568 bytes June 03 2025 18:47:52.
enum.py File 39440 bytes June 03 2025 18:47:52.
filecmp.py File 10024 bytes June 03 2025 18:47:52.
fileinput.py File 14791 bytes June 03 2025 18:47:52.
fnmatch.py File 6004 bytes June 03 2025 18:47:52.
formatter.py File 15143 bytes June 03 2025 18:47:52.
fractions.py File 24323 bytes June 03 2025 18:47:52.
ftplib.py File 35496 bytes June 03 2025 18:47:52.
functools.py File 38881 bytes June 03 2025 18:47:52.
genericpath.py File 5246 bytes June 03 2025 18:47:52.
getopt.py File 7489 bytes June 03 2025 18:47:52.
getpass.py File 5990 bytes June 03 2025 18:47:52.
gettext.py File 27266 bytes June 03 2025 18:47:52.
glob.py File 5823 bytes June 03 2025 18:47:52.
graphlib.py File 9573 bytes June 03 2025 18:47:52.
gzip.py File 21772 bytes June 03 2025 18:47:52.
hashlib.py File 10010 bytes June 03 2025 18:47:52.
heapq.py File 22877 bytes June 03 2025 18:47:52.
hmac.py File 7003 bytes June 03 2025 18:47:52.
imaplib.py File 55256 bytes June 03 2025 18:47:52.
imghdr.py File 3808 bytes June 03 2025 18:47:52.
imp.py File 10536 bytes June 03 2025 18:47:52.
inspect.py File 118235 bytes June 03 2025 18:47:52.
io.py File 3541 bytes June 03 2025 18:47:52.
ipaddress.py File 80924 bytes June 03 2025 18:47:52.
keyword.py File 1047 bytes June 03 2025 18:47:52.
linecache.py File 5461 bytes June 03 2025 18:47:52.
locale.py File 78271 bytes June 03 2025 18:47:52.
lzma.py File 13231 bytes June 03 2025 18:47:52.
mailbox.py File 78794 bytes June 03 2025 18:47:52.
mailcap.py File 9116 bytes June 03 2025 18:47:52.
mimetypes.py File 21564 bytes June 03 2025 18:47:52.
modulefinder.py File 24401 bytes June 03 2025 18:47:52.
netrc.py File 5566 bytes June 03 2025 18:47:52.
nntplib.py File 41023 bytes June 03 2025 18:47:52.
ntpath.py File 28259 bytes June 03 2025 18:47:52.
nturl2path.py File 2887 bytes June 03 2025 18:47:52.
numbers.py File 10338 bytes June 03 2025 18:47:52.
opcode.py File 5660 bytes June 03 2025 18:47:52.
operator.py File 10751 bytes June 03 2025 18:47:52.
optparse.py File 60369 bytes June 03 2025 18:47:52.
os.py File 39065 bytes June 03 2025 18:47:52.
pathlib.py File 51134 bytes June 03 2025 18:47:52.
pdb.py File 63250 bytes June 03 2025 18:47:52.
pickle.py File 64920 bytes June 03 2025 18:47:52.
pickletools.py File 93486 bytes June 03 2025 18:47:52.
pipes.py File 8916 bytes June 03 2025 18:47:52.
pkgutil.py File 24276 bytes June 03 2025 18:47:52.
platform.py File 40614 bytes June 03 2025 18:47:52.
plistlib.py File 28248 bytes June 03 2025 18:47:52.
poplib.py File 15198 bytes June 03 2025 18:47:52.
posixpath.py File 16273 bytes June 03 2025 18:47:52.
pprint.py File 22527 bytes June 03 2025 18:47:52.
profile.py File 22894 bytes June 03 2025 18:47:52.
pstats.py File 29326 bytes June 03 2025 18:47:52.
pty.py File 4807 bytes June 03 2025 18:47:52.
py_compile.py File 8203 bytes June 19 2025 11:56:56.
pyclbr.py File 15255 bytes June 03 2025 18:47:52.
pydoc.py File 109612 bytes June 03 2025 18:47:52.
queue.py File 11496 bytes June 03 2025 18:47:52.
quopri.py File 7279 bytes June 03 2025 18:47:52.
random.py File 31484 bytes June 03 2025 18:47:52.
re.py File 15861 bytes June 03 2025 18:47:52.
reprlib.py File 5267 bytes June 03 2025 18:47:52.
rlcompleter.py File 7648 bytes June 03 2025 18:47:52.
runpy.py File 13084 bytes June 03 2025 18:47:52.
sched.py File 6442 bytes June 03 2025 18:47:52.
secrets.py File 2036 bytes June 03 2025 18:47:52.
selectors.py File 19536 bytes June 03 2025 18:47:52.
shelve.py File 8527 bytes June 03 2025 18:47:52.
shlex.py File 13501 bytes June 03 2025 18:47:52.
shutil.py File 53030 bytes June 03 2025 18:47:52.
signal.py File 2438 bytes June 03 2025 18:47:52.
site.py File 21844 bytes June 03 2025 18:47:52.
smtpd.py File 34834 bytes June 03 2025 18:47:52.
smtplib.py File 45418 bytes June 03 2025 18:47:52.
sndhdr.py File 7099 bytes June 03 2025 18:47:52.
socket.py File 36915 bytes June 03 2025 18:47:52.
socketserver.py File 27296 bytes June 03 2025 18:47:52.
sre_compile.py File 27973 bytes June 03 2025 18:47:52.
sre_constants.py File 7177 bytes June 03 2025 18:47:52.
sre_parse.py File 40779 bytes June 03 2025 18:47:52.
ssl.py File 52530 bytes June 03 2025 18:47:52.
stat.py File 5485 bytes June 03 2025 18:47:52.
statistics.py File 38067 bytes June 03 2025 18:47:52.
string.py File 10566 bytes June 03 2025 18:47:52.
stringprep.py File 12917 bytes June 03 2025 18:47:52.
struct.py File 257 bytes June 03 2025 18:47:52.
subprocess.py File 83564 bytes June 03 2025 18:47:52.
sunau.py File 18158 bytes June 03 2025 18:47:52.
symbol.py File 2281 bytes June 19 2025 12:01:19.
symtable.py File 7905 bytes June 03 2025 18:47:52.
sysconfig.py File 24914 bytes June 03 2025 18:47:52.
tabnanny.py File 11419 bytes June 03 2025 18:47:52.
tarfile.py File 110849 bytes June 03 2025 18:47:52.
telnetlib.py File 23254 bytes June 03 2025 18:47:52.
tempfile.py File 27963 bytes June 03 2025 18:47:52.
textwrap.py File 19407 bytes June 03 2025 18:47:52.
this.py File 1003 bytes June 03 2025 18:47:52.
threading.py File 54176 bytes June 03 2025 18:47:52.
timeit.py File 13493 bytes June 03 2025 18:47:52.
token.py File 2368 bytes June 03 2025 18:47:52.
tokenize.py File 25883 bytes June 03 2025 18:47:52.
trace.py File 29220 bytes June 03 2025 18:47:52.
traceback.py File 24660 bytes June 03 2025 18:47:52.
tracemalloc.py File 18047 bytes June 03 2025 18:47:52.
tty.py File 879 bytes June 03 2025 18:47:52.
types.py File 9785 bytes June 03 2025 18:47:52.
typing.py File 77044 bytes June 03 2025 18:47:52.
uu.py File 7277 bytes June 19 2025 12:10:58.
uuid.py File 27324 bytes June 03 2025 18:47:52.
warnings.py File 19688 bytes June 03 2025 18:47:52.
wave.py File 18004 bytes June 03 2025 18:47:52.
weakref.py File 21560 bytes June 03 2025 18:47:52.
webbrowser.py File 24096 bytes June 03 2025 18:47:52.
xdrlib.py File 5913 bytes June 03 2025 18:47:52.
zipapp.py File 7535 bytes June 03 2025 18:47:52.
zipfile.py File 88240 bytes June 03 2025 18:47:52.
zipimport.py File 30765 bytes June 03 2025 18:47:52.

Reading File: //opt//alt/python39/lib64/python3.9///shelve.py

"""Manage shelves of pickled objects.

A "shelf" is a persistent, dictionary-like object.  The difference
with dbm databases is that the values (not the keys!) in a shelf can
be essentially arbitrary Python objects -- anything that the "pickle"
module can handle.  This includes most class instances, recursive data
types, and objects containing lots of shared sub-objects.  The keys
are ordinary strings.

To summarize the interface (key is a string, data is an arbitrary
object):

        import shelve
        d = shelve.open(filename) # open, with (g)dbm filename -- no suffix

        d[key] = data   # store data at key (overwrites old data if
                        # using an existing key)
        data = d[key]   # retrieve a COPY of the data at key (raise
                        # KeyError if no such key) -- NOTE that this
                        # access returns a *copy* of the entry!
        del d[key]      # delete data stored at key (raises KeyError
                        # if no such key)
        flag = key in d # true if the key exists
        list = d.keys() # a list of all existing keys (slow!)

        d.close()       # close it

Dependent on the implementation, closing a persistent dictionary may
or may not be necessary to flush changes to disk.

Normally, d[key] returns a COPY of the entry.  This needs care when
mutable entries are mutated: for example, if d[key] is a list,
        d[key].append(anitem)
does NOT modify the entry d[key] itself, as stored in the persistent
mapping -- it only modifies the copy, which is then immediately
discarded, so that the append has NO effect whatsoever.  To append an
item to d[key] in a way that will affect the persistent mapping, use:
        data = d[key]
        data.append(anitem)
        d[key] = data

To avoid the problem with mutable entries, you may pass the keyword
argument writeback=True in the call to shelve.open.  When you use:
        d = shelve.open(filename, writeback=True)
then d keeps a cache of all entries you access, and writes them all back
to the persistent mapping when you call d.close().  This ensures that
such usage as d[key].append(anitem) works as intended.

However, using keyword argument writeback=True may consume vast amount
of memory for the cache, and it may make d.close() very slow, if you
access many of d's entries after opening it in this way: d has no way to
check which of the entries you access are mutable and/or which ones you
actually mutate, so it must cache, and write back at close, all of the
entries that you access.  You can call d.sync() to write back all the
entries in the cache, and empty the cache (d.sync() also synchronizes
the persistent dictionary on disk, if feasible).
"""

from pickle import Pickler, Unpickler
from io import BytesIO

import collections.abc

__all__ = ["Shelf", "BsdDbShelf", "DbfilenameShelf", "open"]

class _ClosedDict(collections.abc.MutableMapping):
    'Marker for a closed dict.  Access attempts raise a ValueError.'

    def closed(self, *args):
        raise ValueError('invalid operation on closed shelf')
    __iter__ = __len__ = __getitem__ = __setitem__ = __delitem__ = keys = closed

    def __repr__(self):
        return '<Closed Dictionary>'


class Shelf(collections.abc.MutableMapping):
    """Base class for shelf implementations.

    This is initialized with a dictionary-like object.
    See the module's __doc__ string for an overview of the interface.
    """

    def __init__(self, dict, protocol=None, writeback=False,
                 keyencoding="utf-8"):
        self.dict = dict
        if protocol is None:
            protocol = 3
        self._protocol = protocol
        self.writeback = writeback
        self.cache = {}
        self.keyencoding = keyencoding

    def __iter__(self):
        for k in self.dict.keys():
            yield k.decode(self.keyencoding)

    def __len__(self):
        return len(self.dict)

    def __contains__(self, key):
        return key.encode(self.keyencoding) in self.dict

    def get(self, key, default=None):
        if key.encode(self.keyencoding) in self.dict:
            return self[key]
        return default

    def __getitem__(self, key):
        try:
            value = self.cache[key]
        except KeyError:
            f = BytesIO(self.dict[key.encode(self.keyencoding)])
            value = Unpickler(f).load()
            if self.writeback:
                self.cache[key] = value
        return value

    def __setitem__(self, key, value):
        if self.writeback:
            self.cache[key] = value
        f = BytesIO()
        p = Pickler(f, self._protocol)
        p.dump(value)
        self.dict[key.encode(self.keyencoding)] = f.getvalue()

    def __delitem__(self, key):
        del self.dict[key.encode(self.keyencoding)]
        try:
            del self.cache[key]
        except KeyError:
            pass

    def __enter__(self):
        return self

    def __exit__(self, type, value, traceback):
        self.close()

    def close(self):
        if self.dict is None:
            return
        try:
            self.sync()
            try:
                self.dict.close()
            except AttributeError:
                pass
        finally:
            # Catch errors that may happen when close is called from __del__
            # because CPython is in interpreter shutdown.
            try:
                self.dict = _ClosedDict()
            except:
                self.dict = None

    def __del__(self):
        if not hasattr(self, 'writeback'):
            # __init__ didn't succeed, so don't bother closing
            # see http://bugs.python.org/issue1339007 for details
            return
        self.close()

    def sync(self):
        if self.writeback and self.cache:
            self.writeback = False
            for key, entry in self.cache.items():
                self[key] = entry
            self.writeback = True
            self.cache = {}
        if hasattr(self.dict, 'sync'):
            self.dict.sync()


class BsdDbShelf(Shelf):
    """Shelf implementation using the "BSD" db interface.

    This adds methods first(), next(), previous(), last() and
    set_location() that have no counterpart in [g]dbm databases.

    The actual database must be opened using one of the "bsddb"
    modules "open" routines (i.e. bsddb.hashopen, bsddb.btopen or
    bsddb.rnopen) and passed to the constructor.

    See the module's __doc__ string for an overview of the interface.
    """

    def __init__(self, dict, protocol=None, writeback=False,
                 keyencoding="utf-8"):
        Shelf.__init__(self, dict, protocol, writeback, keyencoding)

    def set_location(self, key):
        (key, value) = self.dict.set_location(key)
        f = BytesIO(value)
        return (key.decode(self.keyencoding), Unpickler(f).load())

    def next(self):
        (key, value) = next(self.dict)
        f = BytesIO(value)
        return (key.decode(self.keyencoding), Unpickler(f).load())

    def previous(self):
        (key, value) = self.dict.previous()
        f = BytesIO(value)
        return (key.decode(self.keyencoding), Unpickler(f).load())

    def first(self):
        (key, value) = self.dict.first()
        f = BytesIO(value)
        return (key.decode(self.keyencoding), Unpickler(f).load())

    def last(self):
        (key, value) = self.dict.last()
        f = BytesIO(value)
        return (key.decode(self.keyencoding), Unpickler(f).load())


class DbfilenameShelf(Shelf):
    """Shelf implementation using the "dbm" generic dbm interface.

    This is initialized with the filename for the dbm database.
    See the module's __doc__ string for an overview of the interface.
    """

    def __init__(self, filename, flag='c', protocol=None, writeback=False):
        import dbm
        Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)


def open(filename, flag='c', protocol=None, writeback=False):
    """Open a persistent dictionary for reading and writing.

    The filename parameter is the base filename for the underlying
    database.  As a side-effect, an extension may be added to the
    filename and more than one file may be created.  The optional flag
    parameter has the same interpretation as the flag parameter of
    dbm.open(). The optional protocol parameter specifies the
    version of the pickle protocol.

    See the module's __doc__ string for an overview of the interface.
    """

    return DbfilenameShelf(filename, flag, protocol, writeback)

SILENT KILLER Tool