Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
Toggle table of contents sidebar

# Source code for PIL._util

    from __future__ import annotations

    import os
    from typing import Any, NoReturn

    from ._typing import StrOrBytesPath, TypeGuard

    def is_path(f: Any) -> TypeGuard[StrOrBytesPath]:
        return isinstance(f, (bytes, str, os.PathLike))

    class DeferredError:
        def __init__(self, ex: BaseException):
            self.ex = ex

        def __getattr__(self, elt: str) -> NoReturn:
            raise self.ex

        @staticmethod
        def new(ex: BaseException) -> Any:
            """
            Creates an object that raises the wrapped exception ``ex`` when used,
            and casts it to :py:obj:`~typing.Any` type.
            """
            return DeferredError(ex)