o
    >e7                     @  sb   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dZ
dddZG dd dZdS )    )annotationsN)Path)AnyNoReturn   )	TypeGuardfr   returnTypeGuard[bytes | str | Path]c                 C  s   t | tttfS N)
isinstancebytesstrr   r    r   J/var/www/html/humari/django-venv/lib/python3.10/site-packages/PIL/_util.pyis_path
   s   r   c                 C  s   t | o	tj| S )zCChecks if an object is a string, and that it points to a directory.)r   ospathisdirr   r   r   r   is_directory   s   r   c                   @  s.   e Zd ZdddZdd	d
ZedddZdS )DeferredErrorexBaseExceptionc                 C  s
   || _ d S r   r   )selfr   r   r   r   __init__   s   
zDeferredError.__init__eltr   r	   r   c                 C  s   | j r   r   )r   r   r   r   r   __getattr__   s   zDeferredError.__getattr__r   c                 C  s   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   r   r   r   new   s   zDeferredError.newN)r   r   )r   r   r	   r   )r   r   r	   r   )__name__
__module____qualname__r   r   staticmethodr   r   r   r   r   r      s
    

r   )r   r   r	   r
   )
__future__r   r   pathlibr   typingr   r   _typingr   r   r   r   r   r   r   r   <module>   s    

