
    e7                    d    d dl mZ d dlZd dlmZ d dlmZmZ ddlm	Z	 ddZ
ddZ G d	 d
      Zy)    )annotationsN)Path)AnyNoReturn   )	TypeGuardc                8    t        | t        t        t        f      S N)
isinstancebytesstrr   fs    +/usr/lib/python3/dist-packages/PIL/_util.pyis_pathr   
   s    a%d+,,    c                Z    t        |       xr t        j                  j                  |       S )zCChecks if an object is a string, and that it points to a directory.)r   ospathisdirr   s    r   is_directoryr      s    1:*"''--**r   c                  .    e Zd ZddZddZedd       Zy)DeferredErrorc                    || _         y r
   ex)selfr   s     r   __init__zDeferredError.__init__   s	    r   c                    | j                   r
   r   )r   elts     r   __getattr__zDeferredError.__getattr__   s    ggr   c                    t        |       S )z
        Creates an object that raises the wrapped exception ``ex`` when used,
        and casts it to :py:obj:`~typing.Any` type.
        )r   r   s    r   newzDeferredError.new   s     R  r   N)r   BaseException)r    r   returnr   )r   r$   r%   r   )__name__
__module____qualname__r   r!   staticmethodr#    r   r   r   r      s      ! !r   r   )r   r   r%   zTypeGuard[bytes | str | Path])
__future__r   r   pathlibr   typingr   r   _typingr   r   r   r   r*   r   r   <module>r/      s(    " 	    -+
! !r   