;i)dZddlmZddlmZddlmZmZmZddl m Z m Z m Z m Z mZdZGdde ZGd d e ZGd d e ZGd de ZdS)z2Custom element classes related to the styles part.) annotations) WD_STYLE_TYPE)ST_DecimalNumberST_OnOff ST_String)BaseOxmlElementOptionalAttributeRequiredAttribute ZeroOrMore ZeroOrOnec lddddddddd d d ||d d S)zlReturn the style id corresponding to `name`, taking into account special-case names such as 'Heading 1'.CaptionHeading1Heading2Heading3Heading4Heading5Heading6Heading7Heading8Heading9) captionz heading 1z heading 2z heading 3z heading 4z heading 5z heading 6z heading 7z heading 8z heading 9 )getreplace)names DC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\docx/oxml/styles.pystyleId_from_namersP   c$ S"%%&& 'ceZdZdZeddZedeZede Z ede Z ede Z ed eZ ed e Zd Zd Zd ZdS)CT_LatentStylesz`w:latentStyles` element, defining behavior defaults for latent styles and containing `w:lsdException` child elements that each override those defaults for a named latent style.zw:lsdException successorszw:countzw:defLockedStatez w:defQFormatzw:defSemiHiddenzw:defUIPriorityzw:defUnhideWhenUsedc.t||}|dS|S)z`Return the boolean value of the attribute having `attr_name`, or |False| if not present.NFgetattrself attr_namevalues r bool_propzCT_LatentStyles.bool_prop/s"i(( =5 r cJ|d|z}|sdS|dS)zHReturn the `w:lsdException` child having `name`, or |None| if not found.zw:lsdException[@w:name="%s"]Nrxpath)r*rfounds r get_by_namezCT_LatentStyles.get_by_name7s/ 9D@AA 4Qxr cBt||t|dSz7Set the on/off attribute having `attr_name` to `value`.N)setattrboolr)s r set_bool_propzCT_LatentStyles.set_bool_prop>s ie-----r N)__name__ __module__ __qualname____doc__r lsdExceptionr rcountrdefLockedState defQFormat defSemiHidden defUIPrioritydefUnhideWhenUsedr-r2r7r#r rr"r"!s:.2>>>L  i)9 : :E&&'98DDN"">8<`` element, defining override visibility behaviors for a named latent style.w:lockedw:name w:qFormat w:semiHidden w:uiPriorityw:unhideWhenUsedcT||dS)z;Remove this `w:lsdException` element from the XML document.N getparentremover*s rdeletezCT_LsdException.deleteN& %%%%%r c"t||S)z_Return the boolean value of the attribute having `attr_name`, or |None| if not present.r')r*r+s r on_off_propzCT_LsdException.on_off_propRstY'''r c(t|||dSr4)r5r)s rset_on_off_propzCT_LsdException.set_on_off_propWsi'''''r N)r8r9r:r;r rlockedr rrqFormat semiHiddenr uiPriorityunhideWhenUsedrPrSrUr#r rrDrDCs z8 4 4F  Xy 1 1D X66G"">8<3CDDJ&&'98DDN&&&((( (((((r rDceZdZUdZdZededdZededdZed ed dZed ed dZ ed eddZ ededdZ ededdZ ededdZ ededdZededdZ[edeZded<edeZded<edeZed eZed!Zejd"Zed#Zd$Zed%Zejd&Zed'Zejd(Zed)Z ed*Z!e!jd+Z!ed,Z"e"jd-Z"ed.Z#e#jd/Z#ed0Z$e$jd1Z$dS)2CT_Stylez9A ```` element, representing a style definition.)rFz w:aliases w:basedOnw:nextzw:linkzw:autoRedefinezw:hiddenrIrHrJrGrEz w:personalzw:personalComposezw:personalReplyzw:rsidw:pPrw:rPrzw:tblPrzw:trPrzw:tcPrz w:tblStylePrrFNr$r]r^rIrH rJ rG rE r_r`zw:typezWD_STYLE_TYPE | Nonetypez w:styleIdz str | NonestyleIdz w:defaultz w:customStylec&|j}|dS|jS)z5Value of `w:basedOn/@w:val` or |None| if not present.N)basedOnval)r*rns r basedOn_valzCT_Style.basedOn_vals, ?4{r ch||dS||_dSN)_remove_basedOnget_or_add_basedOnror*r,s rrpzCT_Style.basedOn_vals9 =  " " " " ",1D # # % % ) ) )r c|j}|dS|}||j}|dS|S)zkSibling CT_Style element this style is based on or |None| if no base style or base style not found.N)rnrM get_by_idro)r*rnstyles base_styles rryzCT_Style.base_stylesJ, ?4!!%%gk22  4r cT||dS)zARemove this `w:style` element from its parent `w:styles` element.NrLrOs rrPzCT_Style.deleterQr c&|j}|dS|jS)z5Value of `w:locked/@w:val` or |False| if not present.NF)rVro)r*rVs r locked_valzCT_Style.locked_vals >5zr c|t|dur|}||_dSdSNT)_remove_lockedr6 _add_lockedro)r*r,rVs rr|zCT_Style.locked_valsI  ;;$  %%''FFJJJ  r c&|j}|dS|jS)z5Value of ```` child or |None| if not present.N)rro)r*rs rname_valzCT_Style.name_valsy <4xr cl|||}||_dSdSrr) _remove_name _add_namero)r*r,rs rrzCT_Style.name_vals<   >>##DDHHH  r ct|j}|dS|}||jS)zSibling CT_Style element identified by the value of `w:name/@w:val` or |None| if no value is present or no style with that style id is found.N)nextrMrwro)r*rrxs r next_stylezCT_Style.next_styles:y <4!!)))r c&|j}|dS|jS)z6Value of `w:qFormat/@w:val` or |False| if not present.NF)rWro)r*rWs r qFormat_valzCT_Style.qFormat_vals, ?5{r cx|t|r|dSdSrr)_remove_qFormatr6 _add_qFormatrus rrzCT_Style.qFormat_valsD  ;;          r c&|j}|dS|jS)z`` child or |False| if not present.NF)rXro)r*rXs rsemiHidden_valzCT_Style.semiHidden_vals_  5~r c|t|dur|}||_dSdSr~)_remove_semiHiddenr6_add_semiHiddenro)r*r,rXs rrzCT_Style.semiHidden_valsI !!! ;;$  --//J"JNNN  r c&|j}|dS|jS)z;Value of ```` child or |None| if not present.N)rYro)r*rYs ruiPriority_valzCT_Style.uiPriority_vals_  4~r cl|||}||_dSdSrr)_remove_uiPriority_add_uiPriorityro)r*r,rYs rrzCT_Style.uiPriority_vals> !!!  --//J"JNNN  r c&|j}|dS|jS)z=Value of `w:unhideWhenUsed/@w:val` or |False| if not present.NF)rZro)r*rZs runhideWhenUsed_valzCT_Style.unhideWhenUsed_vals ,  !5!!r c|t|dur|}||_dSdSr~)_remove_unhideWhenUsedr6_add_unhideWhenUsedro)r*r,rZs rrzCT_Style.unhideWhenUsed_valsL ##%%% ;;$  !5577N!&N     r )%r8r9r:r;_tag_seqr rrnrrYrXrZrWrVpPrrPrr rrk__annotations__rrlrdefault customStylepropertyrpsetterryrPr|rrrrrrr#r rr\r\\sCCH0 9X(122, 7 7 7Di  ===G 9X(122, 7 7 7D>hqrrlCCCJ>hqrrlCCCJY1hrssmLLLNi  >>>G Yzhrssm < < >K X222   X &&&X X__ **X*X   X### X### ""X"'''''r r\c~eZdZdZdZededdZeddZ[d Z d Z ddZ ddZ dZ dS) CT_StyleszK```` element, the root element of a styles part, i.e. styles.xml.)z w:docDefaultsw:latentStylesw:stylerNr$rr#c|}||_|rdnd|_t||_||_|S)zReturn a newly added `w:style` element having `name` and `style_type`. `w:style/@customStyle` is set based on the value of `builtin`. NT) add_stylerkrrrlr)r*r style_typebuiltinstyles radd_style_of_typezCT_Styles.add_style_of_typesF    $+5DD)$//  r c\fd|D}|sdS|dS)zEReturn `w:style[@w:type="*{style_type}*][-1]` or |None| if not found.c8g|]}|jk |j|Sr#)rkr).0srs r z)CT_Styles.default_for..&s3# # # af .B.Bqy.BA.B.B.Br N) _iter_styles)r*rdefault_styles_for_types ` r default_forzCT_Styles.default_for$sR# # # # ((**# # # ' 4&r**r rlstrreturnCT_Style | Nonecnd|d}tt||dS)zR`w:style` child where @styleId = `styleId`. |None| if not found. zw:style[@w:styleId="z"]Nriterr0)r*rlr0s rrwzCT_Styles.get_by_id.s8 3w222DE**++T222r rcld|z}tt||dS)zd`w:style` child with `w:name` grandchild having value `name`. |None| if not found. zw:style[w:name/@w:val="%s"]Nr)r*rr0s rr2zCT_Styles.get_by_name6s2 .4DE**++T222r c@d|dDS)z@Generate each of the `w:style` child elements in document order.c3K|]}|VdSrrr#)rrs r z)CT_Styles._iter_styles..@s"99%999999r rr/rOs rrzCT_Styles._iter_styles>s"994::i#8#89999r )rlrrr)rrrr)r8r9r:r;rr latentStylesr rrrrwr2rr#r rrrsUU=H9-(122,GGGL JyR 0 0 0E   +++33333333:::::r rN)r; __future__rdocx.enum.stylerdocx.oxml.simpletypesrrrdocx.oxml.xmlchemyrr r r r rr"rDr\rr#r rrs^88""""""))))))GGGGGGGGGG'''".....o...D(((((o(((2q'q'q'q'q'q'q'q'h0:0:0:0:0:0:0:0:0:0:r