a
    mJh                     @   s   d dl mZ d dlmZmZmZmZ d dlZddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ deeef dddZdeeef dddZG dd dZG dd dZdeeeef dddZdS )    )Enum)AnyCallableDictTypeN   )Parser
Serializer)Factory)	NameStyle)SchemaTFtype_serializersc                    s&   t jdtdd  fdd}|S )Nthis function is deprecated   
stacklevelc                    s    fdd| D S )Nc                    sF   i | ]>\}}| d r s|dus&sr4|d n|t|dqS )_Nr   )
startswithrstrip_prepare_value).0kvskip_internal	skip_nonetrim_trailing_underscorer    T/var/www/shaz/venv/lib/python3.9/site-packages/dataclass_factory/deprecated_stuff.py
<dictcomp>   s   z.dict_factory.<locals>.impl.<locals>.<dictcomp>r   )datar   r   r   impl   s    zdict_factory.<locals>.impl)warningswarnDeprecationWarning)r   r   r   r   r"   r   r   r   dict_factory   s    r&   c                 C   s4   |r t | |v r |t |  | S t| tr0| jS | S N)type
isinstancer   value)r*   r   r   r   r   r      s
    
r   c                   @   sB   e Zd Zd
eeeeef eeef dddZeeddd	Z	dS )ParserFactoryTFN)r   
debug_pathtype_factoriesname_stylesc                 C   s   t jdtdd |d u ri }|d u r(i }i }t|t|B D ] }t||||d||< q<tt |d}t|||d| _d S )Nthis class is deprecatedr   r   )parser
name_styler   default_schemar,   schemas	r#   r$   r%   setr   getr   r
   factory)selfr   r,   r-   r.   r5   cr4   r   r   r   __init__$   s,    zParserFactory.__init__clsreturnc                 C   s   | j |S r'   )r9   r0   r:   r>   r   r   r   
get_parserD   s    zParserFactory.get_parser)TFNN)
__name__
__module____qualname__boolr   r   r   r   r<   rA   r   r   r   r   r+   #   s       

 r+   c                   @   sB   e Zd Zd
eeeeef eeef dddZee	ddd	Z
dS )SerializerFactoryTFN)r   r,   r   r.   c                 C   s   t jdtdd |d u ri }|d u r(i }i }t|t|B D ] }t||||d||< q<tt |d}t|||d| _d S )Nr/   r   r   )
serializerr1   r2   r3   r6   )r:   r   r,   r   r.   r5   r;   r4   r   r   r   r<   I   s,    zSerializerFactory.__init__r=   c                 C   s   | j |S r'   )r9   rG   r@   r   r   r   get_serializerh   s    z SerializerFactory.get_serializer)TFNN)rB   rC   rD   rE   r   r   r	   r   r<   r   rH   r   r   r   r   rF   H   s       

rF   )r   r-   c                 C   s(   t jdtdd t|d|d|| S )Nr   r   r   T)r   r,   r-   )r#   r$   r%   r+   rA   )r!   r>   r   r-   r   r   r   parsel   s    rI   )TFFN)N)TN)enumr   typingr   r   r   r   r#   commonr   r	   r9   r
   Znamingr   Zschemar   r(   r&   r   r+   rF   rE   rI   r   r   r   r   <module>   s(     
%'  
