o
    ùjš  ã                   @   s‚   d Z ddlZe e¡ZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ d	d
„ ZG dd„ deƒZdS )zœ
A barely functional Spyne class serializer. If you're using this as part of
anything serious, you're insane.

TODO:
  - Customizations are not serialized.
é    N)Údatetime)Úchain)Údefaultdict)ÚSimpleModel)ÚXmlModifier)ÚComplexModelBasec                 C   s<   |   dd¡  dd¡  dd¡  dd¡  dd¡  dd¡  d	d¡S )
Nzhttp://Ú zhttps://ú/Ú.Ú_ú:ú#ú-)Úreplace)Útns© r   ú`/var/www/html/LicenciasMiG/venv/lib/python3.10/site-packages/spyne/interface/xml_schema/genpy.pyÚgen_fn_from_tns*   s   ùr   c                   @   s@   e Zd Zefdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )ÚCodeGeneratorc                 C   s,   t ƒ | _t ƒ | _ttƒ| _t ƒ | _|| _d S ©N)ÚsetÚimportsÚclassesr   ÚlistÚpendingÚsimplesÚfn_tns_mapper)Úselfr   r   r   r   Ú__init__6   s
   

zCodeGenerator.__init__c                 C   s   d|j |  |j¡f S )Nz%s(%s))Ú__name__Úgen_dispatchÚtype©r   Útr   r   r   Úgen_modifier=   s   zCodeGenerator.gen_modifierc                 C   s   |j S r   )r   r"   r   r   r   Ú
gen_simple@   s   zCodeGenerator.gen_simplec                 C   sÞ   g }|  d| ¡  ¡ |j ¡ D ]9\}}t|tƒr.| ¡ | jks.|| jv s.t	|dd ƒ| jv r;|  d||  
|¡f ¡ q| j| ¡    || ¡ f¡ q|  d¡ | j |¡ | j| ¡  D ]\}}|  d||| ¡ f ¡ q\|S )Nz,

class %s(_ComplexBase):
    _type_info = [Ú__orig__z        ('%s', %s),z    ]z%s._type_info["%s"] = %s)ÚappendÚget_type_nameÚ
_type_infoÚitemsÚ
issubclassr   Úget_namespacer   r   Úgetattrr    r   Úadd)r   r#   ÚretvalÚkÚvÚorig_tr   r   r   Úgen_complexC   s    ý


zCodeGenerator.gen_complexc                 C   sh   t |tƒr
|  |¡S t |tƒr|  |¡S | ¡ | jkr| ¡ S |  | ¡ ¡}| j	 
|¡ d|| ¡ f S )Nz%s.%s)r+   r   r$   r   r%   r,   r   r(   r   r   r.   )r   r#   Úir   r   r   r    \   s   



zCodeGenerator.gen_dispatchc                 C   s  || _ dtjt ¡ jdd d¡f dd| g}|j ¡ D ]$\}}t	|t
ƒr/| |  |¡¡ q| d||  |¡f ¡ | j |¡ q| jD ]
}| dd	| ¡ qE| d¡ | d¡ | d
¡ ttdd„ | jD ƒ| jƒƒD ]	}| d| ¡ qm| d¡ | d¡ d |¡S )Nzu# encoding: utf8

# Automatically generated by Spyne %s at %s.
# Modify at your own risk.

from spyne.model import *
r   )Úmicrosecondú r   ze

class _ComplexBase(ComplexModelBase):
    __namespace__ = '%s'
    __metaclass__ = ComplexModelMetaz%s = %sé   z	import %sz__all__ = [c                 S   s   g | ]}|  ¡ ‘qS r   )r(   )Ú.0Úcr   r   r   Ú
<listcomp>Š   s    z'CodeGenerator.genpy.<locals>.<listcomp>z	    '%s',ú]Ú
)r   ÚspyneÚ__version__r   Únowr   Ú	isoformatÚtypesr*   r+   r   Úextendr3   r'   r    r   r.   r   ÚinsertÚsortedr   r   Újoin)r   r   Úsr/   Únr#   r4   r9   r   r   r   Úgenpyj   s4   úüø





ÿ


zCodeGenerator.genpyN)
r   Ú
__module__Ú__qualname__r   r   r$   r%   r3   r    rH   r   r   r   r   r   5   s    r   )Ú__doc__ÚloggingÚ	getLoggerr   Úloggerr=   r   Ú	itertoolsr   Úcollectionsr   Úspyne.modelr   Úspyne.model.complexr   r   r   Úobjectr   r   r   r   r   Ú<module>   s   
