SILENT KILLERPanel

Current Path: > > opt > alt > python310 > lib64 > > python3.10 > importlib


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/python310/lib64//python3.10/importlib

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
metadata Directory - -
__init__.py File 6089 bytes June 03 2025 18:23:41.
_abc.py File 1852 bytes June 03 2025 18:23:41.
_adapters.py File 1908 bytes June 03 2025 18:23:41.
_bootstrap.py File 41467 bytes June 03 2025 18:23:41.
_bootstrap_external.py File 64850 bytes June 03 2025 18:23:41.
_common.py File 3222 bytes June 03 2025 18:23:41.
abc.py File 14421 bytes June 03 2025 18:23:41.
machinery.py File 831 bytes June 03 2025 18:23:41.
readers.py File 3587 bytes June 03 2025 18:23:41.
resources.py File 5705 bytes June 03 2025 18:23:41.
util.py File 11487 bytes June 03 2025 18:23:41.

Reading File: //opt/alt/python310/lib64//python3.10/importlib/_adapters.py

from contextlib import suppress

from . import abc


class SpecLoaderAdapter:
    """
    Adapt a package spec to adapt the underlying loader.
    """

    def __init__(self, spec, adapter=lambda spec: spec.loader):
        self.spec = spec
        self.loader = adapter(spec)

    def __getattr__(self, name):
        return getattr(self.spec, name)


class TraversableResourcesLoader:
    """
    Adapt a loader to provide TraversableResources.
    """

    def __init__(self, spec):
        self.spec = spec

    def get_resource_reader(self, name):
        return DegenerateFiles(self.spec)._native()


class DegenerateFiles:
    """
    Adapter for an existing or non-existant resource reader
    to provide a degenerate .files().
    """

    class Path(abc.Traversable):
        def iterdir(self):
            return iter(())

        def is_dir(self):
            return False

        is_file = exists = is_dir  # type: ignore

        def joinpath(self, other):
            return DegenerateFiles.Path()

        @property
        def name(self):
            return ''

        def open(self, mode='rb', *args, **kwargs):
            raise ValueError()

    def __init__(self, spec):
        self.spec = spec

    @property
    def _reader(self):
        with suppress(AttributeError):
            return self.spec.loader.get_resource_reader(self.spec.name)

    def _native(self):
        """
        Return the native reader if it supports files().
        """
        reader = self._reader
        return reader if hasattr(reader, 'files') else self

    def __getattr__(self, attr):
        return getattr(self._reader, attr)

    def files(self):
        return DegenerateFiles.Path()


def wrap_spec(package):
    """
    Construct a package spec with traversable compatibility
    on the spec/loader/reader.
    """
    return SpecLoaderAdapter(package.__spec__, TraversableResourcesLoader)

SILENT KILLER Tool