o
    W_C#                     @   s  d Z ddlmZ ddlmZ ddlmZmZ e Z	ej
dddZee	 d	d
 Zdd ZdddZddlmZmZmZ ede ede ddlmZ ede ddlmZmZ ede ede ddlmZmZmZmZ ede ede ede ede ede ede ede ed e dd!lmZm Z m!Z!m"Z"m#Z#m$Z$ ed"e  ed#e ed$e ed%e  ed&e! ed'e" ed(e# ed)e$ dd*l%m&Z& ed+e& dd,l'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ed-e( ed.e1 ed/e* ed0e+ ed1e0 ed2e3 ed3e) ed4e- ed5e/ ed6e. ed7e2 ed8e- ed9e1 ed:e, dd;l4m5Z5m6Z6m7Z7m8Z8 ed<e ed=e5 ed>e ed?e6 ed@e edAe edBe edCe edDe7 edEe8 edFe edGe ddHl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF edIe edJe> edKe edLe< edMe= edNe? edOe@ edPe edQeB edReC edSeA edTe; edUe: edVeD edWeF edXeE ddYlGmHZHmIZImJZJmKZKmLZLmMZMmNZN edZe ed[e ed\e ed]eH ed^e ed_e ed`e edaeJ edbe edce edde edee edfe edge edheI edieL edje edke edle edme edne edoe edpe edqeK edreM edse edteN edue ddvlOmPZP edweP ddxlQmRZRmSZSmTZTmUZUmVZVmWZW edyeR edzeS ed{e ed|e ed}e ed~eT ede edeU edeV edeW ede ddlXmYZYmZZZm[Z[ edeY edeZ ede[ dS )zp
Initializes oxml sub-package, including registering custom element classes
corresponding to Open XML elements.
    )absolute_import)etree   )NamespacePrefixedTagnsmapTF)Zremove_blank_textZresolve_entitiesc                 C   s   t | t}|S )z
    Return root lxml element obtained by parsing XML character string in
    *xml*, which can be either a Python 2.x string or unicode. The custom
    parser is used, so custom element classes are produced for elements in
    *xml* that have them.
    )r   Z
fromstringoxml_parser)xmlZroot_element r	   BD:\Projects\ConvertPro\env\Lib\site-packages\docx\oxml\__init__.py	parse_xml   s   r   c                 C   s(   |  d\}}tt| }|||< dS )z
    Register *cls* to be constructed when the oxml parser encounters an
    element with matching *tag*. *tag* is a string of the form
    ``nspfx:tagroot``, e.g. ``'w:document'``.
    :N)splitelement_class_lookupZget_namespacer   )tagclsZnspfxZtagroot	namespacer	   r	   r
   register_element_cls    s   r   Nc                 C   s(   t | }|du r|j}tj|j||dS )ai  
    Return a 'loose' lxml element having the tag specified by *nsptag_str*.
    *nsptag_str* must contain the standard namespace prefix, e.g. 'a:tbl'.
    The resulting element is an instance of the custom element class for this
    tag name if one is defined. A dictionary of attribute values may be
    provided as *attrs*; they are set if present. All namespaces defined in
    the dict *nsdecls* are declared in the element using the key as the
    prefix and the value as the namespace name. If *nsdecls* is not provided,
    a single namespace declaration is added based on the prefix on
    *nsptag_str*.
    N)Zattribr   )r   r   r   ZmakeelementZ
clark_name)Z
nsptag_strattrsZnsdeclsZnsptagr	   r	   r
   OxmlElement+   s   r   )CT_DecimalNumberCT_OnOff	CT_Stringzw:evenAndOddHeadersz	w:titlePg)CT_CorePropertieszcp:coreProperties)CT_BodyCT_Documentzw:bodyz
w:document)CT_NumCT_Numbering	CT_NumLvlCT_NumPrzw:abstractNumIdzw:ilvlzw:lvlOverridezw:numzw:numIdzw:numPrzw:numberingzw:startOverride)	CT_HdrFtrCT_HdrFtrRef
CT_PageMar	CT_PageSz	CT_SectPrCT_SectTypezw:footerReferencezw:ftrzw:hdrzw:headerReferencezw:pgMarzw:pgSzzw:sectPrzw:type)CT_Settingsz
w:settings)CT_BlipCT_BlipFillPropertiesCT_GraphicalObjectCT_GraphicalObjectData	CT_InlineCT_NonVisualDrawingProps
CT_PictureCT_PictureNonVisual
CT_Point2DCT_PositiveSize2DCT_ShapePropertiesCT_Transform2Dza:blipza:extz	a:graphicza:graphicDataza:offza:xfrmzpic:blipFillz	pic:cNvPrzpic:nvPicPrzpic:piczpic:spPrzwp:docPrz	wp:extentz	wp:inline)CT_LatentStylesCT_LsdExceptionCT_Style	CT_Stylesz	w:basedOnzw:latentStyleszw:lockedzw:lsdExceptionzw:namezw:nextz	w:qFormatzw:semiHiddenzw:stylezw:styleszw:uiPriorityzw:unhideWhenUsed)	CT_HeightCT_RowCT_Tbl
CT_TblGridCT_TblGridColCT_TblLayoutTypeCT_TblPrCT_TblWidthCT_TcCT_TcPrCT_TrPr	CT_VMergeCT_VerticalJczw:bidiVisualz	w:gridColz
w:gridSpanzw:tblz	w:tblGridzw:tblLayoutzw:tblPrz
w:tblStylezw:tczw:tcPrzw:tcWzw:trz
w:trHeightzw:trPrzw:vAlignzw:vMerge)CT_ColorCT_FontsCT_HighlightCT_HpsMeasureCT_RPrCT_UnderlineCT_VerticalAlignRunzw:bzw:bCszw:capszw:colorzw:csz	w:dstrikezw:embosszw:highlightzw:izw:iCsz	w:imprintz	w:noProofzw:oMathz	w:outlinezw:rFontszw:rPrzw:rStylezw:rtlzw:shadowzw:smallCapszw:snapToGridzw:specVanishzw:strikezw:szzw:uzw:vanishzw:vertAlignzw:webHidden)CT_Pzw:p)CT_IndCT_JcCT_PPr
CT_Spacing
CT_TabStopCT_TabStopszw:indzw:jczw:keepLinesz
w:keepNextzw:pageBreakBeforezw:pPrzw:pStylez	w:spacingzw:tabzw:tabszw:widowControl)CT_BrCT_RCT_Textzw:brzw:rzw:t)NN)\__doc__Z
__future__r   Zlxmlr   nsr   r   ZElementNamespaceClassLookupr   Z	XMLParserr   Zset_element_class_lookupr   r   r   sharedr   r   r   Z	corepropsr   Zdocumentr   r   Z	numberingr   r   r   r   sectionr   r    r!   r"   r#   r$   Zsettingsr%   shaper&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   stylesr2   r3   r4   r5   tabler6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   Z	text.fontrC   rD   rE   rF   rG   rH   rI   Ztext.paragraphrJ   Ztext.parfmtrK   rL   rM   rN   rO   rP   Ztext.runrQ   rR   rS   r	   r	   r	   r
   <module>   s  














 








8

























<















$
	



























 












