__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
"""Cache lines from Python source files.

This is intended to read lines from modules imported -- hence if a filename
is not found, it will look down the module search path for a file by
that name.
"""

__all__ = ["getline", "clearcache", "checkcache", "lazycache"]


# The cache. Maps filenames to either a thunk which will provide source code,
# or a tuple (size, mtime, lines, fullname) once loaded.
cache = {}
_interactive_cache = {}


def clearcache():
    """Clear the cache entirely."""
    cache.clear()


def getline(filename, lineno, module_globals=None):
    """Get a line for a Python source file from the cache.
    Update the cache if it doesn't contain an entry for this file already."""

    lines = getlines(filename, module_globals)
    if 1 <= lineno <= len(lines):
        return lines[lineno - 1]
    return ''


def getlines(filename, module_globals=None):
    """Get the lines for a Python source file from the cache.
    Update the cache if it doesn't contain an entry for this file already."""

    if filename in cache:
        entry = cache[filename]
        if len(entry) != 1:
            return cache[filename][2]

    try:
        return updatecache(filename, module_globals)
    except MemoryError:
        clearcache()
        return []


def _getline_from_code(filename, lineno):
    lines = _getlines_from_code(filename)
    if 1 <= lineno <= len(lines):
        return lines[lineno - 1]
    return ''

def _make_key(code):
    return (code.co_filename, code.co_qualname, code.co_firstlineno)

def _getlines_from_code(code):
    code_id = _make_key(code)
    if code_id in _interactive_cache:
        entry = _interactive_cache[code_id]
        if len(entry) != 1:
            return _interactive_cache[code_id][2]
    return []


def checkcache(filename=None):
    """Discard cache entries that are out of date.
    (This is not checked upon each call!)"""

    if filename is None:
        # get keys atomically
        filenames = cache.copy().keys()
    else:
        filenames = [filename]

    for filename in filenames:
        try:
            entry = cache[filename]
        except KeyError:
            continue

        if len(entry) == 1:
            # lazy cache entry, leave it lazy.
            continue
        size, mtime, lines, fullname = entry
        if mtime is None:
            continue   # no-op for files loaded via a __loader__
        try:
            # This import can fail if the interpreter is shutting down
            import os
        except ImportError:
            return
        try:
            stat = os.stat(fullname)
        except (OSError, ValueError):
            cache.pop(filename, None)
            continue
        if size != stat.st_size or mtime != stat.st_mtime:
            cache.pop(filename, None)


def updatecache(filename, module_globals=None):
    """Update a cache entry and return its list of lines.
    If something's wrong, print a message, discard the cache entry,
    and return an empty list."""

    # These imports are not at top level because linecache is in the critical
    # path of the interpreter startup and importing os and sys take a lot of time
    # and slows down the startup sequence.
    try:
        import os
        import sys
        import tokenize
    except ImportError:
        # These import can fail if the interpreter is shutting down
        return []

    if filename in cache:
        if len(cache[filename]) != 1:
            cache.pop(filename, None)
    if not filename or (filename.startswith('<') and filename.endswith('>')):
        return []

    fullname = filename
    try:
        stat = os.stat(fullname)
    except OSError:
        basename = filename

        # Realise a lazy loader based lookup if there is one
        # otherwise try to lookup right now.
        if lazycache(filename, module_globals):
            try:
                data = cache[filename][0]()
            except (ImportError, OSError):
                pass
            else:
                if data is None:
                    # No luck, the PEP302 loader cannot find the source
                    # for this module.
                    return []
                cache[filename] = (
                    len(data),
                    None,
                    [line + '\n' for line in data.splitlines()],
                    fullname
                )
                return cache[filename][2]

        # Try looking through the module search path, which is only useful
        # when handling a relative filename.
        if os.path.isabs(filename):
            return []

        for dirname in sys.path:
            try:
                fullname = os.path.join(dirname, basename)
            except (TypeError, AttributeError):
                # Not sufficiently string-like to do anything useful with.
                continue
            try:
                stat = os.stat(fullname)
                break
            except (OSError, ValueError):
                pass
        else:
            return []
    except ValueError:  # may be raised by os.stat()
        return []
    try:
        with tokenize.open(fullname) as fp:
            lines = fp.readlines()
    except (OSError, UnicodeDecodeError, SyntaxError):
        return []
    if not lines:
        lines = ['\n']
    elif not lines[-1].endswith('\n'):
        lines[-1] += '\n'
    size, mtime = stat.st_size, stat.st_mtime
    cache[filename] = size, mtime, lines, fullname
    return lines


