????JFIF??x?x????'
| Server IP : 104.21.30.238  /  Your IP : 216.73.216.83 Web Server : LiteSpeed System : Linux premium151.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 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././././proc/self/root/proc/self/root/opt/alt/python310/lib64/python3.10/importlib/ | 
| Upload File : | 
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)