From 451ef32b041ccf7826e10265c0a89a0ddecdd5e4 Mon Sep 17 00:00:00 2001 From: gillosae Date: Sat, 14 Sep 2024 16:06:39 +0000 Subject: [PATCH] test import fixes --- .../conftest.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 602 bytes conftest.py | 4 ++++ src/grafx/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 250 bytes src/grafx/__pycache__/utils.cpython-312.pyc | Bin 0 -> 7178 bytes .../data/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 371 bytes .../data/__pycache__/batch.cpython-312.pyc | Bin 0 -> 1696 bytes .../data/__pycache__/configs.cpython-312.pyc | Bin 0 -> 6331 bytes .../data/__pycache__/conversion.cpython-312.pyc | Bin 0 -> 3708 bytes .../data/__pycache__/graph.cpython-312.pyc | Bin 0 -> 13793 bytes .../data/__pycache__/tensor.cpython-312.pyc | Bin 0 -> 4667 bytes .../draw/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 194 bytes .../draw/__pycache__/bezier.cpython-312.pyc | Bin 0 -> 3651 bytes src/grafx/draw/__pycache__/edge.cpython-312.pyc | Bin 0 -> 2544 bytes .../draw/__pycache__/graph.cpython-312.pyc | Bin 0 -> 5484 bytes src/grafx/draw/__pycache__/node.cpython-312.pyc | Bin 0 -> 5488 bytes .../draw/__pycache__/position.cpython-312.pyc | Bin 0 -> 6797 bytes .../draw/__pycache__/style.cpython-312.pyc | Bin 0 -> 3795 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1369 bytes .../__pycache__/container.cpython-312.pyc | Bin 0 -> 14238 bytes .../__pycache__/delay.cpython-312.pyc | Bin 0 -> 8257 bytes .../__pycache__/dynamics.cpython-312.pyc | Bin 0 -> 30124 bytes .../processors/__pycache__/eq.cpython-312.pyc | Bin 0 -> 20779 bytes .../__pycache__/filter.cpython-312.pyc | Bin 0 -> 33879 bytes .../__pycache__/nonlinear.cpython-312.pyc | Bin 0 -> 18447 bytes .../__pycache__/reverb.cpython-312.pyc | Bin 0 -> 20676 bytes .../__pycache__/stereo.cpython-312.pyc | Bin 0 -> 8517 bytes .../core/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 162 bytes .../__pycache__/convolution.cpython-312.pyc | Bin 0 -> 6846 bytes .../core/__pycache__/delay.cpython-312.pyc | Bin 0 -> 7851 bytes .../core/__pycache__/envelope.cpython-312.pyc | Bin 0 -> 5119 bytes .../__pycache__/fft_filterbank.cpython-312.pyc | Bin 0 -> 6772 bytes .../core/__pycache__/fir.cpython-312.pyc | Bin 0 -> 5394 bytes .../core/__pycache__/geq.cpython-312.pyc | Bin 0 -> 4566 bytes .../core/__pycache__/iir.cpython-312.pyc | Bin 0 -> 9218 bytes .../core/__pycache__/midside.cpython-312.pyc | Bin 0 -> 891 bytes .../core/__pycache__/noise.cpython-312.pyc | Bin 0 -> 4339 bytes .../core/__pycache__/scale.cpython-312.pyc | Bin 0 -> 6558 bytes .../core/__pycache__/utils.cpython-312.pyc | Bin 0 -> 1327 bytes .../render/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 336 bytes .../render/__pycache__/core.cpython-312.pyc | Bin 0 -> 6113 bytes .../render/__pycache__/graph.cpython-312.pyc | Bin 0 -> 5705 bytes .../render/__pycache__/prepare.cpython-312.pyc | Bin 0 -> 11631 bytes .../order/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 159 bytes .../order/__pycache__/graph.cpython-312.pyc | Bin 0 -> 5073 bytes .../order/__pycache__/tensor.cpython-312.pyc | Bin 0 -> 9845 bytes .../conftest.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 1874 bytes .../test_container.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 4715 bytes .../test_core.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 1446 bytes .../test_delay.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 2961 bytes .../test_dynamics.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 5325 bytes .../test_eq.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 9797 bytes .../test_filter.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 6267 bytes .../test_nonlinear.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 4057 bytes ...test_processors.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 3823 bytes .../test_reverb.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 1901 bytes .../test_stereo.cpython-312-pytest-8.3.3.pyc | Bin 0 -> 2608 bytes .../__pycache__/utils.cpython-312.pyc | Bin 0 -> 15718 bytes tests/processors/conftest.py | 5 +++++ tests/processors/test_delay.py | 2 +- tests/processors/test_dynamics.py | 2 +- tests/processors/test_eq.py | 2 +- tests/processors/test_filter.py | 2 +- tests/processors/test_nonlinear.py | 2 +- tests/processors/test_stereo.py | 2 +- 64 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 __pycache__/conftest.cpython-312-pytest-8.3.3.pyc create mode 100644 conftest.py create mode 100644 src/grafx/__pycache__/__init__.cpython-312.pyc create mode 100644 src/grafx/__pycache__/utils.cpython-312.pyc create mode 100644 src/grafx/data/__pycache__/__init__.cpython-312.pyc create mode 100644 src/grafx/data/__pycache__/batch.cpython-312.pyc create mode 100644 src/grafx/data/__pycache__/configs.cpython-312.pyc create mode 100644 src/grafx/data/__pycache__/conversion.cpython-312.pyc create mode 100644 src/grafx/data/__pycache__/graph.cpython-312.pyc create mode 100644 src/grafx/data/__pycache__/tensor.cpython-312.pyc create mode 100644 src/grafx/draw/__pycache__/__init__.cpython-312.pyc create mode 100644 src/grafx/draw/__pycache__/bezier.cpython-312.pyc create mode 100644 src/grafx/draw/__pycache__/edge.cpython-312.pyc create mode 100644 src/grafx/draw/__pycache__/graph.cpython-312.pyc create mode 100644 src/grafx/draw/__pycache__/node.cpython-312.pyc create mode 100644 src/grafx/draw/__pycache__/position.cpython-312.pyc create mode 100644 src/grafx/draw/__pycache__/style.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/__init__.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/container.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/delay.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/dynamics.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/eq.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/filter.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/nonlinear.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/reverb.cpython-312.pyc create mode 100644 src/grafx/processors/__pycache__/stereo.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/__init__.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/convolution.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/delay.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/envelope.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/fft_filterbank.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/fir.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/geq.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/iir.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/midside.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/noise.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/scale.cpython-312.pyc create mode 100644 src/grafx/processors/core/__pycache__/utils.cpython-312.pyc create mode 100644 src/grafx/render/__pycache__/__init__.cpython-312.pyc create mode 100644 src/grafx/render/__pycache__/core.cpython-312.pyc create mode 100644 src/grafx/render/__pycache__/graph.cpython-312.pyc create mode 100644 src/grafx/render/__pycache__/prepare.cpython-312.pyc create mode 100644 src/grafx/render/order/__pycache__/__init__.cpython-312.pyc create mode 100644 src/grafx/render/order/__pycache__/graph.cpython-312.pyc create mode 100644 src/grafx/render/order/__pycache__/tensor.cpython-312.pyc create mode 100644 tests/processors/__pycache__/conftest.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_container.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_core.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_delay.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_dynamics.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_eq.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_filter.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_nonlinear.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_processors.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_reverb.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/test_stereo.cpython-312-pytest-8.3.3.pyc create mode 100644 tests/processors/__pycache__/utils.cpython-312.pyc diff --git a/__pycache__/conftest.cpython-312-pytest-8.3.3.pyc b/__pycache__/conftest.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77a0d4ab79f8f7126a80f85e82fd8cf4d4eaaa9f GIT binary patch literal 602 zcmZ`$F-*ch6uoPa79wIojA3>#EYy$~79y@Xn5Y{|Q|MJ%X-n>Eup`lg!38E(nTTPL ziPh1>k+__LCdR?dgpI*?EjhZ#4gdZ3-}^uR?p{)RHTZ8Bx{ooiO|YKInQ)};{STLxFf<9&h5y-vlY%P z*CRx!5nM1`7zvAvS2%~jhdJ>(5KpK`a4ok%`W_-)ULyoy z&vczUMlEc5h$faLD)Cy9H3xQ8!&Gnyo9+`DYieGd#@TQ-fl6AHgoT*pnhuq86FZuX zsI01n*+8oL0A|5z^IfIx+DNJUEzMV2F1}=KHKbf%&A3)-u49CIHT}62dl=p6(qz?@xD5rG&K(A`U9#im5WI64P~JPFUh#DjG2;Dw>;(5(_1 zQ_m9o!*~BlcfamFr_%|L&ZnQ%JJs*h+?CzT<%P@v3>emeV~V*gbNX_uX633 zmFscPqZ~YLLZ@phKTxmsGGKjkRn=^pzN%*3czt|x-t1btz-LNGH-#s{A7_l6Vg3bk HOfUZf9H2k< literal 0 HcmV?d00001 diff --git a/src/grafx/__pycache__/utils.cpython-312.pyc b/src/grafx/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ec2af42d36cec4a0f4a6d53162fd1921372e3c9e GIT binary patch literal 7178 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 literal 0 HcmV?d00001 diff --git a/src/grafx/data/__pycache__/__init__.cpython-312.pyc b/src/grafx/data/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a8d0628a3dfd9908f96445959dc4606f158cfa37 GIT binary patch literal 371 zcmXw!F;2rU6o&02PTHU%kQkVNH4E985CS2=)&Vh~ELKRICc=&*J5X{G4#3ojgK&dL zfdMhFA$9A-vs*kofB&=n*?yl)LImUU?Ynq|`OAd=;cQ@e4)B6(7kq;T!gm8=yp4FVT7rSc8? zYqJUgdD_KusUCEbW-PYPjJ3)(l&5VPQ(DzkOX+dbtwyIp=8v46 fsU6UmKk7Xwzb?jjKnDXl8c;N#{SS1gwqfB9UG8Om literal 0 HcmV?d00001 diff --git a/src/grafx/data/__pycache__/batch.cpython-312.pyc b/src/grafx/data/__pycache__/batch.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1827b90a71a17d61d5f46676bb5cbabaeb05adbc GIT binary patch literal 1696 zcmZuyPi)&%9Da8GxlKE#X&2Tu>KqA8i>4);_){%fp+$ut*izO`q8e1GYriCJ9Xr?# zX(D?>Xoqx~)FBQ{h0w}vs0TQ5=E@~qfCjG;lMqPUs+9{n@w00;VcLuA_xb&P-}k=v zd-lsugMh&6^1v}jgUBPpqn+gGXxG8BXz4eEK89SwYxs2EsynBp)2!3h~~rJv}ThPpq9sNErk^)#bU!@JnN#`ClAcn*?638{c!fR(x6u zx>}$z=;Cg_>p+(~i#EL+DIktq0zZaVw|-;|vc4qm^?Q*KFuWS=@>fGH>h`)%59~UX zgDQGfhr2Ns=_g(Zq?6!m#Eo?O8n`t`op>Str1Av1_t=Yi97VbcF49jbZcsX*Q(5~h zv!c8oo~$>-ZaTF9>n7kbycHA=)c)#cpuNRvT!CR3QBXBT&M|p~EfrKokTe-aRYA&& zm=Reej~QN2Ia!i0r(ym$FVSyn%qV#^Wg|;5owc>jr%F|=AWNy`YasnmdVc1e#iiwV zikW$SE|_V>a^a}WW38-6J%TAtWK}h_d>g#w))PFdu?gE|!WLb&Bpsu+PS>4fN3nLR z7Q0!%j3o1z5qOm;mSM3gn1SV}m@8|-r#Mlg)7H|h8VC}P*O^+B5mbg170mKgsKx)a zYp>bqDpL`(0+c3~!wQzP<2gV#C*)OzV1DR#*+2bdQ59I5Yd+ zUgvO06J*Ks*&H)?ES4>>YQgj=tds{D2&`ZwE9bJ-npBgN*3Cf$i|h&(ogqJ4Dq)E? z1DsrzG_06?WeH@ntSH9&O#ksNnUoV%l~YhAvtPoMtP>&xlSnJpcWctFbP+`1l`sS8 ztnE(igRoU)yFGg)S&)l3S*TXnYO*3LYifz*aMIqlq^fWZvUV_O^An}28MIN>PEyW* z9vqHHjli*0M~5S5bi6s!$k*TP3=P-cI|z+7&$UCbrzqr$ZFn0*<8p@%?bFO7nmGuM zx1w*h!_%#S=}vH9bMo#a3^nD4?8AlDrE9I|^>#SZ8puHGK5_T;&e-^ai`y4B-hV=m zHQ5Kn?cyW)!a?M0i}|n}S!{(CoxFp|t3TY>pUUh_W!h68v?p);Ix+u!tog}KY$yNC zh3(s|iTTDH+zvwF{SdPkVs?gh=GviG8#7O+@IE!VM~yaPKU2{TMc==?b>)jIdsMU$ z=un|edV_8TexaDd7%b+Wmk~X*DQ<|(RQuGqdb$&tsHgADbwsZ9rnjPCM99bs`R>IorQM&zC}j>k@6DUo>5neGG7+)8%h)&t^WemIw%i4 S1VKDTr;q$GVpti6k^cbn_oxK` literal 0 HcmV?d00001 diff --git a/src/grafx/data/__pycache__/configs.cpython-312.pyc b/src/grafx/data/__pycache__/configs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b81a0d098ef076fd525f0bdd24461ebbc0e1dea5 GIT binary patch literal 6331 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 literal 0 HcmV?d00001 diff --git a/src/grafx/data/__pycache__/conversion.cpython-312.pyc b/src/grafx/data/__pycache__/conversion.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8336f1add7213383f53879681418c0dd3e8d7d4 GIT binary patch literal 3708 zcma)9O>7&-6`m!z+#fDQ>W`%UEXsB)(RHLCl`X|Tt%<6U?8Fw3xIpVTplR-!q)c&@ z-IXo1yD19msYTRX)f)XC6|;L z7486>dGqGYoA14ueedxvem{?({r%JLZhj8bKgh&st{Sm74#X-Fkx1pxRmvV+S6wi= za_(8rRS!kh+&OyId({iH=Oc8L5ozezMJnd~o~XGTqcA=BPW;VZ1L3oYD^gySl@wJw zg$#c9x#73>PY*d!M>B-m)C>yv4z_)3s!yYxsg54h^cqNG8r&Jqp&O$}J#;zJ&iKL} zUqjZR4%%b54Obc&9^Ey8-an4eHNa@lhFABB?k?D9Fgi6OI2szG&e*H0?wJWRxDKVW z4kilSJ>fxGtFtoG=1`4M_h><9Hq+ryjq#!9LCtf36U~GgD-QLCUx5vrZNt!h8)gW| zrY3qtrmm0IxdZX@`|uxsDSqz%#?R$lB5iPK1b79*r@O)H1TnlH!*8@0wC+0)kH3LO z7Y>wYX-M3CIbxq9ZTMbtH$q)f*eBWDJYV)UY02{p?F$O|b6SpmxMLRrlxtJ$Udd*E!%HbtD@jaE~=+4h39z zS^E_FsGy+Ark%ZAsCh$!JgW>m8yr#j5r8{$e@J#ABD`($+JbSjrr)zjBM1O+!2hQ*|o9JX~0+i~}L z>~!=>Mrx=}RZpy`dq>jdmHa-92dS$fsOqc6@$09f@fxtGBF!n1D&@6g9WgmCdt1s^ zPaU@5UV&8LA?PrdmqjU|EzU_KO^AfJj01|47bPW|PbXvri0}Uc4SVHzEhlN1&gNl= z`7mGKt71VC(^4Xv7qclz#k@Tu%2XU`QkIyNw2Um`U=v@(ezGB^KdB3{Ucnj~V{mcTT@uj014fn*ODCoN!aa&8X1gJ}&iD1fTo z2lnLTd|DwH0K3z~Nvf7i-NKxjRpo@7&n@CW)qM?3Ew&%)a|IGFQb=Y|+DS)ph(gkY z5{51o#?&MhY(Q1}RUD|Ab0@21682>VY}ko9Lm^omQwhaO)R1Ic(_lL~D=H+TDI_st zUX|ySRMlTBI7zcT$JM!*sWFunvWKKgg?vE@NvqgblOuXDXG>Pen$1}evsG*1K8QKw zdpV%}Fg}uzXQh$M;+^E;$Q@a^rOqW&(un;zji^ehMiFaAzzy)Zs_Qp2C ztlo)o3JxMsSIt4@Euh^F)X}**UK%gFZTWJ z&2)MAe0ebbeumui&=OOmilbIX zWUa^Sc%{f$;UkssDKmU(YtanHi-N_rRoE_*?OHqWgdN;vV9RsR5MJ#q^{&nQnf{Fb z6aTpNOyS~FhOIFDCey#o{KV?%+h!wH_}DY#;!ZA27UMz@Dd)Pnq@#)Au#gXLWWh@lQL$Mcx`3dxpH+NmDpl zys&a-!(;VEHzMnoHz&5j_b;vdviPRe-E(hneQ+aYcAwaM&+LAq_?8vvy2q?D8;ltl z+UzkSCyN)X$k9q<)QpU7y=O+^pC2TY=#6!qS2T@99$MlGWa^dbV`-c~}s`k@yWp;2G~kbjjuIrC*iA?8f_4gihWieRxi8y^ zB_+=-#ux~RSyfYdKoBC;{Ok=$Nys;=AsEw2GM|>PE5CsKF9c`ohp4Y*)ARDY3Lz*) zD}zJuW7AyZF=kIV|J_%w?f^8_(#(aQwmf6e#W41oU&nj=8q40VjN(XG!n`dlyd}4 zKXf?QTp%dK!?<-HyB5UktUw}}ZN`11j1ig`_XB%&Ru<=T($ADBn3AWW_CdGnrYPzg c)cFk(zC(xqhGNgW6BOm$yX^8(etY|W0UfYm0{{R3 literal 0 HcmV?d00001 diff --git a/src/grafx/data/__pycache__/graph.cpython-312.pyc b/src/grafx/data/__pycache__/graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0efdc5f7b19815830dc23e39643b736a86b2826a GIT binary patch literal 13793 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 literal 0 HcmV?d00001 diff --git a/src/grafx/data/__pycache__/tensor.cpython-312.pyc b/src/grafx/data/__pycache__/tensor.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..341b82d7cd6b6796d2d65b189dc8ee7fca626e75 GIT binary patch literal 4667 zcmb_f&2JmW6`v)SD~S|E>f3T{WG&f}Da(>kxi+fCHq^vP+FEMi*lodDSgp7tkqo&@ z?=Iy?kO~8K0R=En2|0*?6GS=1h6^Nz{uk{*G#iLrBxrynhu&oCP{60YH~VSPE)=AD zn0@>9&2QekdG9wfe~ZVX1fG9=_TBtnTM79FKintc2z%2YY!ZbiT!9q1G{>PFDujyR zbePHE0-xqV#}^_+AuVu(av}02Q6hJVB0LJ&IFB5-bkkBe)%0)tN^w?;BAariAR7jJ zM6RnjO`QfQHmxc2HBFt*Ef^W6BYTCNkG;1zbc&KRr;v2$IyjdOQ$Ek86YM|;6_n7c zpnB=wF#FpCc07}sL5eV`1tftrYWzl4&r{`pYD&m4Jm$Kr#ri*e}$!TIq*D};Fz;ZNd z1L+IK1d|X}g~gT3r4lv7lM|&SGpnf+vsW~A!5)7$H6ePoXm6`UZJzZMSuEKi%vV^%rwQ zoYqu2Gdm&wNpnjHSKB8*%t!LD2@7N~nG>eubG6=nTd zJy<>70za4GR&t--u;S0HWCk{L?-4-4t$yzu+vXR@Dz`%N-fv&Xy9WYa*rIm2L&6WN4BgcF9y~?XGv)%o_ z687~9w-UM!=cg6^KKY1Wm6~N;HDJF0VnK%Rc5|EP9g6l?D{vZ^6}7oM&A`qF3?t_X*gIze zl$Z3*9v>LTF9TG1sL1LQaHv3nhVF21aJ+#s$v_3U)a66FdxyRA`L(bdhN(T{E-Z&e z#O2n2wfZA|1;v z-IABaZfW{EMoG@lF}4wp8G6Q%a7!L@=2cpc9W#D zd#$P7b!c;HV``^ssMqR6T!IbDR8f&E4O1hiHQk|3kiT>9R_^~v$0d2H<9U7 zL`SyPd$Bo$4PFMVkg27@ET=8O9#`)Ny@3k`{<0L;&%noWTQIpzEsa*cfd=Zo2P^XE z#?hxF)N*NU6080A$EQCy{eY_;9{$Va&#pYY@cF|r z7i$9-*ZIx(M!X_FPKr+=(4VDRsvGH2m5UVUGAc<$O(_>pZk42)Wx3$|0fthvj3luM zSyBI>WhEp@R#nYpdx-%Z!*J5Ec)Zl;n7aC5Y!cXD*6B%Xut@a|YzCpRn&Hj}XLoZ+ zN7m3svB6M0B+N%UHchC-2Gh=X49%a&6aILldG`uO+Ix1AVl^q&c(LBmyVKEM?dY%Z z{q=bA&XsyBapza{*4`T5TW{~G@m=*~=bc}Fedg@#U#>^i=}ymJwP)}FzuhxZO`fjt zXX|6*+x+3m<*k7&b1PLnGE(Em>*pr6`L1-}0o?nz*T#%TY zst?wpUtE+7Wr57mkB`sH%PfhH*DI*}#bJ}1pHiBWYFESoGzMf{F^KVjnURt49)oNV H8;}D4bvZG_ literal 0 HcmV?d00001 diff --git a/src/grafx/draw/__pycache__/bezier.cpython-312.pyc b/src/grafx/draw/__pycache__/bezier.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2039b6a7e241d37e179fadbeab3d36dc6f2f91b GIT binary patch literal 3651 zcmds3O>7fK6rSC+9VgiF4+%+3RBb4UaEM}@&`T*)1ZWAU!Qn@hA}X`-t{n$wZDuz= zwiXFh92~(RoZ_gFFe*}mf>aJY&>KjVdT0+0j?`!ysi;*C+)#p4iBsRq?%D=INe{hr zB#&oy=6&;K=KJ2fpWN;S1m(AH|BT;&)*qx}6`R@E}>9Z#ypb1T0|qP$XrJw9Kjf|i5%2+(FV06YY#ef$AFYe zN;t;V0NJ5U`kTK~9M!@_8l##%AT)0ITVrT>hyyh??DlMw9crBgB{IwAnqM+CNJw>B zGgNwxq!(wcRbN41s|X^ep&ZQDm>ld(LmEr|b6|Uw)3|deXcN4!Tmx^GvywWAWrY{` zOgbs6{HUZ(OOnh-!n`1he59|3&j?tUkkq6iiTr4mS9>eQgF}%E=g)mu=@U$q0>@Kn zK@9=mA%biGNI0noYBDWX0mxif35q;9k;(D`#zK~w5NBSS*Z1yuXD*z7)1%>SERZ`8 zAuB5U#H2zF0XEMkWknU_n8c^!ygDWsF80bIb+RM3H)3rI_WX*O%BL|;PoU!&xmsXe zLsGHebXLyjbta5ne?FU$PGFqIItLEuc4`;2>5Qtgkud!Fbaptb5CW3@zdRTkOHW9l zvFx;v4Na%2?3^Qu|QZf2QO*v+ijtbS%d1eo(l$ z>glE<17-iQlIz&hM$cTwtTcybFBXm#*@aJ5+Nf9c%oZF)`myg3XJ8R-R(a&pz#9fP`|A@of z?9^D1B~+xOXNs`(%H;fL8E>>&)ql~RsP&C8RFF zdaGzwOJh|M8E6@Awp!JHje`hpz6=Ri^S;B1%n*~qHdKR7=CgI(R zMstx%s=1R({AV?}4~z<&s|ke^V;_ym^V?Zc2ELCSQ1@2yHV zVck-Y(QU#^QVF{Bx-kKAKow(>(i+Mptj0S?*kah(LS&fTjElm67ta%*_-7tDYXnW7fQ*n;g5d z@i}7MjV~O?<;l<7I9v!n+0nkmC?re!is6O*_qqEQirT8@;2U$C$hULedCOVoFLd60 zzZhQ{zLWgAcO`J3)D|v#`||cRUmJPIPBQtU>rK1n2X74)q`UENQg>1h!Vlu*uEV9y zBaenxn?9XAK_0M^3^)al^|$H^okd^qXxZBZAfBeYiw3BnU>&(#88Y^0RBwnzC(`0% zinLwP=#@z!WsJ~w8k2a6$+==kqR>4=5$LHIM^4^E@>7WBuA>dsYxi&Lb=liC+Fkbc z&GvSCvtdFe1v%YL=}WKB0O*GARnV8tj|^{);2sztp-^dp3iib?zasx%j?)a&yn#qf Gt^Nj3N<=6C literal 0 HcmV?d00001 diff --git a/src/grafx/draw/__pycache__/edge.cpython-312.pyc b/src/grafx/draw/__pycache__/edge.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f3a42049dad9133e1dacbdb3af3dce4262f5abe0 GIT binary patch literal 2544 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 F{{{`Z`P={i literal 0 HcmV?d00001 diff --git a/src/grafx/draw/__pycache__/node.cpython-312.pyc b/src/grafx/draw/__pycache__/node.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0a04341480c10fb88899f1783cd713529970593 GIT binary patch literal 5488 zcmb_gTWs6b878Uwg_0#pzQzu1=VGOvojP@cdQDRoNt`rJnxxr!4QyJZBqlVaQj~4E z)T$H(DgnbPqXR1M0w`#KIY^5+dve~gw*q^yk`^V11k2D3Lx4TFO`rO-{~U>uqPn?s zJBi7|bNJuB|2zNT(cfs=NkIGipZ^t!v=YSE=)q`IwR3L>Iv)`n!I2^{N4`#y1V_C` zyiPfY#($iJGrvc^Zc3X%*1JeFMCy(+d{|+nsK|%SRc+{Ifj<-c-TMz*J|a}&JPDnq zrji`l31e`l(48YcHC;hc(8!0$P)qREPm-)!Q%y+2Pq(?1e3}TEPs#|^yC`13$HIz< z7z-V9LX0aRvre&#I+fU~TjG((^kU_fP9p3WXy1>H#Nu=ONG!d;rbiay@`YrA4f7*W znT;%tB;|0m$I0x%h!p4e;Y3<@A=T4~xF9J>nFdWrTM|W=CGME5?@wNw%)O9%D}T5! zT40yQN@RBO3v<7A-^}6siQ;IHT^U=&vwQBJ#d5{5++7J&hC;Y$;-~{z10F`lND3z-6fU58yLS@`AW9BnY`H7e4R1Kx65xRHk!j)VQBtX)qEhEkzM9&V>a(E{OZrrc>YFEJzv4As=Nzi# z_XOuueQ)fUdZ1hz6Q(i1Re!gDs5qbrDI{L*$9 zr|~!`d7$s9_U+L3R{Io5NG_0~RE%$}ZO4Mx@?lp0h!o`sQL_m~OkDX@fNz0XqTV^}iS(AjM9eoGK}D~`OYA@Z(T z&c(dbtj+Q+0A(!0+xW_6jdSo57}_x{cfR2NTpejB+{<>Sg}|%fN}Y zfkRNQPkH&!s>^I4&uyAl0P> zDG8aIfwXen)vWEkF{7^7+cM}0DGjSZ z3ZsM}7v|zzO5`i>q1BLNcs3lXkQZ>S!7*8<2f}WP*fALzf=&ucd_&BY#S{_aEG(o4 zaAtzRf?ykA$s}X(1*wvrS{b@8i(7bt;+W>SDBqX^QIPlrfm31)K4EVj-Y71EU3A z+(n0m=qHH-&aXbceo!Z)cX1$Qk&h@L3s^^$S+_1>qjDF#EW-yTA#Z~V7$wuXLy)S+ zG2IDNj3CzCjXQ{LpXX&o2(tiB1#UQ*q76qk zBihU8TU+-wEe73lKNn^6buFUh(v*fer8sk^FL(UaVR zM4aIBbTtufK}ysSqPRt!6m$!o)G014_aXro5~yZOr=imzVy%qp&Wf+t=5`Q51@Zw+ zb|b|OT%{0P@-cWuW63-~pCvXUBoXYqcp^KQJA23J$tn3g1+Mti^7#!%U-kv9B~W;y z+|rjlrqP}cUd_K+5Xv-@J@QYpw?GwMD4L6>S8Sy~iM`bRg*l|ronO&A%Jh!XYd7hU z>=AUfp1L^o+fF!fE2W8*g;n$F>C3jV@1^x;HheFAZiU_#=2LgPzCvF3E*ZAI(kVQrf^y0CQ}0bj`PR`fBj;CnLYr&2FgSn|<@P>Q) zHzxG{rj_vcA46k5K)-XXf1Lznma9YMJ9tinmM;g8QBQrTsTMpFr+Uk@;ib{=Bwx_bPem7prI1o?LtD>e%Hs%R8T0 zA6;j!ja`50bMmkIuN~ajaXfdTxa)?y4}~$+5XPfvKD*X;`ISr4YqRUVtNi-x^$AdW z_?lRL`o+3t6b{yGr#EaJnm16S%if*0{N0*=pmeyje|2arvlhR8ZlmR8U`(qA7(;u2 zG2Xy!UzgUiW7&Dzw@vHWRgzc9;yLux@n!eWXA3ucPisAWrJXBp6r4be4{Ujx=Juc; zoT|6Nq5PEQZqxihtu>$p2Q+U`^R{pL2uI6zgacUFQO%ha?9-{o;_2XLbz5UtBXV`P{2~dK57E11c3xGzFw~4`Ttrl|MW*6ZBZntSpkLGCAJU%VZ QuC=y(*M5p3tytH80T%wksQ>@~ literal 0 HcmV?d00001 diff --git a/src/grafx/draw/__pycache__/position.cpython-312.pyc b/src/grafx/draw/__pycache__/position.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..040f56544c1fbf576379b2f53310d8b65160705d GIT binary patch literal 6797 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 xhnoQzI>l-C7Use{|2qD@Js*z literal 0 HcmV?d00001 diff --git a/src/grafx/draw/__pycache__/style.cpython-312.pyc b/src/grafx/draw/__pycache__/style.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0208019ac443e6d8d1ef41f23cdd60e8e185e8f7 GIT binary patch literal 3795 zcmbUjT~8d>_0G)B?t;NK%a?&Q9tR3uz+fA&SxTzz$7~asY$Dr{+O5)MyfeED%+73P zX2FY=%9Z?Jsjfs)RmQ5NkUkMnsj2$V{)fJpkc!pBQ7tun@IxgGkt*e>=gjOEA8D0d zY44o7=iKvs&OLu^Zf+#7{{Dx5rax>ZgXOFYCaW( zQ3QZbI2uJ@A{OM4VGPz35{ItxlVO`7ADNt*KolS2d6X5M;I9P307N4Eq%A8F<-=3> zPc#HVkYO+!8;{wtLZF(hJm?%j<)c?)v8c@%g@usMc$kmfNI5=m_Oe6B!4RAu6Nw}! zktAr5N-&~FWFAln7rHLNiY)AI(G9z&KnJ|m*|;W35lzwbHw0BwBwcvL5YouO3UMh# zFbvL|7ff#6#^OQZQb^8ag&{Q!;oqC%KtPouuBp=82sfnV zOj%O}WhhYN>L@J&4@Bt&M{|&1997WNIKfuJv1PQX7_xXX&1K{zNgc6`(7@J~+BOhvvs$LWxz8C719j5=3h zj@+4-4KAyRc}3!uWkunjP#`Og=9y5gmAe9lQd2n@GDucsQx+6XkxWz4M-KT0s*ID< zpb@Z73$kKxVjkkI*`Zg2)FOJ_v0?<69g;0@I$YPXC*|~i$q-w9JXPt|*ibz1gDyZ0 zK7%g&m=vjBc#Bk#BoSw?0x2^0-Daij5S1!2tBhIYvEZ&y*1ii3HMjza)KhMSTIj66weMCLtjPbLQh((l1rlK6I)*MlTePfN zjFvZF3UGdju?RF-&4=2vbvnw&LhsJrN!s;y+oIK+<#tldI(5rVx!WeRC(DIpX0d?E zNEV|=$XXYHR?2EilGR?}6AR7G!c%-R8F?%8j^)X#G8ST>!EzarlGZWuR%5MUS#Brc zEk;)}mP;1z8CF9TZ87kN#X2OIVpyK``euA=Udu{j^Mz%hFt)7ei$)IKoiTWp()Y#; zJynK8U05D7%z`3~<_eZKnZyE3CRe)RN1n#f3Tg_(82^IpJ}I3#_v}=E>Eh_a=---p zUkqN}`1x;s_Lu7qV_*5&9tS=M?D__`eS@3Sj&JB;q;#?GVf6E+-mh9apR!L=8w0;x z+&MS2(>nYxS~@?tPtG(?uQilf{Tt2Ot(Qw}{^uQC>w%5XlaZZ{!OhpUJ4V)+=dB%U z=C6b6?|=Ausk^t-)4S3C{@SN~e;)qh@SiU4_m|^ z-L%NqR#OF611Ycpw_}w>-7OoYTh!twMDK^o$L*2Cj58X2i#=6*0m{=>MB-SGT@Q=$g1H*>M0FDqXh`IGcjV>-I7dQ zmX=`7z-a}e15d5Uq1xrg5C=xY*+W)sgeVV+$RmWq;^DcdTJLq^3k-^LfoXV)%VQ@z zjmQ^C>zIK;d0nj=K2bvTwLfvM%0ZrV^yMysJ3rvR;g4}7Q( z<900OjhLfO^IGXSF@YUq3T_)X-QOpB9i+Q=w`+L2Yk2d`ov!PpuJd)LS1fb3agQ(! zjdlVAn0P!6b3U{+Rme)oq}7;AI)e+qP08f@c|j>-JjtY}rIJaVLse@^kKqwz+Z^rM z(^)*?)(1bM2et>~72V2u4=#1F)BD$1c5?r;hwVA=HM5Q;HZ?T)mfC;?{T4?p%U%95 zIR)MiHJ{BDbbR$Kuk9Ted3AgU^(NeG$%nQ1#yjJf^aDKzB$(9(D!s>06!j&!@CEU` nIM=_$ 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 Y9Df=ULrmYzH*TH#;kn-t%v*E*KMPNcQvd(} literal 0 HcmV?d00001 diff --git a/src/grafx/processors/__pycache__/dynamics.cpython-312.pyc b/src/grafx/processors/__pycache__/dynamics.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..73ed6e8cdafdf3d87f6605d71b7ea2185caf8810 GIT binary patch literal 30124 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 LGoNu3XT$klfop;V literal 0 HcmV?d00001 diff --git a/src/grafx/processors/__pycache__/filter.cpython-312.pyc b/src/grafx/processors/__pycache__/filter.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a8fe09984c5c8eab196642a0880d32f31eed4ed6 GIT binary patch literal 33879 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 H*y8=a2{w+Z literal 0 HcmV?d00001 diff --git a/src/grafx/processors/__pycache__/nonlinear.cpython-312.pyc b/src/grafx/processors/__pycache__/nonlinear.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..599d667a38eb6c333d01b64a45d00b0f2402143b GIT binary patch literal 18447 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 F{{|L+dW`@8 literal 0 HcmV?d00001 diff --git a/src/grafx/processors/__pycache__/stereo.cpython-312.pyc b/src/grafx/processors/__pycache__/stereo.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..657137a2abc9d63865a9ccdc4918d1e0913781c2 GIT binary patch literal 8517 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 DMgbtL literal 0 HcmV?d00001 diff --git a/src/grafx/processors/core/__pycache__/__init__.cpython-312.pyc b/src/grafx/processors/core/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5d49bb2de7a8538b672b6ad3470dc518534be8a0 GIT binary patch literal 162 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 EFVX9H#Q*>R literal 0 HcmV?d00001 diff --git a/src/grafx/processors/core/__pycache__/delay.cpython-312.pyc b/src/grafx/processors/core/__pycache__/delay.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d1582aaa0f447222cdec16ae216a26fa27e163b GIT binary patch literal 7851 zcmb_h+ix7#d7s%ER}{@9MNv1~(Xq6WxfZEwY!rm;T9%?DhPy!|22E&6qv6h3?vS%H z>oc>WxZDlYMnP6^T8X`YbP>Qx8z2tUBJNX*qUb-+7p>`n#MVUx)J5Yr*;0TYFYWI; zvoo_?u|`t#0DJb#oZEN(ecw6r&rdzoub}+<&;PUdwLOaRAM_BEWT)}y1{$l1p%|*A zO#A<8IW`?rm6-BX#faThj5t^3Q^CaOe?A?xgVw#c-#JWBm0)r zT5`O(K!BB6|PLHhB6)FaYMbS-0O5sC-4j!!{_8uJeO$i$~&U0TV{(NXVKce&zv9+qy)l16H)cntsT&x{0c-PxW)2>uKm!>fG>sL>doH9RA zT3XbXPAocN!L8^8eqv7O#p@?rQRuWP!YOdqb%cAO;0S)g;Fi90yt35pD>`CP7e?*C zlVlz5^bsL$AF3P5gUs&cz#}x3Ei@9Ck=I zvtMpyUc8@vQIPfIbE$S((`>!WHLcyRX=TT#TGSrUw709e)#({4@4W$u+6Lx4L) zj8H|Ql?zEq1qoAD~DnjC!;S5mtkQtM#~t83pw_7-%T&2lDqMQ|6s#0{pqScO(DnwG~!I5QizN^jYh*(+=Y z8+iI#_Jnac?1~00mbl<7dveC&Z!?3v%<@@g($XEWxIO2U*dk|(y6rK~VNS&}%kXQa z+Xl-9i(k%Sg6(*mrdDm!V`jNhwOsH->`?iA&iM6;<)F_iaaPm|)X+V~^+Kt$9o!ZS zRvg=KX)m1>oN~qD*O_bDRo5{MX4?L2!QZZOyRgIzr>vWHw9Ta|R@1`?&x0U)u4?Im z6~j5%8k@mFGiBW?&CV{LYh+nR!U1;%TQtEp5lX&B_yrQ(0{%mW%p%D}w=8Fo5mOGS z$h2M4;BulAgJHT0ekhW8OW?? z3fE(BD&hGw!4#@?!LeOWfN@wtAft*d;GD1psKqlagD=+_y?lnmllCBLPnb}{7gEp0 zIx=^$I?P~+ImK`)j8yVkaV)65!;{Sg;jpROVCVQFQfz1>Q$73@^p%<2CJl!shF^IWqK%M0p%TK&J#%6fM zHG#B^E!%`7PL;SlPAVn=S3Rhj8G5+_i3hrhjKmJZ-4-*;l5n6e7lz@vFpg_npnc)O zl<&V0MnI-yY|`ttkmEZK3m7UjI$kZ=J=IvwL&t8ltSv9Rad(-WTNQnTmNLpUXy6oFlNZmSDy(6_>%y$-!W5U?oB?SS4)0 zW!ajKAU4?b_#Di!;w+*DhglGnWn)k<@hbhJV2T1@PMQNOn_nkbfX7-q7ZLDv7(3VD z{2p8k+K?y%7~&I1F?5&E5atXsnyBb5JwibRw!nqWt!NcE6L~o)!z+Og*C~=y1GY&S zraR7n%%twlAn9PR+6k{Doa$VO!Cg#11{vtsrKzvv0(+kYNSe;+lc&xEBkZ}Wp&7Xj zwgb!&%bi?<5t&2?P!4ZPNKJe~AU#6utmKEff{@)aBO)C$X56ywmSFnQ=cR!(y0q8j zIUOH?<~&ok*qe>znV?;}@&XLW;zaVeAx}0BY9o%UwAg z;V*;&Z8%k-&qXpLm#y{$S)iYci8kOv3b@PT$5~ll2%?8{La8A{&_gc#p>q6CNFDr^ zmn$YB6=LlYe5eY(qz4NwBfDAiozmZ}#H~uPYQbA8yZ|%D6ri0=o*jq)&MRFWNMl+2 znh90=o``5&K$4|XVlm4RwJ?t?LwYC~WtZcH^evW5m@KftvdCHjrhp2(NT}bjE;$tm z8?rnUg7vdv&YcXG$+NM^$`Z0>d-5uf^J*^YqQRt7%g@H5sDb6+6eSZW4<&7u#2Sp# z;V{S=I^gWjDpLwY_7K@jfN)xXa1jNwj$>UNXD|4ErCTrbkn=5|Xg6+AR!frVMmU0L zl3ADtcS%pC!8BnD!tux^iDwxV0wTA8;ZSxoc+B8My=r-rEEMCEsPd~_aU}GAE%N=} zoaKBF<0Yd{f2G z?))d!P-_@z#OScxNP2Xjlx4dsje7E4=Sbd2)s^{7FgE%(;`Nk4mn_QnW5w8hblmIE zp(;yCE|LF~9zUg3+Wp9gHT}*q45O$3T|=25irB;j7p4pgTeUu;h+`$cdej$p&8F_bDPjL zGEwgyyE|GfXw?$|T{XB)J>fe5-4-<<10!z4zaKN=z6pbF+%EQ(8jJ%D6UlX7?+D2H z=_lXyIMFjtju6AxkqoV;)KdY?jZ{pjr?$JFoP+cKC7gOi{hQPuD{#|P9bDipC87TU zUf1s%Gh^rcGnXHhqX^%s>1FH@w96goGw_7?sYaqoE0xbT~k#M^H$e@ zan|*4`RXJ)i@50_>La(1!r-{AK(Z_&@|a9_sz40?Y#!j$HUTt83&^P4BjT<^nuwmF z*dn>X;mVUj!d?{KyK`^@Co)`r(D4ZPYYZ1muWR!P^?WA6*SW9Av7D&()fRB{%Vi60O z0)G-v+k50VEs#in+_^q+l%}dRaa=Az;kO+x>vI5P+~~C9I7rCLVG;(4kF^9RwLLvp z+ev_C(C2=F>W1=gk1{lTd-2xdkB+=I{_gmPnWOj9NAG8j0$o@8R{EOB&4H(GU$}MQ z&gpmFXsQn~BO95qR%Yz|;q}b1X5zul%*M{cAMQN-@z9}-p|REwbqpPAp8aHSdSAcxWw2 zmH2S*5cbUMx^up{bU(fCNz5l4q~D_-p+Yjy3Clp75RcH&DP6c2>l(RD9H_@agps%F zHC$!SQ|i%E?sc9U@p^o_xDfQqn|DDFmrF|XlO`li<3&5=;#OPW79O`Nxr8(j@e(@3 z?@;eRWQVx)AW|c{IEkm);U2r#&Vm~l=)QvLhSJf8uT6TGzcs%$@{R*B@7uq2?%lqP zz0bGyKEJ*<*Bsc)JiU=Q*vcGS&pdZO{oEHwe+p|O;wsyHspyt^9bYQys+49J!7#N` z0%^$<4AJM3A}9vqL&d-x_cQ_>4Gz*y8QjBNEM~m9#WA#VDhd6XS>V1Ar+f_UuW{kHnq@9nB;$l<%^)5qp- zR|i%G)-K&Wv_5nMx#aHst8cEn`IC{m-~Ov-KXCu9_P4c@u{h)+<>4=NsLlO8Be=U(+sDeX@as5|6>z5pCI${MbT$F@~|gf z!>jgFoz%I&ElbmKs>tE3OW^dH59xFw5L8hpaY-=0x~Y5?dpVhY_+3@Ws~6Q@#&;%P zQ$Ig&FuDKp*VRPw(B}j37&-6`oyk$)zmn$C7Q?aq11t7-lU~wvon&>NJtvxOJVXiE5w?D|NNn9ZD-N zcbVCxB+3-vgNxFKB-WvjdT5~*1?toV>SGJ^*jq0VyKfZly4EXClq2SSZ19R1w*`%D#VT04N{PB@r6X4EC_|N6qaV&c2(%41Q@+i~(BoNY}KpIgTo1QE~rvkl7k#{TerZ=N#iq{ygn5A;X za;XB#FFUqN^BsINYPd2(QIPJc$aEEh7EPNPisphwM)eAF%{jVbCf%XMqN$tI_LS_n zW|e2OY(AReo0QQ(rRXrlgUQ@7rN+rhc~F_Bimq9D#ezL5rssaaf)&lytg2^%yj6vY zq3GQ1uoBZ#JcnyG?Q+FaTyq*^o3m%L(L$;}uqTvptz2f#f>OcCmzCqEPX-Il1)m?< zZ9}86XeW!>(_mSr$fs+X7p}pek{!(sDqyf_Fptg61v#6pl+Y-{<*GO1*u#^i$y87? z8BC&!EmsEJVh{Xp{}QsF2rI;kI&a2nIcZWrk3T-3iwMx^Wde8F522Vx~|Neef>IZU5nGU)ZY8J#v=xX9{MrC6kl#j!Px zN1BuTxJ#{~pA0SKcTH*fRcagR)p;-bQn)^fT_@yFbpc%&^}ivtb`+8-KVgI0beFdlW4z}vKnVLAcepmRsInJ_}+M{InIdKG5x*!!-V9d6x+TXGyQu@M5C zi!kKQXl1&KMVcGT#e=|A@u(U`0S57y_`*d$&Zt$%Nvs#^={D>8$kd2ac+)rs39 z8-4k@yw%sg^6c`ntH(F`j@ISP?gRC1wjai}!DZwee}x_Z%g8lmLm-3ZC^Z3bNoDAHM*^BUaKDK0<}L1nYv2pM;xTa!kXQ02WJSKV~`80aC{3LOGY@ zXUqC;s-^8>RQ#8_=i0Sf^HHr^bbh zZ1wD0NiU}X6?=}=r4OLCXL--+OKS`FdQR1)t^R{6mzFQB(vALXJ+;|CuyT3%@>*`a z|3p27BU8(%)!ar;wk~a^yKe2f`P%B!>zzm7+I08SWqvVof=ONkYseUIY^_8g;B=@e zM5T&_# z$Rb#JF{UHyX#qe^|1?|4Xr2f0Jj3Hd1^|d^F3mLYYA0KJ zUKyVPvS44+LC#%@;zdB#)Nu?3taNQ`Ndaa{w4~w*g}~pm|cT{0clNqQHg6 zjtDRrF@2{D5!zgYkQD|2J{!_G3>vUqgbNM#pbYD#M~5e?l{2T#JQH0YQ=76VP-VU~ zJpxd08)P}08D*fbgDV41ZRg6sRfW-<$T~rm`#h8}<^}$Z?xqI1{j-Zb?>i3zAzUN!nB(S0rFbNyP>?CG+ z%n$Wg+c zplULI21*sIs3O9;Uxn;JOb~>3$=-KK=X+$|`{c+wp)G26B6tSaFXIWjAwUdcgO6`EN5o1 zz20rpil|GY7E`Ihv}xH!eJ}zE9(il}R;jAwm8n=wi5e-bD&CAtq$m$<|8r({W_<~v zQjhI3XU^q6|M|~<`Tp^r1A#gO1*Ohc8R{k-Wg+mqgTCg^%dUdDs0Q5VB% zir1n-QZl@{YPO>GGK4DY(E9hF_b0%Wga{{-tjJ6{e8~P0-31h5ME0U@(kXg?7iQ8W zxkcwibhAQl(gW|Vns;vj%`ua{(DD|hMkhvKA{SFJrza#XE?BMRPS4Zckc#7BIuzD)A(E8BaY>OdFd>HRWuaI`iR!Yd2+2@N zN>V}cF~X4+O6aNNuBV!Mc$%ji3W~^0ACqITfw9vQHb-$;Ph=vYsG16Ef;^z9nN+ws zD;!Cxk#I_om2gVa!=^++>3JX-s-r}S^xl!UG*&OjAb^OfCpZE4o!4X#C+w)rDe))i{!Z} zS>eo~$ik`o*@dIrlrE>>I!F11ntAzrzs2$_9GY&RWKt0cb84*Sx;3tUw047jPFLyV zq^w8+=0-;+IC>Yg96f=He7}9{ewzpTG~CM-{`W=vM( z6eyUb1KaKS(hJiY_Ymg(r#(RbzjlvtRgr3UNvgAaLP*BoT1YTUN;Nx1K%<{@s1aQ! z#zNExOT?iQg9CyCxyg_vX+{z--snqC4l^7T^Hiq`=N>4)NBW zIWNqA#vH4y0it+s`EFKLWr4H2?<;n!%USanG>?My;}6NQYzJ|t7ldR6+$O}zY0zU~ z4)i~}CrBK00$dsdE9ty$Jsb>i+f$j9lSwWDE?&~B!EFnHP|#zv zY;}f4eU1AvT-1LUE^1};A$Cuw1#K1KuJ7k~;92#EwGqY+DS5Ql{MNG2A8^~?k& z(AaQ5>{pMZShho|3oop11qc`lgloo^oUBB3?RqW%j2( ze9+W+HE<$NekCfF-W6A-q%}nGG(6fQ_OXL)Zdr4qt{qFlHP52! zA8o<=Z3jzj2g}b6mOFQqTRJMgjm_nq;k8E8erO$e+v^H-Yc0qZxbN*Ld3%6wrnmD7_Jh5bdhW zwBy$(iC+_RAqmL@AP!9*ts-7-YG~@Y%?O3i8Q~&=4iSLBCKFDZo7Z3nGL6DEd$X^B z5oE;}0eV1H1uGQ@+Nh1pRXEr;&4CZI@q>l>VPKoE(^oTI1!-ijQ<9#+N)1*cofg$v z$qZ4)x8bCm5Cea}3FKO;aMQjS8!#B&D%Xb3;v?uZTr}G<+#qp)MARox?+|q09iV82 z+uY4?5*cblb%8nDONKn)!NFIF*`94pyE6JFOx2D<^&VR5Mvc#W(!AqA*Usxb*LsSv zW$}LK^-}2d)vn`2=z@d0*c9}N{N(*`(t{#fvpaG8n@Y|v zx~eO(5IORJn)%y&0?7qLx9EPK72Pqm3uxv1an_~)d-`XZH*Ep0qT`mQifU#^l-X27 zFY!?`ZJWB`^=73D_vmn6W|`@%w(O?}G6eJlm<;Or4H(J~KFgo|x#h54F+(VISti6J z-%Dx}tW9}X|NkxJw5<<7N7Lrq!)TyAR=#2Q=sU?V3{NGmFzQId%q0xBnLikgq#A!n zLIuSen83D&|A8_N$io4sBVLtL_KgvpOG*L&C;;8yDlvTYvCs;a5a445Af~K@RTGnG zTacAPQ$+&Mjszh!p10wZO2Jx)`!3!`Wm^O4w!$kyplu5Q08^o00QUjEh8GS;@dYL! z4ijrOF;FibrQfkC`2o4S8hC-b$zn%T&{#PC_^hDNLgTw+b3-Vqc1&FDB*4$m!-OOtE)k3D=deGE%wc$#`Ql=;^fB){_4Su!hWzyTd zbfEZ+)uufK7c6b)yB|1G3LN>^_ooA^fs+OHk(+GW+4bS8*NfA%mUGsOTWMUCOV|w(#j4w{KJ%WO2VA9R9EV{det}d(pcU`2_J@c62A@K`OVDNb zGKvPDhb8b8)LdP}X=wNWEC9okm7o_NBou~8hdaiL@I}^eYe~RQkkOFIMm_m%2EL4T z`7-HB6Tb{gG{SV%giQN+5qh%wx3!-qdW2sPa=(S@J@jdF`{MaUyx6t$R`JE+(WS{! z^YaCF8C3V#E6*02SDSYg<@>u2m3AMx``qg8;ZpN(!Tq4I_42}{g{8p{eo%0hJ9aF^ zK03MVSZ-N%6yLt4lsfj^ao^GIvUloB?cXlcms`7kH3->7Wa+?_vEu0R;PU?B8>QAz z!S^80a{0`qGmH9%Z(Tog?M!ju&hgdW!>fTK1-9JST+!g5`{91z6hkyb4@osHAG<|U zNceih<(A;vhIM^8fmSG4DIw(Iv=ypqQ*-% z3HnSQZAJj|e+Y_Vu<*BorkNo-xrA@|SPId^+>8z+P8eL3$J?FKR_6L9*aci5EH vVf;3{k`rpXpjvY<4D&bC_!;tlg4+Ith9A36vP{d;{_BUX9r_%RHYM_3anmtH literal 0 HcmV?d00001 diff --git a/src/grafx/processors/core/__pycache__/fir.cpython-312.pyc b/src/grafx/processors/core/__pycache__/fir.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1e37336f69f46f19f504f4711af9f6099ee18504 GIT binary patch literal 5394 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 literal 0 HcmV?d00001 diff --git a/src/grafx/processors/core/__pycache__/geq.cpython-312.pyc b/src/grafx/processors/core/__pycache__/geq.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3211adaedf54e2c8d05debf6a06ef0cd3866eb96 GIT binary patch literal 4566 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 LeRmO-mGS)#)7&#M literal 0 HcmV?d00001 diff --git a/src/grafx/processors/core/__pycache__/iir.cpython-312.pyc b/src/grafx/processors/core/__pycache__/iir.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..164342546731ee864134f6ceba7e687f299e0e21 GIT binary patch literal 9218 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 literal 0 HcmV?d00001 diff --git a/src/grafx/processors/core/__pycache__/noise.cpython-312.pyc b/src/grafx/processors/core/__pycache__/noise.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2555659bec85191b771a872410254df9742484f3 GIT binary patch literal 4339 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 GIsOUO>A#r( literal 0 HcmV?d00001 diff --git a/src/grafx/processors/core/__pycache__/scale.cpython-312.pyc b/src/grafx/processors/core/__pycache__/scale.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a9b14cad2c112318c1256175602905170ef7094 GIT binary patch literal 6558 zcmeHLZ){uD6@Sn6v!DORe^L^fKaZp-aVbe@8``DNxM@<#2&E$pVj)uM`n~*h>~Nn` z8qWa_6)B-YbtI%FqpYdKG>1+je3+JfTD9%NrcJ^R2g!N_EfY)~;!7agH1T2DIrrI) zlcqFi?879k_0GHRoO92;e)pW;Irsh1ZnrSd{`}5g`z&6D`4}Ja&6Mk`EkoxDBQhcz zV!E|E+pVL|`fk1G5_OV6)JvRbkPLlBk-Nxs8-Z(-^h1ukvGsdSb4wYFHo<6Kbc;OL zG#6}IfNKV>^$s>Q%{$q&!Dx$UzsPi3MF&uu=mcsPOMp7YS)b=qT;3^_>m$6e>n51;5O7V7&#kwDbfES!KhJ|=~OgOV%^hGBF;aeWhndO1q=3X#$1 zU?dy}!KhB$8=PlMmYRjLXQL!A79JT3g(PzJ>|S8V!2uGHM0^w?1Q;&_!u@B@HVE}? zQeR*!6uoVfPh0HMbi0ezi_4I2U+*}smi|k+;Ca1jF3hP~i`JtWaO&8xqQ4^#M8-m* za842;VYvE)n!?bUy+TdV;2K?w? zd){mI_tOz`Klb1HXMGPaS6V(rU+zCZ+izQL{b&|i`9Xib55@I=YVqk+%QJz{nAA>4 zgs6s*Ky*Om0`g#Zz^5nZ!UVln<>;%CkpcVq<?q6Ho?6rEoR(EaXSS^JAWA;-zG-LH>3;ppmG0^8IWEOrw`WQl6lX)4Z^)WG z$sfFLuDO$Z#o(1l&+_)9cg8i-HCwK@Y8AeA zl7lI2u0+SGiLp47-d8I$mC`xyY=z?5t?;`ixfN?kqGJu#&X7_dTcgK`{{!@h;x5nz z=wwE$xRFCP;>~jaM*t#Hk5=T;Iv~+=2UGS$POT7ZT1ve1^wH&PhZ@pg`Ek;mnq>M15JP zk48vvpy7-Z1_uS4X+=v#L%#uV`X;d{hoxIAS{8yD9!p{otP_I?K?GAhfwaMp5+FHz$+YA;pS2JdvOoUG8^044T>k!7KKtHc)hlZ)gDF@P zaiZ+xUt->$Ki2H`8HgL6RgV5K)qu#O>I30%5MVfI@S`6TFHkg+5sd(W1hNB1Y1tc) zWFSVWfUz4cc?rn2am4%j*p=9HY_2XHsFmBG-$PA`#N}2 zb+>9oG5~1Xc07j73eHH*XCLXY-a-m57L;F-c+Fbv+@E003i0e?fa0HYW5AedEaz7G=B1WY+9jmlX5VDMwp0Klvj5}-vM z2H{D#WFmt$&BOiH2?UDsU+F{zNtLxEWK*DW|_6j9Z2n3D4pM{ z)E>%|9afx&)BItK!;(aM*6K~Pt=LMEO;a5+ZHiS$w1LE3miTVgQ#r>ep1PD*aX*-N zV%g!oJTNtolrN3Uh>D{o@z{#VIvJzW+kBh`qJI>E=e^%`IZH*8ajqb`pXMBJEPTizP3DQ<}KSWD2Twa5OR zk6PH`ubb!5tAzSOf`1Y$Y?a?ZO@q?^bsXnXc=3Ynkh^Q(1&}%<7?`9UNIzWAcKHb= zIdVS|ACf&t9ze1e$%8)w6t<`Jdol(OfkjBr}S$U1HZZ9`k6&<)nHKHHY&JbTJ#QZ0i}d&$v2I4EiEV$>X!I*_UhkE*7y7$77t zPW{TqY6Tg-y^UZDXibg*_Yz$4<3JM3vdNXKyIOj!Vzy$*w0qgZ^U&A6ps`^c3+G9eVK;RC7kLzcDDC+m6^EDlOD6DoQ%7hFTr^5CCVjF1NTk1 z)?NaVV6qlx*6#nnUj0GM{$D(ovHO=jl{3-;_e<-$*2UwQeg2y+W#927Pg~m7mbKTt z_Wd_2GWNP~1rHf^iT z+8xX8igfkYsn zswRbaD0t$i!32*UJbC3p(?grZgoE)=Pewd(P~R*qR>W}eB|GnZGjHGbX5Y6vt*y-n zY=8T6cn2f&iG#WcwcsEKK>_JV$8i+Gju%3LXUndPYYO>=NxxA230D09i{EX#k`~n>wivhO zY&Tm-sg&4~K~&Qg)d$QLS;~McJZ<9{TO$@W6=SzeS-VrqnT zLTNq{7KSB@KDPMs6S;|1wGdg0yoeR7HET0c>JGd;U+lhIYPpgfKRct+;#(ch-7PD< zMWwf-^p};vqB2-gE@W?1l(y`h17Jd0qjHY*^#M)_TtPhLgz0#G2>KLmqsJIB8ueMr zJf71j`qKqnd?RhuSWi_U`~$x;mW2#T9%~`y{Cj^klo2wxQLSlE$1?N|DsWF$d3#mP zcF&LPrg=gVdeo?LnZvjx69AO~P%bITc_<&UEwKff^ozC-rPRweFk!qD44-yz>@zKD zsPSl;%tnnwD$WS)g?*mO?!%Hr6{R&lnj2kJpN{QHJu71sxjFC2d7dfxwp`mf-n_KZ zR+5Lx@^Dceex<(a+Leb(axi<(nP;n4$uo9#| z6m&@GQZaTmQ_Q~iM(@q+N1C29s@?lf^+NCWKu#5Su)iVj%1Ty3!!+ao0}h%%hk2-@ zJQ{h}#5&0nV11Ouzd)7@+y$z2sZczjte&<^2^$O{av{4bs$Ip&Egx42nv&ogY)c z%%ZXqPlm^A;$jN3HHNgoO-JA2s6?b-JjfI8!i3lx+f!$UTV5Njc-?Ph&$k9wt(Ar1 y<7vFb!lUD5T!`g**$J_*{o(9Rn{v~rdrT>4_*y%o_7?)cC%fLUhc7nADM|ki)L>Qs literal 0 HcmV?d00001 diff --git a/src/grafx/render/__pycache__/core.cpython-312.pyc b/src/grafx/render/__pycache__/core.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc7adcfe620b58d7c6096972ef9392ceb54a37ad GIT binary patch literal 6113 zcmcgwTWl2989sB{`_;QPzQ#+qgoS{)1wu$@w-|E?I3W;99q4M=8QW|2;+z?SO?Fi` zA(GvocukPJZdzgT&=`>_eyCI;MJlcOfRsM$f)zFsqY|Zk;LXWKir}UF&zYHB*0D?b z(qqq=vvbb*|9{T;{{R2ZeCBl85R|`v{Lk)b4?7c)qnhPtL{TIhHB2NO7P!do(&r2@H_i5urwdAk zgXipmhwwAQr{VQZuR#bOR0N|x%_!z_o4p2dNjV2gX0+SUm=I-qP?SB%gA_qT2yA&|yjdUbg7N0G8I}Dnz3c(q5Qb#46ru1$OQwDoPan|&UPBbt8!R}|m{D_I^bCL5;mNimjC1sqBCNGcbXk}4mM$%-n-y^(%N z6_gZ?_Ns!E=vRhDEJ*00afB*>`&9EEO6v^SDWN^x1WMh3)KDohM<=o2(ctW;w}iT285Zvs{2 z;nud^R6=U&9XcBsYCD_4r{(@gRBG$Nk?z4Z8AtUNmXe}`+oCBfZRj6T{ZTAM6iK&S zw+y#{coST53&407%{!2*>5g-G!MS|6qiCY z=Ju97g;jfQw|0E)*_&H_(VzG19TA|K+qiY+#Zqn`SG1C9R>LJY|Pqo$ESvhfpyczXNK~vp{!#r zu~L)rG+Rth2abXV#gE=ibPB*3Ek~VI?Q3@fCNycxTt)0{nY+X05rM z)0UZFF%X>IdEIg&m~TC}xU@~Xvd&*erkbbLO*Q9I19Iq-Pm$LJk9z#Kb z--;BnVzh{Y;xO9pBhmC*&WL<(GHL#o78asdx*R>hMsx%P&7I(waqwYGq~0fCRuy7^ z>A`dBj`m7{ew;cJ6D2VKxE2GNuLfdrAemAEku#B4JaQ^7Jr{V$YzUe$WHE>d$q2@& zvnm%82UQ^&2X9p!RAN|`;!;#mt$PNeQoj;QB~@o63f?M*HNimv*HRJMQ;-BZZe;oEUZ6p+wvYYVkj0lbKks!lK0j5)Y1`AuS71iI4}m&LD@^LJwX?s;5as)*Zb~2Py&%h;r3e_;0GkdekFTFZ(V*JFc`N=u= z@}k2zawfNB`o$ZseaEpL8vxj9`_6)_zU-z;;;f}<&R(01{HEqkL$J^goVBmje_w8y zY?-w`1?jD!@v?c+{J!;jtKhMHV?o~9ER)?dZ$?hntUCz4m)(|=XY4ndh;XmTK%KO4HF%vzg^ZcnyuqH(-27aDIVxLfm<)_D%uS{{^~FkB`{^)GDGZr&8- zp=lHn5~&mQLj&k2>MOgEF$BP?Hvwoo5J?Sau$~lXd`3v~N;!F?1r2E6M!Ft=*)j?< zA;as0i351@01&n_$X2!k+S@=A31bkQv>gqa7TvgKVI1B86@4#l-?Y%?d1SH%0z%jJ zlcBqy0!m>*wRKu}`d;81rmq~HkHv9-D!aoZhka{2Q8hL45YyZw~|(XRLh|{x3wx)1AC4GSq+@U5KWd& z+W1MB8sup#p}8ABMFhe@4A{Q*fTm++s1jlpCSAX-D@=76Y4=AU;$^tx&!B>|s}tK| zQ}YNjvU+Uo=-TYz(e<}1_4i!i)3r zO5cq4N}}N3TCA)vJY?N)G&|C8-~X7$(*P85-H( zkO#Ex+~z9OMS6O$)Dt1R?s1sYs3OggI0Ry;Yz>D5f~v=mB^k_+)0m;%=l~_u5}8;9 zp;C{NMt7M2c0jiTm;7_62m!3UV{0zhn(sPm=6v-NJH~h94o`8@M`wMT^N!7Topp1* z#@wdd>C36f)XbJy-}by?`)eetkfa&Pf{EAYU<5lQh^LNs6j1no26Mo`KYWtP^%jGLZ%h zL5`gx$M3c~%sy(*?!IlQ9}dkqJX!C=vhii_92(wJ zEU4`8ZDq@#qOS!xy-f63!uY^5hyW);=*Z@PjBssI20 literal 0 HcmV?d00001 diff --git a/src/grafx/render/__pycache__/graph.cpython-312.pyc b/src/grafx/render/__pycache__/graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69206242aebc0e3452346d021002122864cde497 GIT binary patch literal 5705 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 literal 0 HcmV?d00001 diff --git a/src/grafx/render/__pycache__/prepare.cpython-312.pyc b/src/grafx/render/__pycache__/prepare.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..30fce1d9e0b864492fc7cb477f4715e8b0395a8f GIT binary patch literal 11631 zcmc&aTWlNIbu;Af{S-x!q9og+w`e`Qep~XcW$nrj*wvCT-Dc>+;UMXU;wM+;h)8kNK6&W~QM0=97P(SlmWYzrzQ$=n9QzUqWMv3R7V^ zN=?(_G>vUdR5Ps|*G@Cz%(QM?H?1GnlYVW~Fm8ZxCTg5EjhkqS({nn`>;oK}ValT- zFa1tvaBSSl(HiO)71n*93hVD{l=1rouyI>q)BvN#=SJ;?Q4@@spBr@)MlCREeQwkl zwtb%(uL;|sc7+{K*M^-?yTdh5*Uf4DuHPdSep)t#gNa}$8WaRSBQvKWLP9paHIs_C zPRlW2`c>!!t}$T^w!&JVL_f#)b#hJMEEfaBL!l5S2*W^+te@r*7vo`B8wp6j7PnnGJcQ!zVD(Jv6JF%Vkq6&i~4@pf1M?}SPbHDwcs*wj}tLzS9( zgdT(nq{i;Ld1>KNzGmB>dp>CY(bl}Tap}Fq_cG3wf2wK7`#REzyI1dA&2{dVI`?Ng z`!gK_8SlZ2^WcV-ay61|^qY7$l2C^g>Nwtu70yA}&f{6)aleSH@D121iAxhcVuf8o zBUGxmwEO4ZNY&rkA(>jTjQ<&<)4i&^htSpK<_wHfmmAP1`hv_5y#mjhWC&!62{R~7 zq@}}FSWo22;5UNq8H>awqud#CK#A@##o}QukeHj{WUCOL^+!aNIEQs_gFPKYP{p~P=yqq#sAce;=Em=lQZ1@HEbt)a?C{>|zn0lv;qLP{y zyssBEU!RH_9n5CFpaQBWDm`Dp7X$F6%G>{Id@-tY5WZBIslXTQ3;Ck`!}#(7JSJEt z-fI=*>*Ia_UNhiD#Z^(hKHjips;1&)cob=sZ*W6fN3Yp>*-<#9ES}N<_V;)?t~q+y zF>+j4Jgx&QkN1B?uP|_pVcG30c9&f!1C<>B=jvs@p`P#p#%uOob{I}MOHTO!`z3Am zn`C`(W(Kqe-wM;o+9(&}L9h!t5pQt51FKFPWv1ehn4jTsg`oEnJm?-lwv=fZ*;1}# z7=UA;l<9uoa|%mU{%Cax5nu(H4DOU6Z*<(WFW8s2fU3WK=X$1NU&gzC&3NF6#hyy! z9IWJEvzF%c=|`51ytVe`=)&l7VC8JC_mI?k=)q;FcPQ68BK3}BdrxM1PGuV3{M0)7 zScO}&_T{&==C-{eZF}V@McW2%S@KTrl6}#hcBe1pI{KxK{%ps=O#7>uZLfXmJhY(& zn9uc;)$#u`^@g4@IguL~U-!yzu4ho{8O-$@lX{M2dqy(dColyDGYsTTcqxR<9!rZbq>uAmxo5`&;`m%cxH&8L0@NTPmPqyFy zRxJDpuRsO&q{H?8DA;`&Ziu&Yf-0|Tco92l?Lb|S0!iUOyqjih4tj>1ZQR3JZA*CH<#|r z;D3VHnNd=Y$D?6^4Mw9Z`W0-9Lz6zp&#@D69!?Qj!65T&FvbRF!;v^U!^aT<`@m+N zx!7kWXomPnVSuy{sp1T~?7;1$FM-i4F%u77|%dy!+~-{p9mu7q2G?km0>o1G5e zl`fPah{O^E0T{qh762}AJR6^26|hK*O#tQsJxBnS>EP8soCo@=paEzYj!e%^vkC~{ zDq9)PU7n5bT)0G&5E0^mcq}?shU`K-9z~)?V&Mo_gg|d(qC^NA5m;0hp#;2y{EBkD zk=V>^0(co#JL0nm=qXJDwg?}Hf=^dA4Z3*Weol$JgEQk0vZ2IFvWd8LTrhO8d`Utg zILRp!5ldV)71=DCimZ}N#f8eIA~BoHBLfI0F^|C0{v*w!um&z2JZTjL+(7LIWrj!s z=OP8*jcU8}dmkvk0#|T1Mg0j}A4yH}MHew6Y5>3P1Ffi?LNBqRsOHi&=vVR5)Qw&S zjL#`s1u#5ry5J0O!6}Ce&joDAHE%&QiCh-nn*&Za_hL1InX{}_K2we83^KwVi({YRE=B^OSy`W zgMe1`1CmUlXvG6W6-!eU%cM@!^7V~K$RE*Q3@x~EX9Rur*j3iW735xpwi>M!_vwN>Bulpt;#06%tzib||i zM<(fHePU;^-!0atD}WJS>>ok8QQ1@!(M9;sP_{=6Dn>XTjfL|8IwjdSiKjr%P|2ob z;~xaS1>pZ!-kvD&_In0p*9fn-Cbx-A;x=;D{%0KD@?tFCGm9RaLEKs{wQxnBVkmJ7 z@P{q%2lQf+E!!1VTgz5e>TOT-tMiI3(I?i6En@q}#`}ecRyA5ky0{hmG`ceLbuI<~$b*f$uTF#%Iu~!WcRmiG`xz(}2Z>FC|Dyg9HwQ z9=6=6?F6%%;;yR&I0k6ihfARCa>xt9Sfj|PtrI8?_MX_hdv~^Pa&i4 z*qNcD=anoA8v0}+oD9oZ)z@JYaW9)P=bKAHU+)fPIT8DF~zU{9%v{68aha{eMB> zQ9Jo{Bs#;Ba7-Hl6k{?lWWf$%EAPP;9y($r`?t#aP&_sfnUp<6ViX@Rpg5U|ac#pW zR6vyq*&BlRQ-TYCWRNH_X38Sq~#APBY@ z7)ug)0`V1O9m(g(^`VPg=n~|H!U0%1_|}O41i=u2r!Z28fpY~Gz^Z_zNQ{uggyJ)E zGJ~X(kOncL{avyakL7L7 zoUK!`b7V9XV^0WNli}eqz68e|Q8uzBaRDWK-5#QxJvou(`Spsjeei*Of9q z@iZ<)7o!i4<%Yj04S(~q*0&#AP9Mv)?U&m2KcKU11CLtY&U((LEO}3Jy7g|~oj%F4 zGv_%Vc@AVf11Zb8Z|jFmx0^oV?nduKSBF-2KWKb7_V7Zce?;0nlI=M0i=nJQ`}oOMg4MbmO?uAxtA=*v2Hz!IIcOSVPZ{K(_lZA*t156z!?>~zhKtlM0- z`j;;+zLvE$Kcn{Px>Gb^MwjI7S{ahuy(!bW+qZOb@nqVRb#GtUNxJgxEjf3avq9OJbjPPo|Ar3W!I$2$cXd45bU4#E zlsdKEv}^U?LsPctM5giN!YN>QLvzm8EkV?CMDp!RomlVcU75;u^?%klkly*@*E5X+ zDTwV3tatXTjAuI!eAdvPZvOGEOhbR_Bve&NeT<}PZ71mhtt_nm4zLgi*X5l}%jYC# zYtFe{a&BMg|77sq;DbHc?!#-&Az0M%5m-~s>6e`TmA(faY5U=a`=sq7pE^%$7!c!z znL0|Jrax;u{UEf~v}bkf)29AR<7p)E^yAk@|6QwTvgZ#TT62Qrt-x#hHn1mkYJ-BG z4I}0AulS_;-6`9;Z|7=n)^|8%C#-MzaO>@@S)YI5#ADz`L$B1(yAqKa4x~;h+u~)B z`N!#7+PtrGMJxGwZs~#9KMjAhcg3^ndC)EGJd$lan%#O#avobWBj=CP!1{)5D1Ygx ztZ!%P#FIK?ZCyXebz@K7vn}sy$N!D~ytnyti@wR6G1hO`DU&N_te1@S8K3_%C*urh{L|4gFs{by7`d zphE+z7tpu+>s_AFSB$^Zm`3;Nf7xIf9nk;E_duQkhoi- z5c>jyxablVGUV1o!C{9Kr3T#h0_51Hlv|>h;;R~2E6gm^m11z!-0RZZNvbME49UK` zMM##SG5b{%A{@R^E#jsc(tP>)beq;!g(qcH6;o1|z?>HRWi;V)Gq}ANTdFAPtYHS< zs+Q_fA$VIE-}NH(u|akEfb%cd5x;Sim_9rTgP&GzS~P%o_zsHVS*Y%5lwM5!LFS?d z`!QG`na`QP|Z{826O6Q*5F;<`N+_;?%0<8?wX@7W9)n4@GWg7l62i9v_SN5&d?#ftq_T<(&)H(>0GAEkwJrl9SDXf(=T} z&YYu1a`XUEPXI&zgYLE3qZ#W_d?-vs0(zTbc?_%!H{scLzUugtZzBY%LBI-!;s5#o zfdGQ%R#{Z>0s+K>@e&c`_o*WNGBL#uVZu5*j4y*izj8tYhq@%VDAMJ;D2+f4zItAqvJbe-7HJG-KF~pT!ErnEx(TD8u|!tgb*MGhks&!}-8NQ2uqz zHxU9W83z`iQlxkH`&V!6{L|#RgI&?DzOm*wkbyKRNN?*;XFn8ggY@>SySz(1i#^Li z*43JN1FWE%#}|(O@WgWS!dp2DD_PhzOH01ibL;ZrzNLeU2Y>Whx;Y(MX}L3rrpwP` zQp=u>wFn0ZcF&?*-y5({S$6sv!MKVb+e$Rt?ne_XRXwCt9wTj!6g*LaqEi@xQ(KdVU( zr@glit$b@W@t3DpuSmUvQsdx5SGHz&{zTs5T{cUW)(oR012&ygj4hCJx&e))vP-2Z zONv)tlHT;4O)+rYJrsk$G9_sEAot zh6N?IqKL&5mq?2weS2dVVpue66b;`5D$3k^jpO42%vFto{}Lgv(ID`SCX8 zyq%J_bH$wX?grOk-Ql`5kgIKzYTL549a%@`{PDc44ophjVH&OMt?A~)x4^sx=OD5e zNt^E4@7S~KD_PG@u=qQ=iLHMy+c5~{)Uxl9u@y{5coVEYYg2|Pe7fe5E$A|lfCwk> zC;{L^&&`0-tK@!AE_fuL$Guf}R7afcz$6D>bYiBpZ#EH$Dy};J8e%Y?0!|ffMLY^+ znf(@g#2_s3vB(Wb6bTVD_I|p@<2{`wUX^%T7NdKQ~oBqq01) zQolUED7&~IF*#K~y(lrQLch2u8Okb3%}Yrw($6mfk@4}Fd6^~g@p=W7zc_4i^HWN5 ZQtgUZfyOZcaWRPTk(rT^v4|PS0sz{)D186` literal 0 HcmV?d00001 diff --git a/src/grafx/render/order/__pycache__/graph.cpython-312.pyc b/src/grafx/render/order/__pycache__/graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..450ed85665a81f393b28821b812bd74066d86330 GIT binary patch literal 5073 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 ArT_o{ literal 0 HcmV?d00001 diff --git a/src/grafx/render/order/__pycache__/tensor.cpython-312.pyc b/src/grafx/render/order/__pycache__/tensor.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..648a3782bfd0c41f949661356aeb9d86a2b21325 GIT binary patch literal 9845 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 literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/conftest.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/conftest.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7b33f44a71caccaa33b9fedcd5fec75673c9d5bf GIT binary patch literal 1874 zcmaJ>O=ufO6rPdxPf}#be|3e@M70a82)5jm;?kI=2U8jfhT3iqg0if&BYS0OSDjhe zm9fF0fus;@Ts*bS%QtODwaYzO$3AO^8t}JF*!GPN5{^ zAByCIqXC7)qJt42Ewq9vC$-W9ev0jg z9krDQ>ZTHiFlwT_HhHKI4}aaTT%X68?@?muJ~!2Hb5id3mhUW*93@rDCw9&! z%xC#1*Q}E7crMp%QnngZpDXjETF+x1vuxX|3mq_8-J*<8CZ3c#{Gc%J)ktB!xnwm9 zOCDWdb*n@QbJQw-Q;?1eb?TJ}V;*INlINC%aHQVk>3UNf&12s*2_9qcu{VLNp|%p= zRrPap* zub>dWRY>|Y%Hv6qmf)dWsabS^t1^X<2c_I_OFw=OKfu%>tOAjssV^24FEW0l5f}@goVkVI$1|?K9k7za43*-o{ z?6#8KxU%*3%oF8{AhwgKKaTCESH>2CKtJ`5Z&$?K=T=33P5`VOc@PcnuSQnz1o~%v5Jd{Se) zOIVulGgIQr6)6^J$-xRr@QtIMDtXl^ktbtceXMnP{qo(5_s8yy-55 literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/test_container.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/test_container.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0244ee7df645e7768888ee087f356e5740a2360 GIT binary patch literal 4715 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 O>q`;-??PfX2lqb|16bMs literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/test_core.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/test_core.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8ea8b49c54c8f4098c2c008ed5e75325682af04 GIT binary patch literal 1446 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 T=dpli1vnwV>D5-?k=6GX>_l`2 literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/test_dynamics.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/test_dynamics.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..541d0cc36d3460bf17d034a079906282f5592680 GIT binary patch literal 5325 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 literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/test_filter.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/test_filter.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f145b4153a45ded922b8424b6fa495aead3ff8c6 GIT binary patch literal 6267 zcmds5OKcm*8J^h(x#COI%alY}rXG$>$(GWG)3}Kf$4!N}O@#WU-H7RmHxv{^0FHrrOI_s#mCUN-&jL4OHR&q8liLH#|Ci1HhJQ{BOC9r0X4 zJC)|y;9;YPmuT}+!>G1~QK3Ue`G~)1RG?v0`(dMCg~6s3h8jkN4;w|=Nw`T@N5iO& zmPd6qjOsjeRM&hXg53>cx~OmAbRF$#4!9Vr=Iif;v-Ny6M|x<4_R>DuPos2z9;bu! z1dY+5dH)XB22W&!9J_|AoK@em!~cVh2w;V4^Yu2Ye}wd1L$jl#ALL0A1^E~m0C|cW z2YH$df{c?BAje1yIDiWcjD`MB5b1wgE$ zkNlnQTzLD!Ev0u4%E*zE`GTV)3q=1SAHn=E2jerd5D0hijDzEN2wgIgltG+9Jhre- zF1mP=oU$^G*K`+r#A>~BdUBCw35$ZJ?k2r)+1P@W7%0ZYMTCx6wI4nUU}p)FX4!F2 z-Pff4>eLbI3#3flN~cnGGM8OqCqUU?lfolb*U3MR(fNX@Gh2@*=5oVQ&Pm0SB1DKJu9W9Z_>KU3yFuw4(!bagG`mj@wbJ}WOYw-{igXDTzuZUT$ zuEZ+^J!=~_(6dC@IP`lQ9_w2m*3pAer25`Ed)F7c?ThUyL;nmP-=ZIk?uMUTzkE-L zl(deGC%2~FU;U%?A6Zg8uCw~GIhN5)ST9L(ZmUUyj6nDe$nY>nu!z0`fRQ9}k)q0a z>c}62JCW8%%YLcLllp3 zY+|H9V|FgKn9VI`V}@lxaoMobF*|KoG4P(0F<)T9q9>-}9uYFx8JNfAlDo1XRG9lV z7DUDs2>vU4c1N*5nG?8V0QO``L}A7mihD)R!>8lhvBkfMa|y|%vs2JHCuXZearPbP z^dsK;GKh6l){qw3=y~I{&F^i|JJIpq1@38~cl>YrZ*~84SDXGX(g%{mmCNR?`&DqoINL1{(jn%Y3A z`bbLI1gvN(uDWRQ;4VUJofkFKDJ-Wj)dr)vh>fW8FLN}n@nBQc%^V)jiXIN=s2 z7^zUA2}-P`6ng?%UWUhd9>h8-d4rFlVT7aK$bsJ@I0)_MfSXG-apl6XegT;#4j?R5 z983N(90&#~8rPHt29*5_Y(rS9IaP%L&I%^qbS zEXAha6W@i$YRREu-z)BnNJlZDOm;!$j-~=;Xf!TH7nDp}TfoIc%@|%EHfn z3?JJRzcttdXVTP6iSr=)2?t~U*}^LTGcEQrX#GRWaP?Lk^P2=$8xP;D;gz=7Rlw>` zE#uYKB3}F&meGxDA`!=oABW=;jy6|-Q@xS3oWRBWN}^WkOSm_H2{`9a#xKMZj4m_7 zrcPU}ivQVh>wGX+kgYRuN_EtNZ2W?XrH$8i@u^yu(+6}}xfO};;;~wv@%?@7M8CWekKV<-w{dSt>H0|PE@{z{cC4iJ z2nm^9k%wX!F7f3^K=tgY?UM9q%!569Ly+S*^^}L9SnfoUR-bTl;D)-j{8v2ri4?-; zc(=#PJoo9aAH;wUME^lTv{prV04agDR`1At|4;@tU%v6g`{zD5`8VZaSw>2~*fjqO Dz}}$O literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/test_nonlinear.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/test_nonlinear.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0069ff9f10cf07e3c9bc9650e335f2aaa342fd64 GIT binary patch literal 4057 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 literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/test_reverb.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/test_reverb.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ea98a58cc7de5ad3bafc066ddd6ac4d56d65e12 GIT binary patch literal 1901 zcmb_c&2Jk;6rb5$uh*M6ar5Cg4Xsi{8w_e(i5`$3h*N+AIgp%u*=}~n_9p9(&g?pM z+1b+f|E{S9*VW^Z!z@eN{j5zefn_1g&6y<_C(!P1`&3p4c=J)oO zWYR>iPJaBea5st2??UJ;y~}jI!U%067rEF+c`SFOtU3xtWi21W(TSeds2kg;#y_m^RyKZ7Ff)y6n$dVXw@N%RcRJ; z{FZkoM991M7eXNFHJjRH=5+fl;|gAduX7d1Hfo|ZsXkAZ(Jo%v#XKf2047e!{SbmO z;XeEFy8iR4(WpB9q}i;_B_tMj!6*F9?aq(VpF zDuK(+Fpy33Y-sG;g>M!Pv`hzN#8syja?J@{`~T!m4Y-3Q1Q`Mn5bh2qKni&&1& z9D#w}iUT7taSxbn6!h@|=;)%gXDasI{EA6$!vA7l>1iIRL9A!lR9)58no1Mz$M(8f zj2bAbFRf&;YzEgORM0VS%Bu23xVdTvP6^QckjOH!D!`C>m4F+TRk6#&vZzQlt5E@A zX+y68#}oYunFjJKtmwrva$cfX*8R|~1YTeV9su$N*olwjfNY|FOcXP}zI|lQ9-6al z?Z&UEYv12(r|xWi@>H8THmWP^GE;fcOV3|OQy!C9tjQ*Hok3PONMmP#HA1J7r&eky9@ zQ*!3!&nkz@#h~$c!Fv#dl*loYos}(@?c%0vg8Yqet!&eEJ|rid1QgoNCzn?iS3b4b zI&qh(9wVPcS6*F&0txLZmrHgH{y@>0Y~(JIEs;HcX}n*qx}i@#pzlDQ0#WQKkW&?7 ze1gyx`f~I)lsrKTf1sPECQ?$H=_l78U*C!Cgssop_|^*rD);n?FM2?d$3=n1Y{{c)*mJ9#@ literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/test_stereo.cpython-312-pytest-8.3.3.pyc b/tests/processors/__pycache__/test_stereo.cpython-312-pytest-8.3.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c57d075ca10bf099b7f42800906b19b8cf7d6a13 GIT binary patch literal 2608 zcmc%~OKcNY@V#CClaSyL5iroCT&k8f6^GI`hem4o9DG?V-WO+sy=&gC14d38 z+DMdBsW>E3sl+i+sDygrSoKt?mxQ3kS|LFNRh3&H6$eh8dFypdKZkPZNIN?-Z{C~l zoA+}f5hDPJ?|+;6Jxs`BWPAW#z)qPGvPg8I(;~@H@s~<+UZSKF$OWml63T^OMJk3% zkzAw{%|#pXSS|)~x!Cp{=u3o!X41Za-M=2tg9Yh!Xca6W=-~yj>X9Uu_}5*L0&Uq7 zZP}A#v6;cf0WCkUo@rqlx>{mIw_A0X?Wne47K%(Q zb1Tnm+u~X3(!;KtFIU_^zM^Zuhsqk)N_M`HS`iG=GJHFIfEG!O%n0$z=oDF@lPlB> ziUWWMb9SKuR&Cs#dGYqxv{hnb)76Vwb?lT?mPIL0p(2AFt$ZIwXEyE4daU-f~Y9*$sZtRq({0Ew0y2(?9&XAfYX$8jJ z_(zs$owhs;H+EJlR@h0-EzU9L*&y#mU$J7m9})Jf8*O@O2Z7HZc=b(t7em-nFH|(s zF&xb?W*Hv_MJ%;l0yIzl2$5jy%hxtzne|xaeqiWPxbtT0UU+}KCw(nmk9OZ2y%#;y zWRBj8jtJ&SGQHOS=G}q2skPn@H0MXi9eo<#|^)FDPegn)&4xS(YN==~HbhWWV6kD2H zkv!9Q*RnFlx#&uc#j!Pk$9#&q^8G;BxVM?ip4Ma*pk^?OOv9=2gP?T;)rSGilP5~w zjrd~f>(s5#hH`Lz;z^(nQvpdxbv+LU8X0)$Ccj$T&C4}MTjHiVt&!W(OL5DSBG>!? zI0#YhgC8G3gkeKUFdJUPSPj2>_BO_<&QuYuA$ru0`Y>p|0iTTr&65Yp;D(afREF1; z;al%-C`Wb!@BUu{$BXR;o+rs^wynYchCM3cuzEWmTqBwv%PNQT*W9lhH1O;6XmMfCtllN^kRC5w&&Od98T@`xWzEAs`3VWLhu}#{!PCM%~e6{~d|0YeZ)AZ85 z<>Plg{h_vY`1A%n^GxcbAw2agMclO=0DgOvNRgHugUdt9A1`-r(AS?zVNdR literal 0 HcmV?d00001 diff --git a/tests/processors/__pycache__/utils.cpython-312.pyc b/tests/processors/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5c5703f6ae3ea5ab95d6ac80ae84c7d4fd2d185 GIT binary patch literal 15718 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 KQANx9`u_k_Q;zol literal 0 HcmV?d00001 diff --git a/tests/processors/conftest.py b/tests/processors/conftest.py index 6af7178..adbeeda 100644 --- a/tests/processors/conftest.py +++ b/tests/processors/conftest.py @@ -1,5 +1,10 @@ +import os +import sys + import pytest +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "src"))) + def pytest_addoption(parser): parser.addoption( diff --git a/tests/processors/test_delay.py b/tests/processors/test_delay.py index 4f71e90..84afaf2 100644 --- a/tests/processors/test_delay.py +++ b/tests/processors/test_delay.py @@ -5,7 +5,7 @@ create_empty_parameters_from_shape_dict, ) -import tests.processors.conftest as conftest +import conftest from grafx.processors.delay import MultitapDelay # region Fixture diff --git a/tests/processors/test_dynamics.py b/tests/processors/test_dynamics.py index 4df261a..8bffbe9 100644 --- a/tests/processors/test_dynamics.py +++ b/tests/processors/test_dynamics.py @@ -4,7 +4,7 @@ import torch.nn.functional as F from utils import _save_audio_and_mel, _test_single_processor -import tests.processors.conftest as conftest +import conftest from grafx.processors import * # region Fixture diff --git a/tests/processors/test_eq.py b/tests/processors/test_eq.py index b4d9d29..31a8985 100644 --- a/tests/processors/test_eq.py +++ b/tests/processors/test_eq.py @@ -1,7 +1,7 @@ import pytest from utils import _save_audio_and_mel, _test_single_processor, get_device_setup -import tests.processors.conftest as conftest +import conftest from grafx.processors import * # region Fixture diff --git a/tests/processors/test_filter.py b/tests/processors/test_filter.py index 7f59d7e..a71bebc 100644 --- a/tests/processors/test_filter.py +++ b/tests/processors/test_filter.py @@ -1,7 +1,7 @@ import pytest from utils import _save_audio_and_mel, _test_single_processor -# import tests.processors.conftest as conftest +import conftest from grafx.processors import * # region Fixture diff --git a/tests/processors/test_nonlinear.py b/tests/processors/test_nonlinear.py index ddbb431..1bbc2ed 100644 --- a/tests/processors/test_nonlinear.py +++ b/tests/processors/test_nonlinear.py @@ -1,7 +1,7 @@ import pytest from utils import _save_audio_and_mel, _test_single_processor -import tests.processors.conftest as conftest +import conftest from grafx.processors import * # region Fixture diff --git a/tests/processors/test_stereo.py b/tests/processors/test_stereo.py index a1bc0af..0c4b84c 100644 --- a/tests/processors/test_stereo.py +++ b/tests/processors/test_stereo.py @@ -1,7 +1,7 @@ import pytest from utils import _save_audio_and_mel, _test_single_processor -import tests.processors.conftest as conftest +import conftest from grafx.processors.stereo import *