def lazycache(filename, module_globals):
    """Seed the cache for filename with module_globals.

    The module loader will be asked for the source only when getlines is
    called, not immediately.

    If there is an entry in the cache already, it is not altered.

    :return: True if a lazy load is registered in the cache,
        otherwise False. To register such a load a module loader with a
        get_source method must be found, the filename must be a cacheable
        filename, and the filename must not be already cached.
    """
    if filename in cache:
        if len(cache[filename]) == 1:
            return True
        else:
            return False
    if not filename or (filename.startswith('<') and filename.endswith('>')):
        return False
    # Try for a __loader__, if available
    if module_globals and '__name__' in module_globals:
        spec = module_globals.get('__spec__')
        name = getattr(spec, 'name', None) or module_globals['__name__']
        loader = getattr(spec, 'loader', None)
        if loader is None:
            loader = module_globals.get('__loader__')
        get_source = getattr(loader, 'get_source', None)

        if name and get_source:
            def get_lines(name=name, *args, **kwargs):
                return get_source(name, *args, **kwargs)
            cache[filename] = (get_lines,)
            return True
    return False

def _register_code(code, string, name):
    entry = (len(string),
             None,
             [line + '\n' for line in string.splitlines()],
             name)
    stack = [code]
    while stack:
        code = stack.pop()
        for const in code.co_consts:
            if isinstance(const, type(code)):
                stack.append(const)
        _interactive_cache[_make_key(code)] = entry

Filemanager

