o
    "“iø  ã                   @  s‚   d dl mZ d dlmZmZ d dlmZmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ er8dd	lmZ 	
dddd„ZdS )é    )Úannotations)ÚTYPE_CHECKINGÚAny)ÚNOTHINGÚ	AttributeÚFactoryé   )Úis_bare_final)ÚStructureHook)ÚStructureHandlerNotFoundError)Úraise_error)ÚBaseConverterFÚar   Útyper   Úcr   Úprefer_attrs_convertersÚboolÚreturnúStructureHook | Nonec                   s  zu| j dur|rd}|W S | j dur8|s8ˆ dur8z	|jˆ dd�}W n ty.   d}Y |W S w |tkr5d}|W S ˆ durptˆ ƒrf| jturft| jtƒsf| jj	‰ |jˆ dd�}||j
krc|f‡ fdd„	}|W S |jˆ dd�}|W S |j}|W S  ty�   |j Y S w )zdFind the appropriate structure handler to use.

    Return `None` if no handler should be used.
    NF)Úcache_resultc                   s
   || ˆ ƒS )N© )ÚvÚ_Ú_h©r   r   úR/var/www/html/premium_crap/venv/lib/python3.10/site-packages/cattrs/gen/_shared.pyÚhandler6   s   
z'find_structure_handler.<locals>.handler)Ú	converterÚget_structure_hookr   r   r	   Údefaultr   Ú
isinstancer   Ú	__class__Ú_structure_callÚ	structureÚRecursionError)r   r   r   r   r   r   r   r   Úfind_structure_handler   s@   "àäêÿ

ÿ
ýÿ
þr%   N)F)
r   r   r   r   r   r   r   r   r   r   )Ú
__future__r   Útypingr   r   Úattrsr   r   r   Ú_compatr	   Údispatchr
   Úerrorsr   Úfnsr   Ú
convertersr   r%   r   r   r   r   Ú<module>   s    ÿ