From 4564fed0b3509d00fb5d427ea2c9682fd4962775 Mon Sep 17 00:00:00 2001 From: Max P <48almonds@gmail.com> Date: Wed, 7 Nov 2018 17:38:57 -0800 Subject: [PATCH] Added compatibility with Python 2.7 as to the method `escape_values`. --- docxtpl/__init__.py | 2 +- tests/escape_auto.py | 6 +++--- tests/test_files/escape_auto.docx | Bin 15162 -> 15481 bytes tests/test_files/escape_tpl_auto.docx | Bin 17378 -> 17961 bytes 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docxtpl/__init__.py b/docxtpl/__init__.py index 7ee5f81..b91a670 100644 --- a/docxtpl/__init__.py +++ b/docxtpl/__init__.py @@ -181,7 +181,7 @@ class DocxTemplate(object): """Escape string values of the passed :dict: `d` in-place including nested dictionaries of any depth. """ - for k, v in d.items(): + for k, v in six.iteritems(d): if isinstance(v, dict): identity = id(v) if identity not in identities: diff --git a/tests/escape_auto.py b/tests/escape_auto.py index d792fc2..ffa2b0a 100644 --- a/tests/escape_auto.py +++ b/tests/escape_auto.py @@ -3,10 +3,10 @@ from docxtpl import * tpl = DocxTemplate("test_files/escape_tpl_auto.docx") context = {'myvar': R('"less than" must be escaped : <, this can be done with RichText() or R()'), - 'myescvar':'It can be escaped with a "|e" jinja filter in the template too : < ', - 'nlnp' : R('Here is a multiple\nlines\nstring\aand some\aother\aparagraphs\aNOTE: the current character styling is removed'), + 'myescvar': 'It can be escaped with a "|e" jinja filter in the template too : < ', + 'nlnp': R('Here is a multiple\nlines\nstring\aand some\aother\aparagraphs\aNOTE: the current character styling is removed'), 'mylisting': Listing('the listing\nwith\nsome\nlines\nand special chars : <>&'), - 'autoescape': """These string should be auto escaped for an XML Word document which may contain <, >, &, ", and '.""" + 'autoescape': """<, >, &, ", and '.""" } tpl.render(context, autoescape=True) diff --git a/tests/test_files/escape_auto.docx b/tests/test_files/escape_auto.docx index fc0e54cf04f0ea1d73568c5856f054e4a97430d0..c4ed5f0e54c88b1ad461e7ffa1bbed8dd01830ec 100644 GIT binary patch delta 7186 zcmZ`;by!s279F}_Na^nGknZjd=^=;iyrc?(#Lx&*0|L@14bqY#QqqD_qDX`I(Dw^{ zpKty--`wx)bM{_medn&VZ=3%`AhwP=5;7481VRVF6Y8+r5isBhj+$cgp_V(aDFjkr zTn&j29C0Y6ILuV`3Ci(MrJ+-$P$cCNB+uVY@$NcVqbV$efwfIX9gkWd`(iuS=522A z(|(Gr4cjS~g+?_U-sv`8r<3|s?oa8g3B4OcNX~vmMZ(MDm)Xqk&GeNrb3O3284jYsMQD%=ifzdH=O4-$!2LRJ>c*-pz8=4$O$#pRQx zDJ4*(W)MFP6LBsmjy6d(6zhG-LbK&^6Vw*60O`B1oAm`1&z>j&+F1FdT>MdS+1yv5 z4i*GvHy`4+$)tr3`OIsr);%b)?#Z4Z{0f7kW;BC(qbC9gGzybJW&-pJ;Bw~1&(OWr zn1o^*ARYu*L(S0W#coG=C-e;^E%AnxFJptXD=o}dJ>aH>%1~jhBkU?)wWZ+n!_lP? z{z+Q`BaBVX>LaAV&~a_;H8Ig7I_Cs3)%n)Z+_YPOz}V1i zBN2AUwb(xqZ`>UN>!;pQds#e}%+gtxWu44Z)c0C3lZzX+fcfWwPBMaGf`bNiBw{vk{x6>7{BAMDEHY%;1+*PL=Xrcwv9*v z^t!&JB^@}t;*jGOV{*ZStJvC5NLKNh3=X;%S?QY!7F9cczhZLEZ7zO5b<%nG;fk8% zRi}Fqm1vEbJ~QJ>Rb-_`z3euPl}f`l6?&T1ln!T{v=M~RdV9RsT7yPh%X_Z9C@509 zvV;0IuL3Ee;OIehDC1#o#Wi@`&B}s40!h_M8IL?Hkw*FQ8E_)isYS^n%JUw6!C)JR zX_T%eL(rpjl8MHkPDv@Y(xST~ zv9fd&+YsZSDIE$iZlDvDt-LADna%QCn=UO4-jFz&xX|&0N@R7?fb$~;1p7DLTIxxr zlcPiXJ1@)zIEU<02vRqKVtsNZ*#@mpE(HLDUHz!<;5)?3zV|)i96=O>t2dxitluG3 zt7p;oM+JfQsbQ-qjDV`63bY!*?4uw;eYWb1M(V^TbLDx&$`qy=M)~;#nr`K;2&5QN zxtZk$$mW^F+8-`eZ_ao4tewf`Vz42Xba1en2Kb- z)*i>NaZ>LCMFVT2W$SWfy(l7TYi=LW5*lN+Q-=ra^CwpX? zcww6KKQtL*MO@#>Axj16cUc7T%)U=Eciv|%Xk#uYA9klFFGn{YkA^sn^^NR352aHi z;)YMpskXnz!!iwR!6{uyJ+nT!%NrntOP7Y!;v=>$w*lZIDOiUfZ_C%AB*zg{qAmC` zcD%U2nSPEmGT(k+_IR^#?_j$;U1)h2CoznF5PxP*QshOc$x&hg@agzTZ(kmp!@a$H z7bVUm-{F#{Hc}(O7}7WXj==|wOO_8)C}fG#1@=C!$h;6m=At7e$h5t$@!Aj)BdH$> zW)V;llhpx&bsjS1t59AlMQHU)AlT4iUo|O()e^?=w-u?qbkTmFqe(qXB-VLYw33Lv zd*T2DHpds3RT^^Sf{!QJqjy)(-{L&sY>f6lc#^k)N@zqyY@yn_e%2*-Spl`Dnkgq{QF9u%AJUY@8xViyREX zlOv_doi1=Z_9lWF7=QDDnE3d|N9jKCvgnN&^WPJ7oS0J8OSu$xt!l2%@M&6XembGw z=z$581`1wlG0Lv(liEf)lk=yNqgbnjyi$O181~kwy>j$fQ3q+>HKM1z8Yfu`_wFu# zL|$;33w%2XpNd;vO)L@oK%(za>$)K)t12jjM#Q5^TiUK`xMWR?ltE5 zwQZ0?GDoH~OS&6+aB7tr5V3zBuM3*W8e6`6-$Zv93|^+5icp0-`VeqO~|blnL)IjJjU*ze6a})jtLTp zl$LM6ORmGs&PPo&tJ1yq<=Y@wV}2zDSZlQMFmmnYm(8;q)RAfA>6qQG-`Ej*J{cIi zF|s`xw7&VMbbi?4U6y_QcD0XJXjt8Db@HVIeUgO<(r$p5SYQ}S=wj!6LRYeNl}C)} z{)Z3+VQM2Qc+PuTry`}8?cF;TQ=SewZ-bd{2HMP~2YL;?qCSl$_F_+_e93(A5WpT1 zc|eVvO3!M|W_RsT&UBJ@P>^$=)U>d&HL*q(AlCX;a(6JC<-=Nh!6|-RUbvTT-N6y} z@~msiqCg3a&+&&$j^hW()MlY2ITt<8BfG~^ruk8??4*=!DcgIqwAPduk}L9oUZb@yWpSxy!aZHRrkoww=T1rsV_uam@gULgUzBaKFTvo@Xh9^)*e1jk%t zNJCrPrk~~cQPiUBpX&wf2*$TfddO& zJ&WgR!AE)TvO}s(=PC>qw_!}27?a~hRp~hAQFeMhs*I@Jw>@mLn;u=pQ3Lj~3PUW-PaCrCuOH~t@)XZPL35(TroRf&aDvkz* z$9{Sw?ssVQ?;Gi-%4D?Pot1#KVzC46(Y#>Avu~LFgO#?lZaGGL3kK=+ZaZkAyb=br zDUxCD4_#x0z0B+(HW>oLXVlxc4xJaf?Q2MB?r>|yI9q}UR{MqcoRqoionS@8M2oZz z7$WIHG;{90%QtK)WgjJxg90Q5dO<9T{`E+`dxBFwR3iv6L3*mQK7#OyogUzkh$WKd zW}s?%6~2RGPH(e);bKN5@9-ItMG;qJ1=pG`$)P0rliGsxH1ttcZ$qSd&*!jV^jP0T zY14CL86Og@n+M*|yL27=p?#lFz?wam3bsP`Xal5V$=Bd{gC=DYf_mM1w7ehMarYC? zonNqa$bAG%KVn6xbkMJLAyFu=>9p@>em#u5syx2DnVIYBL-E|3p;2H6{Rv+T)>+J66!yV`bJxJHoUXlUdKTJQzd%F@xC4w8L7)3;< z!?ajL(podOX+OJ6`np-FyRC9iA5!OjylAh!D2O0*%-Ai5~$5`PljkykBbDl8J2y&kdR{P zU1BY={0L&zcD_YBu22imyj3o9&znb}yrkx(Xng7Oq4^}8TGo;Xbs}?|!IqOk6h#F= zcLwz{jY=uG%BgL*BErP9gqfejI6SB~fkl~?D^~GAEX_185T?u(KRTrA>fD6J_!9I5 z-+I@Ylzs=luu@2(Ugpv9(qh3@Ha$Tik&dw}mVmcM+CYsA&JbwQSqM zF3m#51Is|g>FQ+*wRp_kk5CiHX+^P3)2ZhX9eh3f<3uRK5R_Uobwony>dhuFReYf_ znQAZbNc!a5I5_6&J4uG6%LTHrlQ9VgT5|}+v&*ue^YEEq3%2L(fJH!Kv^n(R&Tpsw z7~Ft>`{T4zQ6>q9ZY8r88cdsj99VT<u$_d z(Y2MvyT@~2*VplgIiy>+lUV|VVx;wsA~(7Hy1?_R)ynL2{%7` zZbR8~_T2uJzQIRo!ZJr%rYs?AHIbunUvW%UAVi}tI~72H*+jg@=0%ah=Gy_|QxZ#C zm&|VrDN(4;y@rLV4TE+q6L6ehZ3HWZdk91 zTsH+6=&hLJK-Q{64)XiMH{QYTFfw8_CCjpX+);u=+7OR3%* zT)7c`jbsl0l*P(wcG2=U2=at|igFp~0 z*kf{Gpc$m;`$Yw@@8aa16_I?Azvuzs(b++Gd#X|UJ0QsJjhJou!?lJ;-~$fj7?v(U zS1!&?=*WFoWU=4|Q&H6B!dk-Y+N+n^XJrO9RlRCr1wDqN@!9QjZEDI4hWmW-yIKZW zNH2&}>2RKUi`c4kQCHZ|nZyc?U@%=uU`p_K0petQK6t5RdHu;La+plbZT_kQ{_2?T zzLDYuslR&*VTwn3X(58IOrSq3>)FJT&hN6{U4igIgnkHE>QB+N3pnbeXbvH$4?SyT z>Rc>LE$UJ0Md5QHVC=x73?m3m3PY=F=MvUi`xG+1%m4L!2sug{F|JRV89#u4!O!7* z96)CaewEVrhH!)_^~0;L){2*{n{q`@wRbnM!T_kpXi&}nD!V>TC9G3 zr>m(l){hUwW-^EtC3PgCZu$0BClC5qc7g9x5OFI)MaXrM4Twt{!yVjZ`JxQ8cC_eG zdHQJ+wc}bo%A8=0ikKN#`zq9K)`>Xpd;?xA+N~hpU{OC?FQ#?BuuWoQ7tF}TBnG>& zwPr+-x9eSV9}`#>$Jp)=slQk##;jTF*qP>jmdrlMX#MrEv zXFCgO?n}*xnxh&y5Nq#yT{ns3bGm7)vFvd+^Xn!n8Zl$`dDYhP&xl%RRgJxyl$#vv z&u;nrT*@nB>|0!-YN=PUNmy#E2$?ysnLr5Kt#gpfSI(Dg`NFOiH8t3?#Yw=?fWCRL zIC||v^_*YY(qzw?>VXZk^I%N7sDBq$)hB8eK)g81q`v26B%S7;E<5LGvR9|TnTaem zdD25MOY$Q09@zbyQl6tfb8I`A!dn!IF#v{>`7+A~a#<1>%Fa2xJtiBuSF;3|s&HU- z?z99{wdvbkJR*8f0nsKfOzPI>KQJd2$*B%4+U9HHcx`s_S%&QjynW@W`SAI!TpAGxI7i}}FqEOut zw3zZ9M`Pd3i}Y*xSl45H$G@-_=%apwO>$xat!*75h-MN(6+l%dHLRJs8mk{{iPH1x z+p3ZLj^TnQ`|WAuYg2t+60|UgxlfaqUzHAh;#z!eWt+FVnnl`KILiS1;DDS-BLypz~lD9ZEWNm|ZNJ^8?8=H>m%;6>j?jKl*_6tb^FM zG6MD(Ow}NZlkr1Rz>=w{8ahbQ|Jxs|-%n>ofSHj}1Lht}v_wOzEC=Ey9V~0C6Z{-n zLR`CVS}K;MKm(#mLX^m&T3z2hce+*#J6oRGj%{5}e7CUn2}o1)TpPsH!NB~0jAFs3 z61&Lqaq{qLfgI(nZu)CPBJHU-bKjP4mk|8{3pgfaOQbR@g>eoOYk<}esdVXBO zLyz3{Hh|4|pOY|Q6H_Dp4kP3EQ{kT0rj=Fg3fwnExI>R;oXQK+MXDp!$GlxAr5`7J zc2SAx-aH9OmcYXiG!7R)VkrNr-!PP#Gp9ExVXV($sX+H`gkhv&NG3|HcmtP@qT~&; z7YCdo7)xNl!?hmCNUhpp6Q9B|5T^jjeVnX+VG87|j)e@b>w(cs3kqraw%l;)Tr2qz z%Z3lt*d7^OKx|c*4N8=-N%R@7_Zp1p%XNx3wc*>E-Y-Ai?b*Ptt-rpj@P@8da^#DP zK`>yR4v?{)s1UYHQ@`2k(VIh=_j|R3+uRZtG*NzPY+8SAQ`0k**~f9zgco`dRf;GZ zrVdQ`hiXQ%`?DM*nO2t<;$k1E(`!y~LMNQ1Pip)w(`e;}xy^XG3d5a;1k6Z2g?^~B zjQ?aT-RFlDBzR&i1hFiYRuCBaW-jj%E%zqQob$nmzUf{m94V%SLL#dr!P2oEvWPU^ zg0)lpk(8CiU_nB6@{ob)JEVX{tqXj7?t#|={MI`CNtsjJjKA8*eqXH-VSYq3z_|M+ zEqLgVG-xWX`jpPo%6~v!6s|<+7Z=c z`2d2y-&%)g5Y@*fi(rhcSJ;ek`Sr@HULn%Y0Nw~1AoN`$S+42^%niLz*N8;jktTJ7 zs|D3{K0SHN*Ub4Lb+MdiEFyLc&?HmAHf1IqBF-Y3R8h&1c8lb?s%G}{^fEp$qTZdW*`*;Zy8 z9ocjWIbUEx%4d%;%eWFbDkPv>kYxa;cn{Pd(9?Ic2iASib4r_JT>N@zsqOleOnH)^ z7sY{UCmyHYy{KhpG0EOjVZIu%*&B9s5@|PL(o3U2#jdkR534C(+Gl_VhS^hzGFjsG z=+i6Cxi>m!s25Br%uWQt6irVr&+dk)g6ZrDxg4c+x*ONYxUd4;gQ_!&h6ch~p>&g_ z)Xz)D_KtI%wp#(H%7M1XBpFbP|ecisnDw@QsYUH-g4>V z94D82#z$7Am*wx(ou7g=_AhyU6&^pYlP$qy1dN}yR$%}0ulVZ%k3C}z(e*= zN$$P|Hnz||LjJED{a?s^tZwW4nW@h&-u3r19W`N|OEkIIAW&Tp2!!|B{tYyLhx-OW zAwP}p@4-K6WDDW^t;RnB|Iabm@N)lC(~n~k_!A;OUzNAqbi8H3?<9K9^H(&)-QN8+ w{{Q7f#Q$4Pf80gv=S}-vl$c{g;Fp~K&$5o1|I~nZB?Kc7r$?<3`GMAd09x#S0ssI2 delta 6713 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 Sd=T6DVA^7IsBQwkqWurW(#5m@ diff --git a/tests/test_files/escape_tpl_auto.docx b/tests/test_files/escape_tpl_auto.docx index c6f7a6c5b5456134779f35fb5a4fa6deae65aac9..4d59e552da4a46f7d66c5e3c35976437ebc5761f 100644 GIT binary patch delta 6063 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 delta 5510 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 E2Wh?o5C8xG