Name Type Size Permission Actions
__phello__ Folder 0755
__pycache__ Folder 0755
_pyrepl Folder 0755
asyncio Folder 0755
collections Folder 0755
concurrent Folder 0755
config-3.13-x86_64-linux-gnu Folder 0755
ctypes Folder 0755
curses Folder 0755
dbm Folder 0755
email Folder 0755
encodings Folder 0755
html Folder 0755
http Folder 0755
importlib Folder 0755
json Folder 0755
lib-dynload Folder 0755
logging Folder 0755
multiprocessing Folder 0755
pathlib Folder 0755
pydoc_data Folder 0755
re Folder 0755
sqlite3 Folder 0755
sysconfig Folder 0755
test Folder 0755
tomllib Folder 0755
unittest Folder 0755
urllib Folder 0755
venv Folder 0755
wsgiref Folder 0755
xml Folder 0755
xmlrpc Folder 0755
zipfile Folder 0755
zoneinfo Folder 0755
EXTERNALLY-MANAGED File 645 B 0644
LICENSE.txt File 13.49 KB 0644
__future__.py File 5.1 KB 0644
__hello__.py File 227 B 0644
_aix_support.py File 3.93 KB 0644
_android_support.py File 6.73 KB 0644
_apple_support.py File 2.2 KB 0644
_collections_abc.py File 31.51 KB 0644
_colorize.py File 2.78 KB 0644
_compat_pickle.py File 8.53 KB 0644
_compression.py File 5.55 KB 0644
_distutils_system_mod.py File 5.58 KB 0644
_ios_support.py File 2.61 KB 0644
_markupbase.py File 14.31 KB 0644
_opcode_metadata.py File 9.05 KB 0644
_osx_support.py File 21.51 KB 0644
_py_abc.py File 6.04 KB 0644
_pydatetime.py File 89.83 KB 0644
_pydecimal.py File 221.96 KB 0644
_pyio.py File 91.1 KB 0644
_pylong.py File 11.55 KB 0644
_sitebuiltins.py File 3.05 KB 0644
_strptime.py File 28.69 KB 0644
_sysconfigdata__linux_x86_64-linux-gnu.py File 46.85 KB 0644
_sysconfigdata__x86_64-linux-gnu.py File 46.85 KB 0644
_threading_local.py File 7.05 KB 0644
_weakrefset.py File 5.75 KB 0644
abc.py File 6.38 KB 0644
antigravity.py File 500 B 0644
argparse.py File 99.65 KB 0644
ast.py File 63.91 KB 0644
base64.py File 21.12 KB 0755
bdb.py File 34.51 KB 0644
bisect.py File 3.34 KB 0644
bz2.py File 11.69 KB 0644
cProfile.py File 6.47 KB 0755
calendar.py File 25.47 KB 0644
cmd.py File 14.96 KB 0644
code.py File 12.86 KB 0644
codecs.py File 36.06 KB 0644
codeop.py File 5.69 KB 0644
colorsys.py File 3.97 KB 0644
compileall.py File 20.27 KB 0644
configparser.py File 52.51 KB 0644
contextlib.py File 27.15 KB 0644
contextvars.py File 129 B 0644
copy.py File 8.76 KB 0644
copyreg.py File 7.44 KB 0644
csv.py File 18.73 KB 0644
dataclasses.py File 63.03 KB 0644
datetime.py File 268 B 0644
decimal.py File 2.73 KB 0644
difflib.py File 81.41 KB 0644
dis.py File 40 KB 0644
doctest.py File 106.77 KB 0644
enum.py File 83.48 KB 0644
filecmp.py File 10.4 KB 0644
fileinput.py File 15.35 KB 0644
fnmatch.py File 6.04 KB 0644
fractions.py File 39.08 KB 0644
ftplib.py File 33.92 KB 0644
functools.py File 38.21 KB 0644
genericpath.py File 6.1 KB 0644
getopt.py File 7.31 KB 0644
getpass.py File 6.09 KB 0644
gettext.py File 21.45 KB 0644
glob.py File 19.26 KB 0644
graphlib.py File 9.42 KB 0644
gzip.py File 24.06 KB 0644
hashlib.py File 9.13 KB 0644
heapq.py File 22.48 KB 0644
hmac.py File 7.54 KB 0644
imaplib.py File 52.77 KB 0644
inspect.py File 124.36 KB 0644
io.py File 3.5 KB 0644
ipaddress.py File 79.23 KB 0644
keyword.py File 1.05 KB 0644
linecache.py File 7.11 KB 0644
locale.py File 77.13 KB 0644
lzma.py File 13.08 KB 0644
mailbox.py File 79.73 KB 0644
mimetypes.py File 23.29 KB 0644
modulefinder.py File 23.23 KB 0644
netrc.py File 6.76 KB 0644
ntpath.py File 30.12 KB 0644
nturl2path.py File 2.32 KB 0644
numbers.py File 11.2 KB 0644
opcode.py File 2.76 KB 0644
operator.py File 10.72 KB 0644
optparse.py File 58.95 KB 0644
os.py File 40.62 KB 0644
pdb.py File 88.79 KB 0755
pickle.py File 65.39 KB 0644
pickletools.py File 91.85 KB 0644
pkgutil.py File 17.85 KB 0644
platform.py File 46.24 KB 0755
plistlib.py File 29.1 KB 0644
poplib.py File 14.26 KB 0644
posixpath.py File 17.81 KB 0644
pprint.py File 23.59 KB 0644
profile.py File 22.6 KB 0755
pstats.py File 28.61 KB 0644
pty.py File 5.99 KB 0644
py_compile.py File 7.65 KB 0644
pyclbr.py File 11.13 KB 0644
pydoc.py File 107.65 KB 0755
queue.py File 13.17 KB 0644
quopri.py File 7.01 KB 0755
random.py File 36.14 KB 0644
reprlib.py File 7.02 KB 0644
rlcompleter.py File 7.73 KB 0644
runpy.py File 12.58 KB 0644
sched.py File 6.2 KB 0644
secrets.py File 1.94 KB 0644
selectors.py File 19 KB 0644
shelve.py File 8.6 KB 0644
shlex.py File 13.04 KB 0644
shutil.py File 56.12 KB 0644
signal.py File 2.44 KB 0644
site.py File 25.85 KB 0644
sitecustomize.py File 155 B 0644
smtplib.py File 42.51 KB 0755
socket.py File 36.87 KB 0644
socketserver.py File 27.41 KB 0644
sre_compile.py File 231 B 0644
sre_constants.py File 232 B 0644
sre_parse.py File 229 B 0644
ssl.py File 51.47 KB 0644
stat.py File 6 KB 0644
statistics.py File 60.38 KB 0644
string.py File 11.51 KB 0644
stringprep.py File 12.61 KB 0644
struct.py File 257 B 0644
subprocess.py File 87.15 KB 0644
symtable.py File 13.87 KB 0644
tabnanny.py File 11.26 KB 0755
tarfile.py File 111.49 KB 0755
tempfile.py File 39.15 KB 0644
textwrap.py File 19.47 KB 0644
this.py File 1003 B 0644
threading.py File 53.87 KB 0644
timeit.py File 13.15 KB 0755
token.py File 2.43 KB 0644
tokenize.py File 21.06 KB 0644
trace.py File 29.02 KB 0755
traceback.py File 64.31 KB 0644
tracemalloc.py File 17.62 KB 0644
tty.py File 1.99 KB 0644
turtle.py File 141.92 KB 0644
types.py File 10.94 KB 0644
typing.py File 129.61 KB 0644
uuid.py File 28.46 KB 0644
warnings.py File 26.32 KB 0644
wave.py File 22.69 KB 0644
weakref.py File 21.01 KB 0644
webbrowser.py File 23.71 KB 0755
zipapp.py File 8.42 KB 0644
zipimport.py File 32.12 KB 0644
Filemanager