o
    "“ió  ã                   @   sÄ   d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZmZ d dlmZ d dlmZmZmZ d dlZedƒZd	Zd
ZG dd„ deƒZG dd„ dƒZedd�dee dejfdd„ƒZdS )é    )ÚEnumMeta)Ú	lru_cache)ÚAnyÚListÚTypeÚTypeVar)Ú	AttributeÚhasÚibÚfields)Úoverride)Úmake_dict_structure_fnÚmake_dict_unstructure_fnr   NÚTÚcorrespondingFieldNameÚtypeOfFieldc                   @   s8   e Zd Zdd„ Zdedefdd„Zdedefdd	„Zd
S )ÚAppStoreServerLibraryEnumMetac                 C   s$   z| |ƒ W dS  t y   Y dS w )NFT)Ú
ValueError)ÚcÚval© r   úk/var/www/html/premium_crap/venv/lib/python3.10/site-packages/appstoreserverlibrary/models/LibraryUtility.pyÚ__contains__   s   
þÿz*AppStoreServerLibraryEnumMeta.__contains__Úraw_field_nameÚreturnc                    s,   dt d| f‡ fdd„}td |tˆ tdid�S )NÚ_Úvaluec                    s2   |d ur|j nd }|t| ˆ ƒkrt | ˆ |¡ |S ©N)r   ÚgetattrÚobjectÚ__setattr__©Úselfr   r   ÚnewValue©r   r   r   Ú	value_set   s   zAAppStoreServerLibraryEnumMeta.create_main_attr.<locals>.value_setÚmain)ÚdefaultÚ
on_setattrÚmetadata)r   r
   Úmetadata_keyÚmetadata_type_key)r   r   r%   r   r$   r   Úcreate_main_attr   s   z.AppStoreServerLibraryEnumMeta.create_main_attrÚ
field_namec                    s0   dt dtf‡ ‡fdd„}td d|tˆtdid�S )Nr   r   c                    s4   |ˆ v rˆ |ƒnd }|t | ˆƒkrt | ˆ|¡ |S r   )r   r   r    r!   ©r   r-   r   r   r%   "   s   z@AppStoreServerLibraryEnumMeta.create_raw_attr.<locals>.value_setTÚraw)r'   Úkw_onlyr(   r)   )r   Ústrr
   r*   r+   )r   r-   r%   r   r.   r   Úcreate_raw_attr!   s   z-AppStoreServerLibraryEnumMeta.create_raw_attrN)Ú__name__Ú
__module__Ú__qualname__r   r1   r   r,   r2   r   r   r   r   r      s    r   c                   @   s   e Zd Zdd„ ZdS )ÚAttrsRawValueAwarec                 C   sš   t t| ƒƒ}|D ]B}t|jvs|jt dkrq|j t¡}d|d  ¡  |dd …  }t| |ƒ}t| |ƒ}|d ur@t| ||ƒ q|d urJt| ||ƒ qd S )Nr/   r   é   )	r   Útyper+   r)   Úgetr*   Úupperr   Úsetattr)r"   Úattr_fieldsÚ	attributeÚfieldÚrawFieldÚrawValuer   r   r   r   Ú__attrs_post_init__*   s   

€öz&AttrsRawValueAware.__attrs_post_init__N)r3   r4   r5   rA   r   r   r   r   r6   )   s    r6   )ÚmaxsizeÚdestination_classr   c                    s¨   t  ¡ ‰ t| ƒ}i ‰|D ]/}t|jv r;|jt }|jt dkr;tdd�ˆ|< d|d  ¡  |dd …  }t|d�ˆ|< qˆ  t	‡ ‡fdd„¡ ˆ  
t	‡ ‡fd	d„¡ ˆ S )
Nr/   T)Úomitr   r7   )Úrenamec                    ó   t | ˆ fi ˆ¤ŽS r   )r   ©Úcl©r   Úcattrs_overridesr   r   Ú<lambda>E   ó    z'_get_cattrs_converter.<locals>.<lambda>c                    rF   r   )r   rG   rI   r   r   rK   F   rL   )ÚcattrsÚ	Converterr   r+   r)   r*   r   r:   Úregister_structure_hook_factoryr	   Ú!register_unstructure_hook_factory)rC   Ú
attributesr=   Úmatching_nameÚ	raw_fieldr   rI   r   Ú_get_cattrs_converter9   s   

€rT   )Úenumr   Ú	functoolsr   Útypingr   r   r   r   Úattrr   r	   r
   r   Úcattrr   Ú
cattrs.genr   r   rM   r   r*   r+   r   r6   rN   rT   r   r   r   r   Ú<module>   s   