From c74d4519133ae43e41c070fbb6b37e1aad23864f Mon Sep 17 00:00:00 2001 From: Henry Ramirez Date: Thu, 12 Mar 2026 15:47:46 +0100 Subject: [PATCH 01/12] version ok in nuke 16v0.8 --- .DS_Store | Bin 0 -> 6148 bytes Python/.DS_Store | Bin 0 -> 6148 bytes Python/Startup/.DS_Store | Bin 0 -> 6148 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 212 bytes .../__pycache__/fn_crud.cpython-311.pyc | Bin 0 -> 18255 bytes .../__pycache__/fn_globals.cpython-311.pyc | Bin 0 -> 3123 bytes .../__pycache__/fn_helpers.cpython-311.pyc | Bin 0 -> 13528 bytes .../__pycache__/fn_hiero_func.cpython-311.pyc | Bin 0 -> 54727 bytes .../fn_manifest_func.cpython-311.pyc | Bin 0 -> 32996 bytes .../__pycache__/fn_model.cpython-311.pyc | Bin 0 -> 24661 bytes .../__pycache__/fn_sg_func.cpython-311.pyc | Bin 0 -> 47205 bytes .../__pycache__/fn_ui.cpython-311.pyc | Bin 0 -> 163212 bytes .../__pycache__/fn_workers.cpython-311.pyc | Bin 0 -> 20032 bytes Python/Startup/nt_loader/fn_globals.py | 13 ++- Python/Startup/nt_loader/fn_helpers.py | 6 +- Python/Startup/nt_loader/fn_sg_func.py | 95 ++++++++++++++++-- Python/Startup/nt_loader/fn_ui.py | 16 ++- Python/Startup/nt_loader/fn_workers.py | 47 +++++++-- .../__pycache__/ntl_main.cpython-311.pyc | Bin 0 -> 3435 bytes Python/StartupUI/ntl_main.py | 31 ++++-- 20 files changed, 170 insertions(+), 38 deletions(-) create mode 100644 .DS_Store create mode 100644 Python/.DS_Store create mode 100644 Python/Startup/.DS_Store create mode 100644 Python/Startup/nt_loader/__pycache__/__init__.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_crud.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_globals.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_helpers.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_hiero_func.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_manifest_func.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_model.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_sg_func.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_ui.cpython-311.pyc create mode 100644 Python/Startup/nt_loader/__pycache__/fn_workers.cpython-311.pyc create mode 100644 Python/StartupUI/__pycache__/ntl_main.cpython-311.pyc diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2d36d00b8f0d2a965a08491d50ba9dfe317e1d3d GIT binary patch literal 6148 zcmeHKyK2Kg5Zp~fFt}0a@_xa8a0sUl_yijczLi-jKn17(6`%rCU`+w*y|B$TkdX>d0V?pTfPEhd+^{B&f&S@0@DTvmAnk^= z&l13531Cee1CfDgP=P_!95FQL$d|0EiDO{UMRWMje6r?*qW*N;U%Xtj1~O6sDlk>x zF}AJs|7ZBh{68geM+KywidF88BUFRN%iA_yOXB6_)@2 literal 0 HcmV?d00001 diff --git a/Python/.DS_Store b/Python/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a2bc0a3af3d88b13168ad1627acf0920ba0c30cd GIT binary patch literal 6148 zcmeHKI|>3p3{6x}u(7n9D|mxJ^aNhOUnwYl`mH>dNAu-_D65s&$O|NICY!gzykfHv z5uIMP6OoaK4B&=xwa_+uZr-v^W)uj=JI->E!}he!BizR?H zu?a*5ra=V;RddA9pd(+ht|m5tK^M*8L-Sv WHL(eFI`U2j@@K$wp;3WfD{u#Zj}@u_ literal 0 HcmV?d00001 diff --git a/Python/Startup/.DS_Store b/Python/Startup/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c3818debab212e1ce8b4b734ea873db9907dfcb4 GIT binary patch literal 6148 zcmeHKIZnht5Uhp`7HzU2;e3G~j8@AF_5oZbv#`XGJK|kDjp{>)m6rsG1XWAjHPi0$ zXew~K0od+sxB|8S)^ta_dsv!3cVF09WsFGYJ0{#=z$2cAmqqpIgmW+Ogjd{P{LX(E z@26=zO;T10NC7Dz1*Cu!__YGwdui)UqM{U#0#e{h0slTUx??Y#6XVmt5F-F_#dH|g zF-s7eCy2dpPGp8=NhK!LYQ(UlGvBJN7tV=Eht=?5b+XljVsSd(-=ZAW6BVU^6gXDk zJhxl#|JU>%=Ko`oc2YnJ{3``)wLk24yi)bn#pS%$Hu^2yYd+|1TnB|A+A%TOF*n|h eFQX{yny>l17tV=6XFlje{S3G+GAZ!a3VZ^lYZZe4 literal 0 HcmV?d00001 diff --git a/Python/Startup/nt_loader/__pycache__/__init__.cpython-311.pyc b/Python/Startup/nt_loader/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5781498828f1a8d268024be7ce20c489865331de GIT binary patch literal 212 zcmZ3^%ge<81XJZVW`gL)AOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnuXO#;;?$yI z{fyMSqROJg+{~iXD*e3D>{R`f)G{!mBr`WPCo?ZKCqFSIwMgF&C>H`1@_`5iRF-7q z=jjKRBo>vF7U<`d#6#7_$7kkcmc+;F6;%G>u*uC&Da}c>D`ExO3vyX8Kalvq%*e?2 LfdNJoF$2W_oHIHL literal 0 HcmV?d00001 diff --git a/Python/Startup/nt_loader/__pycache__/fn_crud.cpython-311.pyc b/Python/Startup/nt_loader/__pycache__/fn_crud.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c52aa6ebd593acbcd9a92354839852dd8e40a49e GIT binary patch literal 18255 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 literal 0 HcmV?d00001 diff --git a/Python/Startup/nt_loader/__pycache__/fn_model.cpython-311.pyc b/Python/Startup/nt_loader/__pycache__/fn_model.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3316a89f3b5c98118716f0d0cf7545c9b4867cf5 GIT binary patch literal 24661 zcmd6PYj7J^mR{pYkZ2Mh!8iD5QW8aoG-yfmOO|NsVQFaDv?b9m?#yB!c8i1r0(3X1 z2TgiaTizN<(bmu&Ip)lIGnkaeLzlf9?PRv1Y|W-T$!^soHQ5DFoe)7vDOIKBhySGL zl9O`HpUrn}0~g%@>7g^(R9etsci;E9=bU@ax##vz>g($ST<`Y&MQq?XLHO_VP`X^j zn+L17c~6i9*%lY(Y*V&5`;>joG3A(ZPC4gXQ?5DplzXmbs%FkJ<*`vdd%Sk8ZmN#m zJL29saY|(O&UpP?!&JkZZ^}34pYq!TyKqX7U2h4p`$M}Re2o9bHPy&cYLMbl>>oOi zhX2L1Cb{;U5UTr(9z&jj{Y`!UD4_?OOdx9cN*<@kLF59LYwLAWH>Xo@UdNUBnlu$G9XVwV+ZenFj2 zYKm4T;YuV^lB&d`DP%;Mc{M37Os8VWghVrTDVCTCOPUhD5SD>t>O@qUjsn#WMdNW+ z^K>$iQWDfJbZ#zsO-d+6Rn&Z99(CYRPF_h!paCU17iP_lqyAacwxC64Ft(IL)kI?n zO;WC+;e?W0&?Id(nVL~!7(q;l%SL}E3QjedOig=CQ$;gH6!_pRHd9NsB_YC-m+W`~ zYK?2jfv3{U3QJBraoU{`@Z>Dzl&O{ymw~(REyufBQMhwAb6|*w0DjHA={KXQ$fvORj;tO*LOI7oj zec*qv$S)HO+tY4h>uHDgG|V59?K z>8$elLQFO2W-dA}U06skA_Tvp5W22`OXs2n!BL+r7*Lgz8dENVR(U~bJ{be%RL$B& zVwVUokOFnFPD+QQbH*d@Bk>$4b2^$J4gy_jF`x~7Qx#C_`M6>*R091fa)_iQFQl#z z6EY^?q#OmwQ&X1CGCmrVW78?j6k{dgq$HDdtY*dlm<6!y92gdysFtupY*geTY5bW( zEc;wE5xby(G>RCW29r@KOQS{fm71lwy&O}nl+b!5mYS6eT43EPA~XsPFHQud1@NQnSg#2*^TBEzFN3Qdl@x!i7YH3EuGhwSp%S zi6vsGNMy0G#Ae~rE9$QH4S?&y=02gNW5s!^Hs9KXKi+&tKmIi2g99s0-P4|L@5Ez$ zzBR}a+bEA%%G%tHr`i?#dw{xxX)eR?Kr)L-ynVQNPe_^4mV}G^=|kLo%%9E)AK4~C z_JSi0?6jlcM>e$^e>BP=sl9--8iKok+=WDHv6&Ce^!8CI(FAZ^xaVtH9ld=d>+92f zeHl-m+K1QET)N_cOJq6caxV5}?&fFV5dSu{OJBtTvZ`59M-^v(Fn@59E#l{vWFZ7?GlO$E+)~{J-9dFSsldlqR0n=kshWTG@TfR*LUm5O~F<>nh&(yeo_zY z-3UCC3p}(gX9EZIz`=}oFz@rPyk3oOKEebl!U%0;e9N}C2>%=(Cxj1?=VSaguFE#H z%bdQ=$ZghBPRR^@uyc5TRH0|Ms)evsY z)Bc;f!||AwnoiEmk1d8c%A)i0N&=Kh^cp_QbUSSfH>Iq{sG3fI>q4e~-1yzulYZob zL;R8953|L@4Vx{uQEQ0;p(heIFeS@Oh@!di#g;Ambd=hEhP9vfw%mHkX!Y*s&yV0P z+drKsbqG}fo4ct-hE2zOa=wJhT97zICbS##+!pFoWiAP6 zj?~2f$7A^=Ay9h>fVe_jt<8AD_~jV<)8lF92ld&mu-;XCW273eh}Q0$*u56Zii5g1 zm?`}Tts}^0V3o53njsaBVKt5$t6(J+P=+#DW}#0UA7U0h#((1ibqg1{z(`X)RhR5s zvRTb31M?x*#9|$-K%{Yp!-bmS{YTEq)sWUeL(VwWM!IJ&4Dy8nt*EII&P7_dP+v6x zw?$={Eo+ntg=|`xO~$eKEtV~hZE}pGMU7}1;=ipo-`Jg&@5FxT{FQgpVQ;VdTmblj zz>2u(7HaEn)o*yZa-OcWGifpFc}Vv>lqvnHkxz(Z$p0p8tn%56_RB)DC&e{$!6Ma= z4`q$3yuMgvR%x|y7}^EXDV*nFDppGALL-#G$ZV9f4H5*fM&J50LDV} zX1e)if@TJZGzUnrMe1U;;N*1T5Q^>}qhy zUZ%b!+a*S8Y7O3Usyip(38jsTO5F*Ph&C43;>yIdDkgFrY^gO6K?;{f%|o3sw1FmV zCNiU>B8Gk!A!Tnd$PrMTNb9Qh6aX;L*m66#;?6fTZwijuU3p)N?(0oIkt2Kz=i9n( zzmf6x=UalezqN95vqtc>uxy(i!QZ@+VwefJCsfiiCUAx7N#mmSBauQ~g!Hh5INghp z$m}G)Tjc;?o7@c8F1G-7 z$gO~#avNY!ZU^j=I{>@oPQV^H2-v$KT(wO}@XK@;>Mb^K^m|~i=aX70eoZp_Xr!Wr z%q&KBFD;~E}BQZ zd=wUE(SCzbYO&O3V~QG8A&e9)EJY&6UphDW!t>)(&qN|p>;hVpV;3&KfrR>agD_>e z{Rl%EW>XwqHHq1I%mp(Yk7^}zmsxjMk5zbGWCcE&q!gW=R_0T@ZgMs7-p@m5mRmyR zqT#3*)suNbf42PA*s!{V%8NNMW6y_|t$i|GCV6BtIu3U}I&BrlaKy_4_i(N%i9Cue(Hfr`n z*~KVbNvf9=RnlT8cuj)0G6_EoO&-G@q$0;pRGnFvqXCo41-MyI;ou@|vWy=s3Fi+} zFgdD9NQB=@P0kq(F|;Nt(@~XWIv>@PI@Z|4G$|~li`GO3{y+FB`1xI%ReeeEC4yE= zs|vDHU7z{Vs0DU0Uz(FYIp=*TZ|O;ZLi&l_y6##$Xyh~F9<&sRrs5?#pdtwuc`Ki| ztR7~Rt1abC(UMiXtda=1cwc1l)`_Kjat)ri+@Yt7yuL_7Dc6#aCX=%2O3^w|ysRx+ z#|ov+gLe41V!(NXRx@_V@CVP5Uy=+YpKH(GTeP6 zL9WDPtk)w~plBzrNYPXZB8Lc&5erpG*FS2@_`D4fzD8DsErox2p9 zFVZ-~0I?GUz-17$EK!cIG!svrkH+EfRYl#GRb@P0d7- zi753Dm2ED#w1s&HaZ=U|U5F{Uja5^m5?d7NEl4cXTgJ=up#sdeq%o~3Nt}Y$SlbxZ z3pE-xW*~qIUQMCZiMh#CQojqe7ieGRc}Pf=hE?!J*odb=mr9{Na)IsUM2ts&gzAYX zSEu6(v;u0O8bdo}onF3GgSzKn#&fXbj_W%>F1wz5_r6T` zsXt46dL|P-l?|WL!>8zdC*HHazwYQuU%uN)7Ez{SGTSk!cTB>M*KjX5@ckq2A2Hm1 zZQab#7nF=gX%FSlJ>7Ya_}zw^4e!43_VVrJtY?qz*^}|?$p?FleBJDCXTERW`glfq zlwNjc*v~K}Aocmh*Mk3rS7b`0d6N0YD#L6-ipyP+;LP0R>junSq?Y&kAisESlG&!c z6N>~d@1md=L_JkkWiODAuMOtR=5@karb_z4d5@)fq zl41&*$%dY!%&!n&v|A7Vk}2P-lt5^$G85s%Ky49Hbr##L6jx694oYg|Re){e5e=(2 z>*)bWWjsCiwxOE*RwT0F>CAaLvz{*9)0Odb-QSXEKsWdqbirp3trdR^fuG#nO&K?$1_xzuk16ul1Yh1JJH$T1e3O7xUdXd7E2`wQqP`pPjb z-%VfE)1iAhGNs>FjOZpx(}>deTYXvSMZ@Y`Hl>&CiDr~DQ5PO{_7 zF<&9pO7CwYxArsuIUriT`{vCzv%X%K-DFxH%y;&@A6_}Va{7L!w9)x+uJhq+=K;O* zz{=^ouXDpUkn;^>eS^AhFyk4lMlz8FBO5nv$lD0^vQK5FSgN_8R*% zM!!3(%wbCU6BJ=GoVw0k+h#;_fkq^}<7u{&?*mi21F~Lr?2rVUOZF5Eym(!7mhOuF zn0J<(a@jZIxJW%`7kc89?c8hQxX5c^DGpN#7k@}`T%av;hw9%R-w&Wa`76v!EI2RO8F2nV(deoO~w_&zsgjq@w_^Xy(DbMP6WAn2SwT z9-u|zpHbc>426il`Mb+Emv8*Rtv{d*pmuBkt&Za5hHrPyw>#?_(0$lC%r~~a*Y!@< z+da2?;9~Ro-aT-8Ea&aZc>BQjYmGPGSa~Dg7QB5e zruo$`;WvBttllz^s~^bJ53G-VGIsa1+|bF)(8=Pc14U2Z)?13-2G({e2UHU8JCFh3 z4wDDJB*YzMGGbD^Bbq*y8&PfEKs0q4t8xbCAk{(>oQ52Xu zZzLc9Op%$uD7c=X2(Xab5D<0WNUE_#ib;yAD)Oo?5+Hl3P&bQEHAN+lP?7s#02yXu z!HZHbx0!fQ3DGKTWpFuAG)=DKU8N>euJo^|#5({mPV(N?Kka}2p`3Sb#=Cd@#9to! z*+g#mSZ4TG-q*U;cXMfF39j_j%lXFkwWIHJt#(yD^{!qurS+^{F+EkK-SaiS`>phe ztS_YdLL0u(oNx5bD|avbay09EQTM%=@x1sI^fwRg0`&=LbiDf7YTmR4v$63Z3VqBA zf^Hl;QOB4X$F+oIC)7Ac+RPukMr-}c*o9kirnjUqYtBn7kNVYpb#86eV5bjQ`IyU{ zW!I8RZQIVcVK}OAc7b2`=(bZaJp~VZ8BF3B=823!GdaZ;zVbE*f;%WSNMTt)=uGFN zKm@i}88Hhp^mq_Jqt%zKU556llB`+`R7f-ubN`WY|2Y7yUIALY*3P8|)}c-A*M0j* zqV?Si^t^rK_K}PzeJ#Dz+ps#c(G3LMwG6YVTF0fCCTu@=+Ms1y z8V}W%l|Ft874OifFiXWHgqX^LRcnK8O8OnAY(t`IkcGdceUtVHns;Ic(OK53wl=aM zUn{6Kft3KXE2K^Gx{Q}47u*EZGTAXG>h866uU%XpymKPk`h?#4#EKV!d2RRm2s;?ecn9xz0Ze2W9MFT<=Wfq? zgJgPPo3J0$yV0~i*R=o6P_}7IZyH-UzHq|c}zsRu+9 zU&C+HX%5^qa`j|C7_vjYC zth1K%fkrqrh(eO$65OTCB3W(riIec@%6Ml?BAZS&lWhLT7*#1`Ym1o_5pKa^{K=QR z*lA^LbJ`auuPp#zE)P8ZufjhKXAd0H4;;(1zPx&2qjfmfI-G3{>#gBTYZzYI2IA$? zG#0xP%t=Qw(vkat_SHx3i)|ZXC?|%p;*c&5VXo^3^Ub|_^FYQwfRLB^!TaXzLZmS~v0uX})C#?DDHJpN!s?ozLdY!m@Wn zwy)R`dSFL*gU7llYPdOhc%yS-l8K^e-W+ZS(d2}A5C(V`Q+vaf#$EMwqbg$5@SoZW zb!>-(IgepiGX0AM<7dhoI9Mzl*v+>#SH6Ba$?*hfQ1*;$0*8k!^p&lJctZc3opDAZ}#0*WiN z%~j^#Z%a=b+cD%lUu@f^_y2%I&5aI!NjA^d<=TLSYsIFOlkjLF26$7bt8G{x()S%< zclSlV5oMY8x2}0N+DCHjBiZ)-di(x6Pi`E1Hh1vZ?7`>sgU`X$QQrVpM|}fvdjnh@ z_3aztNKPEdiu-kOe@5Jo*uo95Cnxq~MM)PW(rfz%R!-|;?>(_e7rXQR#!TQb^RKef za`lbqBH@oO{|~hLIKF;7s7G5XpdDy1u$PX7Ye)x zZmf)ULipBO-vqfXJD_4Zpd7H4)N3hnq7^Tkw4q*d;~%jB$W`7;BGahs<}B~Xr@2eB zR1^J0O=b5cFj6+LY=Wg8u~cf?dUy`2(u;b8a&%If{C`!~lB=@Jtv_PUNhmMgh_Mw) z=S6S=t;pnbnxd%3n!-fbCThrM>^!k0k$kEJ2UKJhn1>j0xRo@OhRilU;csAP&P8w}GX}Zb zFpmdjsuO%+;ce<8WW=Rq_mW$7mHW3`gJ)BJmpx1Ft<4FXK(%oBa_zP`YbtWqS)@=6 zq>yK+cB#%Hi##8?Aw%%rxR$-Z*Vd-4*IK(xxE04t?MN9(T;1_32#W4BWqejz zFyWfqxRx>3R)ns9jWO?Z#B$w|EyCruj26lIOP|R zk2!gbog2Ps11Z)_Nz9v2v7bW{Recg*@+4x3u?q{wRfNLpSg4ZvLrNYXu$usRU)Apu zXe7W2kJ8=u2oMD`GX-*(0#?pngDS`oYP_ z$#z5xB6^E;zM|g;(UwM-GF)+HhaBx1Ep}TqstUQ^M`HKi06^@v1vlD;a&1HFr?YL3 z>urx01N1jMy*W>B+MD$Z>z?6^XBhg9*t&ZD*4WyR?j2YU<-7+o-h=t}U1p7GWjx>7 z`{P~di$5CqU?khR|IX2D>mw_tm|nyVvUIIqySq0l9@E8R8Sz-Yd+(-DU;hXLtF`$y zDc!2K4X!%#U3(zvyAI%8&)y%-{a|kW`E1W2z30%X7n$B$erGxTa<*+)ZyR29-s|3z z@94(SIb*{RyTmbljz{<0m zB2yW6=fvIVsjT?0E|U3Q-TeLTz7;RU4)yG!zd;KB5pRmCznAs&=^i>!XZ))5L6Q$_ zT_IN`MQ+2$!z<(B?wO-_i*(~E8-ZJEf-L^p{+0((J}6_+sBAkb>)fiWrC+6uqi4Q$ zzua$ma3^Zu3+_e3QQPpl;nwxfY6O8w^KE6iLW^7~4gy9>uGF~t5;Lwj%U%r5C zHD>+cY!74i-$N6u2L)F=c|}n_vKMSunM5&m7mM3QZzJ2{UMs^F1yHs5H-SlfAfW`A zf3Ls)2JPaW%JiQ4W#g|}|Gw)#bp89DU-e{qUcFwl1#Jb#CFR=xa}22ef`||B~wI17IhK70W=#=m_BdgFgh=`BbWd7G=n6N^QA3Q@EVfgJ5N(1k!2hKZ1Es zw=j?OL6IZT6mu$kRgSg z;EVt^JyAKo{y#&rN;~Z8UlI7-F!)WPub)#rL|-AN`ZC>55}+*$99f4FPznhk4SPJ~YA;;s#GFek#@NYN6;4+j_PLpWqt z<)DBUVnf`M6Zcf+9;nWZ+P7&6$D3N3uw`KZ9-*Uq)63d*Q@a2-V+7EERgSm&l||7B zYteEgje^*ZxD{iG11|VQ>Ns2C#_)D~(+ON>+kTJKsw~s_%rtMnd{c3pklJNe**Rk6 zW!X+<5Ng|jd&J1Q<35rXo|__D`&wzIIOQ+(5m6r80GY8_M_fExioG~mCz;Y5sxvm( zsON^Z%SlORVFHBT^H{Ao8PN@r*3WkTJ*=kA9a7wo%N6C{*e_I?I$nZT)Zdx zR-I&*L!+c~yzBdMOnP132#@8$W7+W2did#2_h-W={`S%@=Kf|5t~NiNLG{(z_x_8J_QtkZz$TW|=Kke2}Kv zne`_`O#c*x@yQLtU%M+O?#haLbaBtR4cj*vF_iZQb^q@48ITb?Ja=Bp`NuN;vHQW^ zjo?TwIC96E4Ib8mhgY66TQRTS>C1|vx;UB;whG)j$p1$q4xou(Zja6RsftGK%lXGNKau+MLrOzXr@lvOz=xoyikK-&;Z1qmR& zU>jLR4qXr;2(;|1h59;#p2FT{qJ!DnOq{UkA4Za~h3_=1V%m%|rk8?EG~y7lV~u?Q z8cC%UTVb6OweoKO`0&M%VyxqO^Cv+p9p#Pp`v`F!LOgR*x85|c(KMWE8eX5wHXYEL z4q%_%6cN(6ej*##uLsDNUp+S@1{mxA1~)V}Y5c9etaG4=<^y(RHmAASn!T;%*{m_) zK`ntA_-tPmRBPStQeS9iw!A{gwyK<5pdpTk-($VtHCWz~0>`dJ+_BwS@FsD$$~-PN zaToF!dq#wwf_EZ0PVtWM=!|CU=Q7SeLuvJtGOj(7AP2Zy@Eeck6gtdl_{0s`V8lWM zV&QtMFH~t|xDk8#=R^&(P(f+32Fv!}3$)xG%ZLbqt%#Ss5AAAfZBp+hR|bB_s0Vgs z#9gFzjb*xzWW4k%mA~g}MAZC``}O`uvc5+$o=2)_gl3A-$OYVNubpfq!poexb%Y!C z;VbM2^MMP8N_3Yq<>9F9Ytv%)!)3~-<^Y` zoXq<7>Hd9KhCQNr4Sgx=8PYvNnbNNsJ4Cw-J0;z%EZZ~@w2jt`%Y68RePWGM>CU-E z8$penbGBac2xlLc8Wm`BXD4we2Ht0|v4#AcJ9ss?F-z_0$W*jLPFLQyCHrAkW*g^n zmE(mR6!@snB*Ld&LqS8@vT%tz^f(1ja81V%CWE7N#z`aNKwY7+bh1uWrWaHV-^(hr zL~yJ*e$6;*2j8Qj(I?$t&M<|}Nyj$%`91c~fUl2X_owvv5UboSxQ&)7gRG3Ve@)~> zmJji0fSo|G)rRxEyWW3u1@5#iEV{;tw${$~F1~Z|?fC8ZiWlKA6fG6NlB$b68zQ;S zvf_X)4rIiE>UB0x8@=~Cf-4Q|I8{&1)3cV+dq?gB?G_K1jD@ z!^X+@vfW&-Im*TyVS{^4qqyfA7?wV`J_K)m%-0s8>~gzXZ)8-)17g$T*(IB{-`pn| zpS-lRQxOk{jp5(kj&lpO6joOCRf%=BMc|oOY&gk|lj3WFjJD0^{#;vn*U7QJ_z=#{ zk`tbNqX68(zNSd0RPl8_oKnT-0M%VaTigK8l)l2bdznHU^q0fh~l5 zW5W3K2pzL41&rf}Eq$)E_-QGXgm=Mf@D3Bz^eMd}3-jRdqQdl_k#}*I)uFH@YyTZF z;r~Ex7+6~!ILtTpt-pNt#LrJ7jH#2p+|x-`QzxvZTNL!rhjS+EQ0o0=L{fNa;k*Y} zIdQKOpKa;5{Te$@mhY1Eu3_Vuxx&5fAY9=9@Dl_ZR!)x_ef62N~Wv~j5pLB6}wR8Q4qrAKICEr=~Q z_kfqE)Ca&z51T)luvEbV+@K6@7uQZF%82fatBQkcWnEA0!|1q#z_^0gfZZ;p7qNSl zF}>((CwG~bjK3eFT`W%(M9-F|14uF)42&QVSm*7Z_k-0#ZVKPu9i@g;bP-Gsy-qFc0?eCG3G@2&pF!++*6KnGOiFH{Ik7b&k zTB*TV2wHHkH3hJ86z2{p;Ad|>(39@_$=-jy_eY@*LYcr2e);B(_nv#_xpZ^3d4NLy zng_o8wYOnq;l`m`ht_O2$5zJjV&{g~mlONad)DnAVArVl88^~A@hLxh?P(h}tlsZN zaC-e|`e+Z}s*CAbES_Lt{nFjBtp8cv|7?c+HeFQ4D7k4b7c!PA431w!u#CKK<7Vee z6$CP`1!@>4dl^bi`Fpvfl$BYceBK*`vn7FBS)r)7=Fl-nJ|;3>!@Z%%FsdM-Sb3gW z)$y|O@RUWr`I0908_0#ptrBg(v)&OR;l&TmOS{Vl>?=-Bn}i0=i?eS{^{FSQSI-bQ zN#GO#iNLoBoF_m_s5(o4Y!Tz@q*v&UrouQfbe-;)fzv{F|AfFF6L^&X13rH?k#WjOfF(3x za^Yhx{oAzH&_}EYvH%k#K%MZ&V?UeN6dGJ- zz!hH!B_TAr?)|9#llo0Tbb;lppi6XNE#si8)`eIi4q9tnb@W&Stv(mL-5m7$C^HBB zgY;Q14km4_l$(PW?QR!h4>|DHy0DaT(CT&_pwuEj>Z6oe1g&=0FyXccJU-V!YPksd zJ7{1WJX-G}VPS$jF3Rv#fJqWYBom=P!TWk@{#y7<>NtI>gV8YYw?XD^x}%jtC1I?R zw^=2{tkBFqjvK}|PKuFXEKaQ=3DIsW_D!Txot9GkV=DN;uaR^*p<`#m>CI%++mCTNkMW-D_9<{`nmDz?U7elr?BtJ`L$94Z zZl678_V?Wa3RNH|%Sk8c^ywn_p-^@2t^4{O_xry4)wjIf3J%An)W3|$FLT^~q#uRD zmOuI6uT30xmlHU_G{Rk0zfG4-?6>){nSEO>TiCbtvK8Ov5!>l-8_KbQjdq;hjeWU)%ewM~I5*V$#T*=PuBUPi-m#f*iVuX5wKNg0&El30JaOwfE~hGz)b=V*eR?7+$^jI+#<99b_p8*w+b5p z9}`*uw+U^4+l6+(9YP1-PGJ+^E@79j8PD7;Y{9QRLKom(VJqN1;W5Dd!ZyGI!gj!e z!VbVgf~lYD*!?qVLSKhTaU8pyiY8B;!>R4mXk<9rVN=}wC(jL>xYQTEbn%ShFZ?)q z{#5vM&(lh<|3tW_Z{XCx)8XDzJ!iVZ{ZIEDSA6{gM+YwThtKz&VA%@4kN5Y}Z+cSy z)kJD|JdV?fUP~t86YKO>Zf&`F^X8VJggCloTpWqU2NOb6=rAkx zql1IdvDAd;cp{#P##37cZjVI=^P|bW3S;|0JAQr{vp&kvOuuZN=7vmy=}XSb7ItRF znRS}GWx8xbZ(0;r|A{9>R3R!30$H?!P{@z}53T~dYP!p%&4Q_3yPf93#dF*_#F@F2 zHeop~Wz}wTY0fzLu4(DgrWnfohUpJXKm;>YXJWR3&mYG}BFQA5xPhLG2~j?k;0F_; z7#&QF+~&vVmKgoqcub56d@N2K#=4Xr5)-3Z5rwW#C9X%~UHrh+Sdx#%BUeVENj@@? zii+__D$1krVgiFhj}W6NF&4cM<@-M73 z8c&7uX@}xr)P86@KG-#OTdc)1C#tk@?<&-`8P}7?06v=HmMgfX^_i`5OHY6y4OgyODIB6g&?Yue-s z7iKa|DMuj%rj)aIzG6xhC_Y!5QvKYUroIllSc7be9jG}J8!loan-XFO_tYVC0Y67Z z!s6JVSci++xQJ^gNejS4wXVksiQ6dcb^vr)ZbQ4gVdu2%5}T+7)OknLs?r2xO`?h?F9V=zg}-I9!?tgkD+8*`wxgzH?$bfm1op7< zq-Zamt|vu;Nl%0XhhPN*u;JT=Z@XXzk#{iC1& zR257R47f>4+ESdR8Eu-Pk=h|x1hbLanYc&DWnG!;mz(@1F6GfG#a+|T2y|ORBOslt zkmec_rs!A3UAU(I7Hr={U%aIuX`Wu&Cyr?Z@)Rf@#wj)dT75Ojt2}Wt4bNaKK1}`3 zGj7R`MnRi`0{S3P|q2>2UA4i^qGy;K+U5M=y4V&zw7PsxRDq>L^Z>I+mil zr}yZkGXvqHmj+IT&-M(QJlEaZ;Ze+qq~eIiZ^XnzT(OKL##H3qgtAri@#0Jgs2Rdf z_8e2oR{UypK*~qJTcUzu9*-%$E90pYcy?lp_;eCnKbm?XmW+XObl5~!uR8(Yiw$?a_HDbFBX_GGk06jr$T~*UA`g`E4xKr_x??s(Ufwp3%X?);Zyz`}gB-_ag{-qhrqAX%L2@3N9|BN6KeuyyhrD(lQSqjn({slG zvc2f+Sa5dCZOl3!lbw%Ag%3mLzCk-GRXAwk5WD{1zhLMg1n6jXGN@*w;x$b$$Y?aX@G$yLo6D!Zrj=ntuSvVUP8n^Y8_PtRveVx1EDZ(H_P5R7MD5MsJD|Q%C1d3O~8e*ooOl9G^{`;Hw z@s@T0=xFITjLtRU1MHY|rk&y{W0iK6jun;DVb!7aIh_EOh(q=Qn@rsN1aeA9FmV+# zKacW|yEJJHsKv(L#w-v`=B5^$y1yR6nVSF&91aLAG19u%ssPcDT zM>TkEGMNY`BcmhRMH(Wd`lx|D^pG4c(jY6fXOM5C7bWzk5+c?cXCrYyQSlB(Q{iMR z6%C7tL`tz8KYILRkK$$2E*wdvqN8Ie2#dPPRcewWs82+Qq#{by`HSbeFC8BUpX#P1 z3f3nV72Ac>2~Z=)1(g9RPIVOkA_an^t}0@JQWcIzZ)ydqg3Ugvusy;S4Mm}cElN6E zjDRU__A87bh>k!?MfDXMtFq!G@%m;$6ciWn$}lZL!~;~KMMQ_X)QqFa;UrB{8f$hi zq6Yy*$6uopO{L^dfA=V|Czk<00-anSc<1xWoWGX@IUpRZ`>@@p(P}g+NFW2pwK9%#=EpsOC!KF}> z9C~cNJ{vk9hYm=A1Ird%Ww#im9n?rBdVn}9BeX>4Na6q*nkTw7?y5(_F%c`2IE0*= zvDDyIVy=;!k=tzPQ)IJ6{@V8@ic*;tNvcVDEVwSohnSVA#PBe10_=IBp>(W@_h_}p zMw^Y4%Rg;bo1h5G)Yu7<$y)`6X*#*+EKPkB#w!RXmpcgV(X(j0;Q{in1}fbPCH^T9S;5jKCF# ztGBPCLfnB$i)R58Cq$3l#Nc>RB|`QKspAPTs+cc;pq+!DC9<0rK|m96v5&ItB5)1> zs{;~M*yV<0!t@OUf?>Hr+a^uZiZ$yc7pPV6Y12#=5{N>6$gKow`acN}*- zi_SF*&NZ)($j#g2=ACkLPuAHhJ9{N(FOx*>co&`gf|JkGWSwnTN=nYQyo6G>=xkYV zwq%fDlkD6i6+Y^MgU3@q#Wvte+(@7mKyie_LSir+R;9guy8Z-#&k|@O&<>zqDlyrR zz-GE}8^EwsGTWTAAaX7{eYS1OTp7SO*?`YRaL{V=FLOrVao9R()wMcM8%A{*#J_fE z;#Un@klZlE>1Ui{MQTLhCnonRKsZ(B;l8BF|s!{WLqmg!3}3I~%Wmoblqp87m# zQ;C3PPMbxmU`?BEm_&a{6OuTtbWH(4k;q5>FqCN)tTdC=1DYt^uea?+HRvR3TZ>`+ zvw;);^Q1-JE6JaxG$9N%aTr^Q)ss%>5}f+FyzMG!pEYgGXyRI-j`UqBq9L6oVy>QU z(w4R*jr~+%tlbw)X`A3K_Q#}2uO_*siKhBmrzwx8n8(;>Xs<>(Ij$(u8cQ&?8+le6 zEyI(H&n-7vgXX89{hPEr57E;wKfI;wR#V+H-Q;drp5|_vI(!rNPlB#8eV##VW7L*( zcua}NBuT9JRZ$XRAOtdEo1{7*agUD;@p*xYCoP-6C&p71jI3XbrpCp1a=%97lf!&_ z;>tCw6+8ClH4y@zB>gbdl+Y!{c=awTd>m43ERMA>=`Bg7E$S4NASw641*KkIQ`ZNL zp*uM!#>P@iE2KD3V)%OWwiv{e5!V;M$Blgn{svatc(y7D@+3v#q2qDkO>;5z$D8}} z_j_)Q<+Y{xbvpF`x=3A=tIPF)H%*F@L}}7HeSC`grl=|5haj*=h5d#c{LM%bt%{RA ziuz3?6)JiR=kY|LZe2ekIpJp{czoQ_%Ss_-t6mi3AQg0F2g9I&^d9?q%~@+i}xU?FPAa*T1^{&dzM@NxAmqv?u3pgt+NC zF#GxW5ozr)e3q&jrKWw^s{L}+e#x^x|Hy{c%;)8XJ-Ph%vcpP`1^AEv9$Ud4`_X&u z;4&A)qx5je-@MFKyYPHZrBrn!>p3cWj!K@R?=^PJZTO2usj(;9*dsUgOrObl>J~lC z3!dhzhnGFPNc$IJZ7?m8FK2`jCkNW9ow(6K%bxiUc z`v}K!2elk0NfI}HU_M%XEX4g)sG`?y`78dor`Kfp@n#c#{CK+`=RYyoa9*C7|MQj1 zeE(|1^wF4kMn{TKx%?qmhrwirO-5or31w!Q8-lqdrDIz~SzAx^jRbho3;{r&hbB8a z^m)=H3Q$s;LIAL*EldD-2-|�ALa9Mdp<@{CeA2(mn_PpRPZQ<*9uG0YcN*a2y1P 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 literal 0 HcmV?d00001 diff --git a/Python/Startup/nt_loader/__pycache__/fn_ui.cpython-311.pyc b/Python/Startup/nt_loader/__pycache__/fn_ui.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fa9af346dcd19140268ab65e82349f9a2530df1 GIT binary patch literal 163212 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 0: + download_success = True + else: + raise Exception("Direct download produced empty file") + except: + traceback_info = sys.exc_info() + exctype, value, tb = traceback_info + while tb.tb_next: + tb = tb.tb_next + func_name = tb.tb_frame.f_code.co_name + line_no = tb.tb_lineno + UPDATE_SIGNALS.details_text.emit( + True, + f"SGDownloadWorker Error in function {func_name} at line {line_no}: {str(value)}", + ) finally: self.sg_instance_pool.release_sg_instance(sg_instance) self.signals.finished.emit(self.download_file_path) diff --git a/Python/StartupUI/__pycache__/ntl_main.cpython-311.pyc b/Python/StartupUI/__pycache__/ntl_main.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b1954fec0da19ed031e795a4dad5f643bac7754 GIT binary patch literal 3435 zcma)8O>7&-6`uVeMN*_FN}_&RC!J6(WVVh31WA!PhGR*VEY&h2N0N;Y1&B3wM6R^l zWoDLUDM*EY7>E)Ss17Zx06yr@x+#3>t(RVU>X8%{5V1f214RzK5ikM>IrYshmm(v( z=i0!xLJu7@@JbIg=2O+cQ&A1} z@CJOICj1Xh-%~jof4vTBs0VYf3p3oqNpx`{J)EI)P7l4KpW3fRLHpR#Kz5kK$*?-` zRLqX3@y95eB;wYnKYwe??;Vf(z3#6%NRrP)gr39e6|kYqXmLttqET`{2 zp-eN4wCu>#G%Xqg36zHg4MF3C*2t$7V&sVcRsc?Oi{9jbs1 zq)kDU9*6csE8ZcaEpA%3sPeA(N>>Mz-@?MyiyFg>SPWOnIJ1s**S&btq}VDFY>+B0 zd!EG)Yq)5d+Yl32Gc42P=M`OlsN}aJ7)ok;cGDs>L#pjyn5RUsh?+4H3fE%IQm6%1ZEG{#nKnoAN`(RXCMc~~t|2|sb*&bYN5rr=XnPfqm1|sMMOC?coHq?svmou-t^_f@uW(T*!@594?kz68qgj`scu-Wz zZBx(E0y}q>r`Z+rp_}m6@RCNTc@FQfJuaTc8wRXZ1>b=rSj}d|$aB41nVFrpmJLu- z(X}0jt4OA@O)%e3bj={x+iLQDB=c_o-eGuOz7GlYN8t$yza|l1owU8l^J|FzJ+voS z{uu?pyTUHAI?033GYQfSUavrsbJG<%xirn9hSkatVRWnqxdRH-&0vrNih`t9d#R=qflfjPd z#C$x<+$M%2vVs$=x~GRDR!hzRR{>m~Q{8ihaR>9n-v2%~v%%oxn1NKJHL8>}N_J)p z2#^_-JaRic5qO|@tC-=zEOZc+tj-jp!Q(caPrr zCYk;^^>yhV*+z27PA(lRew!Hm!}w`p>LfAMNTlsV`e3dZ9r*pqmn%o3jVQLGxE{qX zqCYx~;*%(DL{oM&Rrl-JLFOX;?Cgy3qwllXpUp|=pVH{ugrxl)j+1nlCV}qAd6N<+ z)Ls#DPfTZUyKRT|F2g8~Ye!~9vr4($od^R@=!Bn|a9Ri4M5Za=P|TY*p;~X=x5M?xxTxM29v+rIgO`I;;BEs_or+2oM@l|lM&PB2|@XF&58H0Dw=CLFE#owj^^fqMb3hh)JGi#f5ig?k$dnfZm>+R{hsbOf|^eMjHo`UhR_gKCr% z;4Vif9MN#VGV8C1Ug1Nz|Gy7iFPUmZCpYK^@XIebY#rK`BnUzih4=eaTmxw0(FEW_ zvma|+LYLq9SF9ep4|PA%3Qh_?ZJ|z+5s(mk9I;X26s1lOq`)ug@BgZS?%3!~-LJ0I F{|jCJZ1eyC literal 0 HcmV?d00001 diff --git a/Python/StartupUI/ntl_main.py b/Python/StartupUI/ntl_main.py index 699d4f1..4b5a2a4 100644 --- a/Python/StartupUI/ntl_main.py +++ b/Python/StartupUI/ntl_main.py @@ -46,22 +46,39 @@ def after_project_load(event): """This sets up NT loader for the new project by hooking into the callback "kAfterNewProjectCreated" + BLACKSHIP OVERRIDE: + Into the callback "kAfterProjectLoad" instead. + + With ayon, there is a Project called 'Tag Presets' + which is loaded first, then when we open/create a project, + 'Tag Presets' is updated as a Startup Project. + Because of that the kAfterProjectLoad event is called multiple times. + That's why we added a condition for that callback happens after the + Tag Presets setup. + Args: event (object): Hiero callback event object . Unused in this function """ + # BLACKSHIP OVERRIDE + projects = hiero.core.projects(hiero.core.Project.kStartupProjects) + if not projects: + return + loading_dialog = LoadingDialog("Initializing\nNuke Timeline Loader") loading_dialog.show() def on_load(): - session_token, sg = nt_loader.fn_sg_func.session_handler() - widget = ShotgridLoaderWidget(sg, session_token, SCHEMA_MAP) - # widget.show() - wm = hiero.ui.windowManager() - wm.addWindow(widget) - loading_dialog.close() + try: + session_token, sg = nt_loader.fn_sg_func.session_handler() + widget = ShotgridLoaderWidget(sg, session_token, SCHEMA_MAP) + # widget.show() + wm = hiero.ui.windowManager() + wm.addWindow(widget) + finally: + loading_dialog.close() QTimer.singleShot(3000, on_load) # Register the NTL after_project_load function to be triggered on hiero callback -hiero.core.events.registerInterest("kAfterNewProjectCreated", after_project_load) +hiero.core.events.registerInterest("kAfterProjectLoad", after_project_load) From fb3c26f0f0753ff8ae9fa1ed8bf7257e24dcfec1 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 14:58:11 +0000 Subject: [PATCH 02/12] Add .gitignore and fix 'No module named requests' for Hiero v17 - Add .gitignore to exclude .DS_Store, __pycache__, IDE files, etc. - Add auto-dependency installer in nt_loader/__init__.py that detects and installs missing packages (requests, pillow, fileseq) on startup, fixing the initialization failure on Hiero/Nuke 17+ environments where the bundled Python does not include these packages. - Update ntl_pip_dependency_installer.py with Nuke 17 path comments. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- .gitignore | 25 +++++++++++ Python/Startup/nt_loader/__init__.py | 66 ++++++++++++++++++++++++++++ ntl_pip_dependency_installer.py | 4 ++ 3 files changed, 95 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cde4237 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# macOS +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.egg-info/ +dist/ +build/ +*.egg + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# Environment +.env +*.log diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index e69de29..f068c94 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -0,0 +1,66 @@ +""" +NukeTimelineLoader - nt_loader package init. + +Ensures required third-party dependencies (e.g. requests) are available +before the rest of the package is imported. This handles environments like +Hiero/Nuke 17+ where the bundled Python may not include these packages. +""" + +import subprocess +import sys +import os + +# Dependencies that must be importable for nt_loader to work. +_REQUIRED_PACKAGES = { + "requests": "requests", + "PIL": "pillow", + "fileseq": "fileseq", +} + + +def _ensure_dependencies(): + """Check for required packages and pip-install any that are missing.""" + missing = [] + for import_name, pip_name in _REQUIRED_PACKAGES.items(): + try: + __import__(import_name) + except ImportError: + missing.append(pip_name) + + if not missing: + return + + # Determine a target directory for installed packages + target = os.environ.get("NTL_SITE_PACKAGES") + if not target: + # Use user site-packages as a safe default + import site + target = site.getusersitepackages() + + os.makedirs(target, exist_ok=True) + + # Ensure target is on sys.path so subsequent imports find the packages + if target not in sys.path: + sys.path.insert(0, target) + + print(f"[NukeTimelineLoader] Installing missing dependencies: {missing}") + try: + subprocess.check_call( + [ + sys.executable, "-m", "pip", "install", + "--target", target, + "--upgrade", + ] + + missing, + timeout=120, + ) + print("[NukeTimelineLoader] Dependencies installed successfully.") + except Exception as exc: + print( + f"[NukeTimelineLoader] WARNING: Could not auto-install dependencies: {exc}\n" + f" Please install manually: pip install {' '.join(missing)}\n" + f" Or use ntl_pip_dependency_installer.py" + ) + + +_ensure_dependencies() diff --git a/ntl_pip_dependency_installer.py b/ntl_pip_dependency_installer.py index 9a5ddfc..886d90e 100644 --- a/ntl_pip_dependency_installer.py +++ b/ntl_pip_dependency_installer.py @@ -12,6 +12,10 @@ # __INTEGRATE__ Set the alternate site-packages location +# For Nuke/Hiero 15.x: +# alternate_location = "C:/Program Files/Nuke15.1v1/pythonextensions/site-packages" +# For Nuke/Hiero 17.x (uses Python 3.11+): +# alternate_location = "C:/Program Files/Nuke17.0v1/pythonextensions/site-packages" alternate_location = "C:/Program Files/Nuke15.1v1/pythonextensions/site-packages" # Ensure the alternate location exists From 05ab992e4b719c7703d542aa4cb01894b1ac70d6 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 15:24:58 +0000 Subject: [PATCH 03/12] Fix auto-install: use pip._internal instead of subprocess In Nuke/Hiero 17+ on macOS, sys.executable points to the Nuke binary (not a Python interpreter), causing SIGSEGV when spawning a subprocess with "-m pip". Switch to pip._internal.cli.main which runs pip in-process, avoiding the crash entirely. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index f068c94..e0f610e 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -6,7 +6,6 @@ Hiero/Nuke 17+ where the bundled Python may not include these packages. """ -import subprocess import sys import os @@ -45,20 +44,24 @@ def _ensure_dependencies(): print(f"[NukeTimelineLoader] Installing missing dependencies: {missing}") try: - subprocess.check_call( - [ - sys.executable, "-m", "pip", "install", - "--target", target, - "--upgrade", - ] - + missing, - timeout=120, - ) - print("[NukeTimelineLoader] Dependencies installed successfully.") + # Use pip._internal instead of subprocess because in Nuke/Hiero 17+ + # sys.executable points to the Nuke binary (not a Python interpreter), + # which causes SIGSEGV when invoked with "-m pip". + from pip._internal.cli.main import main as pip_main + pip_args = ["install", "--target", target, "--upgrade"] + missing + exit_code = pip_main(pip_args) + if exit_code == 0: + print("[NukeTimelineLoader] Dependencies installed successfully.") + # Refresh sys.path so newly installed packages are importable + import importlib + importlib.invalidate_caches() + else: + raise RuntimeError(f"pip exited with code {exit_code}") except Exception as exc: print( f"[NukeTimelineLoader] WARNING: Could not auto-install dependencies: {exc}\n" - f" Please install manually: pip install {' '.join(missing)}\n" + f" Please install manually by running in a terminal:\n" + f" pip3 install --target \"{target}\" {' '.join(missing)}\n" f" Or use ntl_pip_dependency_installer.py" ) From 6b61d18c9c372a1e41f66cabe2a3c5ac9e22dd8a Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 15:36:02 +0000 Subject: [PATCH 04/12] Add tk-core to auto-install dependencies for Hiero v17 tank_vendor and tank modules (from tk-core) are not bundled in Hiero 17.0v1. Add tk-core git URL to the auto-install list so it gets installed alongside requests, pillow, and fileseq. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index e0f610e..cedea5f 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -10,10 +10,12 @@ import os # Dependencies that must be importable for nt_loader to work. +# Format: { "import_name": "pip_name_or_url" } _REQUIRED_PACKAGES = { "requests": "requests", "PIL": "pillow", "fileseq": "fileseq", + "tank_vendor": "git+https://github.com/shotgunsoftware/tk-core.git@v0.21.7", } From 3ad1adbe2c13b92ac7fa73c024ab2319a9cd7d02 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 15:40:13 +0000 Subject: [PATCH 05/12] =?UTF-8?q?Add=20PySide2=E2=86=92PySide6=20shim=20fo?= =?UTF-8?q?r=20tk-core=20compatibility=20in=20Hiero=20v17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tk-core compiles Qt resource files against PySide2 and calls PySide2.QtCore.qRegisterResourceData at import time. Hiero 17 only ships PySide6, causing 'NoneType' attribute errors. This adds a comprehensive PySide2 shim that: - Creates a fake PySide2 module redirecting to PySide6 - Maps all common sub-modules (QtCore, QtGui, QtWidgets, etc.) - Provides no-op stubs for qRegisterResourceData and qUnregisterResourceData which were removed in PySide6 The shim runs before any tk-core import to prevent the crash. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 61 +++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index cedea5f..f9f415a 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -4,12 +4,71 @@ Ensures required third-party dependencies (e.g. requests) are available before the rest of the package is imported. This handles environments like Hiero/Nuke 17+ where the bundled Python may not include these packages. + +Also installs a PySide2 → PySide6 compatibility shim so that tk-core +(which expects PySide2) works correctly under Hiero 17+ (PySide6). """ import sys import os -# Dependencies that must be importable for nt_loader to work. +# --------------------------------------------------------------------------- +# PySide2 → PySide6 shim (must run before any tk-core / tank import) +# --------------------------------------------------------------------------- +def _install_pyside2_shim(): + """Create a fake 'PySide2' package that redirects to PySide6. + + tk-core compiles Qt resource files against PySide2, calling + PySide2.QtCore.qRegisterResourceData at import time. Hiero 17+ + ships only PySide6, so we need this shim to satisfy those imports. + """ + if "PySide2" in sys.modules: + return # already available (Hiero 16 or earlier) + + try: + import PySide6 # noqa: F401 – just checking availability + except ImportError: + return # neither PySide2 nor PySide6 – nothing we can do + + import types + import importlib + + # Top-level fake PySide2 package + pyside2 = types.ModuleType("PySide2") + pyside2.__path__ = [] + pyside2.__package__ = "PySide2" + sys.modules["PySide2"] = pyside2 + + # Map common PySide2 sub-modules to their PySide6 equivalents + _submodules = [ + "QtCore", "QtGui", "QtWidgets", "QtNetwork", "QtWebEngineWidgets", + "QtSvg", "QtOpenGL", "QtPrintSupport", "QtUiTools", + ] + for name in _submodules: + target = f"PySide6.{name}" + try: + real = importlib.import_module(target) + alias = f"PySide2.{name}" + sys.modules[alias] = real + setattr(pyside2, name, real) + except ImportError: + pass + + # Ensure qRegisterResourceData / qUnregisterResourceData exist on QtCore. + # In PySide6 these moved or were removed; provide no-op stubs so compiled + # resource files from tk-core don't crash on import. + from PySide6 import QtCore as _QtCore + if not hasattr(_QtCore, "qRegisterResourceData"): + _QtCore.qRegisterResourceData = lambda *args, **kwargs: None + if not hasattr(_QtCore, "qUnregisterResourceData"): + _QtCore.qUnregisterResourceData = lambda *args, **kwargs: None + + +_install_pyside2_shim() + +# --------------------------------------------------------------------------- +# Auto-install missing dependencies +# --------------------------------------------------------------------------- # Format: { "import_name": "pip_name_or_url" } _REQUIRED_PACKAGES = { "requests": "requests", From 201381464494da44efba7c377a8973acd75978c1 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 15:47:45 +0000 Subject: [PATCH 06/12] Simplify Qt compat: patch resource stubs instead of competing shim Remove the full PySide2 shim from __init__.py (menu.py already handles that) and replace it with a focused patch that adds qRegisterResourceData and qUnregisterResourceData stubs on both PySide6.QtCore and any PySide2.QtCore shim already in sys.modules. This avoids conflicts between two competing shims that could leave QtCore as None. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 72 ++++++++++------------------ 1 file changed, 26 insertions(+), 46 deletions(-) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index f9f415a..7cea010 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -5,66 +5,46 @@ before the rest of the package is imported. This handles environments like Hiero/Nuke 17+ where the bundled Python may not include these packages. -Also installs a PySide2 → PySide6 compatibility shim so that tk-core -(which expects PySide2) works correctly under Hiero 17+ (PySide6). +Also patches PySide6.QtCore with Qt5 resource stubs (qRegisterResourceData) +that tk-core expects but PySide6 removed. """ import sys import os # --------------------------------------------------------------------------- -# PySide2 → PySide6 shim (must run before any tk-core / tank import) +# Qt5 resource function stubs (must run before any tk-core / tank import) # --------------------------------------------------------------------------- -def _install_pyside2_shim(): - """Create a fake 'PySide2' package that redirects to PySide6. +def _patch_qt_resource_functions(): + """Ensure qRegisterResourceData / qUnregisterResourceData exist. - tk-core compiles Qt resource files against PySide2, calling - PySide2.QtCore.qRegisterResourceData at import time. Hiero 17+ - ships only PySide6, so we need this shim to satisfy those imports. + tk-core's compiled Qt resource files call these functions which existed + in PySide2 (Qt5) but were removed in PySide6 (Qt6). We add no-op stubs + directly on PySide6.QtCore AND on any PySide2.QtCore shim already in + sys.modules (e.g. from menu.py). This is safe to call multiple times. """ - if "PySide2" in sys.modules: - return # already available (Hiero 16 or earlier) + _stub = lambda *args, **kwargs: True + for mod_name in ("PySide6.QtCore", "PySide2.QtCore"): + mod = sys.modules.get(mod_name) + if mod is not None: + if not hasattr(mod, "qRegisterResourceData"): + mod.qRegisterResourceData = _stub + if not hasattr(mod, "qUnregisterResourceData"): + mod.qUnregisterResourceData = _stub + + # Also patch the real PySide6.QtCore if not yet in sys.modules try: - import PySide6 # noqa: F401 – just checking availability + from PySide6 import QtCore as _qtcore + if not hasattr(_qtcore, "qRegisterResourceData"): + _qtcore.qRegisterResourceData = _stub + if not hasattr(_qtcore, "qUnregisterResourceData"): + _qtcore.qUnregisterResourceData = _stub except ImportError: - return # neither PySide2 nor PySide6 – nothing we can do - - import types - import importlib - - # Top-level fake PySide2 package - pyside2 = types.ModuleType("PySide2") - pyside2.__path__ = [] - pyside2.__package__ = "PySide2" - sys.modules["PySide2"] = pyside2 - - # Map common PySide2 sub-modules to their PySide6 equivalents - _submodules = [ - "QtCore", "QtGui", "QtWidgets", "QtNetwork", "QtWebEngineWidgets", - "QtSvg", "QtOpenGL", "QtPrintSupport", "QtUiTools", - ] - for name in _submodules: - target = f"PySide6.{name}" - try: - real = importlib.import_module(target) - alias = f"PySide2.{name}" - sys.modules[alias] = real - setattr(pyside2, name, real) - except ImportError: - pass - - # Ensure qRegisterResourceData / qUnregisterResourceData exist on QtCore. - # In PySide6 these moved or were removed; provide no-op stubs so compiled - # resource files from tk-core don't crash on import. - from PySide6 import QtCore as _QtCore - if not hasattr(_QtCore, "qRegisterResourceData"): - _QtCore.qRegisterResourceData = lambda *args, **kwargs: None - if not hasattr(_QtCore, "qUnregisterResourceData"): - _QtCore.qUnregisterResourceData = lambda *args, **kwargs: None + pass -_install_pyside2_shim() +_patch_qt_resource_functions() # --------------------------------------------------------------------------- # Auto-install missing dependencies From 60c8bd513b8c63a7cff067d9c09fcbf950d692ec Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 16:12:01 +0000 Subject: [PATCH 07/12] =?UTF-8?q?Add=20shiboken2=E2=86=92shiboken6=20shim?= =?UTF-8?q?=20and=20PySide2.=5F=5Fversion=5F=5F=20for=20Hiero=20v17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause: tk-core's QtImporter tries 'import shiboken2' in its PySide2 code path. Hiero 17 bundles shiboken6 (not shiboken2), so that path fails. The PySide6 fallback also fails, leaving QtCore=None which causes the 'NoneType has no attribute qRegisterResourceData' error. Fix: alias shiboken2→shiboken6 in sys.modules so tk-core's PySide2 path succeeds. Also set PySide2.__version__ which tk-core reads. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 36 ++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index 7cea010..c10909e 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -5,13 +5,36 @@ before the rest of the package is imported. This handles environments like Hiero/Nuke 17+ where the bundled Python may not include these packages. -Also patches PySide6.QtCore with Qt5 resource stubs (qRegisterResourceData) -that tk-core expects but PySide6 removed. +Also provides compatibility shims so that tk-core (built for PySide2/Qt5) +works correctly under Hiero 17+ (PySide6/Qt6). """ import sys import os +# --------------------------------------------------------------------------- +# shiboken2 → shiboken6 shim (must run before any tk-core / tank import) +# --------------------------------------------------------------------------- +def _install_shiboken2_shim(): + """Alias shiboken2 to shiboken6. + + tk-core's QtImporter tries to 'import shiboken2' when using the PySide2 + code path. Hiero 17+ ships shiboken6 (not shiboken2). Without this + shim, the PySide2 path fails, AND the PySide6 fallback may also fail, + leaving QtCore = None. + """ + if "shiboken2" in sys.modules: + return + + try: + import shiboken6 + sys.modules["shiboken2"] = shiboken6 + except ImportError: + pass + + +_install_shiboken2_shim() + # --------------------------------------------------------------------------- # Qt5 resource function stubs (must run before any tk-core / tank import) # --------------------------------------------------------------------------- @@ -43,6 +66,15 @@ def _patch_qt_resource_functions(): except ImportError: pass + # Ensure PySide2 shim has __version__ if it exists (tk-core reads it) + pyside2 = sys.modules.get("PySide2") + if pyside2 is not None and not hasattr(pyside2, "__version__"): + try: + import PySide6 + pyside2.__version__ = PySide6.__version__ + except ImportError: + pyside2.__version__ = "6.0.0" + _patch_qt_resource_functions() From a2fb33a48d96c5ad702a103eca23a8a5bb7de784 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 16:16:04 +0000 Subject: [PATCH 08/12] Force tk-core to use PySide6 path by hiding PySide2 shim during import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PySide2 shim from menu.py tricks tk-core's QtImporter into taking the PySide2 code path, but pyside2_patcher then fails because PySide6 modules lack Qt5-specific classes (e.g. QTextCodec). Fix: temporarily remove PySide2/shiboken2 from sys.modules while importing tank, so QtImporter skips PySide2 and uses its native PySide6 support (pyside6_patcher). After import, PySide2 shim is restored for other code. Also removes the shiboken2→shiboken6 shim which is no longer needed. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 95 +++++++++++++++------------- 1 file changed, 51 insertions(+), 44 deletions(-) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index c10909e..2b6fec3 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -5,36 +5,13 @@ before the rest of the package is imported. This handles environments like Hiero/Nuke 17+ where the bundled Python may not include these packages. -Also provides compatibility shims so that tk-core (built for PySide2/Qt5) -works correctly under Hiero 17+ (PySide6/Qt6). +Also pre-imports tk-core (tank) using PySide6 natively so its QtImporter +picks the correct code path, and patches Qt resource stubs removed in Qt6. """ import sys import os -# --------------------------------------------------------------------------- -# shiboken2 → shiboken6 shim (must run before any tk-core / tank import) -# --------------------------------------------------------------------------- -def _install_shiboken2_shim(): - """Alias shiboken2 to shiboken6. - - tk-core's QtImporter tries to 'import shiboken2' when using the PySide2 - code path. Hiero 17+ ships shiboken6 (not shiboken2). Without this - shim, the PySide2 path fails, AND the PySide6 fallback may also fail, - leaving QtCore = None. - """ - if "shiboken2" in sys.modules: - return - - try: - import shiboken6 - sys.modules["shiboken2"] = shiboken6 - except ImportError: - pass - - -_install_shiboken2_shim() - # --------------------------------------------------------------------------- # Qt5 resource function stubs (must run before any tk-core / tank import) # --------------------------------------------------------------------------- @@ -43,20 +20,10 @@ def _patch_qt_resource_functions(): tk-core's compiled Qt resource files call these functions which existed in PySide2 (Qt5) but were removed in PySide6 (Qt6). We add no-op stubs - directly on PySide6.QtCore AND on any PySide2.QtCore shim already in - sys.modules (e.g. from menu.py). This is safe to call multiple times. + directly on PySide6.QtCore. This is safe to call multiple times. """ _stub = lambda *args, **kwargs: True - for mod_name in ("PySide6.QtCore", "PySide2.QtCore"): - mod = sys.modules.get(mod_name) - if mod is not None: - if not hasattr(mod, "qRegisterResourceData"): - mod.qRegisterResourceData = _stub - if not hasattr(mod, "qUnregisterResourceData"): - mod.qUnregisterResourceData = _stub - - # Also patch the real PySide6.QtCore if not yet in sys.modules try: from PySide6 import QtCore as _qtcore if not hasattr(_qtcore, "qRegisterResourceData"): @@ -66,18 +33,58 @@ def _patch_qt_resource_functions(): except ImportError: pass - # Ensure PySide2 shim has __version__ if it exists (tk-core reads it) - pyside2 = sys.modules.get("PySide2") - if pyside2 is not None and not hasattr(pyside2, "__version__"): - try: - import PySide6 - pyside2.__version__ = PySide6.__version__ - except ImportError: - pyside2.__version__ = "6.0.0" + # Also patch any PySide2.QtCore shim already in sys.modules + mod = sys.modules.get("PySide2.QtCore") + if mod is not None: + if not hasattr(mod, "qRegisterResourceData"): + mod.qRegisterResourceData = _stub + if not hasattr(mod, "qUnregisterResourceData"): + mod.qUnregisterResourceData = _stub _patch_qt_resource_functions() + +# --------------------------------------------------------------------------- +# Pre-import tank using PySide6 natively +# --------------------------------------------------------------------------- +def _import_tank_with_pyside6(): + """Pre-import tank while PySide2 shim is hidden from sys.modules. + + tk-core's QtImporter tries PySide2 first, then PySide6. The PySide2 + shim from menu.py makes the PySide2 path succeed initially, but then + pyside2_patcher fails because the underlying modules are PySide6 + (e.g. QTextCodec was removed in Qt6). + + By temporarily hiding the PySide2 shim, QtImporter skips the PySide2 + path and uses its native PySide6 support (pyside6_patcher) instead. + Once tank is imported, we restore the PySide2 shim for any other code + that may depend on it. + """ + # Save and temporarily remove PySide2/shiboken2 shim entries + saved = {} + for key in list(sys.modules): + if key == "PySide2" or key.startswith("PySide2.") or key == "shiboken2": + saved[key] = sys.modules.pop(key) + + try: + import tank # noqa: F401 - triggers QtImporter which now uses PySide6 + print("[NukeTimelineLoader] tank imported successfully via PySide6 path") + except Exception as exc: + print(f"[NukeTimelineLoader] WARNING: tank pre-import failed: {exc}") + finally: + # Restore PySide2 shim for other code that depends on it + sys.modules.update(saved) + + +# Only run on PySide6 environments (Hiero 17+) where the PySide2 shim exists +if "PySide2" in sys.modules: + try: + import PySide6 # noqa: F401 - check if we're in a PySide6 environment + _import_tank_with_pyside6() + except ImportError: + pass + # --------------------------------------------------------------------------- # Auto-install missing dependencies # --------------------------------------------------------------------------- From 38820605df122eed9c6b0c4c7e26b1ba6c7e7cb1 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 16:19:18 +0000 Subject: [PATCH 09/12] Patch qt_abstraction with PySide6 when QtImporter leaves QtCore=None Both PySide2 and PySide6 paths in tk-core's QtImporter can fail silently (missing pyside6_patcher, missing shiboken, etc.), leaving QtCore=None in qt_abstraction. This causes resources_rc.py to crash when login_dialog is imported later. Fix: after importing tank, check if qt_abstraction.QtCore is None and inject PySide6 modules directly. This guarantees resources_rc.py gets valid Qt modules regardless of which QtImporter path succeeded or failed. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index 2b6fec3..be47a25 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -68,8 +68,23 @@ def _import_tank_with_pyside6(): saved[key] = sys.modules.pop(key) try: - import tank # noqa: F401 - triggers QtImporter which now uses PySide6 - print("[NukeTimelineLoader] tank imported successfully via PySide6 path") + import tank # noqa: F401 - triggers QtImporter + print("[NukeTimelineLoader] tank imported via PySide6 path") + + # QtImporter may fail silently on BOTH PySide2 and PySide6 paths + # (e.g. missing pyside6_patcher), leaving QtCore = None. + # Fix: inject PySide6 modules directly into qt_abstraction. + try: + import tank.authentication.ui.qt_abstraction as _qa + if _qa.QtCore is None: + from PySide6 import QtCore, QtGui, QtNetwork + _qa.QtCore = QtCore + _qa.QtGui = QtGui + _qa.QtNetwork = QtNetwork + print("[NukeTimelineLoader] Patched qt_abstraction with PySide6 modules") + except ImportError: + pass + except Exception as exc: print(f"[NukeTimelineLoader] WARNING: tank pre-import failed: {exc}") finally: From 441a677e273f76de6b65ada38c3a89cc0d12d71e Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 16:21:56 +0000 Subject: [PATCH 10/12] Merge QtWidgets+QtCore classes into QtGui for PySide1-style API tk-core expects a PySide1-style API where QtGui contains all widget classes and model classes like QSortFilterProxyModel. In PySide6 these are split across QtGui, QtWidgets, and QtCore. Since both pyside2_patcher and pyside6_patcher fail in this environment, create a merged QtGui module that combines all three, matching the API that tk-core's authentication UI expects. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index be47a25..c4b8032 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -77,9 +77,30 @@ def _import_tank_with_pyside6(): try: import tank.authentication.ui.qt_abstraction as _qa if _qa.QtCore is None: - from PySide6 import QtCore, QtGui, QtNetwork + from PySide6 import QtCore, QtGui, QtWidgets, QtNetwork + # tk-core expects a PySide1-style API where QtGui contains + # everything from QtWidgets + some classes from QtCore. + # The pyside2/6_patcher normally does this, but since both + # patchers failed, we merge the modules ourselves. + import types + _merged_gui = types.ModuleType("PySide6.QtGui._merged") + # Start with all QtGui attributes + for attr in dir(QtGui): + if not attr.startswith("_"): + setattr(_merged_gui, attr, getattr(QtGui, attr)) + # Add all QtWidgets classes (PySide1 had these in QtGui) + for attr in dir(QtWidgets): + if not attr.startswith("_"): + setattr(_merged_gui, attr, getattr(QtWidgets, attr)) + # Add QtCore classes that PySide1 exposed via QtGui + for attr in ("QSortFilterProxyModel", "QItemSelectionModel", + "QStringListModel", "QAbstractProxyModel", + "QItemSelection", "QItemSelectionRange"): + if hasattr(QtCore, attr): + setattr(_merged_gui, attr, getattr(QtCore, attr)) + _qa.QtCore = QtCore - _qa.QtGui = QtGui + _qa.QtGui = _merged_gui _qa.QtNetwork = QtNetwork print("[NukeTimelineLoader] Patched qt_abstraction with PySide6 modules") except ImportError: From f9b2eacce87770c17a4d8321314524eea0420a0b Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 16:24:28 +0000 Subject: [PATCH 11/12] Add qtpy to auto-install dependencies fn_ui.py imports from qtpy which is not bundled with Hiero 17. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index c4b8032..c8938ff 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -129,6 +129,7 @@ def _import_tank_with_pyside6(): "requests": "requests", "PIL": "pillow", "fileseq": "fileseq", + "qtpy": "qtpy", "tank_vendor": "git+https://github.com/shotgunsoftware/tk-core.git@v0.21.7", } From 3c6eb56708875343f77f2c76c297cf5fbd025baa Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Mar 2026 16:27:07 +0000 Subject: [PATCH 12/12] Add opencv-python (cv2) to auto-install dependencies fn_helpers.py imports cv2 which is not bundled with Hiero 17. https://claude.ai/code/session_014bBD7aMQkSA1bZsBr62usL --- Python/Startup/nt_loader/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Python/Startup/nt_loader/__init__.py b/Python/Startup/nt_loader/__init__.py index c8938ff..376a7c3 100644 --- a/Python/Startup/nt_loader/__init__.py +++ b/Python/Startup/nt_loader/__init__.py @@ -130,6 +130,7 @@ def _import_tank_with_pyside6(): "PIL": "pillow", "fileseq": "fileseq", "qtpy": "qtpy", + "cv2": "opencv-python", "tank_vendor": "git+https://github.com/shotgunsoftware/tk-core.git@v0.21.7", }