From 68d3ea339b6daef85cf3be1237f0deb87bb02c89 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 09:31:21 -0400 Subject: [PATCH 01/11] Blender Kitsu: Register Gazu dependencies --- scripts-blender/addons/blender_kitsu/README.md | 8 ++++++++ .../addons/blender_kitsu/dependencies.py | 16 ++++++++++++++++ .../wheels/bidict-0.22.1-py3-none-any.whl | Bin 0 -> 35978 bytes .../python_engineio-4.4.1-py3-none-any.whl | Bin 0 -> 53350 bytes .../python_socketio-5.8.0-py3-none-any.whl | Bin 0 -> 56982 bytes 5 files changed, 24 insertions(+) create mode 100644 scripts-blender/addons/blender_kitsu/dependencies.py create mode 100644 scripts-blender/addons/blender_kitsu/wheels/bidict-0.22.1-py3-none-any.whl create mode 100644 scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.4.1-py3-none-any.whl create mode 100644 scripts-blender/addons/blender_kitsu/wheels/python_socketio-5.8.0-py3-none-any.whl diff --git a/scripts-blender/addons/blender_kitsu/README.md b/scripts-blender/addons/blender_kitsu/README.md index 6d2d482e..4a7f10cd 100644 --- a/scripts-blender/addons/blender_kitsu/README.md +++ b/scripts-blender/addons/blender_kitsu/README.md @@ -263,6 +263,14 @@ blender-kitsu has different checks that are performed during file load or during ![image info](/media/addons/blender_kitsu/error_animation.jpg) +## Development +### Update Dependencies +To update the dependencies of `Blender_Kitsu` please follow these steps. + 1. `cd scripts-blender/addons/blender_kitsu/wheels` To enter the directory of dependant modules + 2. `rm -r *.whl` To remove any existing packages (or manually remove .whl files if you are on windows) + 3. `pip download gazu` to get the latest gazu and it's dependencies as wheels + 4. `rm certifi* charset_normalizer* idna* requests* urllib3* websocket_client*` to remove the modules that are already included in blender + ## Troubleshoot blender-kitsu makes good use of logging and status reports. Most of the operators report information in the blender info bar. More detailed logs can be found in the blender system console. If you feel like anything went wrong, consider opening a console and check the logs. diff --git a/scripts-blender/addons/blender_kitsu/dependencies.py b/scripts-blender/addons/blender_kitsu/dependencies.py new file mode 100644 index 00000000..607e275f --- /dev/null +++ b/scripts-blender/addons/blender_kitsu/dependencies.py @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + + +def preload_modules() -> None: + """Pre-load the datetime module from a wheel so that the API can find it.""" + import sys + + if "gazu" in sys.modules: + return + + from . import wheels + + wheels.load_wheel_global("bidict", "bidict") + wheels.load_wheel_global("engineio", "python_engineio") + wheels.load_wheel_global("socketio", "python_socketio") + wheels.load_wheel_global("gazu", "gazu") diff --git a/scripts-blender/addons/blender_kitsu/wheels/bidict-0.22.1-py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/bidict-0.22.1-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..267dde5209ed533bebc357a49535a7d8e5c34dd9 GIT binary patch literal 35978 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 literal 0 HcmV?d00001 diff --git a/scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.4.1-py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.4.1-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..ee318ec1c0bc9069abc9060a00ef2a258099f86b GIT binary patch literal 53350 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 literal 0 HcmV?d00001 diff --git a/scripts-blender/addons/blender_kitsu/wheels/python_socketio-5.8.0-py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/python_socketio-5.8.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..52d459f0590b29aec5b0cdb5bcc7abef85e8d16b GIT binary patch literal 56982 zcmZ^~Q;;Cgwk%k-ZQHhO+qP|+UAEC>+qP}nHm2`P#GLaY?%SXHcPZD(Oa*CR5EK9a z00;o%>`^8C8itiVKmdS6Pym4c`E|B8wl;OKw5QkCx3sf#(buPQ@N`w_mm6e&>3*dq za-@i`LLV|+_yYzWGFKXj`$vF6st1HrcUd7a;xQ|ZC3bH@R27sX%7&_ z1Ijit?{POE$GCVDaO49Z#>3B>?=teiS#PXE><#^@uRTV$wTn8DaKDpvZjTnh8I0-i@+77ImDZi z7=zDs2zMqCyx!$8Og82=#o^OMU&!f+l*%ovu$XW{yJ^=JV^Mk2GkVUYxp7 zY~ab>NlBtr!aK4?@G(62uDH`Azkc1fAg1l~qwE)h%>C zJ5AlhT7rGTd008jd000R89dScvbIX6x zj#Zho+hjoK`lLoX7i1$~kP9pffWr5o*ueP!$nKm{ppK>xh4NX0jQa6TOU9LqJ5=M- zAaZv%b4yLOHLn6+;x1RrT(==Zafe&UqJO=t$;x9}b2L;0=n9^B(4B;y0}EL%$^qnM zXJ==G@K~j!Y)caprmmFQ57Z9X&{)H`hvx14?Kh)5E=aJ$QI=eFq{njEqph{3?8Dyk zlE6_nceoXF$dPh9hT&-P27!~}f-eO-rBo20RjsnEYw~${xU;Xmp^vDJwW@JEm2DR7!eg{b%sjIUOrQWPHnQj4 zye{X{?lh-mE8lX19;am^Ok_!ubOyA(D37pd_YDhvnrNqEpZaab;xQJQ8gG)|U(aFVhh=r`^Sg>It=PW`|qgk%0I}!9;b4ImT9QImqQ4<4P z3ZWj>Iy{Kr%JwpGk%U+Qw-Up3VWNn`GK>bn`Q$X*7Wa=jlvA`Pgff=Bb1|6h&)lPS zp8Jh{z?94{bj zRA1lzjJJ{O?W74WvwJpd*P)YRH~IJ*7}Sug_0f>ct>WtE=X+#sZuY!wF{S^>FrQ&m z8g88OoF|icCG^1%K6*4?Rh%Nq=z-L+=EsK6EB6kxCAxALPt8f5=dFpH@UAg>=T)+% zadPI%_zC@=yw-?uP;017?EwY@08swd#)$vVy!Ny+wzStbw6u4yv^LbYHMBD{H+A}# z>eU*XcAFdszOU*C=fOtFqC%Q+$~+DC(ohLDIN|n^`s&AbCm@D4i@@=tK4fav#CRvVD$8nbM0n zQx<~q82w^ralF>lIbtC_g{cHrL1QJyB`5Izgn{vKa&pdMCP#T}SP7$+la6&Spo&{d zfgb3RdO(%6_Q7|U9cM0?p5$j^7e>CjwHhXBBwCojfnEqmY+YDrE4dhDV4~jT=Z(Rl zVx^Y`Nn6%MajC;FMkvEOg~2=*V0Y*+xjs*yA7ye-S*CNpVJ?_Q&1Zi@TM+zNV~9p? zC745o_Mt(gRZeckQseEeMOy;ZelRfa}uJ#evBLXwdMOTxFF&&6<_xl((#jjsJanJGHlXGnyA(WbsKa zWV>|{R*XNj>qWR04T{2Nr`g8%ml&KA2Dp4YZF2bo6(`+(RB~>4WW@pv}l$@k{VNI&Z&AVVzOL0J;>&V z_h|-cOocxknZg`@*HTZmOImCLG_3Sh?rS^$>nI+a52HOQt4pO8aNcD&C!wMtln$bW zggoUI%@ZC2VvP4l4S|@Lty1-%1RIZ>gU+oNO{{>IuE087;FB)a-?XgvplX7R?B~{s z>~fBV|JL#a+8Z`2az8SWu@xYp#d=$lULRZo1ea%Jb?{!_F%ZTUn^|?o=<3f6xc$2+ zvi#%tJ*#1sWFxx*2cWG-=lyCm!g3`qqSpj} z(S4|R-LEL|$uR){ttOzpVU0Bh6e`@gsfyss_xbVq+R10=Z0NE+li9O+U^{c3 zjZI>w*ns722v?({FPatQYI_p#9=~^v%cCk20Auv<>D}#jleBr!y1JE^qPgbadt>BW zYF;aCV(uu0dfk$Ee}H*Ki}tRlPx-kJ<6YW|w^l1WY~ySA+%jR}g`%K*g^QB5R#cB& z!c5_alB6bVscdPrZ$X#(2`$3FIRvMAp4GNKlmH^G(7g;R#5~oi9&NG<(aSp3K{-v$ zT!&j{JKngx)srNmsjI@oQqHBPf_cQj8L6vu2Xhiz*t_+DdLy=q&fc2V>W;2|8o`mN|izt+qaj8$HVSV$iZ z>_cJVVkdpl;M2Fx*r}=_csbqFy>n$w!z?GsEy%8+A*7HwudLX`280ARECKk455WMSwrCJ*oHOA1%4i?84Dm0e z98328v~a`9oqw;_Q>S-W@~U^=!4!N8$5l;DMUA_wd_Dh?EP2CA!3N5+X21UA$4P0K z-P0;r<%5@hY3~G-Uoyjo&E}GKJ;KF%DUHc8DEx7FERTz*ZgW3;xQ#P)XJey|U1QJH zN?WPTkQ9ASTf%njlMR=pHIDWYw4MQw7uPX9`j>4B5AvPo!_heO zeQGJa-gl`2%4Wwr3H^-4R;TVf6d2@NiWB^xRzjq$ek#0?@?axTa0c2^ch}0^O|%{P z#!r9?B1;H-FY^Xa8@Pxn`!4Q91IUC3IE<~ML#3KNUIW=?w3yvRMIyGzs*;Xwx3!n2 zD``~qnVS;*%FRX3l<124Gv8&DY#4-@F8OP?oC|Bev>%KMhA4pc`WE15qiy)FT4C8< zeCglq%;*kGFjv=Sea&?uJAjG`ZfI}7>|~+qa)4YbDm3Ac8q}L>rLXoL^v^1ihx}PI(t^9HqgyN%TD9Vzissh=<8sic8v+P+FO`Tae$MTKOM<^GAJHGFA%hs zzAuK7Fai8gzP+cK0;2BprpMD9fk}Xy&kZJqQT`@PH*A|Ou8k=6TYrf*SGyN>HV_t!(Dr+0Rp>0Si!{1a-tCc46P=@4+9#$;(M-5=xXqXT6g`){dj&y z4xzC{4g6u%*n?viR}e!YpVlxS_a*?V)k{wzK0e@Ao>9qYN_GkTmFlwl zYcJ)Pgj+PzQh=r;w*ll}YXMv)xDhfwb-e~_YB1cJJgb3MkH_$7H%8FwLP<3$p+ta9 z@bRO3b6y3Y^5K{2(^ay##2e;-P7`~Fpc~17G(8}_6>oJds@DdY>n9BoDl5Bo@wEit z`Uz_^;dYHYHhYLDl^X(=ihu!C5|)o>#=hJD$gTU>QC4MFNQyzLoTD9hz^)9`C|7L( zu~%q^HwEDK>~~r3Jhsl0o={%H=D1l{Gtssn4>3&S!j@A0D5eohMP@TUVrB$Q6TLUZ z@EW-R{B{uX;xmud8VO)K=(wsD5-Lz7Vq=LBP?~G0v_WG>s@P#=6i}hb{PGp??-|+| zfl$&>yc8%Df{8mVvfE@QzuK=?1n1S>rtrDm`FFy6ef>T)T(9WXr@6vsy$O}^>#_$T zRf&nYSuHhul?lE%ExLxgM$Z7DMr`@cqiSk?2^X@Mi^dYGJUyk37U<5Kfne}-QCVag zc~es>amKde+t3W%=4YM3wGQ^-UFfMG0Tj}lwp+kE0Y_Z$R&r*G?6w9|z=1vwMwB0i zZnk@TzNptH$g0~YE|BmfY>yZ#Zl+peXxreY<_g_6f&i=)D5Df~)57iBfK{0I!L7uQ znn8pt>mHO5Nr~n*Y(dq5qt;Cg+bbl=LC(AU>5bF+Wq#^mr z0(H@-lNKz|*IvvV+!XQy&a=PTJR!QWig`AV@~T`y|7K~j%AO*y(tuhp&!Q>`I-MTf zLwRZh{sKi}{CvNNgWGTS+);D1CCT~L4*;v$l1BR`Tpk9Q<5}JBd#y%=sEzV$B4>CF zRgVP}2HX^@&FfA9bfLeYLgJiAWlB0Tr9c`hfHj)m+xxD%lnpQ1I8+(8C8%gS!3TaS zbi)&gvsQWn$m0-vASyiu_YA2-%c3JXNSI;Wre`af8d9>&Ysb7+*hwVLer{s(Dyj*j zEbJN#JQs5dT5k-;U*@sW=K$^GbgYN)J)sym0bX1%O|HSDj$UyL9z&-G_ zK)g03P+SC@Dp>D6r>K_K&N`K0sBnlwd}HxN^AWr!XLbNFs1O;TeMfIldeuDEFZL(W znEu#g@o+0jlQsOSecc%e{~Drf&j7Dy6h}$&uG;7AhmP7iVuNXnVstGJ%q^&CA$`hN z7z^$GMA~6zgJ$KsAwU5qInRfbX(v^2NT1-3V_wX$eaht3FIJ zuqkbQbQF4VhC{*H(-3J|?vOH$4E$KY%VXFY@@x~)6?eK+zgBA~2`8TTrEoM01#}8> z?n3` zuCF?nlb{^Q2I2ezz@Qo&E$ZO;h#hA~3dxY;rmi=vG?SBCMzA2snaMV=>u@9k^OB@M zDH2T;g%|pgQ`*BqzDmnKsZt@>OC2h06n&GU?9zo|PXh;<#}%*MbWD|?E8ydU$1}71 z3 zdba3dL}+;1WYq-lEWClE)69_R818cA^pev(`85&-3VQ`70b@ahA>ae?-rOBR;IP!V zd@yh#>EOcl{ez9G@&Xee|02h^CmS4Fgz)b$yUo1Jy)vgY!f~wm!z}sUcuf|Rgo6Yo zg@m$oK|^3}oZGaVQ42U=K^A2g7*r3IGwZ7W)GDbdcfQC}sU7%W2ENpJ^S}E!S%!@@ z^!Z4ro8lNayNEX;GVN~Kr~Pj6c?9$MMTvM-1Jtaikh&AFItz7g&6&PgTcX_Z?+8vv5$*VN&FbMPhNHcy2RMDRZGs6t3(aw z;e*j4oirq&5qyRTO6(*#73?~#bD?k8N`reXzYn| zP`Fv=Y#?yVYpRD^Qm=O8G8j6KApQ?mcI%_V(Q{of<#{~|~ zs10})4DHuZ$u9>VDNxgEW@-1kai|+3Dz80+Wh#K7# zJeT?Lc8N$2_AGDr5Hbm(Iy=B!!4mu>@p#>g4=fYnj}~NVL>eVTd+MLWFKar=GPIqO zmWtc`$?36;IK&-67SIm*Xl~JnL`^iWMtkGBhMB#6bW7Mw%;mTXwake#2A*C-hatHl zsUs!V!!qlMX~nsE*>BuHkIRy+Qfd4qJCwgzj*$4XI;8EoUDz`_RMi@vmWOdD$ZH*B~J)<0_eK zaUHjM0ItP0_kU^pt4HBNc-%tmhef0%PB=g+ZRKb~=k~x33d>raU7QL+gE(J~vR)!R zer3Hm8D}N|GTTwCQkJDh$E^}Bw@@0orP$Il2SQvEHbJ&Ndh1(} z0YSo^iA*B`<4yqGup)`s1$MMStAbzfuKp4(W z11l@%v zEz621X z?G`Slqnm*_IR41X#?Rkw!)f2yZuWco_QfCw8xAM5UaKTd!3lBEcK6rZq}K*8VgxKszZ z*#Xsq@5jnkdVlZlkAvgR#g0F5N*v@QL3A;V{Ck?%eB#wE@eM9l)m7J=6jp&{>6m^U z3HcGlZ+E+mo1c9k1{HGC8B?56!_!$k%Y=E}Be9_7`lk&rgT@=KYxfOjc-emFx;9cT z!!E{ST&;#U$tH+Rg|gd;PS8d=I(2O$jO2}G<91m;FIp}S!COzdIA8>ysca!c?g8%S zK|HjXqcQpi_nV(s*|U%cI42iJeVlF)uMSP^Kyn$E?3Sj=i`#Mrpu~QfNWLRRjZ3y9GdQ_nV^kOz_20KSnJhf`kdakK~pHVprrHCF~zDaLiB^ zd7<0O@Wa2LVn20o>^e<&7fWe*cqA@#4$j5OmmCN=fYYJEJyJ&a@SP%+*nlfTrWgMylehxp4jlG+8Pt3|)PjdR=aXxiK( ziJE_+_U{iF5PECeAt{uS0Th1TFT(6{G3GRh@?}&aBZ~5QXc2L&nnodyk8uPlIDm{t z_8xXa5OK9`Ho~|%KONCpP9L_|g_!)^atg7s|Bb)q|&gXkPwafdR!t&{b29-!eRe$033r&tnMY_7(2Ju;XxJx_ImU2JlAgUX~TR;jy9mz z`ze(DdwzW8REfmloks_=i78hho!%Vzk;)EVdsza%mxv%r%kdRr9+TygGzTaUJ79(; z0C`>2Y2?gl!Gt&eJ{T`06fg+f&2RO{sp+|OzZeuX9P|s#IK0u4I2)po`QScB5!c{v zPEc9*af21~Dthx|z`6S?%17e#_1DD*H3-KGKmLrGW^x^7$E0dlHq`X9Fxobv5UtR> z>QtV*H=MyG&tgWQu8tS;acX1?m-M=c?Z?B%6pBt*FtnQDUG|>k;Rfv-Qy4Arf=cZm6mk|{#5Kwj5tK0jf7vK=|Dpo-}xY)^wczjxFL=Dw2SKHevNi?aB%$5y{^bYbl)Mq8Y%*gGJM5jMu0 zp>va*wTzBLq&bID6NeN0Xj&1Vy;)pIc#5kt{}i6i-=}_$#3JsDT)!^k|}u_ZC=9r7Os048UFzPH+EJNF67;V#)Tp$ZPR1t)H6}ra+5`lYjumV< z+%7Cu+2@B7;4o&xwjyceo{+&8KK>L*yX?dcZBM0IiCrI@HWg1K7_U+J3%Ez)S_QaW zM?T2J$CLd1PBU`B2YpTy{n%VmQR6qX4IF*Ag~_B)qH7BAqm12OG5Uk87gM2p<=2d` zEf<=vjam}@OfICb_knNaiM0&%T0C-g-1F~NFH(z-(CUk}sjZ&y=dzY~&T_Gvep4!P z)@19TKQQh+zf-qDPkPq-xzUF_A;>*NS~B6uV?D^dlVccsQzn0eiO@v-2Vm zL+L2UcDlQ5$?=o%{S^_VpE`xrx}v0G&I>S!TRn7X?;r6?FTZua}di=>nj$NTKuvdA2?Eo}5k`xvsAZvs6kDI;AH!=Bqq>%Tz%xgyJT zo2jPjHFrM$W7tU`0RXW7w=430F_3D~)>{k+J)i0@190cw1GGh7H{oS^YH5j7;|WvKB5 zBe)WV6gPtQLkj^ehdb=r*bivEosV zz|9awh4p~uw%*S6u)ZJN7gP;v_Tr~Wq@gSELO0-{mzUp?Z6oqTB{H{Tlm$X~Jcr0M zwp~oIBY@?wxOJPb3>sR(9#ZOlEG#EuU>XK7?Ned}-q;S(trJO|cP7^P^i&b9F9^wm z^O8D;ts6P9f%Sk(0JPx8t&Kz8N25gqUps@aJYSib#@NY)@BPO_p`2$J zvdj5`NhL-lu^YXnNxC(5#7iY-Tr949Q_7UM4eC9U`c3GA*rhcGFSW^# zXEAf{0Ovj^dMpnknSC`Eg%qW>3@qU8qiB0bT;!Q*Hjt_p5>RK=BS_>0Vl`BrN#f3x z34Y-$de{@2inb(G@Ux0WCBot;n#qe}deN2{u}i6E>DV4)rKh239DjIz`%)cZk{NSA zBc^toCw}FukoK6GOzHZ|!|)=gV*8u;z7GAeP9K+XuJI1N=UufV5tCUDF?=~v92?M) z(Y79aFvx=({T6ok88~@mAfbLGu7G?7Pq|O4vNqd~C^-lbG#!<|8`)o65;_*;y~#oj=K$ihl^w zN3irqE9lzUry1pk6biFZqFKRftP<4ZA&Q&G7JER(N74P9n?^e5$2y0S)WmU5bjSwN^GV6EKFFn8i`U1@ zY16oANp~*O=pLOwkQFP^L2^uDuOCochR@xCOfGw&1+HBPfzbB~SWHk+vXJWdNWokn zRwPszg_*J)h#Cd?tM&jjm1xd@72A-AJ=in$IyB!fglJF)WVs$R*#%;o zO=k|!>G(sc?%%Y5^x`ZVOQX8rHzN5*vZoHwGFy(X9^34bhgVh-X6PqGhfUkpPO-uSk zd36u?z>Hh5a@YsX>jcNe3HkOart^-3LkKGwsC1)HFc*xx&A{Lu*>OLHO z8RpQh_g-~|I#^zgbh6;!F=>n`<>}g|@@WWv3z`>{NB9Vp-@6W!Nw7vx5O*66niJ=| zVN2ExTJySw>;Cw?u}|^!h1`( zOJx-Uz+n74C1oOE7Ms>JldxMqNl`+YNWGVi7f$>Ddt8bwpJ-$|o0n2z+BHHwulcsm z`Zo#~Qf!qM57Ac8mVg`S0j@Bm9LP#tZMQ^I{csx8Ky}W|iT_~NMEE&3)*47hxv>j! z$C|{BYZi~d0w&*B=M@L1hnC{0N)8XyW_Y+EV_qqd+vXDe1rkN%g6OH|8gs?$y$LgB{gp= zKIdp`?BV|G1{9SrF%&()%D86mTu(mMTx;Jz&%ILIYmG0T=ir^5tU^9aUYfQF`=1Z= zl*{vbG&XAA0`jlMdtd(1nZH>>W( zFVcbWYUu2t-MwOF0`Tn0OIV-lzkff&|4--T@_<)mN8B@vga815B?JH<`rkUQgR7CV ztI>Z6rmnT5;}6-8{=pRlX7FZn*lEL8lfH0K2EibLb%La6JTTzUREsR@%%v!m*C(*| zTWwVm(hE~>uRqypeZ{ur8n>hBPDdqdvBq0`mr9w-1&ru!7Ov+pim8&nO((HQI@JTK zEh)nQdby!B8kN+4@S4We zht5xvK(uKUZrf3(sQ2Zz0)2gILrl}uI5nyJt1R$DjT2gV@5KNz?u@1bJv?Qv!gwX! z3;*6rSkk4bO(t@e$II{#VIr`U^5&LCod`1bYblK5n91x<1cgdvkSpl&i<2jdSu1kg z0w@Gv3^O}O>l8;Hc&f4vXvu%>0K`uAev7jdI>WcMxzMU7z;c1e>_Ed5A)yn1p?#Wz zT_n7MaP$?ZchkqJ%??%AO%+vz$X0Pe(PC*f2oKU9jI)@#G3W+h)LM(uF>_TkhPoV~ ztL1X6mA4e@y$!J30a#w0lT0ps-hnrt>;;M?3-Lioca5a6$>Di<5>B7d*YDKFumB$m zzD`lAL;_Pom6uRQfm1ITB0sO2rutCHf~P;SRobr5GyL25HCEl9XkH zW-;49S5@`3+O9)g;H2ooad$HP9?34A<$=U>i@QQ)PB3CrR1{}c;7fsMQKhbK;as$zQP*CiXBHXSQ!i`CAXkIpt^od;;T3G!)-%87qV}(o-hPTRCbP_p= zJYTR_g7dQ&6 zniAYfpkfGnaf^fY8M99|lT0!q=`5Hfcv}#Z>4tCv>Qcj(H?v&0fqe7q!q9tYm`=f> zGKK`V4VXk&HbI^DhqPjbQiORX7TJm z5w#>Q1ef%D>T*!>OM^)+KX;Ti%!+ zx{P-`H}7av8Hoa-W@~d^3LWWtOkLpZy?VqNI4$2Ee~~g?#0o0J|9%8P$CNG4p<%$o zr0>I~6%nQ0atRb-Bxp-vu zT4)T$?P08oImBp&%(Cyx@vDlg!&&@M((imtkhf5XV(NVwcqaTd zL8Pz5#cNe;=MPT$$Px;B3utb^fI0HMQ$A5PlwQmN)F^`>Zt|0aj65`lgC(XaHSE;Q zy*+i~PwG)$?)>c48gxI5bb3wfbe7+N`$F|g`!{t~6*>OFoMI+_au_=1bGf-Dq?5;nN@2o9OalNuZDQyYg0A$Sue*xOTOi`+L^i<6dyh=40r$7Lze;K>NTdLX!tCq=;ay1|LDB_ z)k3BfoI?F1JE7RoG3$JyE|S_LjR0ez)k*CXo6I;2-8@T|WlLQSlH0M$FwSLvF9_wDVi5ed+~ zUp=a=Bc?<}8@nw0-hrH!>JJOm7;KVbNq4XZUaf1EbQk_|bpHRO-%h3`md^i$V}{jt?KjyF z{9g41P2dxO<o)NK9iw2!GsZ53Q$31`84EPGxV0^KN*6L?j3Yn`wwI za983B*ktqaXvKTUqat$)S(DC}p0^oVocJ_Lt>m+c>?XQk$>q>OAWtz&tn>e~N=Td! zq*15cb_=%-aBnCm7P%rM9qHh?XwDeHat$YZO)dZJYG0SO1+mRQJEhZpiGeKD}(@SR>gV$zR5Y9DLt3GGk|&+ zQ46s#kWLWvPbF~dgN=$WlY^M#=xDTKDV4CPffm29T0ZU7LIplHI=K4z*@nwyOsLzR6*)kXZTEUdH@&=R>2lpu6dM=cuUAZ z3pNtQ_N2t9S*DWX<_@JwHsZUbj!NqH?YJ=PeNtzx)sx9lNttf0aDw&etdr6kX*p;p z-MXmm`hMxeud7At#!J=Q#a}mqvMXCzKM*m%3WQxqE z5Psir9jF7_!kA&+)u)BSv{A4Qb9yumaVBB#4&rZZ!1+$7Ol|H?0rxa@^-RtoikHcV zb3%xJB+81P-%#+bC}*UKFL4M!Be|4LoX(R!fJf=Z#i^}EAqFohM)_K1+`Er9 z@FP3;J%t0_^dS6>jr#c_Wi9)PWng$vtg0D4XQwYT@nQ^_9d5fDT-EUXWyH6nk2NWZ z_rRJXzDQmdys-Q+Z+ctm=*eYr5vul2-2|8D!hCURL5?UNsO?a*fmIEL7obVe+bBm_ zaFN%`qseqEeJz-0TbfgBfVz7I8`M~AiyTZ1-jrHS>VkZxmYC)G z&a+&B`!QWr1p6^;^69TY4Efd#A znUxQ8F{R^!ySJH8+#6S&l5HD@?VJ8Z{G8$SlUUUQ=v5QICxd!k=-UGmaWyd0Unjvl zTU>EzSI-1)8tY?s|6qa{mi8`YCJI>=2P5bmK3{<nUj5(o2H%<5_4%|%u8z{LI~d||>Aec!CoGkSf8F06D_BVdMQeUBJ+o;k2$;6zREMVjC4C$3u2!b&^wu8 z;=W^srm~Sgmo5IC$M*3GN|e(fI@bTs;`l!@>A)$^Y$Z$pfHJTDi%iV%fMf|KK;86b!z8WM6+{?ph1dG_NvWp2H|{mt;4k7E1U)usRD z+GakgA=$-k2=OH{FRlEams@d>o6^}`u}NbOx2#ps$UNRF+MJTo2c4yL-QYElbiu`?{Tlov3xzTPpFMdlq>yt~*;xtsY|8$H;Wn#@aBELE@$ukyo^gKiDj$9206&w~;+oJWFgxrVzT5 zZ)R1Uzl;$m3V%5C7KAr;Q8g&3Zth;GYED>XHM{DuzBw=xFL+X`ml!Zz$JRNKD!KL` zyI1rq$LQTSw*gg2?afI%A-$o0XqDEQHdt+RX+aZYv{Llr4`%j6g5aM5RIMl*e31QlK((AYTr42zjKZeZ-)>9d&XVLG#l5L4vI_th+ps2n)o{PBdl(7>!-^0g)kg4T6C_ zCk%>WwG=gR3I)3wtFzlzkxD@AK~?~L6a0}}JD(F_w1Zu)7~l<~bmLa|hhcIL2xc9# z+#|a9cm)3iqaasg3qtU<&jq7DA;Few&o^f6Gj|w>4Xz>>5@b5$63B+dn)8gHW5#%; zhuxZkCtn@=Tco$F0v01KNHzfn*NS!p=t|C5LjzI+VgMaQLQfjGd+|&`zi5=hVq4=B z);nT_7UB*Kc%%-fbv@u6$pGBRN$IVs^8)5imZpn>C}HGaQ}-ym)6qPkzC4#z8sGX* z3Vyp4wq@w9k z2Co}dsKrV%$x&1VYs1uod^-&!J_T6E<5j#TCA3+Jhe@k{uC(i7%je@dLir&>1Ei`p=X1m?}eM@TH0(*nqMn)>{mmaRo zYH$^1+?q(x!D&PetThL#$TBu7?Es+{yJzqPBi~=zE)@CZfDot;2u-u}gs%r@F;6WWo<|KoBaa}EI@`4LDY8WJqAPxd{ zuj_r5BH|;3#eYW_HlodFtqP!Pa_i_MHJT^2n~)2wRL-BfV_D?$VRUy+s(=>i!LGB6 zz!bgUWgw}MM~+`8-MolW10B0epBMM{Q_`B`l7Pcx{+WMvx z`1jDCT#0FfIwI>t>gnfu%D$Oa1d=AO-Neu^*Of@VByxn$pLO_N>8T5?a&5}5Kjfot zSRz1mrL2=Ux*ad7>-c;=Z}!_Z5?x-hf%_q@?Ln4;9XksmgUORp@_%|V$wY`|Oc>!g zXh=LYBknj#9DI2N(Z~a=>=z~U-PbJyB)1mJ=FAx7LQ-SF^gbd{3c5hgs|d2Ko0dtU zSg0uo6NrD9W-+LU4`!M53U28XAf+!_U~GoUn1zA^)H|#Jn`$z6OWE(RLw@W z-tI7eh@&Gz`shLj&{c;}3~Tb-8nGRFf}%aZ5l^bsKw9YGKr1j)W2g6Oed&{9flTxE z?~aa;R3FKyBK2)2vRV<;CnklityBm<{b6s-c0y5I#Ki;w7-l`LVDXiMP61ehLT_D* zcpn=|=M)rO^hxp+3M*~1A`nnTSOw0cp^NisDuNp-?n-kEn+IhVcZw~78S)$>mK;^I zI&V@+S8^$zP*h4D!I{*=Gb|==H!*tr`udWY6>0&gqT4)n+K6ysz9j8Kw_yC|-+(S; zEHWY8jnITt4u#JClYxG3rkg=ZopG;B7Wv8#q<&a8LZ3uD8~L z@P2UHj%#b5y)Vyg^kdGzGO2;~mZ#}|wm*xAl?mqI!w!|Do!f zqBD!OrXAZhJGO1xwr$()7#%z5*tTuHv2CZrKj*tS=ig&rtou3kTx0C2ddkgSH98dD zZ(0caq~oSdgO4&!Gf`%$#)^QdpKTIG6H;4GyQFtX`s#7@SpAwOS{%nplvWXRCKz2e!1Y<=Jy4bJ~J{-8VFI3x5S zjH9$ofr8tdq{X(6^_YK9<1)U&oIsxfd@)6fJfl-TwjQ1UvNjL2u55G9b1_f-b2>*a;v5)CvoK`L?oK(c?^zgNvrc8hYY^hVS|Iip4j zRA9E1pM9_-O*+QyIg=r2iPS=#bd3QQ&W^FAi#8qP(tdY^fiacZN5k9>>#oKTcNW%q z&&SaJ+NW~=Fng3QUtFjM)vOiUERCh(AayHN-L*#L*UvLe@?m7jZS;*{)kCjJuqQHB2gUp`IG zWx5M3b~}$ln_QB>=BWka8}}PHNbLwA+(_)JIWyoX|$ zi$G)9xkBG6J^9U_zmfd-p+!Gv43eeUrdeS0(vCJrW+UqKHt6e?+3}ScR4~1cRFsgB|G#0EF zREeg^SOjiZjdP;N`4Z6doYOuOizx)az?#!#_M_#f957XcnGaOH9m47aZ|u1~$1znU z7_-OHup2j`9VbSdra3dXV8%_EV}FKaXtT|rPfv7jdmTH*WIBjcVu%|A0qX`Q-8hPX zW0Gxsx%zcg?$j^Utj<;ezX`V0cW?cya&YyxE<^`3Q^job!hYQ~{c6DUD22QVnxU9d1_@sVcoZjBtLgi{bE zvgeg6r(oNGrTlm}>~RbxVmiZUIT%yOH)*uRT>rUe_}Z72ar#RcU= zImZbT#K$ScxG;d0qubI~rAA>i4i@hEI@Q0>|ID=81(`p@K8kvXA^V(YvJiFWUNGFt z@8ih6X?F+VD8A2bp5+0{Rv1rp^#P1xDjAg`rQu9NEHlF;=Q1f4gQh)kp4@@%u7aW= zNSX2FjoK7KP${+HvyHrnTPlc$Ckn!12=h8YQ#Bkk*aB&7nR=MCD%&P9@5St(VXsul zM;lVZ&cp3!*(jLT?-G(zO01)859!$mncmv}8In0ZDm+N~r4TsC9tj1}MF~9VL$YAN zqYvvYzE540TDF?Rg#O0yE|}g1kbM-$rT0FqaT;VCF-;hd5HS~IN&u@5&I*r!S>>A7eeK?c+fJ;kMe{f z@odQydq&xNJ%PD8!4*gI<3gy>X=TE;9)&FO`TAvA2I^?<{)^X;KWzF2%`?dSTdLsG z8A5{c;2TeYS=uE+{tt_Xq|Rayc2z@w{I;HT6ci20QTzjz$e%M;Dc@ne<%t-N@xgjV zZbB}P6E38Lwb#{0&Mm;64ploW zzemhFmHn?>%7rMwMaU0Fi2fG;cn2!`JDZ3mSa#*p&uYm}d5?;oK}q`_S_?Ou*A=d# zW+|&<-Z_!uMyWA3+E%P{=~U}N(xH8n`aW*C=Lq$w8GPr<=)`lqNVJ9)PMuKjbQIl) zHJPsv;jcX39}LT;-;$QcTlK+S&qdTkBuAqB+)u*kpYt;{8>7&s`IT$#jC~d87!{Xt zhLWTM4=o;Ce=*zvL6wY;Vf>8}>csg6GJ&~wSRt=?J(WU-!)y?$DL~A{F!t_h_(dv}jR+bsnlNH^)BkAA ztX0l(^`Jqfhq3?pV-Xbh#WTY^^;>Qrj1!YWLGAbxwMwM$?U#+(Qy`1KBA#ls!K;PQ z5K66rTw_^k9J}m6I<0?GP9YYtcc3aTr12Bn5}F8W<6H8t*mHT=S=1%H2NOYAa;^-t z#>{;>`?zvz{V)&Xh7}hvYiCzgm)3r%bilvF?DXM8ltXB%i;W zoXztFvr$6HT=P*0VP4RxZ^Z1T%$9sF}xsvRjdkw_6V zU~rvD2WF*zu1n}7@<-k&?>-F~W6jsfXu;ITsq(78>XLQCUd8HCPcKg zagEW;!m!nW9>JrA`B#xMiL|q)1=<6N(4LBDjK9KD{b(VRwOB-H;V+u811OO9_{_eR z!s0EmLp(w``^+Lj$AMUkS}*c&<5Eu=$Tg3u-vXP%C{^t6KwQ=bDpPUYSj^cFy1tuk zrZsV4>S?O@!Ne;YU3dl%iXSVV3@ztfOnpVyqmuKRZ%ELT7_}It-DRuen#BXp_V2=& zuDqA_ApPWRD@He;mgpSkw3a*U zd`BV#U=*G@f0_>#%I!apzq@e;rQf(-rjXJ&!6hu=?#| z@$-WXq?%Hw~*@?_Hfk%^fBML7H)mMvUQ9tsMUjYJlD1bTb%q z`@B5o=sP6my~Z*=rm@717d?;8^W#1=8j3dclK2kZa1gA~zF&Z8%hM}m2k>B&*g9*0 zuukJj`*}6{yu8hM1nbjRR=&D;7s075>V0+g9tdvih*nhVEE1FtOIoJ<)+HC|PfAOW z=L=YJ?p&B;fukZ7Ni_Y6@$!S}bxKln=zMhq#0=@jZ5K+y$I}a*?;XO4@X8sO03T2!8W3$9MxCYn7SSHK4*hH7d31ev}8I*m-)fsWvc=InZW08JDp^4HN@@x^o5RX_e)Ov%86 z23Y;){>NZ{5^J@>fMo$;nfX;Ls*hoM*stClVT$X45su~VgmJ0LGX4S~gsvK-tK@=^ z|2-;4vo!Jy|MBlfo(#}I8$W-iaUM%{{RhqjdwOBd;2GI6p9BPCQ?B%AekH( z_C1d&V1Ci!B3Jx*$9dYGk%<$rX^b2kV2_V#^ID&b+f6_WKw`$QEy;jpMiZiV8B;p= zJGubyj^=*303aHXTyFTNYHo`zw6nC>{4nYD4dn3pQ?x+hOOK0BxiTBY5mm?_we@NN3TQ?{r@ z5D#SLeXg<_cUIpcZB0G9h}q$T^ehMy(ZIH?erx0r&$C2m`MRacp`>*5$MpS7*TeEL zqU;x5m6nXVfIxF|aMU4AP4{j}B?aJ%048D8hI?ks2h;4eHPRbe$zLXb6wLZNXSbIs zcvMlq#OLfwU#4#PtqD)QY(89(0k*jOlvIrmX4|~m(~C1$#Lg9jS-y)RZK3;{Wh7Vf9V`C^v78hOvf3b@ikFb*-^G_w2&UyL6muAX zka4h&rGeBl!!ozL!tLz-DRQ^ z$4N=u;;3;?X)b{zKj>v=sNukNd?@gP>5Lh={H9=mb(8y9C)EVOxuzF|sT)6VV#eedEhg{6b$@Fd(i~GCk7Qi{p@gFsi}AM2 zd(C?l-u=?6g<@mBRn7HD0sdpm8wJTQo@jocpMzL-(5f*E83m*GEY;;NcI1nc_oXd? znF(Piu|W~RW1iSX>q{sfvg8CpEGm&1PywXm!c1;y10^pH4W(jw#|E2P9Sr(M(t79t z?#MjZAHaq0&}(}c!o;56Ya~%`x6A1?+g@2G&p>}{(<~s%5JzsHe9;V(1m_p zhV|<2mVa}}Cn_?Yip>LH!^|Nr@66(4+aQ$xo#($wjI$S_8skooFi~b(%WAEW%lKrhJQE3lb-g?9-W*SG-5ILbR{lbuY~utCJub_RtxO(r{gR zo$q<7<1af+R34IW=!bnuiZiFFTS`XP(I|tdoOdR)uhaj{^G_aYr};qG9LKELs;{Wp z+`}(lqN1aX9v#EdOz&U)?mHQd!Mx_8vY81bEeiEwXH< zaF(&uLw%T|Uk;6)_)=FUVD;xgt-#tNp%B;BdIJFT_N!u(nyAa!4f&;c7_0k{y1`<9 zt1c-zFIACbvB)BlJ6?fdmmB_u6*k%vs$k(&9$mmgpBxXmR-)txWsgmY-CtrP5%VM0 zDUS^A&qT(e68f7wx238ZqAjs-H#nle68#9T`h@yVIb{fj_o*KdMqFmMm{ zCesUae$86eKViqqIOHrZY^kA$v3~Z$B_U*@I2^SSBRIEEuZ?AG&j6?7ffhEFu#Mm? zPx;OG9?${$tv~jB+_8(9-@|WlpeJ8M1V;p0vn^O0L(6G2c9F&b1lS*tyOiq8Ut<+y z|Hwo~!xPkVPz}j6a_F;M65!BD5oPPms#ts-1XV34ObwAYYb0zxGl02;D(ldL?16$Q z>cxTt;wT}d+NeOB;hbHe;fnM0+7z!%&Y%+nU4w3bbM>C zS1!!z`P3rJsIpvI1l|0Byh$qx9TBT`?3o$6O3TAHo!B|jRV9Jw^pW0b{Y$df#v^|jZ!PlSI}_1#~rp$KmHzJt-Mp6OtD-lC=)4 z9ktIHFDhso)}Tx()D8MCnd(N)5MB|5H^B*oRK8t6&eUU~vrj#qAeBM2#pEw_A7O{*S8E! zCrBp@LV7&ya7`;FmhE#>D0q7>g~uQkc!aJlzS>))>2Kqm`r|YkLzoh++nS0FusTya z!J~gICTZ&}suHuc^1u^8b=nnXJR0mTg^qd}c0%m}h4qrJzIRnkxYN0hRqILTLB*4O zSORh(mL3Ypbo8%u=&K0w*~ui_EY3rOJhK!Q|9}!X%_xW$7-FGr5HNdi5E7USIe>dG zZL?+5@7NT~Cte%+KV&jXU3Hfp@Ql@0lqu>R&$ztmoQ;6!6Yx-L5hOUVF@X0%aD%Lf zn({VazTvk8b*eOKiR`}A3p-_t$Bjt4F{N-X%XDh4+ls0&1bX~6iSN7yF-Buz0qdRx z$UDA@QP(4Ypa_?D(l(0L4_BmG9}oT&pY70*gume}bZZLu6iPRUo+azsOC1pV3@Un_ z&WKCdfr~z?gZMGASwQlyvtF3=a<$3p)hB7kFZ&w^Bnj&`R3;Y&ZM+oiyb{(P`%k|~ zs^P`qnw$*X;7g!1sOpevRjQ_|i-!%LZk?$UGqOuUiV8QfK5 z--$bQUDInn>?Z{Vw0U0^V%|^@C$Gb1*L8z&_WN|}!BLB_I)$dy)bPjk4yET{sdKX4 zQa%gkavwOJP9onFdVnyLw`1S`2I)WC1_s)TSVB!uU;Ak7DSM{p@ff(Bp8Z$|I{-V< zf3kd841`VeHZxfabB^q!PXYFmq7--qSEPvx289ew05yM28@z*Sg!g^D-iTLxzvWZ! zB_HB)-K%11u=*A1;n2D2OR zzBXHWv`gS94bkhIE6>wEwHY<^BW&@PduwrdX87-Q{vTt7m9*p78Xgc3VE_;i%Ku*H z|K-l{*~D*%C+(bQFfxHi#RD9rZ^$v47bx@XBLA?g$Pd>)@DEDjTT~%>H=r zHRAm}l9NzR5LzSo0i+F`9Y4?ZR)za}%SB@arru6VGjHXq(3X9xTH~@oXCc)_&KG&5 zoyyXiPQXS~;n2uilx2Qx*?ME6-0F1$@8axE?Ql=+x;O+wrZL4~k7mp+7jFmZ=b9E3 z`*6XvMr7(~Ly0)U&JP{fn>}X?V?*7pr-o+!F?mgkV#RJT(hZSL<3m+=r&YrOOi9kf z4c4U+7{oWnA`3w=gRbFHspTg6sz%dPE~|ROqmXBE_u=esp1%Ia)&5bItlQ-5>A%UA zT6RROd0tcR;;)v|#zIuBWm7Tp1mMjLzm--kCs38CMvc$vU_EtZ(oJ?PgE1bdPp@KT znuHZ$C63zlDvTS^9GkAwZ@CRBFh>9y_%?kF#uA#q2dzOyIL(N3v_E%|`ZBo=rkmd8 zlJUAbIvo732P%%nTkd(n4su+})1>r{NbP7N?Sm7gXSyfwU&UkBL8>6QXTZz>ObzeC zAhg6z%EZdQWoo?2t>1p>TUdYsKrgy%ae?7i+=$Jdvn@I79Q;8#sBrq2c_->rJ{H9qag5q&l>%nSDTT=;JF zpnaEZdjYL(@G&`0btYu&Y1WU!J%RtY@aEZLF5lkdJdjpb+a|`etr@*G2&{KoMRu;E zdj_5$SFU~PH$Y)q!t3TonYnH`KvD`rmZzfS;=kGZl5ZtEh=>^@)bJqO{61Gf+CUva z73DT`09=a7rqb5uHnZwI}3GRnik7SU=P~dobFdv6f|? z;uoX%#qk*{y$W*`HX>#C%?~io{^FSk3zg^&&)xFfOwxrHF)>_y<4$GkLq}+KHHvqW zgTG~o77WpB%v;`c#Z}uGXLz9MEszNqlt4xVp_hs6Rqn&@;K)E`#MEf@1#`g`V^I?FkxY^L!Ki+`cj-FjvY2zc5%~qrIwigEA}$ zafyLd*NPsgRr7v}?F5Q)N+yyj&RJWPSqDTsO7%PAgcPF7Cdkc)fB-oyxK~j?S2BZ^ z0P;&E=>bn{2XV{_+>UzDfpZnn9dDRQVPRN)76fZiUoCV_Fpw*f@URWr)G^Jw3T)YYH{BC$DY>)i>5bJK_04MLC-!vX){Cgt=8hZVCzFv(^a> z@cFRE{eyTbG6eRLcW^;AS|1E$^ZRdvp%=}{>c!qGeIkY#*u!dd*c=EqZ`!OEEoh4w zLJergz^EvyB&T6nLQ$PJ>mF)U6S`+Q!9`0G2nmI1f=AF;z*+D?^)}}+VR^sK`z`A9 z=%!DNT5Kjk>#DUaP@p-nO^rl@$dhy(8W(0W%n?|}DR(e#5;%{HTK|MIyXmCd(uKEj zvHnuRi&>cYqY6FGvGn4DLATv2f&4BhU?dmRi0ifFRt26jZP-7erLgLfk!kZaQhXubOGAb;t z<(KabSnwI>t3AP-uf+48`P&v9S6Ln(Tw`#Rg?2*f`5a??Wt+YtyYl<+^ zj79oY9fNW>qF)6p(XC6z^Alj&G(Y5Ox{+X|Mx;GiJ34w$E0(HqVdV5?ZG*#|ANKrBhOsljg!IG;hU{Jl^MMi;}M& za$_|_*TG5qj0fNq!QpI>O8kyjvJ45AT7ba@f6AgogG>x`mdX<2`8s_ZkWQlkn{kSZ z(mo&OT@0v!!uB-;e?5#Yfesf{r`a5-Tt?$Ey2fsj(M|MPuhq__piKqL81UyHYJN|q zNM$zw{#f!=KIx+nAII4n;K)z|BRt)r@V&OzJ}wOr2=sI^bX2<*VsCVG2Z7^7LZ+J& z1@Q(J&qV}7)dfd_HvhYUl0uc4T#cv+3DdnxKBLv4&uJ}_o2m?hH0Sg#03rI=QT00j znt(=-+D8oyf`c>7-E;|0vm&Iow&bKfHOh^5HQTYw*sU|kNdQg8zZ09|>Q4r+-2rY+ zUB(tp(peT)Y`vvCpenOa~@Q+ap=Tp;UwaIkl5Z3sD$)26S`->GHH{7x83|vCZ)QECO|`#YKjTG*iV9*fQ_Iv9v4#q&9e*Bg zkbu24mT6fCq2zzdF9o%vGCbXkINAF*SqlbFcj$ib*c2PQEq&#(1Kd}cD1KVC6IdtR zt+N#fy~sx?lv%tmk=|r^Tbc!E!Z2TqYc5#&BjLpwMbl1wDAE{?-bvMGL$=5%?=|lY z&?oW$gpyx24X;tXFV02u@bvX%2GF&ns-B_bX69K9#XncwvW-%a%BnFPwW;2+O=8elAfK@rgv+4hGHVu4?@j+Ta{q^^ zX)jnA=Yyw+l8XiG8wrpe+7PVPDy@LT0~}Pq(1 z=#r!{O#FHO!zK0@R_e5&5|k<_X~$d+JY#Z6?K#d1v$(q_jZQOL5S#7}+m#>P1YHRZ zb2TL#9x1Nio|>k*az?uOuiVFUGaApqm*Je@v4uJG{$qzuu0Jz7g5BfEQF^QuWXNe= z2Mtgk`BGMb2~KOT-mK>0H%~f??-Ls7CUiRsZ`yz6I2cpU7i#wd!=W{3l|Qq&c(~b0 zLzbgMW0il$&sWNY>luRgFri?i7x4&@Dm#J0@B-{LCF{!r>s1E^ON$I~*QZczFiauO z>btg3rbcP8p$SdxNcR*_V}E@>nbIZ_0NgXu#0;{DV(PG=Nvv;R;p_AaPhi5Jk%T{d z%M5k)Ro~d7(8hm-2@C%UpuNnsQZi{b(4r{zma^nf|3hVDs5VZ-_je^alNb2m1u;F; z{&)iHu||}IELY6ok_vODk92tK^){OzbAZbC>-mFPa5qsvg<5~%7~a}Ob{7j6y@ESD zk|yVP_AwlsYMvb@$5$+O!kUc*Dz2@1v<_eJiFGesQ2E9w)|8g1wEpXHSM$siECGXT zMNDOZ@?JCiw{t{n^Y6nZ5!+k|Myh#R=TM?lm}KXG@(ps7zIlni4_d)Yj!{vBHUh?S z1Li8#3W4D(f_v+}GhGrOB=eVeB*)p69LX^1oix<9dI6$Ed*H{UrOAJQHpr?8%=X3b zqu59SY}5Q2ep}^Odf=ekl<^NDtBYE(&y)w&-XEFq-b*WgR4;VUL&*%!+-+cm|GoU= z68YcyZG#9q(;*(rUf(RDdS^^2?)t7INO| z1@IPzCf1+gvg|aSlI0AMS0y>nfKkqhPUFIXB|^>+Bg3j?G;t+opn3*pSW7NNW+2I% zAD=8+Almcb*C(Y)m7G#E%^MU3VkX82lOL*cQZ#6uLS!$kV#Z7WW$XJOadZS5)@Aj@YkEd~I2Xeil7)Yt(xc*jrw=n&KIs zG%jsJo{YM7r4tJ}DuLG7M@^~y1BHz(ArIxz@ql6%*^W(qobXmYrYX z?Jf$=k!yEgik&zCR*v4)R8kos7uPc}E6_RV*MW-aj`#%m0#*muj!-Y3HQJadSfH7* z0;>kWvKxG?r&X(2Z^l)Ji^(V2$;@co zq?N-<#{C+cwUYT^!kQ|{{V-uu`U7WMY!Kz9kZa`j()uMJvC63R!_-DsXQPYC&QHpz z1170P7!gKd#@JmeiV}&OdGy3Q{bD(th~v>DsL$~Ax!Bf;xKt|Rh095)op_aTqfu!O zba=g#TkAer`vzlbXJ%(9LUL>K!lkj7o_}k6Z6c{*17@vhHNEO+nYl7ILjoXm0GqjQ zHgzS^H$O;MyRJul;i%u_|1L3m{n9TVdfv~>Vd=459>PV&`G#4v^*0$HQ3d5K8b9WM zf)_6G$0QFpL$nV$wBQE!*#>u&=-ii0P{i%>o%(xk)PcetfH#!kS zi`ez939_;^g4`FD)bMTF8ev%@AXLzt|2iZ!GNx zE{7~bTQiYX?ORV!L>k^0eN$s#$W$-k3YvK-Mi8`{n|>k>WfGL4HU-@IPKhs@E+-nqr4$8UCJ0k z_GvNzgwPC!N|gn(4^$V{a3QKWB7B6|hTdK6Mk6i1GKZEXBWuX2aN-cWPpEZs8l))e z#Qf=m;i~F2t((eY?!f_1_p-snx10_(*nhxEpa^xWZpE;g^MgTwdeRxbDV4F zdvOBY#1Hzjj&Hw{Oj;e})zP|rR725C6{`Q3F|9{#3JgDc1s}x_ z^&C;#k|bu*kl$~%y97Oo(aCUtG5CdVXzP@Okd;Zi3@oiki&$1Ds0ym~`iNj)(|`Bb za-rBF^SdC}LU`-hv5_agbUlRB(h8)yjf&r4uG6%?SeZWpeu6c?V&WsJwX-iB&P)JpW725N%2 zOx*;((#}6HzI$P`^ zr@%Ngb<0-on9m7^(1-}~Sm~_Qm3R3|?zj}6tSM?0(imAj-j%?U!TgHOR^=?;uzwGtR zMmn>2TM3mP`l(?s!huRosqnqR_q_ty?Y9DSy67QpGo+;eW!wtx%I0X$03Ic_!-{2? z9s8mZ_JX{K!Ff{Qju-?y2uVgT`>y>89`i+w^H(u~?*gu|} zqgjUIz;D=tpFE|l(l8(k1w?umz6nY8ofx1hh1k==yGFlj=pJMu z1dM0uZV?p?kKjX{WrE^%D%&naRCZ1SWfX#@dKU99JfMQi9cdhmY=7-7XP|X zGo&R&78rd!c76EXKK@8bWYK3%q&mg*pN{8s+)seYLiO14$)#}fjuP3ia_y{L2!E=) z+IAX)tZ&IaL_@Hi6tah&ib{ji%pkjoNAgO)?a5OW5btrm_cY3{Fo(^kc;vP$02UFs z7$uj3)I`hlJH*GaDyiJ&Rd;@8@5xHY0rInUK`l+9n zn{ye=qMMH+d$GNxD)Cw#L)*qY z8iA3u&AtDxp~B<0jm@un{hBlG>jiaK{4bz_1f#5%s}Qf4Ep$z8n1rGDLGK);vBix^L-Dv zh)YvYehB)P@ff{pEd-`{kRMBmhHYHXB=Oz>DqD_Otjn{S<9hpAVRB@z4G_D*7PGyJ z7{{ZNdl{3mD2r@2!K9lfu)b>4<>XhoO z)VN(Wq`SmK1(Wl|v5f=l zFUSq~&SeUBXTi$y+2`74sQ1wRzP+ot#4TPe2sk2a*;T$p`_{nJ{%x=ePpuyBdS#oB0viTUpkC!j z6}(TPy#ULE6Y%Tl{_Ducljj!LuWL$8Ug=$ePUt&A8owZ0SbG&FCz;U~;0?^6?=O9d zQr>!nuAJ(0W!?rBg#KrbAt<%wQYvv-gR=3jHH*amNP9TheUJlyrPN;jn633s2Rzs`EY@V-iV zbG^(Q7J}b=xipzj7>j$4+kz5{DE+q6g@>Cb!0;{Nww|osrJnl^{j{HGhyS9ie${TW_Ilf1mxu+ z41h@s+!;Q>K*%R{Oui?!9gmLQMxe8MILp^hSq>g@*K z+ZJE=4lM3H@12~$12wp<9stnBx6=7K607E*B{xj)$D7y-?zAfHZ8&U+*41L zkN3Y!Dx$I&Ywk%S98pkR#fr;^5sT`M$22_eiZB$4dL_d13VcZ8&7PA!Q6zd@-TS}H zvu5`GwMLa4?9w>n8-2J`W-cG?y-C{+Cx*NjBj$9@ee!wsRNRYucTM%cagg@@^M-3CJ=ycqq1MH!K`cJjj*~Qd6WE3Ja*VlP zNb}J!Hru=TQE?DzrFTY5nAauS2umi>J}UT&yy<9@g%K=dW-DCpfQ63V2iPvpyOxw? zmT1?$Yd2v(F<99z!Ex7hKXKc&Tkiby=F9>)0uh`r$mq!tY>?}g8)2~5h=N}L?-ZXs z>F*%L{PE0{czNgSz|OLyj{qs}aIdO}0AefG5_G9FehkbO_$M~!D&}>-11Rty%(BI1 zt%~x{2hr}`S*hFe&NAY1Nr1TG^6S)9Ehxd3lT`gq6uu=P*|P~lpMFNJB%8mD{peGG znI!3?yRB-=SssX_JDAG{MAeOsLfmOWMkVB4B};GN%E_$)cj9k53%o2A!Jl;BA;G)n z5oGCeps!O%fM!gBE{59l;ZnQA6MkLMYU|9xDM%S3c)!Z+_2BbKTQAE<#18GIY&s_8 z1WE=Wz=gw^&KLwR*P`Z#E>=$OWaS^W$AHO@*ZozCj?akIF0hT*O3XR>*;k9T(f94w zD;p5EDSsm_Cm)VK=sI>;AD=gE=|nzXEA;#mJ&$n>m4xSTw6!VTahDZ)~rYH71Ufq;Jcxc*D@F!MAqbNuP2wRicUL6#&lDGV|qg}r=4 ztNdw#5~DLIq0dL4B@$|-j@CU{z(V2S=AnbS+u`D&BP$6e>H2lo{nGs~p7?`1B#8AD z_wW&*U}nwkm9))f_GXO@)EG>nj5bZ!#;R8Okpix@0@!&C=e4JJc91Pj@ZcaKKol*2 zHaSv6g_^~=L4+<^#II;sP1&hWLaUw41b-x-&>-OaiqKF>4!YR4eHh8|DSnWwUeoqW{0be|IDK92Wk5g{QvJfY>dqR zze>#%T=0lQw=~sk zlp$}^}y>FkRZRuty_#9cHMcmFW#8v3+%Uh%# z!Y5{FW;v!S1B59S2=wZTX7INl{2eK8bJO%EFCDl4)JfDJ$0=G+6`$`DA!>Z5CuK{ zoMf^tbrGtm zv#hJrU-Qb3z4t0l<5jcg7cYUw8S5;7HM`*s+thfj2JeeTj{xHA*_I5O=Xz1*x6xy= zK(Y%m0kQ3LK43{)Mas|t8gV`)ouE>@hH#VbfD^{sLSr7W6}NEZ9(L5QqkO^s$0@PH zBnhX=|8wI);~%@8x{F)x6wo45xCGH!K$g@ngL@PPqy6qV>;viswO+V5Cblo2oTcJ5R)ef{c@ zH|S}@GdLY0xyhd@og@eU?-2Kwys(N@fyvZGt*#x1*DrZ)*sRM$IGA!y6_C-3{AAdZ zWIyy203A@zr#>W{^Q-~JbB09VhnB&I4)#(rSjd}l@Xf{4D>3IQy{5w$a_rMXm-c0| z`&gD-rx$IOh3_OA-g@HGflC|5gEjK(2jbNpMWikyjKIZd_8_k!pJ$eR^Vpm`i$HP+P*vm5j1icjkAJ&0D`Y<*$G3rml9b_w!% z;e~a8izo*wLwug~9u;bCRBR5Z^D8u8E8`RXzxz1!r(8GmboTf5Pr2^Z z&oci1zkdfiW4He?nl@|d{E(H<{9kH`79gc^Xgsb~j0bqppqLE-9nDfN?0uyrCRvPR z)IYm8_~QjXsYBa2+m?pVm)Prir(KekA#ADG^ek>L^j|>c(X@k!CVPfuy8=0wMsp|X zzX{o0`Y`2WgU#)*6yZ0S>y)YSo5H|xQ#vvE{e`L&EjnlIIry>6S&GIE=E`_~7v_xO zY-%z8=Er4oKqm@WXctjQaaJ~YG14z|4oSl~3m zs&a8)u=7VguDb1h)WMzEB-$N!elVW1>0hYfYJvlFIS)nCIO0tJYI6z78d9coLCQfY zZVmQ5Q7WUNit31dM{yNS8$MLS+dT-~SP z5#qCLxkJ{R<%JI3fepW=t5KjKkdZLNfT@(x4reEK zbn~n9+;+7o3~(8dl4E$R54I@PYxxO7gTWefSJds{yg8im2-_s7TEoeAdVRhjVs+^u zHz}jVt*wgU4(Y}_TW6>0!bQT`<(g1d*^{^{v$i z69mvX*rRc$0$y$Uj90wHhjnruFi(BL1YO7vK|VwIH==b4?UG3Ri>02ZzDKqUwI4AR zA(y_1F~rjzuF^_$ES$oK!<^J+%utjCXW_cdHHcYt8dJQ7$0dqbwY=tNCNt4PowtoP zSI^X$;bE0-{e=Cs4$$qcbm)5}K_`z=0Ll8y&>&okJ<|EStY)foy4Y3av4xtXy?Im` zV|9blTsgjW&Tf!v)}pse?$s2!UKel8cmIS_W)PtZv_>u!CdLt-*{zVzaStvCaf0X@ z)_yNb#F(I5G(Tefp2g)dYSMjH?HdWY+w5Ca%*O~&8pne2p!)8WsTuZf*@R@ShcqPz z|HlUZr8;gIW+LOdLvK~b+36Ehn-0a%psDFghfx61le>P-6`*XDg@9gh??SLt!kzA( zWOjYaOQvgU%hl@Aj};Hh_&E)%8^?4i)>6p#*tHRt6rNsPsUH~&ARyywNn*DB^QW|q zG%?F@pznzYPQGK1-gLaK^c7*8E1ZTil~5@1V@zv&B6GsV(L82WAL}0&28XP*2p1ZM z5}v4?02|pz@5ZmcLnG|bS&FMc6+IGNp1y7%>tDVY5imesl|>xqSntpv0`D6ls=L*R za#c|;h<*zqn?!qtHlbCJq{V07gv6XfSPO71BV$w1EMX!$g^Lg;Usa9h;&vk~pM6KR zkfWm_I|WheUUZn?D>-6PZqeO@!|NC;(=dO-Z-SWA-bwThNd}pN-Gl2G_mN4t7LPC^hhd^N6D_(hu6W4C#(7NvhX&?|tD7xaFk%bc;GD2@Y|u6`;-Z zAc%G3LbzH9LRqzop3?d~yh)vUz;5&e4GxW`{B!Rp!J%L_+E7LHFi5c*j`PdEYGg>YnF^aLAtI>XQIuZR*yOD`HKs*kTv|s?(D6!4-tY9V z#EMo30O3FO`f1ZZikJQ^nl>6bq}!d1Rd+t#>o9#_o_!F3)+Tq^O70~vD(?OG(gn4n zDjf3lIgd@%oh!9l_n-gT(~yOE>n7Bj`06`B)A(nBhzckJnZ-F+=Wm-VEf%ES>CcNG z$v62)`ynupt;@6T$Fb5L_-_qo5TF$C+=rGLQS#C-pSby)EMDcp7XOc|cM7sC>eemO zwrx9er|sNn+qP}nwz1Q;ZQHhO+&nj`>ip-_%NnsBXT*#-M(?A4t*yqH1;<8oY}-76 zQG6bZCs&(;lJ#8Kol2x~MTI;Ycst2p=P)1Bu;!ur=s*-=d_uUyKt?z>JtHl1o#ACX zT(HN;#>#%7vZLNoQetRWsp6`nCIn*pWzH!5lzNa~uD6pA~yx%tJiQr+0MzBpW zT+=OJd%YE)J>_@G;p7c+?R;}Fcj)}dGJ#Oe{=|OCCcYv$OZLP)u~b?C7@7RSI(bN& z4xQ*h3GmpBWOUer%Jp_}l;pa;2VTd(hw2}(y~ez)Y}1|RL1*?%+E=5we2;y5;SO8A zt<?oD)g-1KP9=4E z;!1!2hbIo}2U5vP9zdx#R??E5SEG{HbJbAbpxOB>~4SDi-6GfRK zhlo_?IbJJ~XZ>mr z97IaLu+m`v>{o&|t`{WWLBG0j`-J~pxLm*G!A6~#cSUNBZmb7G$4nSwH<)O*>*tuS z2h!0jd5VU#Aeh>8it#5c6f637;dCB9MA)AtgTO^lvQ~2~Wq6!JNh}GE=2!%c&QArJ zos`**DXdySvupuPzZt<@n)FPrHKw|tAvm>LG^3{phi1p`r75g`-+Wv?(k?=ba!N`G z{&^7yUc@s3ao1RK8D5?k(ryN04zIe5*ueV&);iu;{>oE48@dWoT#JC%(W}rrJ|I$_ z0jdzEGx!RX4mf*w=&zhF?GLuqM1>VTmE=%7Zf9jP9lewp!FO#rj0ei!mDV(dqyXIwO9s=hCme6hBH(QwU+8GVs{(_S^gITKZ@>D&`AdCqEWAhp4;lF1u# zG+Blb&Ru*Q+DsK0oht9jSEU!B(TA0^v=(Y^nGoUA80-lepsqhi&UlN>)1>+1bC5= zvFc85II%rS>R{;XZox_Y-dS)G?0^+zn4d0Jy=l>g7K}ZB zK;z&IweuBhjTpU2d^E(euQK&={$M6T{k%8l{rzCET&`F&&@i#Lc5wAKs{_6`$ME_S z_`i?0|K*^-d*nXg{{@Kd5CZ_9{%3jnKiw13wgz*92|x%NA(Ale7wsD`?7`%&F0kc~%b5MrVNhkJ z2`&L$3lK3gfdb}eI#;NPKo;>+ssviB%z?LyIc+LMv3VT!*8_N%IeB-(l;lN2RJz55`^H~`h1x;WG} zZISqMa(lwmOCgGm^eUhx{ymomYq~!m)ItlB?(X<>LxNPWLp``ob_eCoJzzf}b#gII z!{w~X`i;dFiv_gM2Ex@7qH<+pRE*-1W5<}#n%aS2;gcdux+~cs87Le5C{9Em01T-0UJ$~hBD7A$rn`ArkKuj^Y$`` zU+fW;P#|+NMxp%+h>%*jmuzc9vd0nz-%vX@WaIkY^@QP{`&8nKew6{j2N^G;4vOK0 zSN1q$6I@yN#+Vk{p415{TreV>IxeMlZd8SHAJBXLPz?p3n@!m&FK%*4o)x?fI6@nM zEyRQA$;@^Ii)Ld3aT&y>rgx4^A0beh4cOoC3+Tf!n(`7cPmx%}CcNq{*Vun?j6yZ? z;{SDD8bDYsFX(K1!mG~^M(SM|pTH`aJ~H>>??QNdlXN`HCJJJJ@o*U3NXxEKEEJmZ z{mC6Y6Bi0+C7;E_hpA9Cj3~w{Igu;#4fmJ?TTmim7Au~& zXvm$EF*CQXrJnG_0e%-U!^m|wF@hh;gsgFxi&JlFo#e^u!#wWGJRWP4WD9W<=HgB< zqq%YPtsXY0Yt=ka*v7|EtNm^9@sXDTpO3}#IqGqok1eR%Ar;?kb>-D!vS;aiQn~dB zR<7F|J2QL_;4x$z!TcD}1L#=u?7&tw;n`#>HUHph0$c}tI+;Q_f0NpcoxQr1IiCG7 zqCwnbDmmI`MLaR(HlkYipB>)(4o$^il0IyK-{flguOaJyL|y*BZD~sV|AjR7HNht! z3`M>a!V7NYOa39ij)M_b(Hn*FuRBePrYR%ZTBLaIxrr$vQAjdq!45eiMRVu&aqaxL zF1?jjUQVcN9#Tj#rX#Cp-$YQ^d_AhM)=|Y2vk1T=JtjJL37IW88D^OI8uSU zXM=Acg)rNfidp>R%O><|TKS8ZED6Q%Z0s-hQ7Cf_^+IpM1EN zH!Gf*vLGgOMU@1vwNaoV)vji%j3Xkfsga$T*;`C89!kr!3Q8boMrBrLWqxI4h;(O#iZ(qBDM&gj zph=6LDJ_D0dwRbQFxrp~h8rZj9jBu=FVXHql`3-W%zL6U#z)!aXe(>c2#;8FM=oVg zs6!Q3)Uiu1$=7?MV%3qEn{Y%l4ydNIg=eL#cXQ+T-%0hj)OGpXz<{ki2r-KnE;z-LiJr~27o zCB}t2i`=M_VdOJ19GizMc<&avw?TWHEV?7gIdG?G|8Hh|15x9nC?ZFH!Tj2Faa4Yj z3%cq2FZ2&&gBJHgJ-Lv$*aueP8FP=0vp?ea>MW(Kiz@TrDBZDq{GNU;kh3;Gx(+5n zF1J7rwW^H9k`W$|`jJK)f#YLUhTDlt582fSu(}qd$kYAlFfKpm*% zaMsVP7L7Fe&=&Oi40CgG%!7@;$%bVw7)IUMGhq^Ki=!@9QbpVWn5f+1a;cx{}TPaU9tbaxAP=KU>8BH8XiH>Pk z2lIv3TbY)PqoBU$P%yIzHAR4xABU#z2>>N|_<=}<8bxgI0T^kqgvq2yFyxU$6a{ur z*$OTu|2LRA)|9v_)Z3y<(FRe2ylNPXD<06=54%|xhC0}M@K_^y#&e!r)No6-+xaHm z48DE}7r^Ld#ES=yKF?(NfYHji4yJB==(+Wn;}+CCoQapavj*T#zsu%295pq0jb3V^ zzu(|VwaH`ON=OjTgQFVTKIbuZo@Y z2((2HT@>4!N+3h|nMct~eQMip(xQb;!}1axYHf$ZQ@Cm2rmg9v zToVvfO|`GmJfQ_BQ|q_CgJTm`elo11S%F6ZLabebE>#APa($4nG@I`#ebW2&o;UJh z;(E2yVt>gtY7^#g8y?rF#9fO-LaN8eiG;EtJ$s73o8*%dsfp65Jb^}M8oe3a6e0_6m5PG^T0Zo# z4q=wtl`{n11zoz|T(y`Z7#hj&{y7LbyjpZkryUioRpey$R6U8Gf1*9^KS7pPn<3AY zDQf#I6Y@sDx${oAeS#{xFaGdt4z(vX#j6a5Q16RqZ7>ddDlBhYDa1+mtSeoER>;EMM@w z_+;l>7v$WnIT$nt+_AlFfC_qW~_6Rci=EUuTDyZ<(oxa{NOxB%`{0uOhcamfb>Yly$kOw2=2{#C76gugZ19ry~0Mx@`nB2HO_z4gYOdCYDd2tZrd*^;(yeG|9{KVf50LH zo|om|uEzZ6X%(0$GQh;~Lx%+Oi|eK|h_vH1OtBApTtnc)J+3$fJSzMKo0+p-y#5q! zt&|&lh#rfUDg2SoR<>SEUlF}^*z;wLra+72i4Wk0fD{BB?`cf%zofZWgv?>svWNZk zY4P#nmiCNz_OxpLHazItmM^6nJXbD1w~U4B)@d+wei5|4L*AzDl>AsKP}Uf1Atz!K zY4Wd!o0mGLCL=D~eEu}^!8{)u@_Eu&xrwZkkj!E>vvA$i0uAMq(d?B%)~)4C8w zATm0EBh(;Kk%%L=fQ6naUjT6RMk}UMB~sv1mfBQa3IK4`9RVPlM%TKJQMHu3?-kh6 zv^x#n;tM&BhAsAd8N!Q3leA-qVzZ<0i*Uq*EJp=41DiWTQk6t6tx1v=%}4P+%++nx z1J3hZ!WWADcqW(#gU9NNLmYbG%B_&CyU3IR2y24I@QeEHtr0eTH^oIGuElasOB=_8{ZW+4D8F8|9Fp<&gmR}T zqm8a5Pk&(9GTMNFZ;Zhi(i=>~v96K}oBO^)NUhzS#?j2{&uRW;-1)a8H<*C3d097zEE5FselT4?h1%Ir`4&YRz2z$(DW-bJ;fa7wYEZmVUQJPZlBUh?_&O_jmzP@W6 zz#_Gpl#}7q2JcF?7&8k8${6dK(gLXH#Xya{LSFnKw-Rbrt2Onpixc^0Xx%9sYfJkF zI?IV0=}MmN_|_FzS{Gce`LGW`1I%g(g(&8hW-Wwyvr~4bjV3RxQ`Rtc=SL z`hRw$iEdo2NRu$Y_)(UY-KB|3a?1Bxik#nl6D13B32Te=nyPZ>D$#ez0riuAHNh!ON(1}o1o(JWGA6PYHo|XdqCUWx^>P8w&fZmJQvI* zavBO6hsx*Cam#8-(C{uShZU!BS|*xwNXe)^(Pu_N6T8&guZJ6=Z~@Gm&jx!%9RWvv zl5O|+TPG1J@q+3`@(FCsetbC>Lsutg`iLYUJlZcCyNT8_OzXg8$T>w}>jm)7?qp2r zjvsmCB3y0CwW%gzA|8#n0t`xe@aUrL+M?yCxL-T;e5&Jj_bp_!R~d>?bg(AWtuUgV zDf>G+k1x61dNOBJP$WHL=50rOKIumY2-U$Ky#j8a81{u{Q66iPUi(Lc+p1lpz6bv7 zOuhFhd}X}z+~_R?(UPTUR?b;xX)Ym;iWQye)^Q3RRZNT;C*b-3k+V=6@zBmkGBnNLaGzQmZs;U1eRU;>6^)o2ODH`H4$6^O!_uD?-9!o6k zk49MCU~~sA+NGNJuyyvk@Z^-tmw$xt+Lx-Z5T^Bzne~N7DGD6N9LB!2bLl4Q%hIiI z3;#1*5ZI39O^9GY`r^5&0V0fcjX?J^0sL~ftC!4)Q| zu^Y2ynm&=$gCm{5hd#^GfLqn9z0c12vo9Ob`GQo!Y!Wi^+zlY6*XW+r>ddX4zpcSg z9S857LJ`^{6|naZ83z zwo#`tuO4GYv^(~tJ8HAg=DNPyWTZBHcy*N;qjV{01SjchD>W-?nyQ4V&Fy24^rIf> zq7}sGlCq}J+7ot;#LJaByX2qZm^+7(4je09{1< zU-$d}+niLay7N2V1LHHJE3k=o>6E@<&EJAKsuO}rFU73M&H_F?e0v?u#Ks6V4%Oqs0&b4TVXfx z1jMJZisg3p{H-KGz>r@Pv_F+5E;F#oV=Q(M4@B1S`let=STkzAP z`h4z!3@L8(+jM9AA~_Y3*%lvOyk8|v>bBW7(~yNF+dnTN#yoQh1})axnJ4O0?u!W5 zMa`*Q&?~0Z{TO*D@H#9y32;&=XK6!4ne$34>25z~iz6Vll)1V3Nf~`>vT++59oV?& zpuor3^z+_RGpErVKiI-xd*9uqzQ8-i#UxGx+B-r0;7_=J-K$G~2V6T1&;a5eS?*w2 z-R>jUdV?@1mWicaBCu&lU+Li2*HbypG~{9E{P>s?xxz zBI>>Rg2;k_mDly}jn6IO7qK=*=}Ngo`kPbo;pw)6t+XK=%Cl%&Ql;dY@NS9=IF&x8 zT>&*SAZRg*uk{Z}4I9Vj5h)sAYYFg5Cemci1+G_$=~P7a-6ds&9Vjr!jgiB%QV{&81nQ>gBCT&=sDEwO{x*rvZoywW{7y*I?( z$9oL1*FCpeUUu|%fz1!5DocJ1G-I@rq`a{bf(+5R6Ij`hQl14?q_oJ76SvkoagWP* z2S;#KOO1fAx=uuGW7+QvGe2Cvmk9ry;DxBo`rq*|UM-x|@$bn73Ce&sbDoc!)rwSQ z4KiIQ;v}N`m@>J#!#a4hdnJYR0{%2`Gu|p0#{>e?X}OpaG;p(gYp^N_i%dv4=S|l1 zv4#*fXn_a;o4l_oiO{wvp(&wPi$O4trP@_35LIe#Q{DFYXrLC>IM6YlXOp2Lk7@bSl(y;U=m*l>gHQpuG#zo0W#cU{EI2vce%_jcKk!X1TXN*HO#ZoQ zF%ti6v?}@5oiC7=C#g-@-A4qYl6n9vJyHw)iPP@9|&dM%1aOJk-ETO)-o)9 zd2+i4HRc-e%Ys&=V=V(rkYO>+dG2jk&FcpjY`!{I`8S&!)j21?__fxk6zn1m-s0IYevm==MT~rfWNgsvijrVsl%F}-B zj?SlM@Ed#bb+>rJ{ZuUG5fxRqC%w3V8)Bfz_LT>@n<0lJzHB*LHg~L0f*i9={ZArX zL0#7HMbf?eMA$_0%j8(hzRRg$e*5p2h#^eJo1~j2EZO6hv`wA9xXvt z*cMDy)Go~VqCXw@K0NrV-3dyL!tQzF(`rI=;Crs(a@n0NiGPKy_z1tVVFl?;V`x3{ zNiIocXzH@(rQ!8Gu_h7KcijD78uU*yB>i9iL!QU1Xr}_Q<&_eF4*>9#_P-jj|1ELi zu}s_;wcmMBC1`IaQq9NArXCBeT2C?-k5O(*)Jm{Yl~^MZFldF21i=7Uv^co;mF+Pp z0sjNgMy-8Khemy8?w>9y>nht*Vp_6!bx|_W{Pg6kuAQ5m{Mk~rE33F{YMNQHZTujW zQ**ye zI`bK|-PJ+45!C^Nr`hmFdBw!NnZv5Zb*(+b)L6&4{G&=8GVHSX(x(2oR_qgUy~O60 zr!e(M8E{l}rDuI*gEorbBBRry&YoJgXZ1w7JMbp;R$X!wntyz>K`O`Cc*(`RiB;V- z(e-xkN=2s+Sg01v2gp>jd5inwA-XIN7zXpZW;{{zY*EiNb(uxBR44E6$ECpM#~yRvc`fkK-uMr_H=^i92>3$CBJL2hOSJ&p7ntUlOu#y4}r3o~gZP#O~yJBRr3>_hr3wz$U4&N{uijGa^Y8puuRm-0rRZs}ZqtrpEh zw*3-lRHe5!hy3JF39|eE+&xvR(Aj2Pp=;>tQ!~FibLXN2E8Ae_h*~(|W-%2djuX}K zIhXCK`ef%HtzlqN7KI#3J>q0%d%_;16;+?|MF8=YDaBA~agF~bU0M6A&pm&md~VQM8n9!z-)WtSQ*JN(NLi<~@ayqkXSqnZk|h!y;fMMMxM1qg|C~ z?fA9R`>V{75kh~5-v3Idx_ZUYViuu#dBD`KT}mkYC-iP1Fp+ZmsAC^%=H2WXI75*zbn9brUOXtp^xxBb#U9zji$OX- zCsWN#wNBN5IuI(Xcjj*Myzvfa{Zku#l%I@>+^B<}RY4$H$Z*w8Ntu91t}kc6dwi6F zGm-&}f5CxR9&}Jj2jm+z1p~AFuFTxkJp87<^2pC!ipaldW8Z3BBk549W3ze#UOkUc z73dAy(2C`_jsmv&&r)I*A+z4R1M_0!)iQ9m|CyO=QHa6aA*$H}1Y;3%)Tf_cK85^U zdb^-9@ZQ4T-V=CVy-M(`9(>X`tFrWnN7G>y_x^sYh+};nI~Nc}PsDJP;@@zWXM_BeL4b75X^9 zd$*EHu2tl_;ude|tJMDzr>$bZCb*7bMhzzpziU-ezzGBgO5bJ6Z+Pr^cVAEsXdQ#S zwq0>CB78fUOA(*5gyTE^Od3Z~|I#`Ji9o{w1APzXG#bo_fWO{lQqxk3JL@>Jua!HK z`Mu+FVZY?!IdVzAfpMw;G&d&{&~|(au%FE>V4O4*qR^VLlpNX1jMALJX7vr-7=sA& z-RAjl4EgitpjX9Jdj{*UG!s3Pr?!e;5t0>awy$YCKc$R$lM7a*$@l-FOZCa=|2um2v+XzuMSt= zI2)nEWDd{>T61U*+RkWAszBZtD)#bG)jJV@I`e2yVZzglCVM4qPVfS%m(Yq6lu}Wlu3l7 zevol(HLay-!2z~WK=q}k<-=rBK`5*t$eLa!K-iM;KivP|Z~cb0TZ}-@39rKep^A&l z(U~Wt>q;|`yf|h7YR>S(@}1j{lJ8sFX2OuMYfJYBaU|Q-0CSX#(EdW5A&=xISADRn zp%R9$kN6`yL0L#Tl%(pca@tBO@bvZDHJMw<8(g z)!Z!(SdDvuqTB;}&}p}kwLE>QwPtdx1N>k;?0_#6KyMR&dOJxeNM4_pU!I%vA+f}j zjEM_ru{{BHg?4`RrdumEg%Sq>q}ofT)BDeem(a3X1;++xeR>BmrjS#Z1+blw3!6nW zfc0;Av=zJcfNkn_w8Xsr`-EXY%AjWcibBjC`{%UClllcAZB;G_?^&>s}IdeSOQ{w;F6D_2%oUt004O^Xz1rlhXcdP6t(u~_5Ny)|LzWA zq@$|H;*Ck*>*bGow8SrVH>~)7*J4s6@2`!A2A!XC!!?AVpZAvAXi5Cxn$1IZuk4v#Y3qkcUYodm)pbf zQzk~nbt3xEO?rIw$_89Od$zZS51t)qBP)ByLHd@ZBW9A`q%XAZXYWtWGs*f3gaC== zo}F<@0;$vhk>*%?nOy^)6($v=84B+y3!D`JD;yq-6k1UEH^5KW{DrtMg`(TpzgFLK zZ9k*}TrZdhY;#QpKyGw5XR%l`Pyc$oRR7NCbZt@u>Z{wr9#jT9mF+akuskzyGOgyU z4??vOL|w=8Fij#Y2pBGOOBGinjcL!S5FAmhAaqc2N|OreFRCtufLFWOKP`CZ^lm$g zq1FN!CL++B7HtzHE^b-e1RW-mcZH8S`YAVtU;ZndtzTw3pW@EuVmbuq)o?9+u0M?%-Zfu!t`AwGk^%Wa;N+mLa6qs`VA zEY-$nNwVw-OVQ|Yougf^Nrp!tc5p#^`};HiPtvh;`7!UXD}1y>6<7cI4s(}#kHt&* z?D516D+o)h)qArHEIsfl&Ui*W*s@ENslv_3>nzA@lL5MNJKgUFE?nu+WOMm^fpefi z`YUMDB&3Yfh^%2A8^wT_!Dww0XlPW?=T?nOf(?OX?cKC&-O`(Cwdw02U&5*|PzRJj zfwS#+J6L#_f}-wpZ8`7AwkP zQOnB}{KD{>@c($&@bxu+>qPEtJ3PX*(s30mrnHhSfl3?d60r_VnNReP*H#UAWpvPv zRv1BZmlw`@+BtDmQ%n?IvrPM!cUX)OSvLa80i*JH?=KQoPf0C=3A~)octqa%_?cgB z+gI3mtV}d1u5i9whk6XRjO`TwIUfQUH_E$ei{7Lky>Wy;x$0)s8^c$Fn=CJu2}iai zi6=w$D0eAbUynImsDKJoJE9p(=f-^%uyUh)Q!xvVZ~2zv7KM9gJS$l=)jdC*tFT|U zLjJXwmh6hW(APm46zxV9%LpDfi2(qf!-XtXp+BOX;Hn@36*Yv^;ShMyuTXPTamGLO z+Rve00&EZQuQC^{I%y~a4aM5jK(;};2N32Mgh{2>H47#K%{?_Y&$$k>Ov?h_qT5S( z;F2W(65&?{3b~N5FfLy7_XG+Ga^a=8*3)7sI@PCZS8~00p2JSsuJ$PKG0Wo5+>q!q zG)zD10wdg z7YC@(@`T_-+&NMCdP52-1p_N*5>uZ2SBd~}=lW`=9F>99tHf#OfJlP7z^_Y*~1@nVlfMPqL?UoxP18PWMoG76lrw zi3By0f{4NWCu@9K!%8xZT(IG>N_fSKD06AJ!YydUw-G&^7_v%(m`yK?QN5Ets(x;Z zYU(Nwz5Q|cENO!u+O$7r=N{xgR(wexpsxd;rW9oQK6=ME3~vpc)#t-B1hpI(I#>|o z6VNnZQ$qB}i=4|$fV8g8g|2F&0c$@Wmq40m8g&7_gggwq^~W*=G41w`qdA6uFwbYZ zldo-L^`%#C-AYRXe!}~RYi4Lu)e8A9j6dg?X<9x+s$LEEEa{XrwDkE!K%2dwfqwue z!`3cc2oubxptO)g1M(}7=D@R13gAG9j&j25=H^DVo<$i2j4&N)PX~rwD~*ENTa9#3 zl;9N~1bNM5eb@?9mD_a!k1$T)=-d}Dia2R@0xQO#x3J#%y(>(eCP;H`-GeMrue^t9 z-;JOU#@yP&6vz$S1bYXRf%P{zN2~;q=&4BmPL1KkBH-8RZ!o>Ev`iSQ24=Mlsw|FC zVRfLIg|V#0OeEs86LoYT|!X=H}_G5t9-F zvBN|P>o9}gL=$O4V&L3c%K;XbR!i3|zQ1)L>BO9MZAtkjUx$>h3}^S3(j4m-BpS=C zp_1Cw3`C2vR<>2Q?N^t^{&!d5sd9=fL@7v7pk6iVaO3esO(L5qxj`PaVae&WH(j*oUj@NXhC-#~e94Zt zRP(iQ$0wc8%W>_B#iGr8Fai=N5FXHqJ(tY0SeKmb%bx#iHT-P7Mqr_;Ej)Ka$ra!Q zmVCYs{J26vjpN`Z)jdB?v$5;wfJl6zqE|Cwdb*^;FQK360(7~4eQ_bYxK1ivY^OQ4 z_MpZ3`FrEp!r<#cAG4O#8c0Kgd|;s>$MOC%`8UuRHXzG895&e|*ZVEx{`rh=_!a2J z|C7(;+lj${2TAPCO?DPaNC@^4CB9w2>@nmPYj>!vHyO8HB`e%MRhUEv0~8@wN{`V0 z`>|8JBC~FjB-uY;KegPwm4wA%;Qzwn_JYOh27}iP1b_PYzkeQY#NhERxvriarZC%M z%C7?yhNpQhEUx&-ItM|>wv82KPQ|AWDP>5W`Em|<=lqj!vr>QF5Bo5!eM7+6jatVR z%r!M{=U<4mCzt2Z2cDNphXmK1U%rQw~RuCGC>(>)GXy{ zn2o?E@bBiX`f^G=i^A)H>~6MxhVsg}`C)TvE1>00#m|8b zB6j2K`Og!uW>X3fUR~XVT2D3LpBHS7zEg^72iN@rbEn^8`G*kqyn(0Zr^mn%F#?L4 zn#rZ4StwJlPN%7ql_GTF)ec=FG*?i;BLS=FKx`He>X|Nko#%DK;@g}wCyr{Y4~%a5 z^>zo8O!-Zm(2~~!;Rof@hyqnPimIy3$d33eolN?6vEx(~T9TPy<<3mEZ_DNBa1%?l zSH;sU`=YS_)R2zYL*Xv(-G3EvFSi2hZ9hbQav6$@Aj^4kFAI;9KATMlx)?fbjN#Dh z5|lm9=kZac^EI^9aFN;Bz8orKXZP6vtLp-9-g|{1+*P>T7f0oQC{ttrUWY(H{ zE{M5^t3i*{2*es+NVD8{xm<$Oy@QqQ*MMAdbfmPc81KhoqPhje*;Q2M*x2-X@Mt1W z3~6VZD15amGp1?c#~%(xEd`PU&+a4};Al1X z{x?*gCg)Wv9Nh`u>l$A6eL1f&fRYN-cRmMz2gRzy;8cmx{`tBm;#$?T+{X*Uc0c+G z>L$TqNyUTR#r7r2-?jI59Sde5e=~9O2|kvwg|h|h5m|fEZkf;KF&5oyHamDG=ycYh zeayo0gBayR2pp*pzus@-E$hs!!IHBAj-diE8CZp-6z8>pQ`~b{&3ckIy(0{|J4fot z=JS1fUi&2h>u`IfejA)8YAX_98X;10m&y)_`?p+rY!K!$Y%Vz2=Kppub2s z&90EGOsSZ>{#nx09n88-hQ+=pV6N>rt zt6ol2+K`8_K#`6U5Qq@%Tm%=UdcVxop|Q(Vdp6A|7oU65XZ&Y2LUENBTP@5tF_IZ0 z;P76YRc~ww+%^G|x{zt3Z+R!kdzT;DN+J7i6dEKq5f2845?0;0SF9UPV)X#B=KS6C z`_i|Z`j!**YYH|dTjfDqL5Z(hRp>l_cP&MzNyolXhOTX#Hz(y;EgXLwNYou#(dtY_ zWw#)HK6zMNHJRlg0X27bor9wJupqU{kz5>kPaWxlTz7~v&5x@bdAamVb;9_3G5Z@U zFt#r^f0ILVX$ZGX*F-Hpy{#MNvQOga~ zz~|7cs0D(+Ua2jW8KI~o1OU-C;z4!ZDiJbTNY!TIy4rO+A4x>#ZwYp-g{aOFI_yDS ztQytEqPM5VU4Uzho0j36!MxUOR-P|)lBK7l4vC?cWfHYQkpw0uJ89)k?EBhB32$1* zMmwd9znw6HJ&R5Z-$@oCX%2OpO}W@#+ar7EppJIawom9%9N(a194vG^Nz6q;WYxuI z)OLYoCvqrP4VBO$rLouLv@S`QSybj!Sr3IMX{9!1Y5XLAT(7WXs%4{Sh^D~j;vmo1 z5n2(H!n)So!w^-&_(|u$2`Fl>^SZ_(ZHxtBF=#T-FA`n|p74Z->E9#r-bZfvrt+|6 zC|ei#qUe|i)eD|=f|E^z=nXdAeR6xd?8m04W?8vjZ$aC^23lEO2;97UgeqKFQi1RW zV_4E>x==kEV9&O!xIW+`=~Y5Th^gxw;>DxKt(U{uC*F@I3!1oi2ldoE_%Jq-W#{Wc zr0N-i(0S)2q|XmU6v(hYcu_FFZx=bx2fTK|z_$9HPhjQog($V2A4T_8p?Az zqO8Ye!Gzw6nkfn^-l#&`f^e7B%?QzUzD!>WGvrW2=o;xt%}7EceiSZ#Rd6trIf86 z9-(c{W!-4YiKKm3?z4qlYbHBPa%e}^L(rZ3<&kqPBsG^0E+eb6n!wPv_!-3H001 z8GZ7dI2WuhsvwjeL{LDUqubhP-Q;T3!D7l__(IM_kT(-}W-bhyXrf7T$!*3H?~b`g zcyE-@abJ85Kl;jgWVd0iwGUPt1*Uho6Nu31nSMD%Rqo9&vT>eMmJUdS3Y#-Ojt>*O zD&9>5Jbu1{JCBV9^5InKyd@-b58E+qx`yK|WZuwK1C?3d8tKQlErP1H;whsIxChy~ zWj-&M{^%cAxbh}RiiKY2k-5|Pa`pjTt7Pe&d5Qv)KO+kjT!Ma&PM4o{iJz#V0F2i$ z|7)duj+|1KMN1dTHLv%d1P(_Yk1zFhpiGR`e8wxC=JDMy>pDFtnmdzAC);Loumbka z=CH9OesUm@Z-hBfvttS+GU)+=GF-qI{3E&uRBQCA$)*IaUx%8De#USQg9#s!1g*|HHAKe z3ZSz#RU#gwn5Ye`Eb$<9htS~TBuRODiq^vMvGtVX_lV=L5^Hs82hn|2jE8r3%xFn_d_nU1~o<- zHdB=HBT=uGx#8yn9vnGqEVA`0mxE$4YonN*xEBdn^(tyBxW38{)39?=Bhm|ev6=@o zu;Ia9V`4GBD@7r(?rOmmW}uh%OFxt?-2gmR3%i^cuTOm-$Nqm$%z~Op%_U+Vu~7s( zYwl~8ylG(OZ9!$xG6%1QpgsuT0|L6xb`A-kvVKE`-c&6T5NbrFMV$EK{-jeGD~IJ~ z?5yUe6Z+RdhB0P=#k$cMIk__{Pv6zPOA~YMO4+gL@S3wIy-w|2wzrS{UiUU<+t)xH z9Wv|FJNG7GKcN3Tv?Y*XFS~b)0M`7QRyF0o@Kyom_biW;IW7qmdODTEcy5+n3<56(W(bq`>1Uw<`5sM!)s8 z2$=RQHy3?U_xZnT)(Esx>J*@5jgFKV`|B$CXRADxO z5-d~&fEvL8c}e=vVB?AeTpZ2oZ|9M^$Wn+<6Y5te-*>o#&I2_(*~;KjNT)mBJiL-h zv8{2K3px|M$odoa8rGIivF=N@R$UsZ(+yfS`CGp8x3rowUH6WxSgA=H(7vmCTx#aS z1yle&L8A3rSg85UDW34Q0BYX6zN@~Wuua@Si&3;VP7RL!*xr5DR73)8%BT@YO7Y)g zO{F1g_-~!5sMPL-l~tCu3gGzc*b#TegB*7@j5xe9g{JOB`)UB~6lNd7-A3=}Y6?Ke z2w8G~Ue>n~g~}bp`GbNHzTL-EKsB#}Fi%Ec=G*uuix!G)Ns!Nu5&xgY&H^gRZtLTK zgtWjY5>g5bNOy@ZFoWa(LwA=TAVc>M(y63`q;xkUA=0gMgM=WZqzHP4?=EFtFZa9e zVX=s{_K*FXInUYb^UVHle(A(n9XnV(o(dCC{)U`TTh2)*w<1wcw9c%aV}N2)oB8J? z))Ds6>M`hM0DD*rP`@O$+#gegywo<#a>!*`q~o!{@LoFSr(-Zrl5TVajfN@SPZHzEUsx^n8(SzM(2Aj>m zv10w`9&zIf7nA#PN`k3VP2(bRo!3aJm0P)nNG2hUBDa@Lbnd&eEe_mLq*jN)VCFhL zuqsTQr><_mFA>_jC6_13`KiZG9Qc=@Mg=y$GBslQhTJ0Wl1|Hq z#(Wy9_NOcs9?Xw!yL(M2KEJN`{kTRWYN3g*@0zcw$G4>qGj&s;kD5se<<^ad&Y)+{ zCd8=VDtNi&O}q3hy^sfxSl{T_*q2&Bm8>KM%LC@hJgM{(%M1(cvR6NL+-Y3ANn>JZ z%MHlr$3KrcHt4@!(*rlsIrrQP4JdP#ux5PSRIwmel%weflfFBmnI3Mbkkia~$31#~ zuv0Qk7*cek_Q_nhg+H~(ZTJmE3#V}0dZb|km-I`P2xE+nL(?Le^>YuoT&Vy_d0T0T zt~YlM)Z|{ouT-Rs7|MoOaoK}DcuK%P-NK=MuMdyukKWcN$d(>yr-J~<;_URqM!OjN z0@*OmvE@DtUmu9HWN67yvYB8PW<(Xvl8ZIp`+N9Q6cp_W4fq)6=bhDIL<8?fSj0AK zot+|X#XD;ylu3vIZRBa>H}UJR!^Ih_l(p9_s95w;*cfc=x4IDi z^A&aXfxPg(U%txX#Fv%9GtaKnAFk|1tHG;q&^qd@m9E z3a_qsWQ)yH)Ai7$+P1RWBFr9fPL@6I2-Gdgx76bJnuH3rf%V1MGge&dAF_ype&|X% zsY`>!Vp#emCx6%oZl5KT3yauQeb9qM#s1j5O9Y5XQLn}6hj=x@R^KitV+~~soM<23 z-O$K#l89>&i=SKntHDOAM0)%@L{~{_S9oeUS`IZiWjGFF|u z3pQDv*K`Z$>q;mB;5ckF6!LS29WyZ6rA+U@UBi}hzmf+^7JfB#A4g7jP2<0iQ~5jJ zokV-{W$gsRav@^G2{#qNy$BgTihTGIGb_Nt3tsdEoqU#Cz@_>l1*KIiKC|`~2~)i) zf`5L|0Y~wAX$|4B#QOAxN#`VJS#+um(=7z(qp~1)E1Flx z$b4;J?4q)$!X0ZjPnxZcc?v6UB04(YOAHaZG+aGBOQi#Q3*Ctgp~+$9VQqhL2+2!$ z3M?J>+sU#RCNDvtk;?Jbq5hnh)cZ1k72**H;qZA5OI)}u1oE6V_IZj1lKy-mG;i zZU?@%pCcARsFhRO3^!yUo)p=*(Zo@A6>6k(%euMGtl}Bt&P_(2UQ(pW{}|(qr8{zA zDXq1Vxm0Z5pleWCQY~41IwswCJRvnb>*O8B(pS?3g~eF!EwAf#o8-oTZNZrtF*iNw z(kuKt+V{QkmPOUdEWE9?@4V2n=dK>HvdiLuQZGNOOkAM53pZ-4S-TYeunvPa#j?o&xS~X#!X5ynM?)+{G8_v7IT8=89VSmgAy+g^K+lx~r8otIR!7aXsh(-OhwzM_O zlH>GUd0<4rNO_e%)m;mWo)Y}2>m_Czl2HsNfnQFG2*)a_fvO5i)esgiu1EmPwp{rp zqnlJBVvvtho}RaUg{O$c6Y^#t|GRT_rY{TWi_W51g-!<@bsc^uzyrg`U5_u%dI<0I zmWUcva^311Pe3SCIQqmL(|)mG=Swm6w8gZCMEOr_Q7dMF!4$FWysKH2?M-0tYR!p} z)N-eH;aZ&YYa(9~tR9XoOY({5;Ws}ua0&Qp&{lR{|K57rjvz(BL=4+yWtMq!^r#% zl1P4{ujS4@*J>Wk@Vqpg<#{|=6Bd2$c3{6|+r$VF;Oxxf%-emel4HbHSMzOuY`@@v z=BbZHegm#)FrZUxfQw5};N%uxx{zZMdW>bL9Jk5yh-99*2iL$d+b3r>=1)15tnB* zZ0VbvcK*>@tW$_hE${6__N%z5#n)Ob?s%pASpY&b8e@-?ymI9lY>eW1y}zO;4aKx= zKXf$2Pqy8q5{LF{4(cfDjq>nwzS6`oxQ&%p%9^_^{qEqEdfKXyoB`mKS)Lx0G=)*; zU5%0^TEdiPhCEFTURZzLSmcdR`q5g3wIf{gu6X( zCL-3=p7eUMTJSQkB)b9w8`dfhZiq{y)p6MOtvI|%uYSeuwhxffGY+ZXW?vJ2f#4}3 zunz_=9rKJ2L>s!dGy6OweSm1G-l&sSr2WCPBl1%wK>sAZZctjvu577n^t%vEMwY`6 zG;T+-RKAYMJbH6__PpYJF?bPvKyhc#Q2STdMy&C7PYxYl-z1Ap^ zrEdJ_IbBy~Ty|t10ASk~Uv4@zhQg3Kl#_P?f~?QgEyd=`SM4<_B>h;6)?2=qa6&~S z*1f&#f=Hnm%OaHszX5EaXRT;rN}Wr#SE*NmI4GWK(9)8GX}Ehv6EgKO3Mm&9Oy%k3T&Tnc3xh_64g}iK zR$2|u1#cZ_SNIqEo9KEjvUSXRSg$NJY{!08+ljhfHv$2q*_%SB&^G&FX zoJfpRgDFnbm2tGcYE7*{4q>@vvk`6O(79d-TYymw$gA@7ZRD;ntDE8mod`&%HE zrCBol{#g7B%gw+Y>0(x6>47Lr_in?odI7dE#VYPN|947NM1?u_0YL47@({WkF9+YL zxW3%R={E~q2qq`nM070FG+HJkXnxpiHK88x&bJkPc7EGOCdmo$Fabb}pA*9v?3R7I9Ji*wKubdD$- zeA{|}?34)_PdgphE9U#kmor-TGO!-DVrS4A4N1b*$=jX0XL)?U;NmZ{g`~F{Hitxb zjRAh|3K7P`%(QWA`+eq;?Qj7G^lq3w&fK!1@$~76I`NBbEwfA`wx=xA+}I?0|-)+Pz-Oh*2TEmM^DVL4W3~*vKyhVq?Tl*vH zl}2%;jMU#L*#Hk}w7B}efKm@i3US0e6vRBU5VOm~agZz^P*#yWYboW~-Llq( zBK88IVJ`S{k;p7Zc^?8p%f8`Jx7nS_#QngR9pUq^N5fX&bGzrvS#$UR@B)AE2u2PK zXVqAkKz7L4SIX^GL}KWM$9+MHaBjYe$DO+ZNl(U-^;ls`Q^K}^wL4D+ZoDYyioQz^ z*Z|W$?ZxZc)@Y;4(j5C<(J+X`JjnXpL)JSb+_qY&j<<=v4+N&aQxKG{dGKmx10-;} z1HD?rSZY5%pk8}{jWFeCOEDrw`>duci^6j7dy$SMe$TBmCY76eiR>+CRN3RBP-oh7 z7Ht}Gz3=;hL$0d$a}rCm#EI-%>&juvaa0dtg62adj@LdN&)4q92-f@@SpF1#&d@y1 zPra7~dD*g>O;>37WhUdf=<8rrk;;2*5)$ILeI3-Dre9Z_zUO{Kmns@}scWbv!@izy zmR%MyZqZaBuz=30PNG5`8I;j&9R9G{^gidi9s0fj71x05Oj}zz<(MXx-71+6z61`! zAz5c7$Rc{Ti4O7hfw6)Ot+y0m7JNPT(?xlV2MEbeX?*WP_ZIG)Wxg+qd^f$W3gCl<8~dK)E6bx} z0ImU$8|QU2)6_1gVJX*mEAkNY19D5f`0cNe1Hbt0R}#u;XlQL`?PO?(Jl8}eXg1_3 zmpW|f7b5dlVx+*ujbG--uQ~9qNbYZfG0f8X4{I%?x^-n)Li07Gh^H#@k0TWTe~%n^ zFESrSv39pJwYE1jwzhY${+sGOsyi2b+&4m9KtxDMP(PD@Yi;}@=D;t4(SHDccXvnS zK;BrWCmGZ<9U?F59x{9(b+Ues9Jm_&6`Uu=cE*eGdeh#<+LaVRqG5h6Wc_zk+4>NA!rQ2(JWg342N$y5vCvQFhj zx;B7(-H^!NBM08Wa|Q3uf@D3Z>KIUvqc4kV`2<5M>&K>rCfMpE$7fZMU93=>-+EGx?i9ic$78@<;n$c zRUeE?`$QKM`@eO?K=t9O-VK)wW;YbZpPd{~F;_{zqhP#HF@FfcqhhWS&Ar5k1)yO5 zCZUVUxJugek}(~G%J@_06qR$8?B^v1I~axY-|mL1Wb7^x?hz=6-=cP?E?lL`b7{Z% z9M#_01m=m!;Y)oJD>1gHBSpKbmL{qu0?5<1ZPzoEa5n*OBznLb@oC5Hbu z_5YG7ROD4D&n0s4A0Yph0HLC<%6opHtKkA8|J&PtXF Date: Thu, 13 Jul 2023 09:31:22 -0400 Subject: [PATCH 02/11] Blender Kitsu: Use Gazu's Module's Edit Functions --- .../addons/blender_kitsu/gazu/edit.py | 43 ++++++++----------- .../addons/blender_kitsu/sqe/ops.py | 4 +- 2 files changed, 20 insertions(+), 27 deletions(-) diff --git a/scripts-blender/addons/blender_kitsu/gazu/edit.py b/scripts-blender/addons/blender_kitsu/gazu/edit.py index 9a06ef9a..20b0db25 100644 --- a/scripts-blender/addons/blender_kitsu/gazu/edit.py +++ b/scripts-blender/addons/blender_kitsu/gazu/edit.py @@ -7,30 +7,8 @@ from .helpers import normalize_model_parameter default = raw.default_client -@cache -def get_all_edits(relations=False, client=default): - """ - Retrieve all edit entries. - """ - params = {} - if relations: - params = {"relations": "true"} - path = "edits/all" - edits = raw.fetch_all(path, params, client=client) - return sort_by_name(edits) +# TODO Contribute these to gazu module or remove, this file is temporary -@cache -def get_edit(edit_id, relations=False, client=default): - """ - Retrieve all edit entries. - """ - edit_entry = normalize_model_parameter(edit_id) - params = {} - if relations: - params = {"relations": "true"} - path = f"edits/{edit_entry['id']}" - edit_entry = raw.fetch_all(path, params, client=client) - return edit_entry @cache def get_all_edits_with_tasks(relations=False, client=default): @@ -44,6 +22,7 @@ def get_all_edits_with_tasks(relations=False, client=default): edits_with_tasks = raw.fetch_all(path, params, client=client) return sort_by_name(edits_with_tasks) + @cache def get_all_previews_for_edit(edit, client=default): """ @@ -54,6 +33,20 @@ def get_all_previews_for_edit(edit, client=default): list: Shots which are children of given episode. """ edit = normalize_model_parameter(edit) - edit_previews = (raw.fetch_all(f"edits/{edit['id']}/preview-files", client=client)) + edit_previews = raw.fetch_all(f"edits/{edit['id']}/preview-files", client=client) for key in [key for key in enumerate(edit_previews.keys())]: - return edit_previews[key[1]] \ No newline at end of file + return edit_previews[key[1]] + + +@cache +def all_tasks_for_edit(edit, relations=False, client=default): + """ + Retrieve all tasks directly linked to given edit. + """ + edit = normalize_model_parameter(edit) + params = {} + if relations: + params = {"relations": "true"} + path = "edits/%s/tasks" % edit["id"] + tasks = raw.fetch_all(path, params, client=client) + return sort_by_name(tasks) diff --git a/scripts-blender/addons/blender_kitsu/sqe/ops.py b/scripts-blender/addons/blender_kitsu/sqe/ops.py index 222005a5..06644553 100644 --- a/scripts-blender/addons/blender_kitsu/sqe/ops.py +++ b/scripts-blender/addons/blender_kitsu/sqe/ops.py @@ -2423,7 +2423,7 @@ class KITSU_OT_vse_publish_edit_revision(bpy.types.Operator): def get_edit_task_items( self: Any, context: bpy.types.Context ) -> List[Tuple[str, str, str]]: - tasks = gazu.task.all_tasks_for_edit(self.edit_entry) + tasks = connectors.all_tasks_for_edit(self.edit_entry) return [ ( item.get("id"), @@ -2538,7 +2538,7 @@ class KITSU_OT_vse_publish_edit_revision(bpy.types.Operator): edit_entity_update = set_entity_data( edit_entry, 'frame_start', self.frame_start ) - updated_edit_entity = gazu.entity.update_entity( + updated_edit_entity = gazu.edit.update_edit( edit_entity_update ) # TODO add a generic function to update entites -- 2.30.2 From b559242614fd0346fa63f5b127f877e487a51363 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 09:31:23 -0400 Subject: [PATCH 03/11] Blender Kitsu: Add __init__.py to wheels --- .../addons/blender_kitsu/wheels/__init__.py | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 scripts-blender/addons/blender_kitsu/wheels/__init__.py diff --git a/scripts-blender/addons/blender_kitsu/wheels/__init__.py b/scripts-blender/addons/blender_kitsu/wheels/__init__.py new file mode 100644 index 00000000..5e0985ab --- /dev/null +++ b/scripts-blender/addons/blender_kitsu/wheels/__init__.py @@ -0,0 +1,135 @@ +"""External dependencies loader.""" + +import contextlib +import importlib +from pathlib import Path +import sys +import logging +from types import ModuleType +from typing import Iterator, Iterable + +_my_dir = Path(__file__).parent +_log = logging.getLogger(__name__) + + +def load_wheel(module_name: str, submodules: Iterable[str]) -> list[ModuleType]: + """Loads modules from a wheel file 'module_name*.whl'. + + Loads `module_name`, and if submodules are given, loads + `module_name.submodule` for each of the submodules. This allows loading all + required modules from the same wheel in one session, ensuring that + inter-submodule references are correct. + + Returns the loaded modules, so [module, submodule, submodule, ...]. + """ + + fname_prefix = _fname_prefix_from_module_name(module_name) + wheel = _wheel_filename(fname_prefix) + + loaded_modules: list[ModuleType] = [] + to_load = [module_name] + [f"{module_name}.{submodule}" for submodule in submodules] + + # Load the module from the wheel file. Keep a backup of sys.path so that it + # can be restored later. This should ensure that future import statements + # cannot find this wheel file, increasing the separation of dependencies of + # this add-on from other add-ons. + with _sys_path_mod_backup(wheel): + for modname in to_load: + try: + module = importlib.import_module(modname) + except ImportError as ex: + raise ImportError( + "Unable to load %r from %s: %s" % (modname, wheel, ex) + ) from None + assert isinstance(module, ModuleType) + loaded_modules.append(module) + _log.info("Loaded %s from %s", modname, module.__file__) + + assert len(loaded_modules) == len( + to_load + ), f"expecting to load {len(to_load)} modules, but only have {len(loaded_modules)}: {loaded_modules}" + return loaded_modules + + +def load_wheel_global(module_name: str, fname_prefix: str = "") -> ModuleType: + """Loads a wheel from 'fname_prefix*.whl', unless the named module can be imported. + + This allows us to use system-installed packages before falling back to the shipped wheels. + This is useful for development, less so for deployment. + + If `fname_prefix` is the empty string, it will use the first package from `module_name`. + In other words, `module_name="pkg.subpkg"` will result in `fname_prefix="pkg"`. + """ + + if not fname_prefix: + fname_prefix = _fname_prefix_from_module_name(module_name) + + try: + module = importlib.import_module(module_name) + except ImportError as ex: + _log.debug("Unable to import %s directly, will try wheel: %s", module_name, ex) + else: + _log.debug( + "Was able to load %s from %s, no need to load wheel %s", + module_name, + module.__file__, + fname_prefix, + ) + return module + + wheel = _wheel_filename(fname_prefix) + + wheel_filepath = str(wheel) + if wheel_filepath not in sys.path: + sys.path.insert(0, wheel_filepath) + + try: + module = importlib.import_module(module_name) + except ImportError as ex: + raise ImportError( + "Unable to load %r from %s: %s" % (module_name, wheel, ex) + ) from None + + _log.debug("Globally loaded %s from %s", module_name, module.__file__) + return module + + +@contextlib.contextmanager +def _sys_path_mod_backup(wheel_file: Path) -> Iterator[None]: + """Temporarily inserts a wheel onto sys.path. + + When the context exits, it restores sys.path and sys.modules, so that + anything that was imported within the context remains unimportable by other + modules. + """ + old_syspath = sys.path[:] + old_sysmod = sys.modules.copy() + + try: + sys.path.insert(0, str(wheel_file)) + yield + finally: + # Restore without assigning a new list instance. That way references + # held by other code will stay valid. + sys.path[:] = old_syspath + sys.modules.clear() + sys.modules.update(old_sysmod) + + +def _wheel_filename(fname_prefix: str) -> Path: + path_pattern = "%s*.whl" % fname_prefix + wheels: list[Path] = list(_my_dir.glob(path_pattern)) + if not wheels: + raise RuntimeError("Unable to find wheel at %r" % path_pattern) + + # If there are multiple wheels that match, load the last-modified one. + # Alphabetical sorting isn't going to cut it since BAT 1.10 was released. + def modtime(filepath: Path) -> float: + return filepath.stat().st_mtime + + wheels.sort(key=modtime) + return wheels[-1] + + +def _fname_prefix_from_module_name(module_name: str) -> str: + return module_name.split(".", 1)[0] -- 2.30.2 From 9112ab8f2b106f72cc3193a3551cc275e7dd8922 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 09:31:23 -0400 Subject: [PATCH 04/11] Blender Kitsu: Register Gazu module --- .../addons/blender_kitsu/__init__.py | 8 +++++--- .../wheels/gazu-0.9.4-py2.py3-none-any.whl | Bin 0 -> 47726 bytes ...=> python_engineio-4.5.1-py3-none-any.whl} | Bin 53350 -> 53491 bytes 3 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 scripts-blender/addons/blender_kitsu/wheels/gazu-0.9.4-py2.py3-none-any.whl rename scripts-blender/addons/blender_kitsu/wheels/{python_engineio-4.4.1-py3-none-any.whl => python_engineio-4.5.1-py3-none-any.whl} (55%) diff --git a/scripts-blender/addons/blender_kitsu/__init__.py b/scripts-blender/addons/blender_kitsu/__init__.py index 12b7f1b7..cd3ce065 100644 --- a/scripts-blender/addons/blender_kitsu/__init__.py +++ b/scripts-blender/addons/blender_kitsu/__init__.py @@ -18,7 +18,11 @@ # # (c) 2021, Blender Foundation - Paul Golter -import bpy +from . import dependencies + +dependencies.preload_modules() +import gazu + from blender_kitsu import ( shot_builder, lookdev, @@ -41,7 +45,6 @@ from blender_kitsu import ( ) - from blender_kitsu.logger import LoggerFactory, LoggerLevelManager logger = LoggerFactory.getLogger(__name__) @@ -96,7 +99,6 @@ def register(): playblast.register() anim.register() shot_builder.register() - LoggerLevelManager.configure_levels() logger.info("Registered blender-kitsu") diff --git a/scripts-blender/addons/blender_kitsu/wheels/gazu-0.9.4-py2.py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/gazu-0.9.4-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..99b61d708f7be74d41b00ca1b0bc9962cc84d485 GIT binary patch literal 47726 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 be-G(pCEmULTl`!CfCX56d*xR1bMOBFg7W8! literal 0 HcmV?d00001 diff --git a/scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.4.1-py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.5.1-py3-none-any.whl similarity index 55% rename from scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.4.1-py3-none-any.whl rename to scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.5.1-py3-none-any.whl index ee318ec1c0bc9069abc9060a00ef2a258099f86b..1c858a0cf85247b0570e22ec725a19a9061fee65 100644 GIT binary patch delta 18108 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 Kv;98-k^=w{C8!?& delta 17951 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 Date: Thu, 13 Jul 2023 09:31:24 -0400 Subject: [PATCH 05/11] Blender Kitsu: Replace Blender_Kitsu with Gazu Module --- .../addons/blender_kitsu/gazu/edit.py | 2 +- .../addons/blender_kitsu/sqe/ops.py | 6 +++--- scripts-blender/addons/blender_kitsu/types.py | 19 ++++++++++--------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/scripts-blender/addons/blender_kitsu/gazu/edit.py b/scripts-blender/addons/blender_kitsu/gazu/edit.py index 20b0db25..d4fcf558 100644 --- a/scripts-blender/addons/blender_kitsu/gazu/edit.py +++ b/scripts-blender/addons/blender_kitsu/gazu/edit.py @@ -1,4 +1,4 @@ -from blender_kitsu import gazu +import gazu from . import client as raw from .sorting import sort_by_name diff --git a/scripts-blender/addons/blender_kitsu/sqe/ops.py b/scripts-blender/addons/blender_kitsu/sqe/ops.py index 06644553..6ab55324 100644 --- a/scripts-blender/addons/blender_kitsu/sqe/ops.py +++ b/scripts-blender/addons/blender_kitsu/sqe/ops.py @@ -26,8 +26,8 @@ from pathlib import Path from typing import Dict, List, Set, Optional, Tuple, Any import datetime import bpy - -from blender_kitsu import gazu, cache, util, prefs, bkglobals +import gazu +from blender_kitsu import cache, util, prefs, bkglobals from blender_kitsu.sqe import push, pull, checkstrip, opsdata, checksqe from blender_kitsu.logger import LoggerFactory @@ -2423,7 +2423,7 @@ class KITSU_OT_vse_publish_edit_revision(bpy.types.Operator): def get_edit_task_items( self: Any, context: bpy.types.Context ) -> List[Tuple[str, str, str]]: - tasks = connectors.all_tasks_for_edit(self.edit_entry) + tasks = gazu.tasks.all_tasks_for_edit(self.edit_entry) return [ ( item.get("id"), diff --git a/scripts-blender/addons/blender_kitsu/types.py b/scripts-blender/addons/blender_kitsu/types.py index 628835a0..dfcc5022 100644 --- a/scripts-blender/addons/blender_kitsu/types.py +++ b/scripts-blender/addons/blender_kitsu/types.py @@ -23,7 +23,7 @@ import inspect from dataclasses import asdict, dataclass, field from typing import Any, Dict, List, Optional, Union, Tuple, TypeVar -from blender_kitsu import gazu +import gazu from blender_kitsu.logger import LoggerFactory logger = LoggerFactory.getLogger() @@ -619,7 +619,6 @@ class Asset(Entity): asset_name: str, asset_type: Optional[AssetType] = None, ) -> Optional[Asset]: - # Convert args to dict for api call. project_dict = asdict(project) asset_type_dict = asdict(asset_type) if asset_type else asset_type @@ -693,12 +692,19 @@ class TaskType(Entity): @classmethod def all_shot_task_types(cls) -> List[TaskType]: - return [cls.from_dict(t) for t in gazu.task.all_task_types() if t["for_entity"] == "Shot"] + return [ + cls.from_dict(t) + for t in gazu.task.all_task_types() + if t["for_entity"] == "Shot" + ] @classmethod def all_asset_task_types(cls) -> List[TaskType]: return [ - cls.from_dict(t) for t in gazu.task.all_task_types() if t["for_entity"] == "Asset"] + cls.from_dict(t) + for t in gazu.task.all_task_types() + if t["for_entity"] == "Asset" + ] def __bool__(self) -> bool: return bool(self.id) @@ -777,7 +783,6 @@ class Task(Entity): task_type: TaskType, name: str = "main", ) -> Optional[Task]: - # Convert args to dict for api call. asset_shotdict = asdict(asset_shot) task_type_dict = asdict(task_type) @@ -804,7 +809,6 @@ class Task(Entity): assigner: Optional[Person] = None, assignees: Optional[List[Person]] = None, ) -> Task: - # Convert args. assigner = asdict(assigner) if assigner else assigner task_status = asdict(task_status) if task_status else task_status @@ -857,7 +861,6 @@ class Task(Entity): # I think attachements is equal to attachment_files in Comment class. created_at: Optional[str] = None, ) -> Comment: - # Convert args. person = asdict(user) if user else user @@ -909,7 +912,6 @@ class TaskStatus(Entity): @classmethod def by_short_name(cls, short_name: str) -> Optional[TaskStatus]: - # Can return None if task status does not exist. task_status_dict = gazu.task.get_task_status_by_short_name(short_name) @@ -919,7 +921,6 @@ class TaskStatus(Entity): @classmethod def by_name(cls, name: str) -> Optional[TaskStatus]: - # Can return None if task status does not exist. task_status_dict = gazu.task.get_task_status_by_name(name) -- 2.30.2 From a253ca332639ad2598628c0515c6a151828d2516 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 09:31:25 -0400 Subject: [PATCH 06/11] Blender Kitsu: Remove Legacy Gazu Folder --- .../addons/blender_kitsu/gazu/LICENSE | 165 --- .../addons/blender_kitsu/gazu/__init__.py | 64 - .../addons/blender_kitsu/gazu/__version__.py | 1 - .../addons/blender_kitsu/gazu/asset.py | 530 ------- .../addons/blender_kitsu/gazu/cache.py | 215 --- .../addons/blender_kitsu/gazu/casting.py | 153 -- .../addons/blender_kitsu/gazu/client.py | 488 ------- .../addons/blender_kitsu/gazu/context.py | 151 -- .../addons/blender_kitsu/gazu/edit.py | 52 - .../addons/blender_kitsu/gazu/encoder.py | 15 - .../addons/blender_kitsu/gazu/entity.py | 119 -- .../addons/blender_kitsu/gazu/exception.py | 93 -- .../addons/blender_kitsu/gazu/files.py | 1247 ----------------- .../addons/blender_kitsu/gazu/helpers.py | 140 -- .../addons/blender_kitsu/gazu/person.py | 224 --- .../addons/blender_kitsu/gazu/playlist.py | 153 -- .../addons/blender_kitsu/gazu/project.py | 377 ----- .../addons/blender_kitsu/gazu/scene.py | 189 --- .../addons/blender_kitsu/gazu/shot.py | 628 --------- .../addons/blender_kitsu/gazu/sorting.py | 11 - .../addons/blender_kitsu/gazu/sync.py | 172 --- .../addons/blender_kitsu/gazu/task.py | 1075 -------------- .../addons/blender_kitsu/gazu/user.py | 270 ---- 23 files changed, 6532 deletions(-) delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/LICENSE delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/__init__.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/__version__.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/asset.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/cache.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/casting.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/client.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/context.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/edit.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/encoder.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/entity.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/exception.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/files.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/helpers.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/person.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/playlist.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/project.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/scene.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/shot.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/sorting.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/sync.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/task.py delete mode 100644 scripts-blender/addons/blender_kitsu/gazu/user.py diff --git a/scripts-blender/addons/blender_kitsu/gazu/LICENSE b/scripts-blender/addons/blender_kitsu/gazu/LICENSE deleted file mode 100644 index b14ca0a5..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/scripts-blender/addons/blender_kitsu/gazu/__init__.py b/scripts-blender/addons/blender_kitsu/gazu/__init__.py deleted file mode 100644 index ccdcfbaf..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -from . import client as raw -from . import cache -from . import helpers - -from . import asset -from . import casting -from . import context -from . import entity -from . import edit -from . import files -from . import project -from . import person -from . import shot -from . import sync -from . import task -from . import user -from . import playlist - -from .exception import AuthFailedException, ParameterException -from .__version__ import __version__ - - -def get_host(client=raw.default_client): - return raw.get_host(client=client) - - -def set_host(url, client=raw.default_client): - raw.set_host(url, client=client) - - -def log_in(email, password, client=raw.default_client): - tokens = {} - try: - tokens = raw.post( - "auth/login", {"email": email, "password": password}, client=client - ) - except ParameterException: - pass - - if not tokens or ( - "login" in tokens and tokens.get("login", False) == False - ): - raise AuthFailedException - else: - raw.set_tokens(tokens, client=client) - return tokens - - -def log_out(client=raw.default_client): - tokens = {} - try: - raw.get("auth/logout", client=client) - except ParameterException: - pass - raw.set_tokens(tokens, client=client) - return tokens - - -def get_event_host(client=raw.default_client): - return raw.get_event_host(client=client) - - -def set_event_host(url, client=raw.default_client): - raw.set_event_host(url, client=client) diff --git a/scripts-blender/addons/blender_kitsu/gazu/__version__.py b/scripts-blender/addons/blender_kitsu/gazu/__version__.py deleted file mode 100644 index 21f38f03..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/__version__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.8.30" diff --git a/scripts-blender/addons/blender_kitsu/gazu/asset.py b/scripts-blender/addons/blender_kitsu/gazu/asset.py deleted file mode 100644 index ba0fea05..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/asset.py +++ /dev/null @@ -1,530 +0,0 @@ -from .helpers import normalize_model_parameter - -from . import client as raw -from . import project as gazu_project - -from .sorting import sort_by_name - -from .cache import cache - -from .shot import get_episode - -default = raw.default_client - - -@cache -def all_assets_for_open_projects(client=default): - """ - Returns: - list: Assets stored in the database for open projects. - """ - all_assets = [] - for project in gazu_project.all_open_projects(client=default): - all_assets.extend(all_assets_for_project(project, client)) - return sort_by_name(all_assets) - - -@cache -def all_assets_for_project(project, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: Assets stored in the database for given project. - """ - project = normalize_model_parameter(project) - - if project is None: - return sort_by_name(raw.fetch_all("assets/all", client=client)) - else: - path = "projects/%s/assets" % project["id"] - return sort_by_name(raw.fetch_all(path, client=client)) - - -@cache -def all_assets_for_episode(episode, client=default): - """ - Args: - episode (str / dict): The episode dict or the episode ID. - - Returns: - list: Assets stored in the database for given episode. - """ - episode = normalize_model_parameter(episode) - - return sort_by_name( - raw.fetch_all("assets", {"source_id": episode["id"]}, client=client) - ) - - -@cache -def all_assets_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Assets stored in the database for given shot. - """ - shot = normalize_model_parameter(shot) - path = "shots/%s/assets" % shot["id"] - return sort_by_name(raw.fetch_all(path, client=client)) - - -@cache -def all_assets_for_project_and_type(project, asset_type, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - asset_type (str / dict): The asset type dict or the asset type ID. - - Returns: - list: Assets stored in the database for given project and asset type. - """ - project = normalize_model_parameter(project) - asset_type = normalize_model_parameter(asset_type) - - project_id = project["id"] - asset_type_id = asset_type["id"] - path = "projects/{project_id}/asset-types/{asset_type_id}/assets" - path = path.format(project_id=project_id, asset_type_id=asset_type_id) - - assets = raw.fetch_all(path, client=client) - return sort_by_name(assets) - - -@cache -def get_asset_by_name(project, name, asset_type=None, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - name (str): The asset name - asset_type (str / dict): Asset type dict or ID (optional). - - Returns: - dict: Asset matching given name for given project and asset type. - """ - project = normalize_model_parameter(project) - - path = "assets/all" - if asset_type is None: - params = {"project_id": project["id"], "name": name} - else: - asset_type = normalize_model_parameter(asset_type) - params = { - "project_id": project["id"], - "name": name, - "entity_type_id": asset_type["id"], - } - return raw.fetch_first(path, params, client=client) - - -@cache -def get_asset(asset_id, client=default): - """ - Args: - asset_id (str): Id of claimed asset. - - Returns: - dict: Asset matching given ID. - """ - return raw.fetch_one("assets", asset_id, client=client) - - -@cache -def get_asset_url(asset, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - url (str): Web url associated to the given asset - """ - asset = normalize_model_parameter(asset) - asset = get_asset(asset["id"]) - project = gazu_project.get_project(asset["project_id"]) - episode_id = "main" - path = "{host}/productions/{project_id}/" - if project["production_type"] != "tvshow": - path += "assets/{asset_id}/" - else: - path += "episodes/{episode_id}/assets/{asset_id}/" - if len(asset["episode_id"]) > 0: - episode_id = asset["episode_id"] - - return path.format( - host=raw.get_api_url_from_host(), - project_id=asset["project_id"], - asset_id=asset["id"], - episode_id=episode_id, - client=client, - ) - - -def new_asset( - project, - asset_type, - name, - description="", - extra_data={}, - episode=None, - client=default, -): - """ - Create a new asset in the database for given project and asset type. - - Args: - project (str / dict): The project dict or the project ID. - asset_type (str / dict): The asset type dict or the asset type ID. - name (str): Asset name. - description (str): Additional information. - extra_data (dict): Free field to add any kind of metadata. - episode (str / dict): The episode this asset is linked to. - - Returns: - dict: Created asset. - """ - project = normalize_model_parameter(project) - asset_type = normalize_model_parameter(asset_type) - episode = normalize_model_parameter(episode) - - data = {"name": name, "description": description, "data": extra_data} - - if episode is not None: - data["episode_id"] = episode["id"] - - asset = get_asset_by_name(project, name, asset_type, client=client) - if asset is None: - asset = raw.post( - "data/projects/%s/asset-types/%s/assets/new" - % (project["id"], asset_type["id"]), - data, - client=client, - ) - return asset - - -def update_asset(asset, client=default): - """ - Save given asset data into the API. It assumes that the asset already - exists. - - Args: - asset (dict): Asset to save. - """ - if "episode_id" in asset: - asset["source_id"] = asset["episode_id"] - return raw.put("data/entities/%s" % asset["id"], asset, client=client) - - -def update_asset_data(asset, data={}, client=default): - """ - Update the metadata for the provided asset. Keys that are not provided are - not changed. - - Args: - asset (dict / ID): The asset dict or ID to save in database. - data (dict): Free field to set metadata of any kind. - - Returns: - dict: Updated asset. - """ - asset = normalize_model_parameter(asset) - current_asset = get_asset(asset["id"], client=client) - updated_asset = {"id": current_asset["id"], "data": current_asset["data"]} - updated_asset["data"].update(data) - return update_asset(updated_asset, client=client) - - -def remove_asset(asset, force=False, client=default): - """ - Remove given asset from database. - - Args: - asset (dict): Asset to remove. - """ - asset = normalize_model_parameter(asset) - path = "data/assets/%s" % asset["id"] - params = {} - if force: - params = {"force": "true"} - return raw.delete(path, params, client=client) - - -@cache -def all_asset_types(client=default): - """ - Returns: - list: Asset types stored in the database. - """ - return sort_by_name(raw.fetch_all("asset-types", client=client)) - - -@cache -def all_asset_types_for_project(project, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: Asset types from assets listed in given project. - """ - path = "projects/%s/asset-types" % project["id"] - return sort_by_name(raw.fetch_all(path, client=client)) - - -@cache -def all_asset_types_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Asset types from assets casted in given shot. - """ - path = "shots/%s/asset-types" % shot["id"] - return sort_by_name(raw.fetch_all(path, client=client)) - - -@cache -def get_asset_type(asset_type_id, client=default): - """ - Args: - asset_type_id (str/): Id of claimed asset type. - - Returns: - dict: Asset Type matching given ID. - """ - asset_type_id = normalize_model_parameter(asset_type_id)["id"] - return raw.fetch_one("asset-types", asset_type_id, client=client) - - -@cache -def get_asset_type_by_name(name, client=default): - """ - Args: - name (str): name of asset type. - - Returns: - dict: Asset Type matching given name. - """ - return raw.fetch_first("entity-types", {"name": name}, client=client) - - -def new_asset_type(name, client=default): - """ - Create a new asset type in the database. - - Args: - name (str): The name of asset type to create. - - Returns: - (dict): Created asset type. - """ - data = {"name": name} - asset_type = raw.fetch_first("entity-types", {"name": name}, client=client) - if asset_type is None: - asset_type = raw.create("entity-types", data, client=client) - return asset_type - - -def update_asset_type(asset_type, client=default): - """ - Save given asset type data into the API. It assumes that the asset type - already exists. - - Args: - asset_type (dict): Asset Type to save. - """ - data = {"name": asset_type["name"]} - path = "data/asset-types/%s" % asset_type["id"] - return raw.put(path, data, client=client) - - -def remove_asset_type(asset_type, client=default): - """ - Remove given asset type from database. - - Args: - asset_type (dict): Asset type to remove. - """ - asset_type = normalize_model_parameter(asset_type) - path = "data/asset-types/%s" % asset_type["id"] - return raw.delete(path, client=client) - - -@cache -def get_asset_instance(asset_instance_id, client=default): - """ - Args: - asset_instance_id (str): Id of claimed asset instance. - - Returns: - dict: Asset Instance matching given ID. - """ - return raw.fetch_one("asset-instances", asset_instance_id, client=client) - - -@cache -def all_shot_asset_instances_for_asset(asset, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - list: Asset instances existing for a given asset. - """ - asset = normalize_model_parameter(asset) - path = "assets/%s/shot-asset-instances" % asset["id"] - return raw.fetch_all(path, client=client) - - -def enable_asset_instance(asset_instance, client=default): - """ - Set active flag of given asset instance to True. - - Args: - asset_instance (str / dict): The asset instance dict or ID. - """ - asset_instance = normalize_model_parameter(asset_instance) - data = {"active": True} - path = "asset-instances/%s" % asset_instance["id"] - return raw.put(path, data, client=client) - - -def disable_asset_instance(asset_instance, client=default): - """ - Set active flag of given asset instance to False. - - Args: - asset_instance (str / dict): The asset instance dict or ID. - """ - asset_instance = normalize_model_parameter(asset_instance) - data = {"active": False} - path = "asset-instances/%s" % asset_instance["id"] - return raw.put(path, data, client=client) - - -@cache -def all_scene_asset_instances_for_asset(asset, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - list: Scene asset instances existing for a given asset. - """ - asset = normalize_model_parameter(asset) - path = "assets/%s/scene-asset-instances" % asset["id"] - return raw.fetch_all(path, client=client) - - -@cache -def all_asset_instances_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Asset instances existing for a given shot. - """ - path = "shots/%s/asset-instances" % shot["id"] - return raw.fetch_all(path, client=client) - - -@cache -def all_asset_instances_for_asset(asset, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - list: Asset instances existing for a given asset. - """ - asset = normalize_model_parameter(asset) - path = "assets/%s/asset-asset-instances" % asset["id"] - return raw.fetch_all(path, client=client) - - -def new_asset_asset_instance( - asset, asset_to_instantiate, description="", client=default -): - """ - Creates a new asset instance for given asset. The instance number is - automatically generated (increment highest number). - - Args: - asset (str / dict): The asset dict or the shot ID. - asset_instance (str / dict): The asset instance dict or ID. - description (str): Additional information (optional) - - Returns: - (dict): Created asset instance. - """ - asset = normalize_model_parameter(asset) - asset_to_instantiate = normalize_model_parameter(asset_to_instantiate) - data = { - "asset_to_instantiate_id": asset_to_instantiate["id"], - "description": description, - } - return raw.post( - "data/assets/%s/asset-asset-instances" % asset["id"], - data, - client=client, - ) - - -def import_assets_with_csv(project, csv_file_path, client=default): - project = normalize_model_parameter(project) - return raw.upload( - "import/csv/projects/%s/assets" % project["id"], - csv_file_path, - client=client, - ) - - -def export_assets_with_csv( - project, csv_file_path, episode=None, assigned_to=None, client=default -): - project = normalize_model_parameter(project) - episode = normalize_model_parameter(episode) - assigned_to = normalize_model_parameter(assigned_to) - params = {} - if episode: - params["episode_id"] = episode["id"] - if assigned_to: - params["assigned_to"] = assigned_to["id"] - return raw.download( - "export/csv/projects/%s/assets.csv" % project["id"], - csv_file_path, - params=params, - client=client, - ) - - -@cache -def get_episode_from_asset(asset, client=default): - """ - Args: - asset (dict): The asset dict. - - Returns: - dict: Episode which is parent of given asset. - """ - if asset["parent_id"] is None: - return None - else: - return get_episode(asset["parent_id"], client=client) - - -@cache -def get_asset_type_from_asset(asset, client=default): - """ - Args: - asset (dict): The asset dict. - - Returns: - dict: Asset type which is the type of given asset. - """ - return get_asset_type(asset["entity_type_id"], client=client) diff --git a/scripts-blender/addons/blender_kitsu/gazu/cache.py b/scripts-blender/addons/blender_kitsu/gazu/cache.py deleted file mode 100644 index 6325f4de..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/cache.py +++ /dev/null @@ -1,215 +0,0 @@ -import copy -import datetime -import json - -from functools import wraps - -cache_settings = {"enabled": False} -cached_functions = [] - - -def enable(): - """ - Enable caching on all decorated functions. - """ - cache_settings["enabled"] = True - return cache_settings["enabled"] - - -def disable(): - """ - Disable caching on all decorated functions. - """ - cache_settings["enabled"] = False - return cache_settings["enabled"] - - -def clear_all(): - """ - Clear all cached functions. - """ - for function in cached_functions: - function.clear_cache() - - -def remove_oldest_entry(memo, maxsize): - """ - Remove the oldest cache entry if there is more value stored than allowed. - - Params: - memo (dict): Cache used for function memoization. - maxsize (int): Maximum number of entries for the cache. - - Returns: - Oldest entry for given cache. - """ - oldest_entry = None - if maxsize > 0 and len(memo) > maxsize: - oldest_entry_key = list(memo.keys())[0] - for entry_key in memo.keys(): - oldest_date = memo[oldest_entry_key]["date_accessed"] - if memo[entry_key]["date_accessed"] < oldest_date: - oldest_entry_key = entry_key - memo.pop(oldest_entry_key) - return oldest_entry - - -def get_cache_key(args, kwargs): - """ - Serialize arguments to get a cache key. It will be used to store function - results. - - Returns: - str: generated key - """ - kwargscopy = kwargs.copy() - if "client" in kwargscopy: - kwargscopy["client"] = kwargscopy["client"].host - if len(args) == 0 and len(kwargscopy) == 0: - return "" - elif len(args) == 0: - return json.dumps(kwargscopy) - elif len(kwargscopy.keys()) == 0: - return json.dumps(args) - else: - return json.dumps([args, kwargscopy]) - - -def insert_value(function, cache_store, args, kwargs): - """ - Serialize function call arguments and store function result in given cache - store. - - Args: - function (func): The function to cache value for. - cache_store (dict): The cache which will contain the value to cache. - args, kwargs: The arguments for which a cache must be set. - - Returns: - The cached value. - """ - returned_value = function(*args, **kwargs) - key = get_cache_key(args, kwargs) - cache_store[key] = { - "date_accessed": datetime.datetime.now(), - "value": returned_value, - } - return get_value(cache_store, key) - - -def get_value(cache_store, key): - """ - It generates a deep copy of the requested value. It's needed because if a - pointer is returned, the value can be changed. Which leads to a modified - cache and unexpected results. - - Returns: - Value matching given key inside given cache store - """ - value = cache_store[key]["value"] - return copy.deepcopy(value) - - -def is_cache_enabled(state): - """ - Args: - state: The state describing the cache state. - - Returns: - True if cache is enabled for given state. - """ - return cache_settings["enabled"] and state["enabled"] - - -def is_cache_expired(memo, state, key): - """ - Check if cache is expired (outdated) for given wrapper state and cache key. - - Args: - memo (dict): The function cache - state (dict): The parameters of the cache (enabled, expire, maxsize) - key: The key to check - - Returns: - True if cache value is expired. - - """ - date = memo[key]["date_accessed"] - expire = state["expire"] - date_to_check = date + datetime.timedelta(seconds=expire) - return expire > 0 and date_to_check < datetime.datetime.now() - - -def cache(function, maxsize=300, expire=120): - """ - Decorator that generate cache wrapper and that adds cache feature to - target function. A max cache size and and expiration time (in seconds) can - be set too. - - Args: - function (func): Decorated function: - maxsize: Number of value stored in cache (300 by default). - expire: Time to live in seconds of stored value (disabled by default) - """ - cache_store = {} - state = {"enabled": True, "expire": expire, "maxsize": maxsize} - - statistics = {"hits": 0, "misses": 0, "expired_hits": 0} - - def clear_cache(): - cache_store.clear() - - def get_cache_infos(): - size = {"current_size": len(cache_store)} - infos = {} - for d in [state, statistics, size]: - infos.update(d) - - return infos - - def set_expire(new_expire): - state["expire"] = new_expire - - def set_max_size(maxsize): - state["maxsize"] = maxsize - - def enable_cache(): - state["enabled"] = True - - def disable_cache(): - state["enabled"] = False - - @wraps(function) - def wrapper(*args, **kwargs): - - if is_cache_enabled(state): - key = get_cache_key(args, kwargs) - - if key in cache_store: - if is_cache_expired(cache_store, state, key): - statistics["expired_hits"] += 1 - return insert_value(function, cache_store, args, kwargs) - else: - statistics["hits"] += 1 - return get_value(cache_store, key) - - else: - statistics["misses"] += 1 - returned_value = insert_value( - function, cache_store, args, kwargs - ) - remove_oldest_entry(cache_store, state["maxsize"]) - return returned_value - - else: - return function(*args, **kwargs) - - wrapper.set_cache_expire = set_expire - wrapper.set_cache_max_size = set_max_size - wrapper.clear_cache = clear_cache - wrapper.enable_cache = enable_cache - wrapper.disable_cache = disable_cache - wrapper.get_cache_infos = get_cache_infos - - cached_functions.append(wrapper) - return wrapper diff --git a/scripts-blender/addons/blender_kitsu/gazu/casting.py b/scripts-blender/addons/blender_kitsu/gazu/casting.py deleted file mode 100644 index 63143cdf..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/casting.py +++ /dev/null @@ -1,153 +0,0 @@ -from . import client as raw - -from .helpers import normalize_model_parameter - -default = raw.default_client - - -def update_shot_casting(project, shot, casting, client=default): - """ - Change casting of given shot with given casting (list of asset ids displayed - into the shot). - - Args: - shot (str / dict): The shot dict or the shot ID. - casting (dict): The casting description. - Ex: `casting = [{"asset_id": "asset-1", "nb_occurences": 3}]` - - Returns: - dict: Related shot. - """ - shot = normalize_model_parameter(shot) - project = normalize_model_parameter(project) - path = "data/projects/%s/entities/%s/casting" % (project["id"], shot["id"]) - return raw.put(path, casting, client=client) - - -def update_asset_casting(project, asset, casting, client=default): - """ - Change casting of given asset with given casting (list of asset ids - displayed into the asset). - - Args: - asset (str / dict): The asset dict or the asset ID. - casting (dict): The casting description. - Ex: `casting = [{"asset_id": "asset-1", "nb_occurences": 3}]` - - Returns: - dict: Related asset. - """ - asset = normalize_model_parameter(asset) - project = normalize_model_parameter(project) - path = "data/projects/%s/entities/%s/casting" % ( - project["id"], - asset["id"], - ) - return raw.put(path, casting, client=client) - - -def get_asset_type_casting(project, asset_type, client=default): - """ - Return casting for given asset_type. - `casting = { - "asset-id": [{"asset_id": "asset-1", "nb_occurences": 3}], - ... - } - ` - Args: - project (str / dict): The project dict or the project ID. - asset_type (str / dict): The asset_type dict or the asset_type ID. - - Returns: - dict: Casting of the given asset_type. - """ - - project = normalize_model_parameter(project) - asset_type = normalize_model_parameter(asset_type) - path = "/data/projects/%s/asset-types/%s/casting" % ( - project["id"], - asset_type["id"], - ) - return raw.get(path, client=client) - - -def get_sequence_casting(sequence, client=default): - """ - Return casting for given sequence. - `casting = { - "shot-id": [{"asset_id": "asset-1", "nb_occurences": 3}]}, - ... - } - ` - Args: - sequence (dict): The sequence dict - - Returns: - dict: Casting of the given sequence. - """ - path = "/data/projects/%s/sequences/%s/casting" % ( - sequence["project_id"], - sequence["id"], - ) - return raw.get(path, client=client) - - -def get_shot_casting(shot, client=default): - """ - Return casting for given shot. - `[{"asset_id": "asset-1", "nb_occurences": 3}]}` - Args: - shot (dict): The shot dict - - Returns: - dict: Casting of the given shot. - """ - path = "/data/projects/%s/entities/%s/casting" % ( - shot["project_id"], - shot["id"], - ) - return raw.get(path, client=client) - - -def get_asset_casting(asset, client=default): - """ - Return casting for given asset. - `[{"asset_id": "asset-1", "nb_occurences": 3}]}` - Args: - asset (dict): The asset dict - - Returns: - dict: Casting for given asset. - """ - path = "/data/projects/%s/entities/%s/casting" % ( - asset["project_id"], - asset["id"], - ) - return raw.get(path, client=client) - - -def get_asset_cast_in(asset, client=default): - """ - Return entity list where given asset is casted. - Args: - asset (dict): The asset dict - - Returns: - dict: Entity list where given asset is casted. - """ - asset = normalize_model_parameter(asset) - path = "/data/assets/%s/cast-in" % asset["id"] - return raw.get(path, client=client) - - -def all_entity_links_for_project(project, client=default): - """ - Args: - project (dict): The project - - Returns: - dict: Entity links for given project. - """ - project = normalize_model_parameter(project) - path = "/data/projects/%s/entity-links" % project["id"] - return raw.get(path, client=client) diff --git a/scripts-blender/addons/blender_kitsu/gazu/client.py b/scripts-blender/addons/blender_kitsu/gazu/client.py deleted file mode 100644 index 399acdab..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/client.py +++ /dev/null @@ -1,488 +0,0 @@ -import sys -import functools -import json -import shutil -import urllib - -from .encoder import CustomJSONEncoder - -if sys.version_info[0] == 3: - from json import JSONDecodeError -else: - JSONDecodeError = ValueError - -from .__version__ import __version__ - -from .exception import ( - TooBigFileException, - NotAuthenticatedException, - NotAllowedException, - MethodNotAllowedException, - ParameterException, - RouteNotFoundException, - ServerErrorException, - UploadFailedException, -) - - -class KitsuClient(object): - def __init__(self, host, ssl_verify=True, cert=None): - self.tokens = {"access_token": "", "refresh_token": ""} - self.session = requests.Session() - self.session.verify = ssl_verify - self.session.cert = cert - self.host = host - self.event_host = host - - -def create_client(host, ssl_verify=True, cert=None): - return KitsuClient(host, ssl_verify, cert=None) - - -default_client = None -try: - import requests - - # Little hack to allow json encoder to manage dates. - requests.models.complexjson.dumps = functools.partial( - json.dumps, cls=CustomJSONEncoder - ) - # Set host to "" otherwise requests.Session() takes a long time during Blender startup - # Whyever that is. - # host = "http://gazu.change.serverhost/api" - host = "" - default_client = create_client(host) -except Exception: - print("Warning, running in setup mode!") - - -def host_is_up(client=default_client): - """ - Returns: - True if the host is up. - """ - try: - response = client.session.head(client.host) - except Exception: - return False - return response.status_code == 200 - - -def host_is_valid(client=default_client): - """ - Check if the host is valid by simulating a fake login. - Returns: - True if the host is valid. - """ - if not host_is_up(client): - return False - try: - post("auth/login", {"email": "", "password": ""}) - except Exception as exc: - return type(exc) == ParameterException - - -def get_host(client=default_client): - """ - Returns: - Host on which requests are sent. - """ - return client.host - - -def get_api_url_from_host(client=default_client): - """ - Returns: - Zou url, retrieved from host. - """ - return client.host[:-4] - - -def set_host(new_host, client=default_client): - """ - Returns: - Set currently configured host on which requests are sent. - """ - client.host = new_host - return client.host - - -def get_event_host(client=default_client): - """ - Returns: - Host on which listening for events. - """ - return client.event_host or client.host - - -def set_event_host(new_host, client=default_client): - """ - Returns: - Set currently configured host on which listening for events. - """ - client.event_host = new_host - return client.event_host - - -def set_tokens(new_tokens, client=default_client): - """ - Store authentication token to reuse them for all requests. - - Args: - new_tokens (dict): Tokens to use for authentication. - """ - client.tokens = new_tokens - return client.tokens - - -def make_auth_header(client=default_client): - """ - Returns: - Headers required to authenticate. - """ - headers = {"User-Agent": "CGWire Gazu %s" % __version__} - if "access_token" in client.tokens: - headers["Authorization"] = "Bearer %s" % client.tokens["access_token"] - return headers - - -def url_path_join(*items): - """ - Make it easier to build url path by joining every arguments with a '/' - character. - - Args: - items (list): Path elements - """ - return "/".join([item.lstrip("/").rstrip("/") for item in items]) - - -def get_full_url(path, client=default_client): - """ - Args: - path (str): The path to integrate to host url. - - Returns: - The result of joining configured host url with given path. - """ - return url_path_join(get_host(client), path) - - -def build_path_with_params(path, params): - """ - Add params to a path using urllib encoding - - Args: - path (str): The url base path - params (dict): The parameters to add as a dict - - Returns: - str: the builded path - """ - if not params: - return path - - if hasattr(urllib, "urlencode"): - path = "%s?%s" % (path, urllib.urlencode(params)) - else: - path = "%s?%s" % (path, urllib.parse.urlencode(params)) - return path - - -def get(path, json_response=True, params=None, client=default_client): - """ - Run a get request toward given path for configured host. - - Returns: - The request result. - """ - path = build_path_with_params(path, params) - response = client.session.get( - get_full_url(path, client=client), - headers=make_auth_header(client=client), - ) - check_status(response, path) - - if json_response: - return response.json() - else: - return response.text - - -def post(path, data, client=default_client): - """ - Run a post request toward given path for configured host. - - Returns: - The request result. - """ - response = client.session.post( - get_full_url(path, client), - json=data, - headers=make_auth_header(client=client), - ) - check_status(response, path) - try: - result = response.json() - except JSONDecodeError: - print(response.text) - raise - return result - - -def put(path, data, client=default_client): - """ - Run a put request toward given path for configured host. - - Returns: - The request result. - """ - response = client.session.put( - get_full_url(path, client), - json=data, - headers=make_auth_header(client=client), - ) - check_status(response, path) - return response.json() - - -def delete(path, params=None, client=default_client): - """ - Run a delete request toward given path for configured host. - - Returns: - The request result. - """ - path = build_path_with_params(path, params) - - response = client.session.delete( - get_full_url(path, client), headers=make_auth_header(client=client) - ) - check_status(response, path) - return response.text - - -def check_status(request, path): - """ - Raise an exception related to status code, if the status code does not - match a success code. Print error message when it's relevant. - - Args: - request (Request): The request to validate. - - Returns: - int: Status code - - Raises: - ParameterException: when 400 response occurs - NotAuthenticatedException: when 401 response occurs - RouteNotFoundException: when 404 response occurs - NotAllowedException: when 403 response occurs - MethodNotAllowedException: when 405 response occurs - TooBigFileException: when 413 response occurs - ServerErrorException: when 500 response occurs - """ - status_code = request.status_code - if status_code == 404: - raise RouteNotFoundException(path) - elif status_code == 403: - raise NotAllowedException(path) - elif status_code == 400: - text = request.json().get("message", "No additional information") - raise ParameterException(path, text) - elif status_code == 405: - raise MethodNotAllowedException(path) - elif status_code == 413: - raise TooBigFileException( - "%s: You send a too big file. " - "Change your proxy configuration to allow bigger files." % path - ) - elif status_code in [401, 422]: - raise NotAuthenticatedException(path) - elif status_code in [500, 502]: - try: - stacktrace = request.json().get( - "stacktrace", "No stacktrace sent by the server" - ) - message = request.json().get( - "message", "No message sent by the server" - ) - print("A server error occured!\n") - print("Server stacktrace:\n%s" % stacktrace) - print("Error message:\n%s\n" % message) - except Exception: - print(request.text) - raise ServerErrorException(path) - return status_code - - -def fetch_all(path, params=None, client=default_client): - """ - Args: - path (str): The path for which we want to retrieve all entries. - - Returns: - list: All entries stored in database for a given model. You can add a - filter to the model name like this: "tasks?project_id=project-id" - """ - return get(url_path_join("data", path), params=params, client=client) - - -def fetch_first(path, params=None, client=default_client): - """ - Args: - path (str): The path for which we want to retrieve the first entry. - - Returns: - dict: The first entry for which a model is required. - """ - entries = get(url_path_join("data", path), params=params, client=client) - if len(entries) > 0: - return entries[0] - else: - return None - - -def fetch_one(model_name, id, client=default_client): - """ - Function dedicated at targeting routes that returns a single model - instance. - - Args: - model_name (str): Model type name. - id (str): Model instance ID. - - Returns: - dict: The model instance matching id and model name. - """ - return get(url_path_join("data", model_name, id), client=client) - - -def create(model_name, data, client=default_client): - """ - Create an entry for given model and data. - - Args: - model (str): The model type involved - data (str): The data to use for creation - - Returns: - dict: Created entry - """ - return post(url_path_join("data", model_name), data, client=client) - - -def update(model_name, model_id, data, client=default_client): - """ - Update an entry for given model, id and data. - - Args: - model (str): The model type involved - id (str): The target model id - data (dict): The data to update - - Returns: - dict: Updated entry - """ - return put( - url_path_join("data", model_name, model_id), data, client=client - ) - - -def upload(path, file_path, data={}, extra_files=[], client=default_client): - """ - Upload file located at *file_path* to given url *path*. - - Args: - path (str): The url path to upload file. - file_path (str): The file location on the hard drive. - - Returns: - Response: Request response object. - """ - url = get_full_url(path, client) - files = _build_file_dict(file_path, extra_files) - response = client.session.post( - url, data=data, headers=make_auth_header(client=client), files=files - ) - check_status(response, path) - try: - result = response.json() - except JSONDecodeError: - print(response.text) - raise - if "message" in result: - raise UploadFailedException(result["message"]) - return result - - -def _build_file_dict(file_path, extra_files): - files = {"file": open(file_path, "rb")} - i = 2 - for file_path in extra_files: - files["file-%s" % i] = open(file_path, "rb") - i += 1 - return files - - -def download(path, file_path, params=None, client=default_client): - """ - Download file located at *file_path* to given url *path*. - - Args: - path (str): The url path to download file from. - file_path (str): The location to store the file on the hard drive. - - Returns: - Response: Request response object. - - """ - path = build_path_with_params(path, params) - with client.session.get( - get_full_url(path, client), - headers=make_auth_header(client=client), - stream=True, - ) as response: - with open(file_path, "wb") as target_file: - shutil.copyfileobj(response.raw, target_file) - return response - - -def get_file_data_from_url(url, full=False, client=default_client): - """ - Return data found at given url. - """ - if not full: - url = get_full_url(url) - response = requests.get( - url, - stream=True, - headers=make_auth_header(client=client), - ) - check_status(response, url) - return response.content - - -def import_data(model_name, data, client=default_client): - """ - Args: - model_name (str): The data model to import - data (dict): The data to import - """ - return post("/import/kitsu/%s" % model_name, data, client=client) - - -def get_api_version(client=default_client): - """ - Returns: - str: Current version of the API. - """ - return get("", client=client)["version"] - - -def get_current_user(client=default_client): - """ - Returns: - dict: User database information for user linked to auth tokens. - """ - return get("auth/authenticated", client=client)["user"] diff --git a/scripts-blender/addons/blender_kitsu/gazu/context.py b/scripts-blender/addons/blender_kitsu/gazu/context.py deleted file mode 100644 index 1e39d020..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/context.py +++ /dev/null @@ -1,151 +0,0 @@ -from . import user as gazu_user -from . import project as gazu_project -from . import asset as gazu_asset -from . import task as gazu_task -from . import shot as gazu_shot -from . import scene as gazu_scene - - -def all_open_projects(user_context=False): - """ - Return the list of projects for which the user has a task. - """ - if user_context: - return gazu_user.all_open_projects() - else: - return gazu_project.all_open_projects() - - -def all_assets_for_project(project, user_context=False): - """ - Return the list of assets for which the user has a task. - """ - if user_context: - return gazu_user.all_assets_for_project(project) - else: - return gazu_asset.all_assets_for_project(project) - - -def all_asset_types_for_project(project, user_context=False): - """ - Return the list of asset types for which the user has a task. - """ - if user_context: - return gazu_user.all_asset_types_for_project(project) - else: - return gazu_asset.all_asset_types_for_project(project) - - -def all_assets_for_asset_type_and_project( - project, asset_type, user_context=False -): - """ - Return the list of assets for given project and asset_type and for which - the user has a task. - """ - if user_context: - return gazu_user.all_assets_for_asset_type_and_project( - project, asset_type - ) - else: - return gazu_asset.all_assets_for_project_and_type(project, asset_type) - - -def all_task_types_for_asset(asset, user_context=False): - """ - Return the list of tasks for given asset and current user. - """ - if user_context: - return gazu_user.all_task_types_for_asset(asset) - else: - return gazu_task.all_task_types_for_asset(asset) - - -def all_task_types_for_shot(shot, user_context=False): - """ - Return the list of tasks for given shot and current user. - """ - if user_context: - return gazu_user.all_task_types_for_shot(shot) - else: - return gazu_task.all_task_types_for_shot(shot) - - -def all_task_types_for_scene(scene, user_context=False): - """ - Return the list of tasks for given scene and current user. - """ - if user_context: - return gazu_user.all_task_types_for_scene(scene) - else: - return gazu_task.all_task_types_for_scene(scene) - - -def all_task_types_for_sequence(sequence, user_context=False): - """ - Return the list of tasks for given sequence and current user. - """ - if user_context: - return gazu_user.all_task_types_for_sequence(sequence) - else: - return gazu_task.all_task_types_for_sequence(sequence) - - -def all_sequences_for_project(project, user_context=False): - """ - Return the list of sequences for given project and current user. - """ - if user_context: - return gazu_user.all_sequences_for_project(project) - else: - return gazu_shot.all_sequences_for_project(project) - - -def all_scenes_for_project(project, user_context=False): - """ - Return the list of scenes for given project and current user. - """ - if user_context: - return gazu_user.all_scenes_for_project(project) - else: - return gazu_scene.all_scenes(project) - - -def all_shots_for_sequence(sequence, user_context=False): - """ - Return the list of shots for given sequence and current user. - """ - if user_context: - return gazu_user.all_shots_for_sequence(sequence) - else: - return gazu_shot.all_shots_for_sequence(sequence) - - -def all_scenes_for_sequence(sequence, user_context=False): - """ - Return the list of scenes for given sequence and current user. - """ - if user_context: - return gazu_user.all_scenes_for_sequence(sequence) - else: - return gazu_scene.all_scenes_for_sequence(sequence) - - -def all_sequences_for_episode(episode, user_context=False): - """ - Return the list of shots for given sequence and current user. - """ - if user_context: - return gazu_user.all_sequences_for_episode(episode) - else: - return gazu_shot.all_sequences_for_episode(episode) - - -def all_episodes_for_project(project, user_context=False): - """ - Return the list of shots for given sequence and current user. - """ - if user_context: - return gazu_user.all_episodes_for_project(project) - else: - return gazu_shot.all_episodes_for_project(project) diff --git a/scripts-blender/addons/blender_kitsu/gazu/edit.py b/scripts-blender/addons/blender_kitsu/gazu/edit.py deleted file mode 100644 index d4fcf558..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/edit.py +++ /dev/null @@ -1,52 +0,0 @@ -import gazu -from . import client as raw -from .sorting import sort_by_name - -from .cache import cache -from .helpers import normalize_model_parameter - -default = raw.default_client - -# TODO Contribute these to gazu module or remove, this file is temporary - - -@cache -def get_all_edits_with_tasks(relations=False, client=default): - """ - Retrieve all edit entries. - """ - params = {} - if relations: - params = {"relations": "true"} - path = "edits/with-tasks" - edits_with_tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(edits_with_tasks) - - -@cache -def get_all_previews_for_edit(edit, client=default): - """ - Args: - episode (str / dict): The episode dict or the episode ID. - - Returns: - list: Shots which are children of given episode. - """ - edit = normalize_model_parameter(edit) - edit_previews = raw.fetch_all(f"edits/{edit['id']}/preview-files", client=client) - for key in [key for key in enumerate(edit_previews.keys())]: - return edit_previews[key[1]] - - -@cache -def all_tasks_for_edit(edit, relations=False, client=default): - """ - Retrieve all tasks directly linked to given edit. - """ - edit = normalize_model_parameter(edit) - params = {} - if relations: - params = {"relations": "true"} - path = "edits/%s/tasks" % edit["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) diff --git a/scripts-blender/addons/blender_kitsu/gazu/encoder.py b/scripts-blender/addons/blender_kitsu/gazu/encoder.py deleted file mode 100644 index 655705c0..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/encoder.py +++ /dev/null @@ -1,15 +0,0 @@ -import json -import datetime - - -class CustomJSONEncoder(json.JSONEncoder): - """ - This JSON encoder is here to handle dates which are not handled by default. - The standard does not want to assum how you handle dates. - """ - - def default(self, obj): - if isinstance(obj, datetime.datetime): - return obj.isoformat() - - return json.JSONEncoder.default(self, obj) diff --git a/scripts-blender/addons/blender_kitsu/gazu/entity.py b/scripts-blender/addons/blender_kitsu/gazu/entity.py deleted file mode 100644 index 30bdf7be..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/entity.py +++ /dev/null @@ -1,119 +0,0 @@ -from . import client as raw - -from .cache import cache -from .sorting import sort_by_name -from .helpers import normalize_model_parameter - -default = raw.default_client - - -@cache -def all_entities(client=default): - """ - Returns: - list: Retrieve all entities - """ - return raw.fetch_all("entities", client=client) - - -@cache -def all_entity_types(client=default): - """ - Returns: - list: Entity types listed in database. - """ - return sort_by_name(raw.fetch_all("entity-types", client=client)) - - -@cache -def get_entity(entity_id, client=default): - """ - Args: - id (str, client=default): ID of claimed entity. - - Returns: - dict: Retrieve entity matching given ID (It can be an entity of any - kind: asset, shot, sequence or episode). - """ - return raw.fetch_one("entities", entity_id, client=client) - - -@cache -def get_entity_by_name(entity_name, client=default): - """ - Args: - name (str, client=default): The name of the claimed entity. - - Returns: - Retrieve entity matching given name. - """ - return raw.fetch_first("entities", {"name": entity_name}, client=client) - - -@cache -def get_entity_type(entity_type_id, client=default): - """ - Args: - id (str, client=default): ID of claimed entity type. - , client=client - Returns: - Retrieve entity type matching given ID (It can be an entity type of any - kind). - """ - return raw.fetch_one("entity-types", entity_type_id, client=client) - - -@cache -def get_entity_type_by_name(entity_type_name, client=default): - """ - Args: - name (str, client=default): The name of the claimed entity type - - Returns: - Retrieve entity type matching given name. - """ - return raw.fetch_first( - "entity-types", {"name": entity_type_name}, client=client - ) - - -def new_entity_type(name, client=default): - """ - Creates an entity type with the given name. - - Args: - name (str, client=default): The name of the entity type - - Returns: - dict: The created entity type - """ - data = {"name": name} - return raw.create("entity-types", data, client=client) - - -def remove_entity(entity, force=False, client=default): - """ - Remove given entity from database. - - Args: - entity (dict): Entity to remove. - """ - entity = normalize_model_parameter(entity) - path = "data/entities/%s" % entity["id"] - params = {} - if force: - params = {"force": "true"} - return raw.delete(path, params, client=client) - -def update_entity(entity, client=default): - """ - Save given shot data into the API. Metadata are fully replaced by the ones - set on given shot. - - Args: - Entity (dict): The shot dict to update. - - Returns: - dict: Updated entity. - """ - return raw.put(f"data/entities/{entity['id']}", entity, client=client) \ No newline at end of file diff --git a/scripts-blender/addons/blender_kitsu/gazu/exception.py b/scripts-blender/addons/blender_kitsu/gazu/exception.py deleted file mode 100644 index 10b9074e..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/exception.py +++ /dev/null @@ -1,93 +0,0 @@ -class HostException(Exception): - """ - Error raised when host is not valid. - """ - - pass - - -class AuthFailedException(Exception): - """ - Error raised when user credentials are wrong. - """ - - pass - - -class NotAuthenticatedException(Exception): - """ - Error raised when a 401 error (not authenticated) is sent by the API. - """ - - pass - - -class NotAllowedException(Exception): - """ - Error raised when a 403 error (not authorized) is sent by the API. - """ - - pass - - -class MethodNotAllowedException(Exception): - """ - Error raised when a 405 error (method not handled) is sent by the API. - """ - - pass - - -class RouteNotFoundException(Exception): - """ - Error raised when a 404 error (not found) is sent by the API. - """ - - pass - - -class ServerErrorException(Exception): - """ - Error raised when a 500 error (server error) is sent by the API. - """ - - pass - - -class ParameterException(Exception): - """ - Error raised when a 400 error (argument error) is sent by the API. - """ - - pass - - -class UploadFailedException(Exception): - """ - Error raised when an error while uploading a file, mainly to handle cases - where processing that occurs on the remote server fails. - """ - - pass - - -class TooBigFileException(Exception): - """ - Error raised when a 413 error (payload too big error) is sent by the API. - """ - - pass - - -class TaskStatusNotFound(Exception): - """ - Error raised when a task status is not found. - """ - - pass - - -class DownloadFileException(Exception): - """ - Error raised when a file can't be downloaded. - """ diff --git a/scripts-blender/addons/blender_kitsu/gazu/files.py b/scripts-blender/addons/blender_kitsu/gazu/files.py deleted file mode 100644 index f377e887..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/files.py +++ /dev/null @@ -1,1247 +0,0 @@ -from . import client as raw - -from .cache import cache -from .helpers import normalize_model_parameter - -default = raw.default_client - - -@cache -def all_output_types(client=default): - """ - Returns: - list: Output types listed in database. - """ - return raw.fetch_all("output-types", client=client) - - -@cache -def all_output_types_for_entity(entity, client=default): - """ - Args: - entity (str / dict): The entity dict or the entity ID. - - Returns: - list: All output types linked to output files for given entity. - """ - entity = normalize_model_parameter(entity) - return raw.fetch_all( - "entities/%s/output-types" % entity["id"], client=client - ) - - -@cache -def all_output_types_for_asset_instance( - asset_instance, temporal_entity, client=default -): - """ - Returns: - list: Output types for given asset instance and entity (shot or scene). - """ - return raw.fetch_all( - "asset-instances/%s/entities/%s/output-types" - % (asset_instance["id"], temporal_entity["id"]), - client=client, - ) - - -@cache -def get_output_type(output_type_id, client=default): - """ - Args: - output_type_id (str): ID of claimed output type. - - Returns: - dict: Output type matching given ID. - """ - return raw.fetch_one("output-types", output_type_id, client=client) - - -@cache -def get_output_type_by_name(output_type_name, client=default): - """ - Args: - output_type_name (str): name of claimed output type. - - Returns: - dict: Output type matching given name. - """ - return raw.fetch_first( - "output-types", {"name": output_type_name}, client=client - ) - - -def new_output_type(name, short_name, client=default): - """ - Create a new output type in database. - - Args: - name (str): Name of created output type. - short_name (str): Name shorten to represente the type in UIs. - - Returns: - dict: Created output type. - """ - data = {"name": name, "short_name": short_name} - output_type = get_output_type_by_name(name, client=client) - if output_type is None: - return raw.create("output-types", data, client=client) - else: - return output_type - - -@cache -def get_output_file(output_file_id, client=default): - """ - Args: - output_file_id (str): ID of claimed output file. - - Returns: - dict: Output file matching given ID. - """ - path = "data/output-files/%s" % (output_file_id) - return raw.get(path, client=client) - - -@cache -def get_output_file_by_path(path, client=default): - """ - Args: - path (str): Path of claimed output file. - - Returns: - dict: Output file matching given path. - """ - return raw.fetch_first("output-files", {"path": path}, client=client) - - -@cache -def get_all_working_files_for_entity( - entity, task=None, name=None, client=default -): - """ - Retrieves all the working files of a given entity and specied parameters - """ - entity = normalize_model_parameter(entity) - task = normalize_model_parameter(task) - path = "entities/{entity_id}/working-files".format(entity_id=entity["id"]) - - params = {} - if task is not None: - params["task_id"] = task["id"] - if name is not None: - params["name"] = name - - return raw.fetch_all(path, params, client=client) - - -@cache -def get_preview_file(preview_file_id, client=default): - """ - Args: - preview_file_id (str): ID of claimed preview file. - - Returns: - dict: Preview file corresponding to given ID. - """ - return raw.fetch_one("preview-files", preview_file_id, client=client) - - -@cache -def get_all_preview_files_for_task(task, client=default): - """ - Retrieves all the preview files for a given task. - - Args: - task (str, id): Target task - """ - task = normalize_model_parameter(task) - return raw.fetch_all( - "preview-files", {"task_id": task["id"]}, client=client - ) - - -@cache -def get_all_attachment_files_for_task(task, client=default): - """ - Retrieves all the attachment files for a given task. - - Args: - task (str, id): Target task - """ - task = normalize_model_parameter(task) - return raw.fetch_all( - "tasks/%s/attachment-files" % task["id"], client=client - ) - - -def all_output_files_for_entity( - entity, - output_type=None, - task_type=None, - name=None, - representation=None, - file_status=None, - client=default, -): - """ - Args: - entity (str / dict): The entity dict or ID. - output_type (str / dict): The output type dict or ID. - task_type (str / dict): The task type dict or ID. - name (str): The file name - representation (str): The file representation - file_status (str / dict): The file status - - Returns: - list: - Output files for a given entity (asset or shot), output type, - task_type, name and representation - """ - entity = normalize_model_parameter(entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - file_status = normalize_model_parameter(file_status) - path = "entities/{entity_id}/output-files".format(entity_id=entity["id"]) - - params = {} - if output_type: - params["output_type_id"] = output_type["id"] - if task_type: - params["task_type_id"] = task_type["id"] - if representation: - params["representation"] = representation - if name: - params["name"] = name - if file_status: - params["file_status_id"] = file_status["id"] - - return raw.fetch_all(path, params, client=client) - - -@cache -def all_output_files_for_asset_instance( - asset_instance, - temporal_entity=None, - task_type=None, - output_type=None, - name=None, - representation=None, - file_status=None, - client=default, -): - """ - Args: - asset_instance (str / dict): The instance dict or ID. - temporal_entity (str / dict): Shot dict or ID (or scene or sequence). - task_type (str / dict): The task type dict or ID. - output_type (str / dict): The output_type dict or ID. - name (str): The file name - representation (str): The file representation - file_status (str / dict): The file status - - Returns: - list: Output files for a given asset instance, temporal entity, - output type, task_type, name and representation - """ - asset_instance = normalize_model_parameter(asset_instance) - temporal_entity = normalize_model_parameter(temporal_entity) - task_type = normalize_model_parameter(task_type) - output_type = normalize_model_parameter(output_type) - file_status = normalize_model_parameter(file_status) - path = "asset-instances/{asset_instance_id}/output-files".format( - asset_instance_id=asset_instance["id"] - ) - - params = {} - if temporal_entity: - params["temporal_entity_id"] = temporal_entity["id"] - if output_type: - params["output_type_id"] = output_type["id"] - if task_type: - params["task_type_id"] = task_type["id"] - if representation: - params["representation"] = representation - if name: - params["name"] = name - if file_status: - params["file_status_id"] = file_status["id"] - - return raw.fetch_all(path, params, client=client) - - -@cache -def all_softwares(client=default): - """ - Returns: - dict: Software versions listed in database. - """ - return raw.fetch_all("softwares", client=client) - - -@cache -def get_software(software_id, client=default): - """ - Args: - software_id (str): ID of claimed output type. - - Returns: - dict: Software object corresponding to given ID. - """ - return raw.fetch_one("softwares", software_id, client=client) - - -@cache -def get_software_by_name(software_name, client=default): - """ - Args: - software_name (str): Name of claimed output type. - - Returns: - dict: Software object corresponding to given name. - """ - return raw.fetch_first("softwares", {"name": software_name}, client=client) - - -def new_software(name, short_name, file_extension, client=default): - """ - Create a new software in datatabase. - - Args: - name (str): Name of created software. - short_name (str): Short representation of software name (for UIs). - file_extension (str): Main file extension generated by given software. - - Returns: - dict: Created software. - """ - data = { - "name": name, - "short_name": short_name, - "file_extension": file_extension, - } - software = get_software_by_name(name, client=client) - if software is None: - return raw.create("softwares", data, client=client) - else: - return software - - -@cache -def build_working_file_path( - task, - name="main", - mode="working", - software=None, - revision=1, - sep="/", - client=default, -): - """ - From the file path template configured at the project level and arguments, - it builds a file path location where to store related DCC file. - - Args: - task (str / id): Task related to working file. - name (str): Additional suffix for the working file name. - mode (str): Allow to select a template inside the template. - software (str / id): Software at the origin of the file. - revision (int): File revision. - sep (str): OS separator. - - Returns: - Generated working file path for given task (without extension). - """ - data = {"mode": mode, "name": name, "revision": revision} - task = normalize_model_parameter(task) - software = normalize_model_parameter(software) - if software is not None: - data["software_id"] = software["id"] - result = raw.post( - "data/tasks/%s/working-file-path" % task["id"], data, client=client - ) - return "%s%s%s" % ( - result["path"].replace(" ", "_"), - sep, - result["name"].replace(" ", "_"), - ) - - -@cache -def build_entity_output_file_path( - entity, - output_type, - task_type, - name="main", - mode="output", - representation="", - revision=0, - nb_elements=1, - sep="/", - client=default, -): - """ - From the file path template configured at the project level and arguments, - it builds a file path location where to store related DCC output file. - - Args: - entity (str / id): Entity for which an output file is needed. - output_type (str / id): Output type of the generated file. - task_type (str / id): Task type related to output file. - name (str): Additional suffix for the working file name. - mode (str): Allow to select a template inside the template. - representation (str): Allow to select a template inside the template. - revision (int): File revision. - nb_elements (str): To represent an image sequence, the amount of file is - needed. - sep (str): OS separator. - - Returns: - Generated output file path for given entity, task type and output type - (without extension). - """ - entity = normalize_model_parameter(entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - - data = { - "task_type_id": task_type["id"], - "output_type_id": output_type["id"], - "mode": mode, - "name": name, - "representation": representation, - "revision": revision, - "nb_elements": nb_elements, - "separator": sep, - } - path = "data/entities/%s/output-file-path" % entity["id"] - result = raw.post(path, data, client=client) - return "%s%s%s" % ( - result["folder_path"].replace(" ", "_"), - sep, - result["file_name"].replace(" ", "_"), - ) - - -@cache -def build_asset_instance_output_file_path( - asset_instance, - temporal_entity, - output_type, - task_type, - name="main", - representation="", - mode="output", - revision=0, - nb_elements=1, - sep="/", - client=default, -): - """ - From the file path template configured at the project level and arguments, - it builds a file path location where to store related DCC output file. - - Args: - asset_instance_id entity (str / id): Asset instance for which a file - is required. - temporal entity (str / id): Temporal entity scene or shot in which - the asset instance appeared. - output_type (str / id): Output type of the generated file. - task_type (str / id): Task type related to output file. - name (str): Additional suffix for the working file name. - mode (str): Allow to select a template inside the template. - representation (str): Allow to select a template inside the template. - revision (int): File revision. - nb_elements (str): To represent an image sequence, the amount of file is - needed. - sep (str): OS separator. - - Returns: - Generated output file path for given asset instance, task type and - output type (without extension). - """ - asset_instance = normalize_model_parameter(asset_instance) - temporal_entity = normalize_model_parameter(temporal_entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - data = { - "task_type_id": task_type["id"], - "output_type_id": output_type["id"], - "mode": mode, - "name": name, - "representation": representation, - "revision": revision, - "nb_elements": nb_elements, - "sep": sep, - } - path = "data/asset-instances/%s/entities/%s/output-file-path" % ( - asset_instance["id"], - temporal_entity["id"], - ) - result = raw.post(path, data, client=client) - return "%s%s%s" % ( - result["folder_path"].replace(" ", "_"), - sep, - result["file_name"].replace(" ", "_"), - ) - - -def new_working_file( - task, - name="main", - mode="working", - software=None, - comment="", - person=None, - revision=0, - sep="/", - client=default, -): - """ - Create a new working_file for given task. It generates and store the - expected path for given task and options. It sets a revision number - (last revision + 1). - - Args: - task (str / id): Task related to working file. - name (str): Additional suffix for the working file name. - mode (str): Allow to select a template inside the template. - software (str / id): Software at the origin of the file. - comment (str): Comment related to created revision. - person (str / id): Author of the file. - revision (int): File revision. - sep (str): OS separator. - - Returns: - Created working file. - """ - task = normalize_model_parameter(task) - software = normalize_model_parameter(software) - person = normalize_model_parameter(person) - data = { - "name": name, - "comment": comment, - "task_id": task["id"], - "revision": revision, - "mode": mode, - } - if person is not None: - data["person_id"] = person["id"] - if software is not None: - data["software_id"] = software["id"] - - return raw.post( - "data/tasks/%s/working-files/new" % task["id"], data, client=client - ) - - -def new_entity_output_file( - entity, - output_type, - task_type, - comment, - working_file=None, - person=None, - name="main", - mode="output", - revision=0, - nb_elements=1, - representation="", - sep="/", - file_status_id=None, - client=default, -): - """ - Create a new output file for given entity, task type and output type. - It generates and store the expected path and sets a revision number - (last revision + 1). - - Args: - entity (str / id): Entity for which an output file is needed. - output_type (str / id): Output type of the generated file. - task_type (str / id): Task type related to output file. - comment (str): Comment related to created revision. - working_file (str / id): Working file which is the source of the - generated file. - person (str / id): Author of the file. - name (str): Additional suffix for the working file name. - mode (str): Allow to select a template inside the template. - revision (int): File revision. - nb_elements (str): To represent an image sequence, the amount of file is - needed. - representation (str): Differientate file extensions. It can be useful - to build folders based on extensions like abc, jpg, etc. - sep (str): OS separator. - file_status_id (id): The id of the file status to set at creation - - Returns: - Created output file. - """ - entity = normalize_model_parameter(entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - working_file = normalize_model_parameter(working_file) - person = normalize_model_parameter(person) - path = "data/entities/%s/output-files/new" % entity["id"] - data = { - "output_type_id": output_type["id"], - "task_type_id": task_type["id"], - "comment": comment, - "revision": revision, - "representation": representation, - "name": name, - "nb_elements": nb_elements, - "sep": sep, - } - - if working_file is not None: - data["working_file_id"] = working_file["id"] - - if person is not None: - data["person_id"] = person["id"] - - if file_status_id is not None: - data["file_status_id"] = file_status_id - - return raw.post(path, data, client=client) - - -def new_asset_instance_output_file( - asset_instance, - temporal_entity, - output_type, - task_type, - comment, - name="master", - mode="output", - working_file=None, - person=None, - revision=0, - nb_elements=1, - representation="", - sep="/", - file_status_id=None, - client=default, -): - """ - Create a new output file for given asset instance, temporal entity, task - type and output type. It generates and store the expected path and sets a - revision number (last revision + 1). - - Args: - entity (str / id): Entity for which an output file is needed. - output_type (str / id): Output type of the generated file. - task_type (str / id): Task type related to output file. - comment (str): Comment related to created revision. - working_file (str / id): Working file which is the source of the - generated file. - person (str / id): Author of the file. - name (str): Additional suffix for the working file name. - mode (str): Allow to select a template inside the template. - revision (int): File revision. - nb_elements (str): To represent an image sequence, the amount of file - needed. - representation (str): Differientate file extensions. It can be useful - to build folders based on extensions like abc, jpg, cetc. - sep (str): OS separator. - file_status_id (id): The id of the file status to set at creation - - Returns: - Created output file. - """ - asset_instance = normalize_model_parameter(asset_instance) - temporal_entity = normalize_model_parameter(temporal_entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - working_file = normalize_model_parameter(working_file) - person = normalize_model_parameter(person) - path = "data/asset-instances/%s/entities/%s/output-files/new" % ( - asset_instance["id"], - temporal_entity["id"], - ) - data = { - "output_type_id": output_type["id"], - "task_type_id": task_type["id"], - "comment": comment, - "name": name, - "revision": revision, - "representation": representation, - "nb_elements": nb_elements, - "sep": sep, - } - - if working_file is not None: - data["working_file_id"] = working_file["id"] - - if person is not None: - data["person_id"] = person["id"] - - if file_status_id is not None: - data["file_status_id"] = file_status_id - - return raw.post(path, data, client=client) - - -def get_next_entity_output_revision( - entity, output_type, task_type, name="main", client=default -): - """ - Args: - entity (str / dict): The entity dict or ID. - output_type (str / dict): The entity dict or ID. - task_type (str / dict): The entity dict or ID. - - Returns: - int: Next revision of ouput files available for given entity, output - type and task type. - """ - entity = normalize_model_parameter(entity) - path = "data/entities/%s/output-files/next-revision" % entity["id"] - data = { - "name": name, - "output_type_id": output_type["id"], - "task_type_id": task_type["id"], - "name": name, - } - return raw.post(path, data, client=client)["next_revision"] - - -def get_next_asset_instance_output_revision( - asset_instance, - temporal_entity, - output_type, - task_type, - name="master", - client=default, -): - """ - Args: - asset_instance (str / dict): The asset instance dict or ID. - temporal_entity (str / dict): The temporal entity dict or ID. - output_type (str / dict): The entity dict or ID. - task_type (str / dict): The entity dict or ID. - - Returns: - int: Next revision of ouput files available for given asset insance - temporal entity, output type and task type. - """ - asset_instance = normalize_model_parameter(asset_instance) - temporal_entity = normalize_model_parameter(temporal_entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - path = "data/asset-instances/%s/entities/%s/output-files/next-revision" % ( - asset_instance["id"], - temporal_entity["id"], - ) - data = { - "name": name, - "output_type_id": output_type["id"], - "task_type_id": task_type["id"], - } - return raw.post(path, data, client=client)["next_revision"] - - -def get_last_entity_output_revision( - entity, output_type, task_type, name="master", client=default -): - """ - Args: - entity (str / dict, client=default): The entity dict or ID. - output_type (str / dict, client=default): The entity dict or ID. - task_type (str / dict, client=default): The entity dict or ID. - name (str, client=default): The output name - - Returns: - int: Last revision of ouput files for given entity, output type and task - type. - """ - entity = normalize_model_parameter(entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - revision = get_next_entity_output_revision( - entity, output_type, task_type, name, client=client - ) - if revision != 1: - revision -= 1 - return revision - - -def get_last_asset_instance_output_revision( - asset_instance, - temporal_entity, - output_type, - task_type, - name="master", - client=default, -): - """ - Generate last output revision for given asset instance. - """ - asset_instance = normalize_model_parameter(asset_instance) - temporal_entity = normalize_model_parameter(temporal_entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - revision = get_next_asset_instance_output_revision( - asset_instance, - temporal_entity, - output_type, - task_type, - name=name, - client=client, - ) - if revision != 1: - revision -= 1 - return revision - - -@cache -def get_last_output_files_for_entity( - entity, - output_type=None, - task_type=None, - name=None, - representation=None, - file_status=None, - client=default, -): - """ - Args: - entity (str / dict): The entity dict or ID. - output_type (str / dict): The output type dict or ID. - task_type (str / dict): The task type dict or ID. - name (str): The file name - representation (str): The file representation - file_status (str / dict): The file status - - Returns: - list: - Last output files for a given entity (asset or shot), output type, - task_type, name and representation - """ - entity = normalize_model_parameter(entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - file_status = normalize_model_parameter(file_status) - path = "entities/{entity_id}/output-files/last-revisions".format( - entity_id=entity["id"] - ) - - params = {} - if output_type: - params["output_type_id"] = output_type["id"] - if task_type: - params["task_type_id"] = task_type["id"] - if representation: - params["representation"] = representation - if name: - params["name"] = name - if file_status: - params["file_status_id"] = file_status["id"] - - return raw.fetch_all(path, params, client=client) - - -@cache -def get_last_output_files_for_asset_instance( - asset_instance, - temporal_entity, - task_type=None, - output_type=None, - name=None, - representation=None, - file_status=None, - client=default, -): - """ - Args: - asset_instance (str / dict): The asset instance dict or ID. - temporal_entity (str / dict): The temporal entity dict or ID. - output_type (str / dict): The output type dict or ID. - task_type (str / dict): The task type dict or ID. - name (str): The file name - representation (str): The file representation - file_status (str / dict): The file status - - Returns: - list: last output files for given asset instance and - temporal entity where it appears. - """ - asset_instance = normalize_model_parameter(asset_instance) - temporal_entity = normalize_model_parameter(temporal_entity) - output_type = normalize_model_parameter(output_type) - task_type = normalize_model_parameter(task_type) - file_status = normalize_model_parameter(file_status) - path = ( - "asset-instances/{asset_instance_id}/entities/{temporal_entity_id}" - "/output-files/last-revisions" - ).format( - asset_instance_id=asset_instance["id"], - temporal_entity_id=temporal_entity["id"], - ) - - params = {} - if output_type: - params["output_type_id"] = output_type["id"] - if task_type: - params["task_type_id"] = task_type["id"] - if representation: - params["representation"] = representation - if name: - params["name"] = name - if file_status: - params["file_status_id"] = file_status["id"] - - return raw.fetch_all(path, params, client=client) - - -@cache -def get_working_files_for_task(task, client=default): - """ - Args: - task (str / dict): The task dict or the task ID. - - Returns: - list: Working files related to given task. - """ - task = normalize_model_parameter(task) - path = "data/tasks/%s/working-files" % task["id"] - return raw.get(path, client=client) - - -@cache -def get_last_working_files(task, client=default): - """ - Args: - task (str / dict): The task dict or the task ID. - - Returns: - dict: Keys are working file names and values are last working file - availbable for given name. - """ - task = normalize_model_parameter(task) - path = "data/tasks/%s/working-files/last-revisions" % task["id"] - return raw.get(path, client=client) - - -@cache -def get_last_working_file_revision(task, name="main", client=default): - """ - Args: - task (str / dict): The task dict or the task ID. - name (str): File name suffix (optional) - - Returns: - dict: Last revisions stored in the API for given task and given file - name suffx. - """ - task = normalize_model_parameter(task) - path = "data/tasks/%s/working-files/last-revisions" % task["id"] - working_files_dict = raw.get(path, client=client) - return working_files_dict.get(name) - - -@cache -def get_working_file(working_file_id, client=default): - """ - Args: - working_file_id (str): ID of claimed working file. - - Returns: - dict: Working file corresponding to given ID. - """ - return raw.fetch_one("working-files", working_file_id, client=client) - - -def update_comment(working_file, comment, client=default): - """ - Update the file comment in database for given working file. - - Args: - working_file (str / dict): The working file dict or ID. - - Returns: - dict: Modified working file - """ - working_file = normalize_model_parameter(working_file) - return raw.put( - "/actions/working-files/%s/comment" % working_file["id"], - {"comment": comment}, - client=client, - ) - - -def update_modification_date(working_file, client=default): - """ - Update modification date of given working file with current time (now). - - Args: - working_file (str / dict): The working file dict or ID. - - Returns: - dict: Modified working file - """ - return raw.put( - "/actions/working-files/%s/modified" % working_file["id"], - {}, - client=client, - ) - - -def update_output_file(output_file, data, client=default): - """ - Update the data of given output file. - - Args: - output_file (str / dict): The output file dict or ID. - - Returns: - dict: Modified output file - """ - output_file = normalize_model_parameter(output_file) - path = "/data/output-files/%s" % output_file["id"] - return raw.put(path, data, client=client) - - -def set_project_file_tree(project, file_tree_name, client=default): - """ - (Deprecated) Set given file tree template on given project. This template - will be used to generate file paths. The template is selected from sources. - It is found by using given name. - - Args: - project (str / dict): The project file dict or ID. - - Returns: - dict: Modified project. - - """ - project = normalize_model_parameter(project) - data = {"tree_name": file_tree_name} - path = "actions/projects/%s/set-file-tree" % project["id"] - return raw.post(path, data, client=client) - - -def update_project_file_tree(project, file_tree, client=default): - """ - Set given dict as file tree template on given project. This template - will be used to generate file paths. - - Args: - project (str / dict): The project dict or ID. - file_tree (dict): The file tree template to set on project. - - Returns: - dict: Modified project. - """ - project = normalize_model_parameter(project) - data = {"file_tree": file_tree} - path = "data/projects/%s" % project["id"] - return raw.put(path, data, client=client) - - -def upload_working_file(working_file, file_path, client=default): - """ - Save given file in working file storage. - - Args: - working_file (str / dict): The working file dict or ID. - file_path (str): Location on hard drive where to save the file. - """ - working_file = normalize_model_parameter(working_file) - url_path = "/data/working-files/%s/file" % working_file["id"] - raw.upload(url_path, file_path, client=client) - return working_file - - -def download_working_file(working_file, file_path=None, client=default): - """ - Download given working file and save it at given location. - - Args: - working_file (str / dict): The working file dict or ID. - file_path (str): Location on hard drive where to save the file. - """ - working_file = normalize_model_parameter(working_file) - if file_path is None: - working_file = raw.fetch_one( - "working-files", working_file["id"], client=client - ) - file_path = working_file["path"] - return raw.download( - "data/working-files/%s/file" % (working_file["id"]), - file_path, - client=client, - ) - - -def download_preview_file(preview_file, file_path, client=default): - """ - Download given preview file and save it at given location. - - Args: - preview_file (str / dict): The preview file dict or ID. - file_path (str): Location on hard drive where to save the file. - """ - return raw.download( - get_preview_file_url(preview_file), - file_path, - client=client, - ) - - -def get_preview_file_url(preview_file, client=default): - """ - Return given preview file URL - - Args: - preview_file (str / dict): The preview file dict or ID. - """ - preview_file = normalize_model_parameter(preview_file) - preview_file = raw.fetch_one( - "preview-files", preview_file["id"], client=client - ) - file_type = "movies" if preview_file["extension"] == "mp4" else "pictures" - return "%s/originals/preview-files/%s.%s" % ( - file_type, - preview_file["id"], - preview_file["extension"], - ) - - -def get_attachment_file(attachment_file_id, client=default): - """ - Return attachment file object corresponding to given ID. - - Args: - attachment_file_id (str): The attachment file ID. - """ - return raw.fetch_one("attachment-files", attachment_file_id, client=client) - - -def download_attachment_file(attachment_file, file_path, client=default): - """ - Download given attachment file and save it at given location. - - Args: - attachment_file (str / dict): The attachment file dict or ID. - file_path (str): Location on hard drive where to save the file. - """ - attachment_file = normalize_model_parameter(attachment_file) - attachment_file = get_attachment_file(attachment_file["id"], client=client) - return raw.download( - "data/attachment-files/%s/file/%s" - % (attachment_file["id"], attachment_file["name"]), - file_path, - client=client, - ) - - -def download_preview_file_thumbnail(preview_file, file_path, client=default): - """ - Download given preview file thumbnail and save it at given location. - - Args: - preview_file (str / dict): The preview file dict or ID. - file_path (str): Location on hard drive where to save the file. - - """ - preview_file = normalize_model_parameter(preview_file) - return raw.download( - "pictures/thumbnails/preview-files/%s.png" % (preview_file["id"]), - file_path, - client=client, - ) - - -def download_preview_file_cover(preview_file, file_path, client=default): - """ - Download given preview file cover and save it at given location. - Args: - preview_file (str / dict): The preview file dict or ID. - file_path (str): Location on hard drive where to save the file. - """ - preview_file = normalize_model_parameter(preview_file) - return raw.download( - "pictures/originals/preview-files/%s.png" % (preview_file["id"]), - file_path, - client=client, - ) - - -def download_person_avatar(person, file_path, client=default): - """ - Download given person's avatar and save it at given location. - Args: - person (str / dict): The person dict or ID. - file_path (str): Location on hard drive where to save the file. - """ - person = normalize_model_parameter(person) - return raw.download( - "pictures/thumbnails/persons/%s.png" % (person["id"]), - file_path, - client=client, - ) - - -def download_project_avatar(project, file_path, client=default): - """ - Download given project's avatar and save it at given location. - Args: - project (str / dict): The project dict or ID. - file_path (str): Location on hard drive where to save the file. - """ - project = normalize_model_parameter(project) - return raw.download( - "pictures/thumbnails/projects/%s.png" % (project["id"]), - file_path, - client=client, - ) - - -def update_preview(preview_file, data, client=default): - """ - Update the data of given preview file. - - Args: - preview_file (str / dict): The preview file dict or ID. - - Returns: - dict: Modified preview file - """ - preview_file = normalize_model_parameter(preview_file) - path = "/data/preview-files/%s" % preview_file["id"] - return raw.put(path, data, client=client) - - -def new_file_status(name, color, client=default): - """ - Create a new file status if not existing yet. - """ - data = {"name": name, "color": color} - status = get_file_status_by_name(name, client=client) - if status is None: - return raw.create("file-status", data, client=client) - else: - return status - - -@cache -def get_file_status(status_id, client=default): - """ - Return file status object corresponding to given ID. - - Args: - status_id (str): The files status ID. - """ - return raw.fetch_one("file-status", status_id, client=client) - - -@cache -def get_file_status_by_name(name, client=default): - """ - Return file status object corresponding to given name - - Args: - name (str): The files status name. - """ - return raw.fetch_first("file-status?name=%s" % name, client=client) diff --git a/scripts-blender/addons/blender_kitsu/gazu/helpers.py b/scripts-blender/addons/blender_kitsu/gazu/helpers.py deleted file mode 100644 index 5aeb2af1..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/helpers.py +++ /dev/null @@ -1,140 +0,0 @@ -import os -import sys -import re -import datetime -import shutil -import requests -import tempfile -import mimetypes - -from .exception import DownloadFileException - -if sys.version_info[0] == 3: - import urllib.parse as urlparse -else: - import urlparse - -_UUID_RE = re.compile( - "([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}" -) - - -def normalize_model_parameter(model_parameter): - """ - Args: - model_parameter (str / dict): The parameter to convert. - - Returns: - dict: If `model_parameter` is an ID (a string), it turns it into a model - dict. If it's already a dict, the `model_parameter` is returned as it - is. It returns None if the paramater is None. - """ - if model_parameter is None: - return None - elif isinstance(model_parameter, dict): - return model_parameter - else: - try: - id_str = str(model_parameter) - except Exception: - raise ValueError("Failed to cast argument to str") - - if _UUID_RE.match(id_str): - return {"id": id_str} - else: - raise ValueError("Wrong format: expected ID string or Data dict") - - -def normalize_list_of_models_for_links(models=[]): - """ - Args: - models (list): The models to convert. - - Returns: - list: A list of ids of the models. - """ - if not isinstance(models, list): - models = [models] - - return [normalize_model_parameter(model)["id"] for model in models] - - -def validate_date_format(date_text): - try: - datetime.datetime.strptime(date_text, "%Y-%m-%dT%H:%M:%S") - except ValueError: - try: - datetime.datetime.strptime(date_text, "%Y-%m-%d") - except ValueError: - raise ValueError( - "Incorrect date format for %s, should be YYYY-mm-dd or YYYY-mm-ddTHH:MM:SS" - % date_text - ) - return date_text - - -def sanitize_filename(filename): - forbidden = "@|():%/,\\[]<>*?;`\n" - return "".join( - [c for c in filename.replace("..", "_") if c not in forbidden] - ).strip() - - -def download_file(url, file_path=None, headers={}): - """ - Download file located at *file_path* to given url *url*. - - Args: - url (str): The url path to download file from. - file_path (str): The location to store the file on the hard drive. - headers (dict): The headers to pass to requests - - Returns: - str: The location where the file is stored. - - """ - with requests.get( - url, - headers=headers, - stream=True, - ) as response: - if response.ok: - if file_path is None: - file_path = tempfile.gettempdir() - - if os.path.isdir(file_path): - file_path = os.path.join(file_path, "") - - (dir, filename) = os.path.split(file_path) - - if not filename: - url_parts = urlparse.urlparse(url) - filename = url_parts.path.split("/")[-1] - if not dir: - dir = os.getcwd() - - name, ext = os.path.splitext(filename) - - if ext == "": - if "Content-Type" in response.headers: - guessed_ext = mimetypes.guess_extension( - response.headers["Content-Type"] - ) - if guessed_ext is not None: - ext = guessed_ext - - if name == "": - name = "file" - - filename = sanitize_filename(name + ext) - - file_path = os.path.join(dir, filename) - - with open(file_path, "wb") as target_file: - shutil.copyfileobj(response.raw, target_file) - return file_path - else: - raise DownloadFileException( - "File (%s) can't be downloaded (%i %s)." - % (url, response.status_code, response.reason) - ) diff --git a/scripts-blender/addons/blender_kitsu/gazu/person.py b/scripts-blender/addons/blender_kitsu/gazu/person.py deleted file mode 100644 index 1709e254..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/person.py +++ /dev/null @@ -1,224 +0,0 @@ -from . import client as raw - -from .sorting import sort_by_name -from .helpers import ( - normalize_model_parameter, - normalize_list_of_models_for_links, -) -from .cache import cache - -default = raw.default_client - - -@cache -def all_organisations(client=default): - """ - Returns: - list: Organisations listed in database. - """ - return sort_by_name(raw.fetch_all("organisations", client=client)) - - -@cache -def all_departments(client=default): - """ - Returns: - list: Departments listed in database. - """ - return sort_by_name(raw.fetch_all("departments", client=client)) - - -@cache -def all_persons(client=default): - """ - Returns: - list: Persons listed in database. - """ - return sort_by_name(raw.fetch_all("persons", client=client)) - - -@cache -def get_person(id, client=default): - """ - Args: - id (str): An uuid identifying a person. - - Returns: - dict: Person corresponding to given id. - """ - return raw.fetch_one("persons", id, client=client) - - -@cache -def get_person_by_desktop_login(desktop_login, client=default): - """ - Args: - desktop_login (str): Login used to sign in on the desktop computer. - - Returns: - dict: Person corresponding to given desktop computer login. - """ - return raw.fetch_first( - "persons", {"desktop_login": desktop_login}, client=client - ) - - -@cache -def get_person_by_email(email, client=default): - """ - Args: - email (str): User's email. - - Returns: - dict: Person corresponding to given email. - """ - return raw.fetch_first("persons", {"email": email}, client=client) - - -@cache -def get_person_by_full_name(full_name, client=default): - """ - Args: - full_name (str): User's full name - - Returns: - dict: Person corresponding to given name. - """ - if " " in full_name: - first_name, last_name = full_name.lower().split(" ") - else: - first_name, last_name = full_name.lower().strip(), "" - for person in all_persons(): - is_right_first_name = ( - first_name == person["first_name"].lower().strip() - ) - is_right_last_name = ( - len(last_name) == 0 or last_name == person["last_name"].lower() - ) - if is_right_first_name and is_right_last_name: - return person - return None - - -@cache -def get_person_url(person, client=default): - """ - Args: - person (str / dict): The person dict or the person ID. - - Returns: - url (str): Web url associated to the given person - """ - person = normalize_model_parameter(person) - path = "{host}/people/{person_id}/" - return path.format( - host=raw.get_api_url_from_host(client=client), - person_id=person["id"], - ) - - -@cache -def get_organisation(client=default): - """ - Returns: - dict: Database information for organisation linked to auth tokens. - """ - return raw.get("auth/authenticated", client=client)["organisation"] - - -def new_person( - first_name, - last_name, - email, - phone="", - role="user", - desktop_login="", - departments=[], - client=default, -): - """ - Create a new person based on given parameters. His/her password will is - set automatically to default. - - Args: - first_name (str): - last_name (str): - email (str): - phone (str): - role (str): user, manager, admin (wich match CG artist, Supervisor - and studio manager) - desktop_login (str): The login the users uses to log on its computer. - departments (list): The departments for the person. - Returns: - dict: Created person. - """ - person = get_person_by_email(email) - if person is None: - person = raw.post( - "data/persons/new", - { - "first_name": first_name, - "last_name": last_name, - "email": email, - "phone": phone, - "role": role, - "desktop_login": desktop_login, - "departments": normalize_list_of_models_for_links(departments), - }, - client=client, - ) - return person - - -def update_person(person, client=default): - """ - Update a person. - - Args: - person (dict): The person dict that needs to be upgraded. - - Returns: - dict: The updated person. - """ - - if "departments" in person: - person["departments"] = normalize_list_of_models_for_links( - person["departments"] - ) - - person = normalize_model_parameter(person) - return raw.put( - "data/persons/%s" % (person["id"]), - person, - client=client, - ) - - -def set_avatar(person, file_path, client=default): - """ - Upload picture and set it as avatar for given person. - - Args: - person (str / dict): The person dict or the person ID. - file_path (str): Path where the avatar file is located on the hard - drive. - """ - person = normalize_model_parameter(person) - return raw.upload( - "/pictures/thumbnails/persons/%s" % person["id"], - file_path, - client=client, - ) - - -def get_presence_log(year, month, client=default): - """ - Args: - year (int): - month (int): - - Returns: - The presence log table for given month and year. - """ - path = "data/persons/presence-logs/%s-%s" % (year, str(month).zfill(2)) - return raw.get(path, json_response=False, client=client) diff --git a/scripts-blender/addons/blender_kitsu/gazu/playlist.py b/scripts-blender/addons/blender_kitsu/gazu/playlist.py deleted file mode 100644 index 80823472..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/playlist.py +++ /dev/null @@ -1,153 +0,0 @@ -from . import client as raw - -from .helpers import normalize_model_parameter -from .sorting import sort_by_name - -from .cache import cache - -default = raw.default_client - - -@cache -def all_playlists(client=default): - """ - Returns: - list: All playlists for all projects. - """ - return sort_by_name(raw.fetch_all("playlists", client=client)) - - -@cache -def all_shots_for_playlist(playlist, client=default): - """ - Args: - playlist (str / dict): The playlist dict or the playlist ID. - - Returns: - list: All shots linked to the given playlist - """ - playlist = normalize_model_parameter(playlist) - playlist = raw.fetch_one("playlists", playlist["id"], client=client) - return sort_by_name(playlist["shots"]) - - -@cache -def all_playlists_for_project(project, client=default, page=1): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: All playlists for the given project - """ - project = normalize_model_parameter(project) - return sort_by_name( - raw.fetch_all( - "projects/%s/playlists" % project["id"], - params={"page": page}, - client=client, - ) - ) - - -@cache -def all_playlists_for_episode(episode, client=default): - """ - - Args: - episode (str / dict): The episode dict or the episode ID. - - Returns: - list: All playlists for the given episode. - """ - - project = normalize_model_parameter(episode["project_id"]) - return sort_by_name( - raw.fetch_all( - "projects/%s/episodes/%s/playlists" - % ( - project["id"], - episode["id"], - ), - client=client, - ) - ) - - -@cache -def get_playlist(playlist, client=default): - """ - Args: - playlist (str / dict): The playlist dict or the playlist ID. - - Returns: - dict: playlist object for given id. - """ - - playlist = normalize_model_parameter(playlist) - return raw.fetch_one("playlists", playlist["id"], client=client) - - -@cache -def get_playlist_by_name(project, name, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - name (str): The playlist name - - Returns: - dict: Playlist matching given name for given project. - """ - project = normalize_model_parameter(project) - params = {"project_id": project["id"], "name": name} - return raw.fetch_first("playlists", params=params, client=client) - - -def new_playlist( - project, - name, - episode=None, - for_entity="shot", - for_client=False, - client=default, -): - """ - Create a new playlist in the database for given project. - - Args: - project (str / dict): The project dict or the project ID. - name (str): Playlist name. - - Returns: - dict: Created playlist. - """ - project = normalize_model_parameter(project) - data = { - "name": name, - "project_id": project["id"], - "for_entity": for_entity, - "for_client": for_client, - } - if episode is not None: - episode = normalize_model_parameter(episode) - data["episode_id"] = episode["id"] - playlist = get_playlist_by_name(project, name, client=client) - if playlist is None: - playlist = raw.post("data/playlists/", data, client=client) - return playlist - - -def update_playlist(playlist, client=default): - """ - Save given playlist data into the API. Metadata are fully replaced by - the ones set on given playlist. - - Args: - playlist (dict): The playlist dict to update. - - Returns: - dict: Updated playlist. - """ - return raw.put( - "data/playlists/%s" % playlist["id"], playlist, client=client - ) diff --git a/scripts-blender/addons/blender_kitsu/gazu/project.py b/scripts-blender/addons/blender_kitsu/gazu/project.py deleted file mode 100644 index a90603cf..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/project.py +++ /dev/null @@ -1,377 +0,0 @@ -from . import client as raw - -from .sorting import sort_by_name -from .cache import cache -from .helpers import ( - normalize_model_parameter, - normalize_list_of_models_for_links, -) - -default = raw.default_client - - -@cache -def all_project_status(client=default): - """ - Returns: - list: Project status listed in database. - """ - return sort_by_name(raw.fetch_all("project-status", client=client)) - - -@cache -def get_project_status_by_name(project_status_name, client=default): - """ - Args: - project_status_name (str): Name of claimed project status. - - Returns: - dict: Project status corresponding to given name. - """ - return raw.fetch_first( - "project-status", {"name": project_status_name}, client=client - ) - - -@cache -def all_projects(client=default): - """ - Returns: - list: Projects stored in the database. - """ - return sort_by_name(raw.fetch_all("projects", client=client)) - - -@cache -def all_open_projects(client=default): - """ - Returns: - Open projects stored in the database. - """ - return sort_by_name(raw.fetch_all("projects/open", client=client)) - - -@cache -def get_project(project_id, client=default): - """ - Args: - project_id (str): ID of claimed project. - - Returns: - dict: Project corresponding to given id. - """ - return raw.fetch_one("projects", project_id, client=client) - - -@cache -def get_project_url(project, section="assets", client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - section (str): The section we want to open in the browser. - - Returns: - url (str): Web url associated to the given project - """ - project = normalize_model_parameter(project) - path = "{host}/productions/{project_id}/{section}/" - return path.format( - host=raw.get_api_url_from_host(), - project_id=project["id"], - section=section, - ) - - -@cache -def get_project_by_name(project_name, client=default): - """ - Args: - project_name (str): Name of claimed project. - - Returns: - dict: Project corresponding to given name. - """ - return raw.fetch_first("projects", {"name": project_name}, client=client) - - -def new_project( - name, - production_type="short", - team=[], - asset_types=[], - task_statuses=[], - task_types=[], - client=default, -): - """ - Creates a new project. - - Args: - name (str): Name of the project to create. - production_type (str): short, featurefilm, tvshow. - team (list): Team of the project. - asset_types (list): Asset types of the project. - task_statuses (list): Task statuses of the project. - task_types (list): Task types of the project. - Returns: - dict: Created project. - """ - project = get_project_by_name(name, client=client) - if project is None: - project = raw.create( - "projects", - { - "name": name, - "production_type": production_type, - "team": normalize_list_of_models_for_links(team), - "asset_types": normalize_list_of_models_for_links(asset_types), - "task_statuses": normalize_list_of_models_for_links( - task_statuses - ), - "task_types": normalize_list_of_models_for_links(task_types), - }, - client=client, - ) - return project - - -def remove_project(project, force=False, client=default): - """ - Remove given project from database. (Prior to do that, make sure, there - is no asset or shot left). - - Args: - project (dict / str): Project to remove. - """ - project = normalize_model_parameter(project) - path = "data/projects/%s" % project["id"] - if force: - path += "?force=true" - return raw.delete(path, client=client) - - -def update_project(project, client=default): - """ - Save given project data into the API. Metadata are fully replaced by the - ones set on given project. - - Args: - project (dict): The project to update. - - Returns: - dict: Updated project. - """ - if "team" in project: - project["team"] = normalize_list_of_models_for_links(project["team"]) - if "asset_types" in project: - project["asset_types"] = normalize_list_of_models_for_links( - project["asset_types"] - ) - if "task_statuses" in project: - project["task_statuses"] = normalize_list_of_models_for_links( - project["task_statuses"] - ) - if "task_types" in project: - project["task_types"] = normalize_list_of_models_for_links( - project["task_types"] - ) - return raw.put("data/projects/%s" % project["id"], project, client=client) - - -def update_project_data(project, data={}, client=default): - """ - Update the metadata for the provided project. Keys that are not provided - are not changed. - - Args: - project (dict / ID): The project dict or id to save in database. - data (dict): Free field to set metadata of any kind. - - Returns: - dict: Updated project. - """ - project = normalize_model_parameter(project) - project = get_project(project["id"], client=client) - if "data" not in project or project["data"] is None: - project["data"] = {} - project["data"].update(data) - return update_project(project, client=client) - - -def close_project(project, client=default): - """ - Closes the provided project. - - Args: - project (dict / ID): The project dict or id to save in database. - - Returns: - dict: Updated project. - """ - project = normalize_model_parameter(project) - closed_status_id = None - for status in all_project_status(client=client): - if status["name"].lower() == "closed": - closed_status_id = status["id"] - - project["project_status_id"] = closed_status_id - update_project(project, client=client) - return project - - -def add_asset_type(project, asset_type, client=default): - project = normalize_model_parameter(project) - asset_type = normalize_model_parameter(asset_type) - data = {"asset_type_id": asset_type["id"]} - return raw.post( - "data/projects/%s/settings/asset-types" % project["id"], - data, - client=client, - ) - - -def add_task_type(project, task_type, priority, client=default): - project = normalize_model_parameter(project) - task_type = normalize_model_parameter(task_type) - data = {"task_type_id": task_type["id"], "priority": priority} - return raw.post( - "data/projects/%s/settings/task-types" % project["id"], - data, - client=client, - ) - - -def add_task_status(project, task_status, client=default): - project = normalize_model_parameter(project) - task_status = normalize_model_parameter(task_status) - data = {"task_status_id": task_status["id"]} - return raw.post( - "data/projects/%s/settings/task-status" % project["id"], - data, - client=client, - ) - - -def add_metadata_descriptor( - project, - name, - entity_type, - choices=[], - for_client=False, - departments=[], - client=default, -): - """ - Create a new metadata descriptor for a project. - - Args: - project (dict / ID): The project dict or id. - name (str): The name of the metadata descriptor - entity_type (str): asset, shot or scene. - choices (list): A list of possible values, empty list for free values. - for_client (bool) : Wheter it should be displayed in Kitsu or not. - departments (list): A list of departments dict or id. - - Returns: - dict: Created metadata descriptor. - """ - project = normalize_model_parameter(project) - data = { - "name": name, - "choices": choices, - "for_client": for_client, - "entity_type": entity_type, - "departments": normalize_list_of_models_for_links(departments), - } - return raw.post( - "data/projects/%s/metadata-descriptors" % project["id"], - data, - client=client, - ) - - -def get_metadata_descriptor(project, metadata_descriptor_id, client=default): - """ - Get a metadata descriptor matchind it's ID. - - Args: - project (dict / ID): The project dict or id. - metadata_descriptor_id (dict / ID): The metadata descriptor dict or id. - - Returns: - dict: The metadata descriptor matchind the ID. - """ - project = normalize_model_parameter(project) - metadata_descriptor = normalize_model_parameter(metadata_descriptor_id) - return raw.fetch_one( - "projects/%s/metadata-descriptors" % project["id"], - metadata_descriptor["id"], - client=client, - ) - - -def all_metadata_descriptors(project, client=default): - """ - Get all the metadata descriptors. - - Args: - project (dict / ID): The project dict or id. - - Returns: - list: The metadata descriptors. - """ - project = normalize_model_parameter(project) - return raw.fetch_all( - "projects/%s/metadata-descriptors" % project["id"], - client=client, - ) - - -def update_metadata_descriptor(project, metadata_descriptor, client=default): - """ - Update a metadata descriptor. - - Args: - project (dict / ID): The project dict or id. - metadata_descriptor (dict): The metadata descriptor that needs to be updated. - - Returns: - dict: The updated metadata descriptor. - """ - if "departments" in metadata_descriptor: - metadata_descriptor[ - "departments" - ] = normalize_list_of_models_for_links( - metadata_descriptor["departments"] - ) - - project = normalize_model_parameter(project) - return raw.put( - "data/projects/%s/metadata-descriptors/%s" - % (project["id"], metadata_descriptor["id"]), - metadata_descriptor, - client=client, - ) - - -def remove_metadata_descriptor( - project, metadata_descriptor_id, force=False, client=default -): - """ - Remove a metadata descriptor. - - Args: - project (dict / ID): The project dict or id. - metadata_descriptor_id (dict / ID): The metadata descriptor dict or id. - """ - project = normalize_model_parameter(project) - metadata_descriptor = normalize_model_parameter(metadata_descriptor_id) - params = {} - if force: - params = {"force": "true"} - return raw.delete( - "data/projects/%s/metadata-descriptors/%s" - % (project["id"], metadata_descriptor["id"]), - params, - client=client, - ) diff --git a/scripts-blender/addons/blender_kitsu/gazu/scene.py b/scripts-blender/addons/blender_kitsu/gazu/scene.py deleted file mode 100644 index dc9c2819..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/scene.py +++ /dev/null @@ -1,189 +0,0 @@ -from . import client as raw - -from .sorting import sort_by_name -from .cache import cache -from .helpers import normalize_model_parameter -from .shot import get_sequence - -default = raw.default_client - - -def new_scene(project, sequence, name, client=default): - """ - Create a scene for given sequence. - """ - project = normalize_model_parameter(project) - sequence = normalize_model_parameter(sequence) - shot = {"name": name, "sequence_id": sequence["id"]} - return raw.post( - "data/projects/%s/scenes" % project["id"], shot, client=client - ) - - -@cache -def all_scenes(project=None, client=default): - """ - Retrieve all scenes. - """ - project = normalize_model_parameter(project) - if project is not None: - scenes = raw.fetch_all( - "projects/%s/scenes" % project["id"], client=client - ) - else: - scenes = raw.fetch_all("scenes", client=client) - return sort_by_name(scenes) - - -@cache -def all_scenes_for_project(project, client=default): - """ - Retrieve all scenes for given project. - """ - project = normalize_model_parameter(project) - scenes = raw.fetch_all("projects/%s/scenes" % project["id"], client=client) - return sort_by_name(scenes) - - -@cache -def all_scenes_for_sequence(sequence, client=default): - """ - Retrieve all scenes which are children from given sequence. - """ - sequence = normalize_model_parameter(sequence) - return sort_by_name( - raw.fetch_all("sequences/%s/scenes" % sequence["id"], client=client), - ) - - -@cache -def get_scene(scene_id, client=default): - """ - Return scene corresponding to given scene ID. - """ - return raw.fetch_one("scenes", scene_id, client=client) - - -@cache -def get_scene_by_name(sequence, scene_name, client=default): - """ - Returns scene corresponding to given sequence and name. - """ - sequence = normalize_model_parameter(sequence) - result = raw.fetch_all( - "scenes/all", - {"parent_id": sequence["id"], "name": scene_name}, - client=client, - ) - return next(iter(result or []), None) - - -def update_scene(scene, client=default): - """ - Save given scene data into the API. - """ - return raw.put("data/entities/%s" % scene["id"], scene, client=client) - - -def new_scene_asset_instance(scene, asset, description="", client=default): - """ - Creates a new asset instance on given scene. The instance number is - automatically generated (increment highest number). - """ - scene = normalize_model_parameter(scene) - asset = normalize_model_parameter(asset) - data = {"asset_id": asset["id"], "description": description} - return raw.post( - "data/scenes/%s/asset-instances" % scene["id"], data, client=client - ) - - -@cache -def all_asset_instances_for_scene(scene, client=default): - """ - Return the list of asset instances listed in a scene. - """ - scene = normalize_model_parameter(scene) - return raw.get( - "data/scenes/%s/asset-instances" % scene["id"], client=client - ) - - -@cache -def get_asset_instance_by_name(scene, name, client=default): - """ - Returns the asset instance of the scene that has the given name. - """ - return raw.fetch_first( - "asset-instances", - {"name": name, "scene_id": scene["id"]}, - client=client, - ) - - -@cache -def all_camera_instances_for_scene(scene, client=default): - """ - Return the list of camera instances listed in a scene. - """ - scene = normalize_model_parameter(scene) - return raw.get( - "data/scenes/%s/camera-instances" % scene["id"], client=client - ) - - -@cache -def all_shots_for_scene(scene, client=default): - """ - Return the list of shots issued from given scene. - """ - scene = normalize_model_parameter(scene) - return raw.get("data/scenes/%s/shots" % scene["id"], client=client) - - -def add_shot_to_scene(scene, shot, client=default): - """ - Link a shot to a scene to mark the fact it was generated out from that - scene. - """ - scene = normalize_model_parameter(scene) - shot = normalize_model_parameter(shot) - data = {"shot_id": shot["id"]} - return raw.post("data/scenes/%s/shots" % scene["id"], data, client=client) - - -def remove_shot_from_scene(scene, shot, client=default): - """ - Remove link between a shot and a scene. - """ - scene = normalize_model_parameter(scene) - shot = normalize_model_parameter(shot) - return raw.delete( - "data/scenes/%s/shots/%s" % (scene["id"], shot["id"]), client=client - ) - - -def update_asset_instance_name(asset_instance, name, client=default): - """ - Update the name of given asset instance. - """ - path = "/data/asset-instances/%s" % asset_instance["id"] - return raw.put(path, {"name": name}, client=client) - - -def update_asset_instance_data(asset_instance, data, client=default): - """ - Update the extra data of given asset instance. - """ - asset_instance = normalize_model_parameter(asset_instance) - path = "/data/asset-instances/%s" % asset_instance["id"] - return raw.put(path, {"data": data}, client=client) - - -@cache -def get_sequence_from_scene(scene, client=default): - """ - Return sequence which is parent of given shot. - """ - scene = normalize_model_parameter(scene) - return get_sequence(scene["parent_id"], client=client) diff --git a/scripts-blender/addons/blender_kitsu/gazu/shot.py b/scripts-blender/addons/blender_kitsu/gazu/shot.py deleted file mode 100644 index 00f1fa16..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/shot.py +++ /dev/null @@ -1,628 +0,0 @@ -from . import client as raw - -from .sorting import sort_by_name -from .cache import cache -from .helpers import normalize_model_parameter - -default = raw.default_client - - -@cache -def all_previews_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Previews from database for given shot. - """ - shot = normalize_model_parameter(shot) - return raw.fetch_all("shots/%s/preview-files" % shot["id"], client=client) - - -@cache -def all_shots_for_project(project, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: Shots from database or for given project. - """ - project = normalize_model_parameter(project) - shots = raw.fetch_all("projects/%s/shots" % project["id"], client=client) - - return sort_by_name(shots) - - -@cache -def all_shots_for_episode(episode, client=default): - """ - Args: - episode (str / dict): The episode dict or the episode ID. - - Returns: - list: Shots which are children of given episode. - """ - episode = normalize_model_parameter(episode) - return sort_by_name( - raw.fetch_all("episodes/%s/shots" % episode["id"], client=client) - ) - - -@cache -def all_shots_for_sequence(sequence, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - - Returns: - list: Shots which are children of given sequence. - """ - sequence = normalize_model_parameter(sequence) - return sort_by_name( - raw.fetch_all("sequences/%s/shots" % sequence["id"], client=client) - ) - - -@cache -def all_sequences_for_project(project, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - - Returns: - list: Sequences from database for given project. - """ - project = normalize_model_parameter(project) - path = "projects/%s/sequences" % project["id"] - sequences = raw.fetch_all(path, client=client) - return sort_by_name(sequences) - - -@cache -def all_sequences_for_episode(episode, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - - Returns: - list: Sequences which are children of given episode. - """ - episode = normalize_model_parameter(episode) - path = "episodes/%s/sequences" % episode["id"] - sequences = raw.fetch_all(path, client=client) - return sort_by_name(sequences) - - -@cache -def all_episodes_for_project(project, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: Episodes from database for given project. - """ - project = normalize_model_parameter(project) - path = "projects/%s/episodes" % project["id"] - episodes = raw.fetch_all(path, client=client) - return sort_by_name(episodes) - - -@cache -def get_episode(episode_id, client=default): - """ - Args: - episode_id (str): Id of claimed episode. - - Returns: - dict: Episode corresponding to given episode ID. - """ - return raw.fetch_one("episodes", episode_id, client=client) - - -@cache -def get_episode_by_name(project, episode_name, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - episode_name (str): Name of claimed episode. - - Returns: - dict: Episode corresponding to given name and project. - """ - project = normalize_model_parameter(project) - return raw.fetch_first( - "episodes", - {"project_id": project["id"], "name": episode_name}, - client=client, - ) - - -@cache -def get_episode_from_sequence(sequence, client=default): - """ - Args: - sequence (dict): The sequence dict. - - Returns: - dict: Episode which is parent of given sequence. - """ - if sequence["parent_id"] is None: - return None - else: - return get_episode(sequence["parent_id"], client=client) - - -@cache -def get_sequence(sequence_id, client=default): - """ - Args: - sequence_id (str): ID of claimed sequence. - - Returns: - dict: Sequence corresponding to given sequence ID. - """ - return raw.fetch_one("sequences", sequence_id, client=client) - - -@cache -def get_sequence_by_name(project, sequence_name, episode=None, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - sequence_name (str): Name of claimed sequence. - episode (str / dict): The episode dict or the episode ID (optional). - - Returns: - dict: Seqence corresponding to given name and project (and episode in - case of TV Show). - """ - project = normalize_model_parameter(project) - if episode is None: - params = {"project_id": project["id"], "name": sequence_name} - else: - episode = normalize_model_parameter(episode) - params = {"episode_id": episode["id"], "name": sequence_name} - return raw.fetch_first("sequences", params, client=client) - - -@cache -def get_sequence_from_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - dict: Sequence which is parent of given shot. - """ - shot = normalize_model_parameter(shot) - return get_sequence(shot["parent_id"], client=client) - - -@cache -def get_shot(shot_id, client=default): - """ - Args: - shot_id (str): Id of claimed shot. - - Returns: - dict: Shot corresponding to given shot ID. - """ - return raw.fetch_one("shots", shot_id, client=client) - - -@cache -def get_shot_by_name(sequence, shot_name, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - shot_name (str): Name of claimed shot. - - Returns: - dict: Shot corresponding to given name and sequence. - """ - sequence = normalize_model_parameter(sequence) - return raw.fetch_first( - "shots/all", - {"sequence_id": sequence["id"], "name": shot_name}, - client=client, - ) - - -@cache -def get_episode_url(episode, client=default): - """ - Args: - episode (str / dict): The episode dict or the episode ID. - - Returns: - url (str): Web url associated to the given episode - """ - episode = normalize_model_parameter(episode) - episode = get_episode(episode["id"]) - path = "{host}/productions/{project_id}/episodes/{episode_id}/shots" - return path.format( - host=raw.get_api_url_from_host(client=client), - project_id=episode["project_id"], - episode_id=episode["id"], - ) - - -@cache -def get_shot_url(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - url (str): Web url associated to the given shot - """ - shot = normalize_model_parameter(shot) - shot = get_shot(shot["id"]) - path = "{host}/productions/{project_id}/" - if shot["episode_id"] is None: - path += "shots/{shot_id}/" - else: - path += "episodes/{episode_id}/shots/{shot_id}/" - return path.format( - host=raw.get_api_url_from_host(client=client), - project_id=shot["project_id"], - shot_id=shot["id"], - episode_id=shot["episode_id"], - ) - - -def new_sequence(project, name, episode=None, client=default): - """ - Create a sequence for given project and episode. - - Args: - project (str / dict): The project dict or the project ID. - episode (str / dict): The episode dict or the episode ID. - name (str): The name of the sequence to create. - - Returns: - Created sequence. - """ - project = normalize_model_parameter(project) - data = {"name": name} - - if episode is not None: - episode = normalize_model_parameter(episode) - data["episode_id"] = episode["id"] - - sequence = get_sequence_by_name( - project, name, episode=episode, client=client - ) - if sequence is None: - path = "data/projects/%s/sequences" % project["id"] - return raw.post(path, data, client=client) - else: - return sequence - - -def new_shot( - project, - sequence, - name, - nb_frames=None, - frame_in=None, - frame_out=None, - description=None, - data={}, - client=default, -): - """ - Create a shot for given sequence and project. Add frame in and frame out - parameters to shot extra data. Allow to set metadata too. - - Args: - project (str / dict): The project dict or the project ID. - sequence (str / dict): The sequence dict or the sequence ID. - name (str): The name of the shot to create. - frame_in (int): - frame_out (int): - data (dict): Free field to set metadata of any kind. - - Returns: - Created shot. - """ - project = normalize_model_parameter(project) - sequence = normalize_model_parameter(sequence) - - if frame_in is not None: - data["frame_in"] = frame_in - if frame_out is not None: - data["frame_out"] = frame_out - - data = {"name": name, "data": data, "sequence_id": sequence["id"]} - if nb_frames is not None: - data["nb_frames"] = nb_frames - - if description is not None: - data["description"] = description - - shot = get_shot_by_name(sequence, name, client=client) - if shot is None: - path = "data/projects/%s/shots" % project["id"] - return raw.post(path, data, client=client) - else: - return shot - - -def update_shot(shot, client=default): - """ - Save given shot data into the API. Metadata are fully replaced by the ones - set on given shot. - - Args: - shot (dict): The shot dict to update. - - Returns: - dict: Updated shot. - """ - return raw.put("data/entities/%s" % shot["id"], shot, client=client) - - -def update_sequence(sequence, client=default): - """ - Save given sequence data into the API. Metadata are fully replaced by the - ones set on given sequence. - - Args: - sequence (dict): The sequence dict to update. - - Returns: - dict: Updated sequence. - """ - return raw.put( - "data/entities/%s" % sequence["id"], sequence, client=client - ) - - -@cache -def get_asset_instances_for_shot(shot, client=default): - """ - Return the list of asset instances linked to given shot. - """ - shot = normalize_model_parameter(shot) - return raw.get("data/shots/%s/asset-instances" % shot["id"], client=client) - - -def update_shot_data(shot, data={}, client=default): - """ - Update the metadata for the provided shot. Keys that are not provided are - not changed. - - Args: - shot (dict / ID): The shot dict or ID to save in database. - data (dict): Free field to set metadata of any kind. - - Returns: - dict: Updated shot. - """ - shot = normalize_model_parameter(shot) - current_shot = get_shot(shot["id"], client=client) - updated_shot = {"id": current_shot["id"], "data": current_shot["data"]} - updated_shot["data"].update(data) - return update_shot(updated_shot, client=client) - - -def update_sequence_data(sequence, data={}, client=default): - """ - Update the metadata for the provided sequence. Keys that are not provided - are not changed. - - Args: - sequence (dict / ID): The sequence dicto or ID to save in database. - data (dict): Free field to set metadata of any kind. - - Returns: - dict: Updated sequence. - """ - sequence = normalize_model_parameter(sequence) - current_sequence = get_sequence(sequence["id"], client=client) - - if not current_sequence.get("data"): - current_sequence["data"] = {} - - updated_sequence = { - "id": current_sequence["id"], - "data": current_sequence["data"], - } - updated_sequence["data"].update(data) - return update_sequence(updated_sequence, client) - - -def remove_shot(shot, force=False, client=default): - """ - Remove given shot from database. - - Args: - shot (dict / str): Shot to remove. - """ - shot = normalize_model_parameter(shot) - path = "data/shots/%s" % shot["id"] - params = {} - if force: - params = {"force": "true"} - return raw.delete(path, params, client=client) - - -def restore_shot(shot, client=default): - """ - Restore given shot into database (uncancel it). - - Args: - shot (dict / str): Shot to restore. - """ - shot = normalize_model_parameter(shot) - path = "data/shots/%s" % shot["id"] - data = {"canceled": False} - return raw.put(path, data, client=client) - - -def new_episode(project, name, client=default): - """ - Create an episode for given project. - - Args: - project (str / dict): The project dict or the project ID. - name (str): The name of the episode to create. - - Returns: - dict: Created episode. - """ - project = normalize_model_parameter(project) - data = {"name": name} - episode = get_episode_by_name(project, name, client=client) - if episode is None: - return raw.post( - "data/projects/%s/episodes" % project["id"], data, client=client - ) - else: - return episode - - -def update_episode(episode, client=default): - """ - Save given episode data into the API. Metadata are fully replaced by the - ones set on given episode. - - Args: - episode (dict): The episode dict to update. - - Returns: - dict: Updated episode. - """ - return raw.put("data/entities/%s" % episode["id"], episode, client=client) - - -def update_episode_data(episode, data={}, client=default): - """ - Update the metadata for the provided episode. Keys that are not provided - are not changed. - - Args: - episode (dict / ID): The episode dict or ID to save in database. - data (dict): Free field to set metadata of any kind. - - Returns: - dict: Updated episode. - """ - episode = normalize_model_parameter(episode) - current_episode = get_sequence(episode["id"], client=client) - updated_episode = { - "id": current_episode["id"], - "data": current_episode["data"], - } - updated_episode["data"].update(data) - return update_episode(updated_episode, client=client) - - -def remove_episode(episode, force=False, client=default): - """ - Remove given episode and related from database. - - Args: - episode (dict / str): Episode to remove. - """ - episode = normalize_model_parameter(episode) - path = "data/episodes/%s" % episode["id"] - params = {} - if force: - params = {"force": "true"} - return raw.delete(path, params=params, client=client) - - -def remove_sequence(sequence, force=False, client=default): - """ - Remove given sequence and related from database. - - Args: - sequence (dict / str): Sequence to remove. - """ - sequence = normalize_model_parameter(sequence) - path = "data/sequences/%s" % sequence["id"] - params = {} - if force: - params = {"force": "true"} - return raw.delete(path, params=params, client=client) - - -@cache -def all_asset_instances_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Asset instances linked to given shot. - """ - shot = normalize_model_parameter(shot) - return raw.get("data/shots/%s/asset-instances" % shot["id"], client=client) - - -def add_asset_instance_to_shot(shot, asset_instance, client=default): - """ - Link a new asset instance to given shot. - - Args: - shot (str / dict): The shot dict or the shot ID. - asset_instance (str / dict): The asset instance dict or ID. - - Returns: - dict: Related shot. - """ - shot = normalize_model_parameter(shot) - asset_instance = normalize_model_parameter(asset_instance) - data = {"asset_instance_id": asset_instance["id"]} - path = "data/shots/%s/asset-instances" % shot["id"] - return raw.post(path, data, client=client) - - -def remove_asset_instance_from_shot(shot, asset_instance, client=default): - """ - Remove link between an asset instance and given shot. - - Args: - shot (str / dict): The shot dict or the shot ID. - asset_instance (str / dict): The asset instance dict or ID. - """ - shot = normalize_model_parameter(shot) - asset_instance = normalize_model_parameter(asset_instance) - path = "data/shots/%s/asset-instances/%s" % ( - shot["id"], - asset_instance["id"], - ) - return raw.delete(path, client=client) - - -def import_shots_with_csv(project, csv_file_path, client=default): - project = normalize_model_parameter(project) - return raw.upload( - "import/csv/projects/%s/shots" % project["id"], - csv_file_path, - client=client, - ) - - -def export_shots_with_csv( - project, csv_file_path, episode=None, assigned_to=None, client=default -): - project = normalize_model_parameter(project) - episode = normalize_model_parameter(episode) - assigned_to = normalize_model_parameter(assigned_to) - params = {} - if episode: - params["episode_id"] = episode["id"] - if assigned_to: - params["assigned_to"] = assigned_to["id"] - return raw.download( - "export/csv/projects/%s/shots.csv" % project["id"], - csv_file_path, - params=params, - client=client, - ) diff --git a/scripts-blender/addons/blender_kitsu/gazu/sorting.py b/scripts-blender/addons/blender_kitsu/gazu/sorting.py deleted file mode 100644 index eadca4c0..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/sorting.py +++ /dev/null @@ -1,11 +0,0 @@ -def sort_by_name(dicts): - """ - Sorting of a list of dicts. The sorting is based on the name field. - - Args: - list: The list of dicts to sort. - - Returns: - Sorted list. - """ - return sorted(dicts, key=lambda k: k.get("name", "").lower()) diff --git a/scripts-blender/addons/blender_kitsu/gazu/sync.py b/scripts-blender/addons/blender_kitsu/gazu/sync.py deleted file mode 100644 index d249a700..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/sync.py +++ /dev/null @@ -1,172 +0,0 @@ -from . import client as raw - -from .helpers import normalize_model_parameter, validate_date_format - -default = raw.default_client - - -def get_last_events( - page_size=20000, project=None, after=None, before=None, client=default -): - """ - Get last events that occured on the machine. - - Args: - page_size (int): Number of events to retrieve. - project (dict/id): Get only events related to this project. - after (dict/id): Get only events occuring after given date. - before (dict/id): Get only events occuring before given date. - - - Returns: - dict: Last events matching criterions. - """ - path = "/data/events/last" - params = {"page_size": page_size} - if project is not None: - project = normalize_model_parameter(project) - params["project_id"] = project["id"] - if after is not None: - params["after"] = validate_date_format(after) - if before is not None: - params["before"] = validate_date_format(before) - return raw.get(path, params=params, client=client) - - -def import_entities(entities, client=default): - """ - Import entities from another instance to target instance (keep id and audit - dates). - Args: - entities (list): Entities to import. - - Returns: - dict: Entities created. - """ - return raw.post("import/kitsu/entities", entities, client=client) - - -def import_tasks(tasks, client=default): - """ - Import tasks from another instance to target instance (keep id and audit - dates). - Args: - tasks (list): Tasks to import. - - Returns: - dict: Tasks created. - """ - return raw.post("import/kitsu/tasks", tasks, client=client) - - -def import_entity_links(links, client=default): - """ - Import enitity links from another instance to target instance (keep id and - audit dates). - Args: - links (list): Entity links to import. - - Returns: - dict: Entity links created. - """ - return raw.post("import/kitsu/entity-links", links, client=client) - - -def get_model_list_diff(source_list, target_list): - """ - Args: - source_list (list): List of models to compare. - target_list (list): List of models for which we want a diff. - - Returns: - tuple: Two lists, one containing the missing models in the target list - and one containing the models that should not be in the target list. - """ - missing = [] - source_ids = {m["id"]: True for m in source_list} - target_ids = {m["id"]: True for m in target_list} - for model in source_list: - if model["id"] not in target_ids: - missing.append(model) - unexpected = [ - model for model in target_list if model["id"] not in source_ids - ] - return (missing, unexpected) - - -def get_link_list_diff(source_list, target_list): - """ - Args: - source_list (list): List of links to compare. - target_list (list): List of links for which we want a diff. - - Returns: - tuple: Two lists, one containing the missing links in the target list - and one containing the links that should not be in the target list. - Links are identified by their in ID and their out ID. - """ - - def get_link_key(l): - return l["entity_in_id"] + "-" + l["entity_out_id"] - - missing = [] - unexpected = [] - source_ids = {get_link_key(m): True for m in source_list} - target_ids = {get_link_key(m): True for m in target_list} - for link in source_list: - if get_link_key(link) not in target_ids: - missing.append(link) - for link in target_list: - if get_link_key(link) not in source_ids: - unexpected.append(link) - return (missing, unexpected) - - -def get_id_map_by_name(source_list, target_list): - """ - Args: - source_list (list): List of links to compare. - target_list (list): List of links for which we want a diff. - - Returns: - dict: A dict where keys are the source model names and the values are - the IDs of the target models with same name. - It's useful to match a model from the source list to its relative in - the target list based on its name. - """ - link_map = {} - name_map = {} - for model in target_list: - name_map[model["name"].lower()] = model["id"] - for model in source_list: - if model["name"].lower() in name_map: - link_map[model["name"]] = name_map[model["name"].lower()] - return link_map - - -def get_id_map_by_id(source_list, target_list, field="name"): - """ - Args: - source_list (list): List of links to compare. - target_list (list): List of links for which we want a diff. - - Returns: - dict: A dict where keys are the source model names and the values are - the IDs of the target models with same name. - It's useful to match a model from the source list to its relative in - the target list based on its name. - """ - link_map = {} - name_map = {} - for model in target_list: - name_map[model[field].lower()] = model["id"] - for model in source_list: - if model[field].lower() in name_map: - link_map[model["id"]] = name_map[model[field].lower()] - return link_map - - -def is_changed(source_model, target_model): - source_date = source_model["updated_at"] - target_date = target_model["updated_at"] - return source_date > target_date diff --git a/scripts-blender/addons/blender_kitsu/gazu/task.py b/scripts-blender/addons/blender_kitsu/gazu/task.py deleted file mode 100644 index 349233b5..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/task.py +++ /dev/null @@ -1,1075 +0,0 @@ -import string -import json - -from .exception import TaskStatusNotFound - -from . import client as raw -from .sorting import sort_by_name -from .helpers import ( - download_file, - normalize_model_parameter, - normalize_list_of_models_for_links, -) - -from .cache import cache - -default = raw.default_client - - -@cache -def all_task_statuses(client=default): - """ - Returns: - list: Task statuses stored in database. - """ - task_statuses = raw.fetch_all("task-status", client=client) - return sort_by_name(task_statuses) - - -@cache -def all_task_types(client=default): - """ - Returns: - list: Task types stored in database. - """ - task_types = raw.fetch_all("task-types", client=client) - return sort_by_name(task_types) - - -@cache -def all_task_types_for_project(project, client=default): - """ - Returns: - list: Task types stored in database. - """ - project = normalize_model_parameter(project) - task_types = raw.fetch_all( - "projects/%s/task-types" % project["id"], client=client - ) - return sort_by_name(task_types) - - -@cache -def all_task_statuses_for_project(project, client=default): - """ - Returns: - list: Task status stored in database. - """ - project = normalize_model_parameter(project) - task_statuses = raw.fetch_all( - "projects/%s/settings/task-status" % project["id"], client=client - ) - return sort_by_name(task_statuses) - - -@cache -def all_tasks_for_shot(shot, relations=False, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Tasks linked to given shot. - """ - shot = normalize_model_parameter(shot) - params = {} - if relations: - params = {"relations": "true"} - tasks = raw.fetch_all("shots/%s/tasks" % shot["id"], params, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_sequence(sequence, relations=False, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - - Returns - list: Tasks linked to given sequence. - """ - sequence = normalize_model_parameter(sequence) - params = {} - if relations: - params = {"relations": "true"} - path = "sequences/%s/tasks" % sequence["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_scene(scene, relations=False, client=default): - """ - Args: - sequence (str / dict): The scene dict or the scene ID. - - Returns: - list: Tasks linked to given scene. - """ - scene = normalize_model_parameter(scene) - params = {} - if relations: - params = {"relations": "true"} - path = "scenes/%s/tasks" % scene["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_asset(asset, relations=False, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - list: Tasks directly linked to given asset. - """ - asset = normalize_model_parameter(asset) - params = {} - if relations: - params = {"relations": "true"} - path = "assets/%s/tasks" % asset["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_episode(episode, relations=False, client=default): - """ - Retrieve all tasks directly linked to given episode. - """ - episode = normalize_model_parameter(episode) - params = {} - if relations: - params = {"relations": "true"} - path = "episodes/%s/tasks" % episode["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_edit(edit, relations=False, client=default): - """ - Retrieve all tasks directly linked to given edit. - """ - edit = normalize_model_parameter(edit) - params = {} - if relations: - params = {"relations": "true"} - path = "edits/%s/tasks" % edit["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_shot_tasks_for_sequence(sequence, relations=False, client=default): - """ - Retrieve all tasks directly linked to all shots of given sequence. - """ - sequence = normalize_model_parameter(sequence) - params = {} - if relations: - params = {"relations": "true"} - path = "sequences/%s/shot-tasks" % sequence["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_shot_tasks_for_episode(episode, relations=False, client=default): - """ - Retrieve all tasks directly linked to all shots of given episode. - """ - episode = normalize_model_parameter(episode) - params = {} - if relations: - params = {"relations": "true"} - path = "episodes/%s/shot-tasks" % episode["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_assets_tasks_for_episode(episode, relations=False, client=default): - """ - Retrieve all tasks directly linked to all assets of given episode. - """ - episode = normalize_model_parameter(episode) - params = {} - if relations: - params = {"relations": "true"} - path = "episodes/%s/asset-tasks" % episode["id"] - tasks = raw.fetch_all(path, params, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_task_status(project, task_type, task_status, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - task_type (str / dict): The task type dict or ID. - task_status (str / dict): The task status dict or ID. - - Returns: - list: Tasks set at given status for given project and task type. - """ - project = normalize_model_parameter(project) - task_type = normalize_model_parameter(task_type) - task_status = normalize_model_parameter(task_status) - return raw.fetch_all( - "tasks", - { - "project_id": project["id"], - "task_type_id": task_type["id"], - "task_status_id": task_status["id"], - }, - client=client, - ) - - -@cache -def all_tasks_for_task_type(project, task_type, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - task_type (str / dict): The task type dict or ID. - - Returns: - list: Tasks for given project and task type. - """ - project = normalize_model_parameter(project) - task_type = normalize_model_parameter(task_type) - return raw.fetch_all( - "tasks", - { - "project_id": project["id"], - "task_type_id": task_type["id"], - }, - client=client, - ) - - -@cache -def all_task_types_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns - list: Task types of task linked to given shot. - """ - shot = normalize_model_parameter(shot) - path = "shots/%s/task-types" % shot["id"] - task_types = raw.fetch_all(path, client=client) - return sort_by_name(task_types) - - -@cache -def all_task_types_for_asset(asset, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - list: Task types of tasks related to given asset. - """ - asset = normalize_model_parameter(asset) - task_types = raw.fetch_all( - "assets/%s/task-types" % asset["id"], client=client - ) - return sort_by_name(task_types) - - -@cache -def all_task_types_for_scene(scene, client=default): - """ - Args: - scene (str / dict): The scene dict or the scene ID. - - Returns: - list: Task types of tasks linked to given scene. - """ - scene = normalize_model_parameter(scene) - path = "scenes/%s/task-types" % scene["id"] - task_types = raw.fetch_all(path, client=client) - return sort_by_name(task_types) - - -@cache -def all_task_types_for_sequence(sequence, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - - Returns: - list: Task types of tasks linked directly to given sequence. - """ - sequence = normalize_model_parameter(sequence) - path = "sequences/%s/task-types" % sequence["id"] - task_types = raw.fetch_all(path, client=client) - return sort_by_name(task_types) - - -@cache -def all_task_types_for_episode(episode, client=default): - """ - Returns: - list: Task types of tasks linked directly to given episode. - """ - episode = normalize_model_parameter(episode) - path = "episodes/%s/task-types" % episode["id"] - task_types = raw.fetch_all(path, client=client) - return sort_by_name(task_types) - - -@cache -def all_tasks_for_entity_and_task_type(entity, task_type, client=default): - """ - Args: - entity (str / dict): The entity dict or the entity ID. - task_type (str / dict): The task type dict or ID. - - Returns: - list: Tasks for given entity or task type. - """ - entity = normalize_model_parameter(entity) - task_type = normalize_model_parameter(task_type) - task_type_id = task_type["id"] - entity_id = entity["id"] - path = "entities/%s/task-types/%s/tasks" % (entity_id, task_type_id) - return raw.fetch_all(path, client=client) - - -@cache -def all_tasks_for_person(person, client=default): - """ - Returns: - list: Tasks that are not done for given person (only for open projects). - """ - person = normalize_model_parameter(person) - return raw.fetch_all("persons/%s/tasks" % person["id"], client=client) - - -@cache -def all_done_tasks_for_person(person, client=default): - """ - Returns: - list: Tasks that are done for given person (only for open projects). - """ - person = normalize_model_parameter(person) - return raw.fetch_all("persons/%s/done-tasks" % person["id"], client=client) - - -@cache -def get_task_by_entity(entity, task_type, client=default): - return get_task_by_name(entity, task_type, client=client) - - -@cache -def get_task_by_name(entity, task_type, name="main", client=default): - """ - Args: - entity (str / dict): The entity dict or the entity ID. - task_type (str / dict): The task type dict or ID. - name (str): Name of the task to look for. - - Returns: - Task matching given name for given entity and task type. - """ - entity = normalize_model_parameter(entity) - task_type = normalize_model_parameter(task_type) - return raw.fetch_first( - "tasks", - { - "name": name, - "task_type_id": task_type["id"], - "entity_id": entity["id"], - }, - client=client, - ) - - -@cache -def get_task_type(task_type_id, client=default): - """ - Args: - task_type_id (str): Id of claimed task type. - - Returns: - dict: Task type matching given ID. - """ - return raw.fetch_one("task-types", task_type_id, client=client) - - -@cache -def get_task_type_by_name(task_type_name, client=default): - """ - Args: - task_type_name (str): Name of claimed task type. - - Returns: - dict: Task type object for given name. - """ - return raw.fetch_first( - "task-types", {"name": task_type_name}, client=client - ) - - -@cache -def get_task_by_path(project, file_path, entity_type="shot", client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - file_path (str): The file path to find a related task. - entity_type (str): asset, shot or scene. - - Returns: - dict: A task from given file path. This function requires context: - the project related to the given path and the related entity type. - """ - project = normalize_model_parameter(project) - data = { - "file_path": file_path, - "project_id": project["id"], - "type": entity_type, - } - return raw.post("data/tasks/from-path/", data, client=client) - - -@cache -def get_task_status(task_status_id, client=default): - """ - Args: - task_status_id (str): Id of claimed task status. - - Returns: - dict: Task status matching given ID. - """ - return raw.fetch_one("task-status", task_status_id, client=client) - - -@cache -def get_task_status_by_name(name, client=default): - """ - Args: - name (str / dict): The name of claimed task status. - - Returns: - dict: Task status matching given name. - """ - return raw.fetch_first("task-status", {"name": name}, client=client) - - -@cache -def get_default_task_status(client=default): - """ - Args: - name (str / dict): The name of claimed task status. - - Returns: - dict: Task status matching given name. - """ - return raw.fetch_first("task-status", {"is_default": True}, client=client) - - -@cache -def get_task_status_by_short_name(task_status_short_name, client=default): - """ - Args: - short_name (str / dict): The short name of claimed task status. - - Returns: - dict: Task status matching given short name. - """ - return raw.fetch_first( - "task-status", {"short_name": task_status_short_name}, client=client - ) - - -def remove_task_type(task_type, client=default): - """ - Remove given task type from database. - - Args: - task_type (str / dict): The task type dict or ID. - """ - task_type = normalize_model_parameter(task_type) - return raw.delete( - "data/task-types/%s" % task_type["id"], - {"force": "true"}, - client=client, - ) - - -def remove_task_status(task_status, client=default): - """ - Remove given task status from database. - - Args: - task_status (str / dict): The task status dict or ID. - """ - task_status = normalize_model_parameter(task_status) - return raw.delete( - "data/task-status/%s" % task_status["id"], - {"force": "true"}, - client=client, - ) - - -@cache -def get_task(task_id, client=default): - """ - Args: - task_id (str): Id of claimed task. - - Returns: - dict: Task matching given ID. - """ - task_id = normalize_model_parameter(task_id) - return raw.get("data/tasks/%s/full" % task_id["id"], client=client) - - -def new_task( - entity, - task_type, - name="main", - task_status=None, - assigner=None, - assignees=[], - client=default, -): - """ - Create a new task for given entity and task type. - - Args: - entity (dict): Entity for which task is created. - task_type (dict): Task type of created task. - name (str): Name of the task (default is "main"). - task_status (dict): The task status to set (default status is Todo). - assigner (dict): Person who assigns the task. - assignees (list): List of people assigned to the task. - - Returns: - Created task. - """ - entity = normalize_model_parameter(entity) - task_type = normalize_model_parameter(task_type) - if task_status is None: - task_status = get_default_task_status() - - data = { - "project_id": entity["project_id"], - "entity_id": entity["id"], - "task_type_id": task_type["id"], - "task_status_id": task_status["id"], - "assignees": normalize_list_of_models_for_links(assignees), - "name": name, - } - - if assigner is not None: - data["assigner_id"] = normalize_model_parameter(assigner)["id"] - - task = get_task_by_name(entity, task_type, name, client=client) - if task is None: - task = raw.post("data/tasks", data, client=client) - return task - - -def remove_task(task, client=default): - """ - Remove given task from database. - - Args: - task (str / dict): The task dict or the task ID. - """ - task = normalize_model_parameter(task) - raw.delete("data/tasks/%s" % task["id"], {"force": "true"}, client=client) - - -def start_task(task, started_task_status=None, client=default): - """ - Create a comment to change task status to started_task_status - (by default WIP) and set its real start date to now. - - Args: - task (str / dict): The task dict or the task ID. - - Returns: - dict: Created comment. - """ - if started_task_status is None: - started_task_status = get_task_status_by_short_name( - "wip", client=client - ) - if started_task_status is None: - raise TaskStatusNotFound( - ( - "started_task_status is None : 'wip' task status is " - "non-existent. You have to create it or to set an other " - "task status for started_task_status in the parameters " - "of the function." - ) - ) - - return add_comment(task, started_task_status, client=client) - - -def task_to_review( - task, person, comment, revision=1, change_status=True, client=default -): - """ - Deprecated. - Mark given task as pending, waiting for approval. Author is given through - the person argument. - - Args: - task (str / dict): The task dict or the task ID. - person (str / dict): The person dict or the person ID. - comment (str): Comment text - revision (int): Force revision of related preview file - change_status (bool): If set to false, the task status is not changed. - - Returns: - dict: Modified task - """ - task = normalize_model_parameter(task) - person = normalize_model_parameter(person) - path = "actions/tasks/%s/to-review" % task["id"] - data = { - "person_id": person["id"], - "comment": comment, - "revision": revision, - "change_status": change_status, - } - - return raw.put(path, data, client=client) - - -@cache -def get_time_spent(task, date, client=default): - """ - Get the time spent by CG artists on a task at a given date. A field contains - the total time spent. Durations are given in seconds. Date format is - YYYY-MM-DD. - - Args: - task (str / dict): The task dict or the task ID. - date (str): The date for which time spent is required. - - Returns: - dict: A dict with person ID as key and time spent object as value. - """ - task = normalize_model_parameter(task) - path = "actions/tasks/%s/time-spents/%s" % (task["id"], date) - return raw.get(path, client=client) - - -def set_time_spent(task, person, date, duration, client=default): - """ - Set the time spent by a CG artist on a given task at a given date. Durations - must be set in seconds. Date format is YYYY-MM-DD. - - Args: - task (str / dict): The task dict or the task ID. - person (str / dict): The person who spent the time on given task. - date (str): The date for which time spent must be set. - duration (int): The duration of the time spent on given task. - - Returns: - dict: Created time spent entry. - """ - task = normalize_model_parameter(task) - person = normalize_model_parameter(person) - path = "actions/tasks/%s/time-spents/%s/persons/%s" % ( - task["id"], - date, - person["id"], - ) - return raw.post(path, {"duration": duration}, client=client) - - -def add_time_spent(task, person, date, duration, client=default): - """ - Add given duration to the already logged duration for given task and person - at a given date. Durations must be set in seconds. Date format is - YYYY-MM-DD. - - Args: - task (str / dict): The task dict or the task ID. - person (str / dict): The person who spent the time on given task. - date (str): The date for which time spent must be added. - duration (int): The duration to add on the time spent on given task. - - Returns: - dict: Updated time spent entry. - """ - task = normalize_model_parameter(task) - person = normalize_model_parameter(person) - path = "actions/tasks/%s/time-spents/%s/persons/%s/add" % ( - task["id"], - date, - person["id"], - ) - return raw.post(path, {"duration": duration}, client=client) - - -def add_comment( - task, - task_status, - comment="", - person=None, - checklist=[], - attachments=[], - created_at=None, - client=default, -): - """ - Add comment to given task. Each comment requires a task_status. Since the - addition of comment triggers a task status change. Comment text can be - empty. - - Args: - task (str / dict): The task dict or the task ID. - task_status (str / dict): The task status dict or ID. - comment (str): Comment text - person (str / dict): Comment author - date (str): Comment date - - Returns: - dict: Created comment. - """ - task = normalize_model_parameter(task) - task_status = normalize_model_parameter(task_status) - data = { - "task_status_id": task_status["id"], - "comment": comment, - "checklist": checklist, - } - - if person is not None: - person = normalize_model_parameter(person) - data["person_id"] = person["id"] - - if created_at is not None: - data["created_at"] = created_at - - if len(attachments) == 0: - return raw.post( - "actions/tasks/%s/comment" % task["id"], data, client=client - ) - else: - attachment = attachments.pop() - data["checklist"] = json.dumps(checklist) - return raw.upload( - "actions/tasks/%s/comment" % task["id"], - attachment, - data=data, - extra_files=attachments, - client=client, - ) - - -def add_attachment_files_to_comment( - task, comment, attachments=[], client=default -): - """ - Add attachments files to a given comment. - - Args: - task (dict / ID): The task dict or the task ID. - comment (dict / ID): The comment dict or the comment ID. - attachments (list / str) : A list of path for attachments or directly the path. - - Returns: - dict: Added attachment files. - """ - if isinstance(attachments, str): - attachments = [attachments] - if len(attachments) == 0: - raise ValueError("The attachments list is empty") - task = normalize_model_parameter(task) - comment = normalize_model_parameter(comment) - attachment = attachments.pop() - return raw.upload( - "actions/tasks/%s/comments/%s/add-attachment" - % (task["id"], comment["id"]), - attachment, - extra_files=attachments, - client=client, - ) - - -def get_comment(comment_id, client=default): - """ - Get comment instance - - Args: - comment_id (ID): The comment ID. - - Returns: - dict: Given comment instance. - """ - return raw.fetch_one("comments", comment_id, client=client) - - -def remove_comment(comment, client=default): - """ - Remove given comment and related (previews, news, notifications) from - database. - - Args: - comment (str / dict): The comment dict or the comment ID. - """ - comment = normalize_model_parameter(comment) - return raw.delete("data/comments/%s" % (comment["id"]), client=client) - - -def create_preview(task, comment, client=default): - """ - Create a preview into given comment. - - Args: - task (str / dict): The task dict or the task ID. - comment (str / dict): The comment or the comment ID. - - Returns: - dict: Created preview file model. - """ - task = normalize_model_parameter(task) - comment = normalize_model_parameter(comment) - path = "actions/tasks/%s/comments/%s/add-preview" % ( - task["id"], - comment["id"], - ) - return raw.post(path, {}, client=client) - - -def upload_preview_file( - preview, file_path, normalize_movie=True, client=default -): - """ - Create a preview into given comment. - - Args: - task (str / dict): The task dict or the task ID. - file_path (str): Path of the file to upload as preview. - """ - path = ( - "pictures/preview-files/%s" % normalize_model_parameter(preview)["id"] - ) - if not normalize_movie: - path += "?normalize=false" - return raw.upload(path, file_path, client=client) - - -def add_preview( - task, - comment, - preview_file_path=None, - preview_file_url=None, - normalize_movie=True, - client=default, -): - """ - Add a preview to given comment. - - Args: - task (str / dict): The task dict or the task ID. - comment (str / dict): The comment or the comment ID. - preview_file_path (str): Path of the file to upload as preview. - - Returns: - dict: Created preview file model. - """ - if preview_file_url is not None: - preview_file_path = download_file( - preview_file_url, - ) - - preview_file = create_preview(task, comment, client=client) - return upload_preview_file( - preview_file, - preview_file_path, - normalize_movie=normalize_movie, - client=client, - ) - - -def set_main_preview(preview_file, frame_number, client=default): - """ - Set given preview as thumbnail of given entity. - - Args: - preview_file (str / dict): The preview file dict or ID. - frame_number (int): Frame of preview video to set as main preview - - Returns: - dict: Created preview file model. - """ - data = {"frame_number": frame_number} if frame_number > 1 else {} - preview_file = normalize_model_parameter(preview_file) - path = "actions/preview-files/%s/set-main-preview" % preview_file["id"] - return raw.put(path, data, client=client) - - -@cache -def all_comments_for_task(task, client=default): - """ - Args: - task (str / dict): The task dict or the task ID. - - Returns: - Comments linked to the given task. - """ - task = normalize_model_parameter(task) - return raw.fetch_all("tasks/%s/comments" % task["id"], client=client) - - -@cache -def get_last_comment_for_task(task, client=default): - """ - Args: - task (str / dict): The task dict or the task ID. - - Returns: - Last comment posted for given task. - """ - task = normalize_model_parameter(task) - return raw.fetch_first("tasks/%s/comments" % task["id"], client=client) - - -@cache -def assign_task(task, person, client=default): - """ - Assign one Person to a Task. - Args: - task (str / dict): The task dict or the task ID. - person (str / dict): The person dict or the person ID. - - Returns: - (dict) the affected Task - """ - person = normalize_model_parameter(person) - task = normalize_model_parameter(task) - path = "/actions/persons/%s/assign" % person["id"] - return raw.put(path, {"task_ids": task["id"]}, client=client) - - -def new_task_type(name, client=default): - """ - Create a new task type with the given name. - - Args: - name (str): The name of the task type - - Returns: - dict: The created task type - """ - data = {"name": name} - return raw.post("data/task-types", data, client=client) - - -def new_task_status(name, short_name, color, client=default): - """ - Create a new task status with the given name, short name and color. - - Args: - name (str): The name of the task status - short_name (str): The short name of the task status - color (str): The color of the task status has an hexadecimal string - with # as first character. ex : #00FF00 - - Returns: - dict: The created task status - """ - assert color[0] == "#" - assert all(c in string.hexdigits for c in color[1:]) - - data = {"name": name, "short_name": short_name, "color": color} - return raw.post("data/task-status", data, client=client) - - -def update_task(task, client=default): - """ - Save given task data into the API. Metadata are fully replaced by the ones - set on given task. - - Args: - task (dict): The task dict to update. - - Returns: - dict: Updated task. - """ - if "assignees" in task: - task["assignees"] = normalize_list_of_models_for_links( - task["assignees"] - ) - return raw.put("data/tasks/%s" % task["id"], task, client=client) - - -def update_task_data(task, data={}, client=default): - """ - Update the metadata for the provided task. Keys that are not provided are - not changed. - - Args: - task (dict / ID): The task dict or ID to save in database. - data (dict): Free field to set metadata of any kind. - - Returns: - dict: Updated task. - """ - task = normalize_model_parameter(task) - current_task = get_task(task["id"], client=client) - - updated_task = {"id": current_task["id"], "data": current_task["data"]} - if updated_task["data"] is None: - updated_task["data"] = {} - updated_task["data"].update(data) - return update_task(updated_task, client=client) - - -@cache -def get_task_url(task, client=default): - """ - Args: - task (str / dict): The task dict or the task ID. - - Returns: - url (str): Web url associated to the given task - """ - task = normalize_model_parameter(task) - path = "{host}/productions/{project_id}/shots/tasks/{task_id}/" - return path.format( - host=raw.get_api_url_from_host(client=client), - project_id=task["project_id"], - task_id=task["id"], - ) - - -def all_tasks_for_project(project, client=default): - """ - Args: - project (str / dict): The project - - Returns: - dict: Tasks related to given project. - """ - project = normalize_model_parameter(project) - path = "/data/projects/%s/tasks" % project["id"] - return raw.get(path, client=client) - - -def update_comment(comment, client=default): - """ - Save given comment data into the API. Metadata are fully replaced by the ones - set on given comment. - - Args: - comment (dict): The comment dict to update. - - Returns: - dict: Updated comment. - """ - return raw.put("data/comments/%s" % comment["id"], comment, client=client) diff --git a/scripts-blender/addons/blender_kitsu/gazu/user.py b/scripts-blender/addons/blender_kitsu/gazu/user.py deleted file mode 100644 index fe99d5d3..00000000 --- a/scripts-blender/addons/blender_kitsu/gazu/user.py +++ /dev/null @@ -1,270 +0,0 @@ -import datetime -from .exception import NotAuthenticatedException - -from . import client as raw -from .sorting import sort_by_name -from .helpers import normalize_model_parameter - -from .cache import cache - -default = raw.default_client - - -@cache -def all_open_projects(client=default): - """ - Returns: - list: Projects for which the user is part of the team. Admins see all - projects - """ - projects = raw.fetch_all("user/projects/open", client=client) - return sort_by_name(projects) - - -@cache -def all_asset_types_for_project(project, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: Asset types for which the user has a task assigned for given - project. - """ - project = normalize_model_parameter(project) - path = "user/projects/%s/asset-types" % project["id"] - asset_types = raw.fetch_all(path, client=client) - return sort_by_name(asset_types) - - -@cache -def all_assets_for_asset_type_and_project(project, asset_type, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - asset_type (str / dict): The asset type dict or ID. - - Returns: - list: Assets for given project and asset type and for which the user has - a task assigned. - """ - project = normalize_model_parameter(project) - asset_type = normalize_model_parameter(asset_type) - path = "user/projects/%s/asset-types/%s/assets" % ( - project["id"], - asset_type["id"], - ) - assets = raw.fetch_all(path, client=client) - return sort_by_name(assets) - - -@cache -def all_tasks_for_asset(asset, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - list: Tasks for given asset and current user. - """ - asset = normalize_model_parameter(asset) - path = "user/assets/%s/tasks" % asset["id"] - tasks = raw.fetch_all(path, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Tasks assigned to current user for given shot. - """ - shot = normalize_model_parameter(shot) - path = "user/shots/%s/tasks" % shot["id"] - tasks = raw.fetch_all(path, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_scene(scene, client=default): - """ - Args: - scene (str / dict): The scene dict or the scene ID. - - Returns: - list: Tasks assigned to current user for given scene. - """ - scene = normalize_model_parameter(scene) - path = "user/scene/%s/tasks" % scene["id"] - tasks = raw.fetch_all(path, client=client) - return sort_by_name(tasks) - - -@cache -def all_tasks_for_sequence(sequence, client=default): - """ - Return the list of tasks for given asset and current user. - """ - sequence = normalize_model_parameter(sequence) - path = "user/sequences/%s/tasks" % sequence["id"] - tasks = raw.fetch_all(path, client=client) - return sort_by_name(tasks) - - -@cache -def all_task_types_for_asset(asset, client=default): - """ - Args: - asset (str / dict): The asset dict or the asset ID. - - Returns: - list: Task Types of tasks assigned to current user for given asset. - """ - asset = normalize_model_parameter(asset) - path = "user/assets/%s/task-types" % asset["id"] - tasks = raw.fetch_all(path, client=client) - return sort_by_name(tasks) - - -@cache -def all_task_types_for_shot(shot, client=default): - """ - Args: - shot (str / dict): The shot dict or the shot ID. - - Returns: - list: Task Types of tasks assigned to current user for given shot. - """ - shot = normalize_model_parameter(shot) - path = "user/shots/%s/task-types" % shot["id"] - task_types = raw.fetch_all(path, client=client) - return sort_by_name(task_types) - - -@cache -def all_task_types_for_scene(scene, client=default): - """ - Args: - scene (str / dict): The scene dict or the scene ID. - - Returns: - list: Task Types of tasks assigned to current user for given scene. - """ - scene = normalize_model_parameter(scene) - path = "user/scenes/%s/task-types" % scene["id"] - task_types = raw.fetch_all(path, client=client) - return sort_by_name(task_types) - - -@cache -def all_task_types_for_sequence(sequence, client=default): - """ - return the list of task_tyes for given asset and current user. - """ - sequence = normalize_model_parameter(sequence) - path = "user/sequences/%s/task-types" % sequence["id"] - task_types = raw.fetch_all(path, client=client) - return sort_by_name(task_types) - - -@cache -def all_sequences_for_project(project, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: Sequences for which user has tasks assigned for given project. - """ - project = normalize_model_parameter(project) - path = "user/projects/%s/sequences" % project["id"] - sequences = raw.fetch_all(path, client=client) - return sort_by_name(sequences) - - -@cache -def all_episodes_for_project(project, client=default): - """ - Args: - project (str / dict): The project dict or the project ID. - - Returns: - list: Episodes for which user has tasks assigned for given project. - """ - path = "user/projects/%s/episodes" % project["id"] - asset_types = raw.fetch_all(path, client=client) - return sort_by_name(asset_types) - - -@cache -def all_shots_for_sequence(sequence, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - - Returns: - list: Shots for which user has tasks assigned for given sequence. - """ - sequence = normalize_model_parameter(sequence) - path = "user/sequences/%s/shots" % sequence["id"] - shots = raw.fetch_all(path, client=client) - return sort_by_name(shots) - - -@cache -def all_scenes_for_sequence(sequence, client=default): - """ - Args: - sequence (str / dict): The sequence dict or the sequence ID. - - Returns: - list: Scenes for which user has tasks assigned for given sequence. - """ - sequence = normalize_model_parameter(sequence) - path = "user/sequences/%s/scenes" % sequence["id"] - scenes = raw.fetch_all(path, client=client) - return sort_by_name(scenes) - - -@cache -def all_tasks_to_do(client=default): - """ - Returns: - list: Tasks assigned to current user which are not complete. - """ - return raw.fetch_all("user/tasks", client=client) - - -@cache -def all_done_tasks(client=default): - """ - Returns: - list: Tasks assigned to current user which are done. - """ - return raw.fetch_all("user/done-tasks", client=client) - - -def log_desktop_session_log_in(client=default): - """ - Add a log entry to mention that the user logged in his computer. - - Returns: - dict: Desktop session log entry. - """ - path = "/data/user/desktop-login-logs" - data = {"date": datetime.datetime.now().isoformat()} - return raw.post(path, data, client=client) - - -def is_authenticated(client=default): - """ - Returns: - boolean: Current user authenticated or not - """ - try: - return raw.get("auth/authenticated")["authenticated"] - except NotAuthenticatedException: - return False -- 2.30.2 From a0b2786e35a0b2c4de310d49b950e53bcdc95a39 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 09:31:26 -0400 Subject: [PATCH 07/11] Blender Kitsu: Fix broken Gazu Function Calls --- scripts-blender/addons/blender_kitsu/cache.py | 5 ++--- .../blender_kitsu/shot_builder/connectors/kitsu.py | 9 ++++----- scripts-blender/addons/blender_kitsu/sqe/ops.py | 12 ++++++------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/scripts-blender/addons/blender_kitsu/cache.py b/scripts-blender/addons/blender_kitsu/cache.py index d628a650..d85b4827 100644 --- a/scripts-blender/addons/blender_kitsu/cache.py +++ b/scripts-blender/addons/blender_kitsu/cache.py @@ -38,7 +38,7 @@ from blender_kitsu.types import ( User, ) from blender_kitsu.logger import LoggerFactory -from blender_kitsu.gazu.exception import RouteNotFoundException +import gazu logger = LoggerFactory.getLogger() @@ -411,7 +411,6 @@ def get_user_all_tasks() -> List[Task]: def _init_cache_entity( entity_id: str, entity_type: Any, cache_variable_name: Any, cache_name: str ) -> None: - if entity_id: try: globals()[cache_variable_name] = entity_type.by_id(entity_id) @@ -420,7 +419,7 @@ def _init_cache_entity( cache_name, globals()[cache_variable_name].name, ) - except RouteNotFoundException: + except gazu.exception.RouteNotFoundException: logger.error( "Failed to initialize active %s cache. ID not found on server: %s", cache_name, diff --git a/scripts-blender/addons/blender_kitsu/shot_builder/connectors/kitsu.py b/scripts-blender/addons/blender_kitsu/shot_builder/connectors/kitsu.py index 522cdf0f..aa67bc20 100644 --- a/scripts-blender/addons/blender_kitsu/shot_builder/connectors/kitsu.py +++ b/scripts-blender/addons/blender_kitsu/shot_builder/connectors/kitsu.py @@ -26,8 +26,7 @@ from blender_kitsu.shot_builder.render_settings import RenderSettings from blender_kitsu.shot_builder.connectors.connector import Connector import requests from blender_kitsu import cache -from blender_kitsu.gazu.asset import all_assets_for_shot -from blender_kitsu.gazu.shot import all_shots_for_project, all_sequences_for_project +import gazu import typing import logging @@ -168,7 +167,7 @@ class KitsuConnector(Connector): def get_shots(self) -> typing.List[ShotRef]: project = cache.project_active_get() - kitsu_sequences = all_sequences_for_project(project.id) + kitsu_sequences = gazu.shot.all_sequences_for_project(project.id) sequence_lookup = { sequence_data['id']: KitsuSequenceRef( @@ -179,7 +178,7 @@ class KitsuConnector(Connector): for sequence_data in kitsu_sequences } - kitsu_shots = all_shots_for_project(project.id) + kitsu_shots = gazu.shot.all_shots_for_project(project.id) shots: typing.List[ShotRef] = [] for shot_data in kitsu_shots: @@ -230,7 +229,7 @@ class KitsuConnector(Connector): return shots def get_assets_for_shot(self, shot: Shot) -> typing.List[AssetRef]: - kitsu_assets = all_assets_for_shot(shot.kitsu_id) + kitsu_assets = gazu.asset.all_assets_for_shot(shot.kitsu_id) return [ AssetRef(name=asset_data['name'], code=asset_data['code']) diff --git a/scripts-blender/addons/blender_kitsu/sqe/ops.py b/scripts-blender/addons/blender_kitsu/sqe/ops.py index 6ab55324..9bd1949d 100644 --- a/scripts-blender/addons/blender_kitsu/sqe/ops.py +++ b/scripts-blender/addons/blender_kitsu/sqe/ops.py @@ -2407,9 +2407,8 @@ class KITSU_OT_vse_publish_edit_revision(bpy.types.Operator): sorted_edits = [] active_project = cache.project_active_get() - for edit in gazu.edit.get_all_edits_with_tasks(): - if (edit["project_id"] == active_project.id) and not edit['canceled']: - sorted_edits.append(edit) + for edit in gazu.edit.all_edits_for_project(active_project.id): + sorted_edits.append(edit) return [ ( @@ -2423,7 +2422,7 @@ class KITSU_OT_vse_publish_edit_revision(bpy.types.Operator): def get_edit_task_items( self: Any, context: bpy.types.Context ) -> List[Tuple[str, str, str]]: - tasks = gazu.tasks.all_tasks_for_edit(self.edit_entry) + tasks = gazu.task.all_tasks_for_edit(self.edit_entry) return [ ( item.get("id"), @@ -2456,7 +2455,8 @@ class KITSU_OT_vse_publish_edit_revision(bpy.types.Operator): def invoke(self, context, event): # Ensure user has permissions to access edit data try: - edits = gazu.edit.get_all_edits_with_tasks() + active_project = cache.project_active_get() + edits = gazu.edit.all_edits_for_project(active_project.id) except gazu.exception.NotAllowedException: self.report( {"ERROR"}, "Kitsu User doesn't have permissions to access edit data." @@ -2499,7 +2499,7 @@ class KITSU_OT_vse_publish_edit_revision(bpy.types.Operator): active_project = cache.project_active_get() - existing_previews = gazu.edit.get_all_previews_for_edit(self.edit_entry) + existing_previews = gazu.edit.all_previews_for_edit(self.edit_entry) len_previews = get_dict_len(existing_previews) revision = str(set_revision_int(len_previews)).zfill(3) -- 2.30.2 From 6e0f21042d2f02b9e193778f9afc7aa1db59e264 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 10:00:12 -0400 Subject: [PATCH 08/11] Blender Kitsu: Fix Gazu Imports --- scripts-blender/addons/blender_kitsu/auth/ops.py | 6 ++++-- .../addons/blender_kitsu/shot_builder/editorial/ops.py | 3 ++- .../addons/blender_kitsu/shot_builder/operators.py | 10 +++++++--- scripts-blender/addons/blender_kitsu/sqe/checkstrip.py | 2 +- scripts-blender/addons/blender_kitsu/tasks/ops.py | 4 ++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/scripts-blender/addons/blender_kitsu/auth/ops.py b/scripts-blender/addons/blender_kitsu/auth/ops.py index 1783f844..1f3e5468 100644 --- a/scripts-blender/addons/blender_kitsu/auth/ops.py +++ b/scripts-blender/addons/blender_kitsu/auth/ops.py @@ -22,8 +22,8 @@ from typing import Dict, List, Set, Optional, Tuple, Any import bpy import threading - -from blender_kitsu import cache, prefs, gazu +import gazu +from blender_kitsu import cache, prefs # TODO: restructure this to not access ops_playblast_data. from blender_kitsu.playblast import opsdata as ops_playblast_data @@ -34,6 +34,7 @@ logger = LoggerFactory.getLogger() active_thread = False + class KITSU_OT_session_start(bpy.types.Operator): """ Starts the Session, which is stored in blender_kitsu addon preferences. @@ -135,6 +136,7 @@ def auto_login_on_file_open(): if not session.is_auth(): bpy.ops.kitsu.session_start() + # ---------REGISTER ----------. classes = [ diff --git a/scripts-blender/addons/blender_kitsu/shot_builder/editorial/ops.py b/scripts-blender/addons/blender_kitsu/shot_builder/editorial/ops.py index a0ae72c7..1e3fbca8 100644 --- a/scripts-blender/addons/blender_kitsu/shot_builder/editorial/ops.py +++ b/scripts-blender/addons/blender_kitsu/shot_builder/editorial/ops.py @@ -1,7 +1,8 @@ import bpy from typing import Set from blender_kitsu.shot_builder.editorial.core import editorial_export_get_latest -from blender_kitsu import cache, gazu +from blender_kitsu import cache +import gazu class ANIM_SETUP_OT_load_latest_editorial(bpy.types.Operator): diff --git a/scripts-blender/addons/blender_kitsu/shot_builder/operators.py b/scripts-blender/addons/blender_kitsu/shot_builder/operators.py index 4973e6d2..e73c604d 100644 --- a/scripts-blender/addons/blender_kitsu/shot_builder/operators.py +++ b/scripts-blender/addons/blender_kitsu/shot_builder/operators.py @@ -20,12 +20,16 @@ import pathlib from typing import * import bpy +import gazu from blender_kitsu.shot_builder.shot import ShotRef -from blender_kitsu.shot_builder.project import ensure_loaded_production, get_active_production +from blender_kitsu.shot_builder.project import ( + ensure_loaded_production, + get_active_production, +) from blender_kitsu.shot_builder.builder import ShotBuilder from blender_kitsu.shot_builder.task_type import TaskType -from blender_kitsu import prefs, cache, gazu -from blender_kitsu.shot_builder.anim_setup.core import animation_workspace_delete_others, animation_workspace_vse_area_add +from blender_kitsu import prefs, cache +from blender_kitsu.shot_builder.anim_setup.core import ( from blender_kitsu.shot_builder.editorial.core import editorial_export_get_latest from blender_kitsu.shot_builder.builder.save_file import save_shot_builder_file diff --git a/scripts-blender/addons/blender_kitsu/sqe/checkstrip.py b/scripts-blender/addons/blender_kitsu/sqe/checkstrip.py index 8537cadb..4732ff09 100644 --- a/scripts-blender/addons/blender_kitsu/sqe/checkstrip.py +++ b/scripts-blender/addons/blender_kitsu/sqe/checkstrip.py @@ -22,7 +22,7 @@ from typing import Optional import bpy -from blender_kitsu import gazu +import gazu from blender_kitsu.types import Sequence, Project, Shot, Cache from blender_kitsu.logger import LoggerFactory diff --git a/scripts-blender/addons/blender_kitsu/tasks/ops.py b/scripts-blender/addons/blender_kitsu/tasks/ops.py index 0877272a..778faa4f 100644 --- a/scripts-blender/addons/blender_kitsu/tasks/ops.py +++ b/scripts-blender/addons/blender_kitsu/tasks/ops.py @@ -22,8 +22,8 @@ from typing import Dict, List, Set, Optional, Tuple, Any from blender_kitsu import tasks import bpy - -from blender_kitsu import cache, prefs, gazu, util +import gazu +from blender_kitsu import cache, prefs, util from blender_kitsu.tasks import opsdata from blender_kitsu.logger import LoggerFactory -- 2.30.2 From 7c5593fbce1b0b842f896d89e987af4223a29301 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 10:00:24 -0400 Subject: [PATCH 09/11] Blender Kitsu: Enforce Black Formatting --- .../blender_kitsu/shot_builder/operators.py | 133 +++++++++++------- 1 file changed, 86 insertions(+), 47 deletions(-) diff --git a/scripts-blender/addons/blender_kitsu/shot_builder/operators.py b/scripts-blender/addons/blender_kitsu/shot_builder/operators.py index e73c604d..6a943b85 100644 --- a/scripts-blender/addons/blender_kitsu/shot_builder/operators.py +++ b/scripts-blender/addons/blender_kitsu/shot_builder/operators.py @@ -30,31 +30,49 @@ from blender_kitsu.shot_builder.builder import ShotBuilder from blender_kitsu.shot_builder.task_type import TaskType from blender_kitsu import prefs, cache from blender_kitsu.shot_builder.anim_setup.core import ( + animation_workspace_delete_others, + animation_workspace_vse_area_add, +) from blender_kitsu.shot_builder.editorial.core import editorial_export_get_latest from blender_kitsu.shot_builder.builder.save_file import save_shot_builder_file _production_task_type_items: List[Tuple[str, str, str]] = [] -def production_task_type_items(self: Any, context: bpy.types.Context) -> List[Tuple[str, str, str]]: + +def production_task_type_items( + self: Any, context: bpy.types.Context +) -> List[Tuple[str, str, str]]: global _production_task_type_items return _production_task_type_items + _production_seq_id_items: List[Tuple[str, str, str]] = [] -def production_seq_id_items(self: Any, context: bpy.types.Context) -> List[Tuple[str, str, str]]: + +def production_seq_id_items( + self: Any, context: bpy.types.Context +) -> List[Tuple[str, str, str]]: global _production_seq_id_items return _production_seq_id_items + _production_shots: List[ShotRef] = [] -def production_shots(self: Any, context: bpy.types.Context) -> List[Tuple[str, str, str]]: + +def production_shots( + self: Any, context: bpy.types.Context +) -> List[Tuple[str, str, str]]: global _production_shots return _production_shots + _production_shot_id_items_for_seq: List[Tuple[str, str, str]] = [] -def production_shot_id_items_for_seq(self: Any, context: bpy.types.Context) -> List[Tuple[str, str, str]]: + +def production_shot_id_items_for_seq( + self: Any, context: bpy.types.Context +) -> List[Tuple[str, str, str]]: global _production_shot_id_items_for_seq global _production_shot_id_items @@ -62,23 +80,27 @@ def production_shot_id_items_for_seq(self: Any, context: bpy.types.Context) -> L return [] shots_for_seq: List[Tuple(str, str, str)] = [ - (s.name, s.name, "") for s in _production_shots + (s.name, s.name, "") + for s in _production_shots if s.sequence.name == self.seq_id - ] + ] _production_shot_id_items_for_seq.clear() _production_shot_id_items_for_seq.extend(shots_for_seq) return _production_shot_id_items_for_seq -def reset_shot_id_enum(self : Any, context: bpy.types.Context) -> None: + +def reset_shot_id_enum(self: Any, context: bpy.types.Context) -> None: production_shot_id_items_for_seq(self, context) global _production_shot_id_items_for_seq if _production_shot_id_items_for_seq: self.shot_id = _production_shot_id_items_for_seq[0][0] + class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): """Build a new shot file""" + bl_idname = "shotbuilder.new_shot_file" bl_label = "New Production Shot File" @@ -88,14 +110,13 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): _file_path = '' production_root: bpy.props.StringProperty( # type: ignore - name="Production Root", - description="Root of the production", - subtype='DIR_PATH') + name="Production Root", description="Root of the production", subtype='DIR_PATH' + ) production_name: bpy.props.StringProperty( # type: ignore name="Production", description="Name of the production to create a shot file for", - options=set() + options=set(), ) seq_id: bpy.props.EnumProperty( # type: ignore @@ -114,7 +135,7 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): task_type: bpy.props.EnumProperty( # type: ignore name="Task", description="Task to create the shot file for", - items=production_task_type_items + items=production_task_type_items, ) auto_save: bpy.props.BoolProperty( name="Save after building.", @@ -123,16 +144,16 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): ) def modal(self, context, event): - if event.type == 'TIMER' and not self._add_vse_area: # Show Storyboard/Animatic from VSE """Running as Modal Event because functions within execute() function like animation_workspace_delete_others() changed UI context that needs to be refreshed. - https://docs.blender.org/api/current/info_gotcha.html#no-updates-after-changing-ui-context""" - #TODO this is a hack, should be inherient to above builder - #TODO fix during refactor + https://docs.blender.org/api/current/info_gotcha.html#no-updates-after-changing-ui-context + """ + # TODO this is a hack, should be inherient to above builder + # TODO fix during refactor if self.task_type == 'anim': - animation_workspace_vse_area_add(context) + animation_workspace_vse_area_add(context) self._add_vse_area = True if self._built_shot and self._add_vse_area: @@ -140,14 +161,19 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): file_path = pathlib.Path() try: save_shot_builder_file(self._file_path) - self.report({"INFO"}, f"Saved Shot{self.shot_id} at {self._file_path}") + self.report( + {"INFO"}, f"Saved Shot{self.shot_id} at {self._file_path}" + ) return {'FINISHED'} except FileExistsError: - self.report({"ERROR"}, f"Cannot create a file/folder when that file/folder already exists {file_path}") + self.report( + {"ERROR"}, + f"Cannot create a file/folder when that file/folder already exists {file_path}", + ) return {'CANCELLED'} - self.report({"INFO"}, f"Built Shot {self.shot_id}, file is not saved!") + self.report({"INFO"}, f"Built Shot {self.shot_id}, file is not saved!") return {'FINISHED'} - + return {'PASS_THROUGH'} def invoke(self, context: bpy.types.Context, event: bpy.types.Event) -> Set[str]: @@ -156,35 +182,39 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): if addon_prefs.session.is_auth() is False: self.report( - {'ERROR'}, "Must be logged into Kitsu to continue. \nCheck login status in 'Blender Kitsu' addon preferences.") + {'ERROR'}, + "Must be logged into Kitsu to continue. \nCheck login status in 'Blender Kitsu' addon preferences.", + ) return {'CANCELLED'} - + if project.id == "": self.report( - {'ERROR'}, "Operator is not able to determine the Kitsu production's name. \nCheck project is selected in 'Blender Kitsu' addon preferences.") + {'ERROR'}, + "Operator is not able to determine the Kitsu production's name. \nCheck project is selected in 'Blender Kitsu' addon preferences.", + ) return {'CANCELLED'} - + if not addon_prefs.is_project_root_valid: self.report( - {'ERROR'}, "Operator is not able to determine the project root directory. \nCheck project root directiory is configured in 'Blender Kitsu' addon preferences.") + {'ERROR'}, + "Operator is not able to determine the project root directory. \nCheck project root directiory is configured in 'Blender Kitsu' addon preferences.", + ) return {'CANCELLED'} - - self.production_root = addon_prefs.project_root_dir self.production_name = project.name - if not ensure_loaded_production(context): self.report( - {'ERROR'}, "Shot builder configuration files not found in current project directory. \nCheck addon preferences to ensure project root contains shot_builder config.") + {'ERROR'}, + "Shot builder configuration files not found in current project directory. \nCheck addon preferences to ensure project root contains shot_builder config.", + ) return {'CANCELLED'} production = get_active_production() global _production_task_type_items - _production_task_type_items = production.get_task_type_items( - context=context) + _production_task_type_items = production.get_task_type_items(context=context) global _production_seq_id_items _production_seq_id_items = production.get_seq_items(context=context) @@ -192,7 +222,9 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): global _production_shots _production_shots = production.get_shots(context=context) - return cast(Set[str], context.window_manager.invoke_props_dialog(self, width=400)) + return cast( + Set[str], context.window_manager.invoke_props_dialog(self, width=400) + ) def execute(self, context: bpy.types.Context) -> Set[str]: addon_prefs = bpy.context.preferences.addons["blender_kitsu"].preferences @@ -201,36 +233,44 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): wm.modal_handler_add(self) if not self.production_root: self.report( - {'ERROR'}, "Shot builder can only be started from the File menu. Shortcuts like CTRL-N don't work") + {'ERROR'}, + "Shot builder can only be started from the File menu. Shortcuts like CTRL-N don't work", + ) return {'CANCELLED'} - + if self._built_shot: return {'RUNNING_MODAL'} ensure_loaded_production(context) production = get_active_production() shot_builder = ShotBuilder( - context=context, production=production, shot_name=self.shot_id, task_type=TaskType(self.task_type)) + context=context, + production=production, + shot_name=self.shot_id, + task_type=TaskType(self.task_type), + ) shot_builder.create_build_steps() shot_builder.build() - + # Build Kitsu Context - sequence = gazu.shot.get_sequence_by_name(production.config['KITSU_PROJECT_ID'], self.seq_id) + sequence = gazu.shot.get_sequence_by_name( + production.config['KITSU_PROJECT_ID'], self.seq_id + ) shot = gazu.shot.get_shot_by_name(sequence, self.shot_id) - #TODO this is a hack, should be inherient to above builder - #TODO fix during refactor + # TODO this is a hack, should be inherient to above builder + # TODO fix during refactor if self.task_type == 'anim': - #Load EDIT - editorial_export_get_latest(context, shot) + # Load EDIT + editorial_export_get_latest(context, shot) # Load Anim Workspace animation_workspace_delete_others() # Initilize armatures for obj in [obj for obj in bpy.data.objects if obj.type == "ARMATURE"]: - base_name = obj.name.split( - addon_prefs.shot_builder_armature_prefix)[-1] + base_name = obj.name.split(addon_prefs.shot_builder_armature_prefix)[-1] new_action = bpy.data.actions.new( - f"{addon_prefs.shot_builder_action_prefix}{base_name}.{self.shot_id}.v001") + f"{addon_prefs.shot_builder_action_prefix}{base_name}.{self.shot_id}.v001" + ) new_action.use_fake_user = True obj.animation_data.action = new_action @@ -243,11 +283,10 @@ class SHOTBUILDER_OT_NewShotFile(bpy.types.Operator): # Run User Script exec(addon_prefs.user_exec_code) - self._file_path = shot_builder.build_context.shot.file_path + self._file_path = shot_builder.build_context.shot.file_path self._built_shot = True return {'RUNNING_MODAL'} - def draw(self, context: bpy.types.Context) -> None: layout = self.layout row = layout.row() -- 2.30.2 From 396ae7fa0d551074d56373a850e4d3d6551d6299 Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 10:06:11 -0400 Subject: [PATCH 10/11] Blender Kitsu: Remove Un-used Gazu Import --- scripts-blender/addons/blender_kitsu/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts-blender/addons/blender_kitsu/__init__.py b/scripts-blender/addons/blender_kitsu/__init__.py index cd3ce065..50c14db9 100644 --- a/scripts-blender/addons/blender_kitsu/__init__.py +++ b/scripts-blender/addons/blender_kitsu/__init__.py @@ -21,7 +21,6 @@ from . import dependencies dependencies.preload_modules() -import gazu from blender_kitsu import ( shot_builder, -- 2.30.2 From c3dbac0172190576da2b34a08f4540de96be188b Mon Sep 17 00:00:00 2001 From: Nick Alberelli Date: Thu, 13 Jul 2023 10:19:29 -0400 Subject: [PATCH 11/11] Blender Kitsu: Include Wheel in git-lfs --- .gitattributes | 1 + .../wheels/bidict-0.22.1-py3-none-any.whl | Bin 35978 -> 130 bytes .../wheels/gazu-0.9.4-py2.py3-none-any.whl | Bin 47726 -> 130 bytes .../python_engineio-4.5.1-py3-none-any.whl | Bin 53491 -> 130 bytes .../python_socketio-5.8.0-py3-none-any.whl | Bin 56982 -> 130 bytes .../wheels/Send2Trash-1.8.0-py3-none-any.whl | Bin 18534 -> 130 bytes ...python_dateutil-2.8.2-py2.py3-none-any.whl | Bin 247702 -> 131 bytes .../wheels/six-1.16.0-py2.py3-none-any.whl | Bin 11053 -> 130 bytes .../xmltodict-0.12.0-py2.py3-none-any.whl | Bin 9170 -> 129 bytes 9 files changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 4ad22e6a..20722e34 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,3 +3,4 @@ *.mp4 filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text diff --git a/scripts-blender/addons/blender_kitsu/wheels/bidict-0.22.1-py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/bidict-0.22.1-py3-none-any.whl index 267dde5209ed533bebc357a49535a7d8e5c34dd9..0dec228dd7c835dfca6bb02376060755b32e2f78 100644 GIT binary patch literal 130 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 diff --git a/scripts-blender/addons/blender_kitsu/wheels/gazu-0.9.4-py2.py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/gazu-0.9.4-py2.py3-none-any.whl index 99b61d708f7be74d41b00ca1b0bc9962cc84d485..bca48585ea02e95c5ab6706067f9db09e28970f9 100644 GIT binary patch literal 130 zcmWN@OA^8$3;@tQr{DsXw0zUsKn%i+O2=Rqp5CtBJNYAhymg!NklmO^pSNd~<+6Rt zLgQuRU^3^bM!#!mdGleXY;6Fx7!UxFIXQI9p6a!fL&|Hiz_r>)fW=XYfDl|HT#HR! MN&m5SF>XQq0n@`K(f|Me literal 47726 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 be-G(pCEmULTl`!CfCX56d*xR1bMOBFg7W8! diff --git a/scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.5.1-py3-none-any.whl b/scripts-blender/addons/blender_kitsu/wheels/python_engineio-4.5.1-py3-none-any.whl index 1c858a0cf85247b0570e22ec725a19a9061fee65..1ca55775d97ae58c7d44ebe18a9a8ca406e09d3c 100644 GIT binary patch literal 130 zcmWN?OA^8$3;@u5Pr(H&4W9&h8;C@hQRxWn!qe;9ysLah>u*)(JjSl|qs`k>#`?dW zdFB4n<0z~zSbDpwQIqkwBPAs7F^VlQXG1Q9jYuq;4MPf2C~_9g0Kj5_lc5|jxZtE9 N(=yt(C~sYa?)Jft9_LtAPQ7qnDqOoXjv2 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 diff --git a/scripts-blender/addons/blender_svn/wheels/python_dateutil-2.8.2-py2.py3-none-any.whl b/scripts-blender/addons/blender_svn/wheels/python_dateutil-2.8.2-py2.py3-none-any.whl index 8ffb92386d21e10aa07caca2eae80cb1280d04ef..361de4c58677217ecd1109f16c67d1344ec2272e 100644 GIT binary patch literal 131 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

(Id%U`JkKWuP5=F%TDk)rnu-0b_ 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

lqeHb{5AS#YP2p%Id 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

M%(I#4H{Q?8)h=N{u1ptC2%(zv@XBD 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 M&Hk%gDQPwP0{~_xTL1t6 literal 11053 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 diff --git a/scripts-blender/addons/blender_svn/wheels/xmltodict-0.12.0-py2.py3-none-any.whl b/scripts-blender/addons/blender_svn/wheels/xmltodict-0.12.0-py2.py3-none-any.whl index 540936b00095152c47b93598c1e626664d1963e2..ce4d6b1899a06c95561078322dd6fec09f6aea87 100644 GIT binary patch literal 129 zcmWN@OA^8$3;@tQr{Dq>hu+7>JjQCwqs`k>#&TJ| zv~Yi!aTGSEQ@!na)D1#hk%-9$=8Pa733x*(sU(ENVNV$ZTq-Q?YJ@0gk;FT`6Gj`H L8tqqfcFC$g-8Lsr literal 9170 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