
    e=                        d dl Z d dlZd dlmZ d dlmc mc mc m	Z
 d!dZd!dZdZdZ G d de
j                  Zee
j        _         G d	 d
e
j                  Zee
j        _         G d de
j                  Zee
j        _         G d de
j                  Zee
j        _         G d de
j                  Zee
j        _         G d de
j                  Zee
j        _         G d de
j                  Zee
j        _         G d de
j                  Zee
j        _        d Z d"dZ!d"dZ"d"dZ#d"dZ$dZ%d Z&d Z'e(d k    r e'             dS dS )#    N)etreec                     |t          j                    }	 t          | t          j                  rt          j                            |           } n# t          $ r Y nw xY wt          j        | fd|i|}|S Nparser)	etree_ETCompatXMLParser
isinstanceosPathLikepathjoinAttributeErrorparse)infiler   kwargsdocs       ^/Users/daniilossinkin/PycharmProjects/ShopsBackend/src/data/imports/schema/partner_relation.py	parsexml_r      s    ~ )++fbk** 	*W\\&))F   
,v
7
7f
7
7
7CJs   9A 
AAc                     |8	 t          j                    }n## t          $ r t          j                    }Y nw xY wt          j        | fd|i|}|S r   )r   r   r   	XMLParser
fromstring)instringr   r   elements       r   parsexmlstring_r   )   sm    ~	(-//FF 	( 	( 	(%''FFF	( BBB6BBGNs    88 Tc                         e Zd Zd fd	Z xZS )semiramisSubNSINGLE_LANGUAGE
NORMALIZEDc                 R     t          t          |           j        |||||fi | d S N)superr   __init__)selfcreatedlocalenlsModedateTimeModePartnerkwargs_	__class__s          r   r#   zsemiramisSub.__init__B   s8    *lD!!*7FG\SZgg_fggggg    )NNr   r   N__name__
__module____qualname__r#   __classcell__r+   s   @r   r   r   A   sG        h h h h h h h h h hr,   r   c                         e Zd Zd fd	Z xZS )PartnerTypeSubNc                 T     t          t          |           j        ||||||fi | d S r!   )r"   r4   r#   )	r$   markmodeinvalidnumbertype_Customerr*   r+   s	           r   r#   zPartnerTypeSub.__init__I   s:    ,nd##,T4&%QYff^efffffr,   NNNNNNr-   r2   s   @r   r4   r4   H   sG        g g g g g g g g g gr,   r4   c                         e Zd Zd fd	Z xZS )CustomerTypeSubNc                 T     t          t          |           j        ||||||fi | d S r!   )r"   r>   r#   )	r$   r6   r7   r8   allowOrdersdeliveryDataInfoPartnerRelationsr*   r+   s	           r   r#   zCustomerTypeSub.__init__P   s;    -ot$$-dD';P`brw~r,   r<   r-   r2   s   @r   r>   r>   O   sG        @ @ @ @ @ @ @ @ @ @r,   r>   c                         e Zd Zd fd	Z xZS )deliveryDataInfoTypeSubNc                 P     t          t          |           j        ||||fi | d S r!   )r"   rD   r#   )r$   r6   r7   r8   DeliveryTermsr*   r+   s         r   r#   z deliveryDataInfoTypeSub.__init__W   s6    5%t,,5dD'=ee]deeeeer,   NNNNr-   r2   s   @r   rD   rD   V   sG        f f f f f f f f f fr,   rD   c                         e Zd Zd fd	Z xZS )DeliveryTermsTypeSubNc                 P     t          t          |           j        ||||fi | d S r!   )r"   rI   r#   )r$   r6   r7   r8   coder*   r+   s         r   r#   zDeliveryTermsTypeSub.__init__^   s6    2"D))24wYYQXYYYYYr,   rG   r-   r2   s   @r   rI   rI   ]   sG        Z Z Z Z Z Z Z Z Z Zr,   rI   c                         e Zd Zd fd	Z xZS )PartnerRelationsTypeSubNc                 R     t          t          |           j        |||||fi | d S r!   )r"   rM   r#   )r$   r6   r7   r8   TargetTyper*   r+   s          r   r#   z PartnerRelationsTypeSub.__init__e   s9    5%t,,5dD'6SWdd\cdddddr,   )NNNNNr-   r2   s   @r   rM   rM   d   sG        e e e e e e e e e er,   rM   c                         e Zd Zd fd	Z xZS )TargetTypeSubNc                 P     t          t          |           j        ||||fi | d S r!   )r"   rR   r#   )r$   r6   r7   r8   r9   r*   r+   s         r   r#   zTargetTypeSub.__init__l   s4    +mT""+D$TTGTTTTTr,   rG   r-   r2   s   @r   rR   rR   k   sG        U U U U U U U U U Ur,   rR   c                         e Zd Zd fd	Z xZS )TypeTypeSubNc                 P     t          t          |           j        ||||fi | d S r!   )r"   rU   r#   )r$   r6   r7   r8   namer*   r+   s         r   r#   zTypeTypeSub.__init__s   s4    )k4  )$gtPPPPPPPr,   rG   r-   r2   s   @r   rU   rU   r   sG        Q Q Q Q Q Q Q Q Q Qr,   rU   c                    t           j                            | j                                                  d         }d }t           j                            |          }|*t          t           |          rt          t           |          }||fS )N)	supermodTag_pattern_matchtaggroupsGDSClassesMappinggethasattrgetattr)noder]   	rootClasss      r   get_root_tagre   y   st    


