o
    j*                     @   s  d Z ddlmZ ddlZeeZddlmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZ zddlmZ ddl m!Z! W n e"yj   e#d	e$fi Ze#d	e%fi Z!Y nw dd
l&m'Z'm(Z( dZ)zddl*m+Z+ ddl*m,Z, e+j-e,j. Z-e+j/e,j. Z/e,j0Z1W n e"y   dZ-dZ/dZ1Y nw G dd deZ2G dd deZ3		dddZ4dd Z5dddZ6dS )z_
Some code dump from some time ago.

If you're using this for anything serious, you're insane.
    )absolute_importN)isclass)rpcAnyAnyDict
NATIVE_MAPMArrayComplexModelBaseUnsignedInteger32PushBaseIterable	ModelBaseFileServiceResourceNotFoundErrorUnicode)MAX_ARRAY_ELEMENT_NUMMAX_DICT_ELEMENT_NUMMAX_STRING_FIELD_LENGTHMAX_FIELD_NUM)FileData)DetachedInstanceError__hidden)memoizesix)Fore)Style c                   @      e Zd ZdS )ReaderServiceN__name__
__module____qualname__ r%   r%   N/var/www/html/LicenciasMiG/venv/lib/python3.10/site-packages/spyne/util/web.pyr    C       r    c                   @   r   )WriterServiceNr!   r%   r%   r%   r&   r(   G   r'   r(   Fc                 C   s  |du rt  }| du rdS d}t| dr| j}|ttfv r"tt}n|tu r)t}n|t	v r1t	| }|dur@|du s>t
||r@|}d}d}	t|drg|du rQ|j}n||}|j}	|	sad|  S |	dkrgdS |	dkrd	}
z#t| ttfrttd
d | D }
ntt| }
W d|
 S W d|
 S  ttfy   |durt|}
Y d|
 S Y d|
 S w t|	rz|| W S  ty } ztd| t| W Y d}~nd}~ww t
|tst| trg }t| tr|	dkrt|  D ]\}\}}|d||f  qn|	dkr)t|  D ]\}}|tkr|d  n
|d|f  qn|	dkrSt|  D ]\}}|tkrD|d  n|dt ||df  q4nf|	dkri|  D ]}|d|f  q\nP|	dkr|  D ]}|d|f  qrn:|	du rt|  D ]!\}\}}|tkr|d  n|d|t |||df  qn|	du rdS td|	dd!| S |	dv rdd | D }nt| D ]\}}|tkr|d  n|t ||d qd d!| S t
|ts|durh|j"d!krh|sht#| |v rd| jj$ S |%t#|  g }|}t
|tr+|j& \}t| t'r3d"S |	du r;|j}	t| D ]!\}}|	dkrT|t(krT|d  n|t ||d|d# q?d d!| S t
|t)rt#| |v r{d| jj$ S |%t#|  g }d$}|*| D ]s\}}|t+kr|d  nd|jjsq|	dkr|d%|  qzt,| |d}W n t-t.t/fy   d}Y nw t0|rt
|t1rאq|jj2}|dur|3|j|}|dur|d&|t ||||df  |d!7 }qd'| d!|f S t
|t4r,t| t5j6r,t| t7kr(d(| dt7  S t8| S t
|t9r<t| t9j:r<| j}t
|t9rOt| t;rOt | t;|dS t8| }t|t7krb|dt7 d }|S ))zUse this function if you want to serialize a ComplexModelBase instance to
    logs. It will:

        * Limit size of the String types
        * Limit size of Array types
        * Not try to iterate on iterators, push data, etc.
    NNone	__class__
Attributesz%s(...)z...z(...)len?c                 S      g | ]}t |qS r%   )r,   ).0or%   r%   r&   
<listcomp>       zlog_repr.<locals>.<listcomp>z<len=%s>z,Exception %r in log_repr transformer ignoredfullz%r: %rkeysz	%r: (...)valuesz	(...): %s)tags	keys-fullvalues-fullz	(...): %rTz%r: %s)parentr6   zInvalid value logged=%rz{%s}z, )r3   r7   r8   c                 S   r.   r%   )repr)r/   sr%   r%   r&   r1      r2   z[%s]   z[<PushData>])
from_arrayr6   r   z%s=(...)z%s=%sz%s(%s)z%r(...))<sethasattrr*   listtupler	   r   dictr   r   
issubclassr+   get_cls_attrsloggedget_type_name
isinstancestrsumr,   	TypeError
ValueErrorcallable	Exceptionloggererror	exception	enumerateitemsappendr4   r   r5   log_reprjoin
max_occursidr"   add
_type_infor   r   r
   get_flat_type_infor   getattrAttributeErrorKeyErrorr   r   r   polymapgetr   r   string_typesr   r:   r   Valuer   )objcls	given_lenr9   r=   r6   protobjcls	cls_attrsrE   leretvalikvsubclsr0   tr^   r%   r%   r&   rT   K   sH  































rT   c                    s   G  fddd|}|S )Nc                       sX   e Zd Zeee d dd id fddZee d d fd	d
ZdS )z%TReaderService.<locals>.ReaderServicezget_%sobj_id%s_id_returns_in_message_name_in_variable_namesc                    s   | j j j|d S )NrW   )udcsessionquery	filter_byone)ctxrp   Tr%   r&   r_   .  s   z)TReaderService.<locals>.ReaderService.getz
get_all_%s)rs   rt   c                    s   | j j  jS N)rw   rx   ry   order_byrW   )r|   r}   r%   r&   get_all4  s   z-TReaderService.<locals>.ReaderService.get_allN)	r"   r#   r$   r   r   r   r_   r   r   r%   r~   T_namer%   r&   r    -  s    

r    r%   )r~   r   r    r%   r   r&   TReaderService,  s   r   raisec                    sN   dv sJ dkrfddndkrdd G  fddd|}|S )	N)r   fixr   c                    s   t d | jf )Nz%s.id=%d)r   rW   rb   )r   r%   r&   put_not_found@  s   z%TWriterService.<locals>.put_not_foundr   c                 S   s
   d | _ d S r   rv   r   r%   r%   r&   r   D  s   
c                       s`   e Zd Zee ed did fddZeeed dd id	 fd
dZdS )z%TWriterService.<locals>.WriterServicezput_%srb   rr   c                    sh   |j d u r| jj| | jj  |j S | jj |j d u r*|j  |j S | jj| |j S r   )rW   rw   rx   rX   flushry   r_   merge)r|   rb   )r~   r   r%   r&   putH  s   

z)TWriterService.<locals>.WriterService.putzdel_%srp   rq   )rt   ru   c                    sH   | j j j|d }|dkrt|| j j j|d  d S )Nrv   r   )rw   rx   ry   rz   countr   delete)r|   rp   r   r}   r%   r&   del_`  s   z*TWriterService.<locals>.WriterService.del_N)r"   r#   r$   r   r   r   r   r   r%   r~   r   r   r%   r&   r(   G  s    

r(   r%   )r~   r   r   r(   r%   r   r&   TWriterService<  s   #r   )NNNFNN)r   )7__doc__
__future__r   logging	getLoggerr"   rN   inspectr   spyner   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   spyne.constr   r   r   r   spyne.store.relational.documentr   sqlalchemy.orm.excr   ImportErrortypeobjectrM   
spyne.utilr   r   EXCEPTION_ADDRESScolorama.ansir   r   REDBRIGHTGREEN	RESET_ALLRESETr    r(   rT   r   r   r%   r%   r%   r&   <module>   sF   
D

 b