%
%dh
/
/
6
6
8
8
<CI*..s33IWXs33Hc**		>r,   Fc                    d }t          | |          }|                                }t          |          \  }}|d}t          j        }|                                }|                    |           t          sd }d }|sCt          j	        
                    d           |                    t          j	        d|dd           |S )N	semiramis<?xml version="1.0" ?>
r   r   T)name_namespacedef_pretty_print)r   getrootre   rZ   rg   factorybuildSaveElementTreeNodesysstdoutwriteexport
inFilenamesilencer   r   rootNoderootTagrd   rootObjs           r   r   r      s    F
J
'
'C{{}}H%h//GY&	!!GMM(  
3444J 	 	 	 	 Nr,   c                    d }t          | |          }|                                }t          |          \  }}|d}t          j        }|                                }|                    |           i }|                    d ||          }	|                    |          }
t          sd }d }|sVt          j        |	ddd          }t          j                            |           t          j                            d           ||	||
fS )Nrg   )ri   mapping_Tzutf-8)rk   xml_declarationencoding
)r   rl   re   rZ   rg   rm   rn   to_etreegds_reverse_node_mappingro   r   tostringrp   rq   rr   )ru   rv   r   r   rw   rx   rd   ry   mappingrootElementreverse_mappingcontents               r   
parseEtreer      s   F
J
'
'C{{}}H%h//GY&	!!GMM(G""4w"IIK66w??O  /d 74 4 4 	
!!!
K/99r,   c                    t           j        j        dk    rddlm} nddlm} d }t          | |          }t          |          \  }}|d}t          j	        }|
                                }|                    |           t          sd }|sBt           j                            d           |                    t           j        d|d           |S )	N   r   )StringIO)BytesIOrg   rh   r   )ri   rj   )rp   version_infomajorr   ior   r   re   rZ   rg   rm   rn   ro   rq   rr   rs   )inStringrv   r   r   rw   rx   rd   ry   s           r   parseStringr      s    
""%%%%%%%******Fh//H%h//GY&	!!GMM(  
3444J 	 	 	 	 Nr,   c                 >   d }t          | |          }|                                }t          |          \  }}|d}t          j        }|                                }|                    |           t          sd }d }|st          j	        
                    d           t          j	        
                    d           t          j	        
                    d           |                    t          j	        d|           t          j	        
                    d           |S )Nrg   z#from ??? import *

zimport ??? as model_

zrootObj = model_.rootClass(
r   )ri   z)
)r   rl   re   rZ   rg   rm   rn   ro   rp   rq   rr   exportLiteralrt   s           r   parseLiteralr      s   F
J
'
'C{{}}H%h//GY&	!!GMM(   
1222
3444
8999cj!7;;;
Nr,   z#
Usage: python ???.py <infilename>
c                  V    t          t                     t          j        d           d S )N   )print
USAGE_TEXTrp   exit r,   r   usager      s!    	*HQKKKKKr,   c                      t           j        dd          } t          |           dk    rt                       | d         }t	          |           d S )Nr   r   )rp   argvlenr   r   )args
infilenames     r   mainr      sF    8ABB<D
4yyA~~aJ	*r,   __main__r!   )F))r
   rp   lxmlr   r   ,src.data.imports.schema.partner_relation_libdataimportsschemapartner_relation_librZ   r   r   ExternalEncodingro   rg   r   subclassPartnerTyper4   CustomerTyper>   deliveryDataInfoTyperD   DeliveryTermsTyperI   PartnerRelationsTyperM   
TargetTyperR   TypeTyperU   re   r   r   r   r   r   r   r   r.   r   r,   r   <module>r      sH  , 
			 



             ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?   
 
 
 
    h h h h h8% h h h +  g g g g gX) g g g !/  @ @ @ @ @h+ @ @ @ "1  f f f f fh; f f f *A  &Z Z Z Z Z85 Z Z Z ';  #e e e e eh; e e e *A  &U U U U UH' U U U  -  Q Q Q Q Q(# Q Q Q )       .: : : :4   0   .

  
   zDFFFFF r,   