From 9b328cb98fa6ea6b619cca84b6953db29b88c435 Mon Sep 17 00:00:00 2001 From: shrutu0929 Date: Wed, 11 Mar 2026 13:37:24 +0530 Subject: [PATCH 1/5] Update analyzers and add flake8 checks --- .flake8 | 3 ++ all_flake8_errors.txt | Bin 0 -> 180130 bytes flake8_errors.txt | Bin 0 -> 7996 bytes flake8_errors_temp.txt | Bin 0 -> 7168 bytes flake8_errors_utf8.txt | 39 ++++++++++++++++++ refactron/analyzers/code_smell_analyzer.py | 35 +++++++++++++++- refactron/core/config.py | 4 ++ tests/test_analyzers.py | 45 +++++++++++++++++++++ 8 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 .flake8 create mode 100644 all_flake8_errors.txt create mode 100644 flake8_errors.txt create mode 100644 flake8_errors_temp.txt create mode 100644 flake8_errors_utf8.txt diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..87afe54 --- /dev/null +++ b/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length = 100 +extend-ignore = E203, W503 diff --git a/all_flake8_errors.txt b/all_flake8_errors.txt new file mode 100644 index 0000000000000000000000000000000000000000..51801fa10646d1287a4485c73bfa76fb1a528ebb GIT binary patch literal 180130 zcmdU&$#NY>l0|bZGyMa0s#>0NEg@68q!3+ixZxfd}Li z$8Tgj7)>Gw4Y<$4$Lk&*|M$Pw-J9-hcivreH{Esjsk`c4b!YMGLwxlizNfGM)_v~2 zb-#Ac;;$Fo-{bE`-EZCV`06;m`q=-wZ{n+)`0qdU-_if)U3~SI?q&Bhe*Z`ObsAqE z#m{*kKkfSaPka+!ed+$%{oMT&U#&;-0wH;kKyn_R=sZ5_x9)!er%=D@evj{bi9emi z@B9CBC$T3XrE;0QNXhIz79qWeb9vn({nA~=?;qpW9BQ3$=}EUn{WSE8pq36({mjey zS)4UNow2Gs>XY6JlxoP!-e0tn^^5KakoC*>uUcxzOXzpq-mc7tybS+QuGhz*SATCR z?c+G@V}SfcW8FRuKSKOpYwbP`?PgZ_tg)UvhkA0_822gi-7g}OY3T)zBYz~hRO^@{ z+>g^PUqU@OX{;wNyA$NU+uG%mkT$8Wl+(1dOW|gA*&4SZW_gCv+Mg&pA(_>S@I!6& zM4D1AZ`ByBaWnmHTUR~_zd+*7i}0Rp<^2@eW!wBjOb_uVt@ElUao(rME?fKWQ{)Gg z)wI>`7YKLj`toVWjp#{^|IIU1PhmYT)}^JM2siU5ZR3u-H{(y*+NE$adAH50o`#+> zyKEaTp9bp3DQ{ZOw`J^~M$}>XcWXbWzEXMJP$%wOMkn-R^w0k6d!yfGdT7U}Dy|dd z*P~X|P%i5_oxk;{pP`KEWq2TegkO)E)(fpslWMrNhCD|a@**nemKt&jt+7T0zh19Z z(Gnk0BX2E1%~<0aRq%S$igM+$ei>Dcp>CZEKb4D-b=YGeJ2Oy@h3GZvi0&-2a0qmTl;U}evC1mcl_LO zM-!yyF-LlKXP)#vLwh^gGPAI{wiRN;9^j8Tbn3?bMclpXNGse>G_ewB}EqH9Y zp}dcIJa^q&B56K>>CXE~Q4?8fTFG0Bm7!Ljsa&u9+*v7VBI~x%g-*J*jW6P{iL6`e z^>b8%`KPoHSB)haqW%n<{%ec+Db(w>70mNT7#lUu z#UgrJ4LN~bgO)YHlc))ZtXq3NItkELLs+HjXD7@2wK9tG{MtX&Uy7PBeD2d(QIUG;aauYxU`n-r19CK^&BHm*ng3~|79DzNpabqk_g*2-`Fnd*Af>O3-g zbk9`E9!qeG%PE(4or<>vw<3Ev?w9s?ky3fHJiEQTX{WcX4-})re0L3gwM4(!?3sTi zzEr>I-iaDjLW#T&<<51fyiZ~F>YijM#m#nR)Yv{zhFo_fS>&nFMOd%lV$)de-PRN8 zj?H7tP@Y8OA$6ty_FJibGhV)R-JlwcvBfo*`4YQi9=uK;qzpIlC#^GZ-MMBnByIJC z-!^QETX`(&hq&X8bo)9sDSnE-U-tU|FXB7XJN9V2bXPp3xT(C|99t=FT4B1GpK{zp zzy1EZ6gRyk+1f5?m!Y*?YNC%YR&M`Yswb3@byxJIxHVhHDz!sE&T=a^n_Mn))tTj5 z?w@ug$XT7~uImYMqAiCY^I@aI&|f?1{u!B~^yjGi`n@yv_WS1Q*YQ2=Z`NkyqwbgP zzv53HB9ps{uctOs-=BNemgREUK7~^ct)q>YZ<3ezw;h$soKE?-j+C0jWIm*IP9@}o zJ$VsY=Iy(dYYUyGax>rrx%~F91+K*V{b%?-y#`R*_tA{Cy=3XVz4ji2?nZ501#9m0 zFnG06I}~!V55a%Kf*>a`-rr*&$VtxHo;6WFiXm^E5lYKhZPvP~6mr6y_-8cB^_=dt zaaWak1?M8_s_VtQSaidbJ9d^JX1Qxi#3bVQcaN3Gm{_3yj#&v}!v6Uu|JNgCyMp{) zZaren<2*Lo+ilyC1rAl0zH=0w@l8JsK5$NYS#4mLj)G@;8~4i(mUJvyvW>bs z!x++bzD}>?5;^AUrJK{Nx@u{I^vxpo98-yI z=ypGeDJ?OxjdCs70!SU0cRZsEN00kD5&ywBx_jn|^G$o%+YbNBiF=U!U6vGw~fQW1-kD zq8t9#L)Ob#n28PgXLw66vz()4{MI}K$vIl`xx!5Jxn&!glqbW=2WA(K4oJvp{w%2kGkZ(OUlEpJW?7OudY53c&o!3Gnr#tloqMosy1lH4zxLlNEYlE8gqHK@{<-K<)Q7eu8X_M?vZq`v^EJ3T?c@2-{Tch5&*GQ( zJZaW5#Xd5j7xk9L6)8P zT!W0g4wGd9*C5lq+Va!P-j3TxCj0!@^X;F)BES5w06HO->$|MOb{zhU*r)eQrzCeA zY&q!;`p@;xIM?etXG*8CbNS7~Gku7QRrk&)FvO{Sd8s~QHA8KQsVZO=kh=x7e3qJq zC9FqwU&k^sW%op8`L6vMY^?W_oiJZUru+RQd-VI-`(EQ&L{E})Y;m4?U4mFacFV`| zdD8ntS$=OB*-4xytG{deG|k)*&yll%i^$9_V$bQTzB;*yd5Evw?@>9O_b*Be8&7ZZ zwPz4vW|FZCq2?CZ`DU1kQjBaXLGDIX8AkC`EGx<6=A{@JzvH!-k6|ma7-8S>4SH#g z#j}i;xi7sbWULt?bqyWN#qmYOgYc zL;gXen5intF|z!{6HnHhw5E8NC1*I~QaRGRK6BHq93#o2bKUiQjGFhn==ZW;hOfT) z;jL*D$uQUJkg;4fck6R4GRCHO;+rgY>NMr~SmxsKD*qiB^m(wI(y(u#aqs#F_vQ{m z)>hxv;3M*LWv9#dXojC*@@}nS86VxH;jxWneCk!Oe!nLNTt=vg1Xc@svX?ao=}qxm zeI&oK%aa+?o@0M5de62)AjX1dQZ`q=D+TfA1VirTz`h)Wfpuei+90-`Fdw<@=zTe` z-QPKe`9211sw}U3y!y~4M(x`Lt)rbfc?xU!T&&)g1KTT|yODTbCs`N4Yn$S|h+X7j z>i$`<*^+EUa~Fd;bcA2Z^$z#-;c5747PE4!!oD2nzA2w=Du-eWP>#9SmjkLdtT<>vcIXuzN<{vtT=FoRL!-ml-SOtF*)g5uJ2K zPHo;{@xtdP#YZu_@MV;m%OROm?hfyM{vZq_UO1V1VIXIbot?THyT!{fyYT6xG?G<0 zK3^>iL?@k$lxCBNPC9+H>TZ_9_^MuEU^$F0uU0pN#4M+63IoweXUq}?q7S(#@_k<| z8zX1o%%g;XorTXXltnQNxtW2x@j{-OB}c&=ZuMQo(0VxoI0uOzPzL5 zoIa4hBl_UQz$T8I`J}o4L=Mgl=fLujY|hIM>i@>(V*EH*U&$FkhdqeIUpc2jhB>C^x_`u9%F~Zxg7|$*bn4#1MND`OcX|KX{oMW3&!oQn{{8EiGro#jRr}e5Q0PV> z@maq3Ar!i8Mo{=FFU9gFD2_SfxlquXPQHwPK*3^}j~fvR#u8<3w%pC~go5sp@pXZ9 z>x0da=XNjN_ZLFJ^uotaNEY%Lt^I{26j+Yov=L3L5D)Inbd-IwXy%L~LP50CD+^63 zu>8W;hZF+Z{c`3P>e3S%@p>(xAk3~e&Y(T9M7v1!hEo*@Hg zUdzXy2nDO!z1i=x@ZXHz^vXgNXL){+y&bxrcdBM5al|Rw|oda~TD5{Bwc6$AVP%z)= zv=N~oam2}lOE1{XD=&*erwZI0v}!$;VPy8)-se$-g7uP}`Y9AdKfO7hA_6%PZ&yGa zau&~=-cz^ySiS7zQIxMRy>M2l$}b2CZ~jZW+g?sdD41S2c~@oAEVetnmMnz%3n#Os z7|mqiwbT=s=lG)8u>^vYI+*zFoMSB|&3fi;sMY90~$-Pc>2NW!h`07;6YblnL z_a?l0Ar!=S`cbexjc+DqI1!e2x>1n4)7ce}ELd;C>n}8!L-fMC^-8m@#8RD%l4eZX zGmSz)JMB&nu8u14TF$<%rcBu_J0}A@pkUo)r`M7sNUr6r1jMZo5AMyubxWO`h_`1o zye`EeiL(}v?`*Fbx+y?>xU=K0$x5c5-fT-7(nwTw_Ln6Kx^KqGH3|i*i=4H9I{rjE zz41&ah^2b@HO(Ec>ddPb>~4|jTh~1+*$B(|oO?b76eOy8c@)WlL{)DVE_R>9RIe|WggsnA}q`CTB^2BkT~M3M|4A#)~UW~Stw|J;p5i^6vTr& zBfC(r$nIpq2NWdxb=t^)f_W{U?-UAJoB8q!q0pU$^3IuCFIaEFxm!%KVEKg?g=QaE z&F<6-)kF-1(|3wnBUz4DJC)TRnp&;?hn_*~Xi)C9*AFi1#!scWvl283E$yf1u_*uO7d)2=suCI6R?lOzX>FN?D z;#srvTsus^_ggpr6)&%Uz9SgSSPt`Z48kr%JOq_Bnv2u{ z+3AcqeG(?(Gi&O&?%*&vx$1$3IxbA42bjG{IDdA!$yTo8uI|oQypx=Wf2wPD^bKWK zhIy+`XWhrh63)BV{R?$FzM^%txr~pUsf*uP!l%6z#18!V%=r1zz2jTSk5%%%Ds}06 zm7$lPuZyp~>*vPLSL_V45D!zl1|iL_T{Z2}87ns;5!T0&E+b@{j%(DH<9ev*OZX<& z)WEVH3Ll#x@Yf1w{X4OjF`M!+BC_6${c?xhV3TJx@|d&kkHDulkzV&Wl@snV2b$T` zhiFeG;G>&D@bJEn?93;;8>y9~;lvA!@LDOfh(<3aCugi4TpU>kY*<+2$Ztm38 zlVUhsUCp)fq?I%jGHvhLO-!oD>_)QE9AtPEfY|%i@}!ykwz=o9XSQ6P+n;;e>FWL3ZO)FgrKDV* zb=abLoP-_s#iQ$}D8=($MQ!<^ui$R$OI8EB_`o@2ZFBZHWON$S|q&9WsA@kViq(FU3&^A0GH`fH^yxiE$;q2bRb^1no zhMu0xyxiCg{;lN3;#GaQQ9j$%Uw!+X(Ng{QIc6HaL^UX$>yN%7yoniw^T<#B6@R*& zR$$vKU0#nMrkRw-7ZSvJVXj?o zo0oIh|2#HjhD;AVo^uHuyK(HQdza8@LciRGUG>{MI>jBegzB^gP{_HTY;$@i6jh5V9>3uIa~h2-#GOryH~mVaxh+4MMS#1fz>#Q^dUtd%o_z z^;zU~e69PlANR6G`mTuQq}O3Qfzi&BC#=J$4Lc+zyO^Z4D49;W_DZZp$!3MKZ@2BL z{k16R%^6RmS&x#jI$K(}@*cKb%)@m`ma3}NbG^&-6Un*m%#35A_Uk*%hjP;HN|v>H zrq#wJrMuUphve!GPNO1m!o{4Aqtdh?vp-M2Z5kDmRb8(@^LNke@RY3djyS2zJkjWL zFgs!;Klb_MEyu$!c`~;tOl#44ZnQ2sH2Hv&p zV;U9XyXxwd>Yj3M<>IBMWF?NJ998WTq`glMCpaZ5dI!-}OHShwvhq``?X$!XFrBY` zjx-*6viIq8)O#4@96dSd94?ZTy6&`2yFK) zQyNC6B5Hel-H9eljf-jj9F@L~|M@Bv^u!P3O4k$@NI} z(i*X2PfxPs^xLv`Wk|{C`(j+l>9Z`sRo|>f`W)teo?Qbar%!jjc^Iw|q_j8a%6ZnG zKD&+Qt4d0c65Dt6JxWfW-6Hg{2l?&I@Iu(G`#Euw&?Oc|f;s*g+LN+)7lV5L<+8?4N>TpV194zN4kZTtZ3 ztF@3Taq|vutf%|w-`u_b=}(178Kno zx(Mb{(~oEImp1i&jVX?sJNIoC$f&ov>r9wn2dhvQp|Qr$74m7a`lJxVfz;L4BgqEtk`x)Wna z9IWBL@8e>=#vl9c<6<`9Vd&@1k;FJx4K|I7&4Rmb=gi?E-K+X~FD{R1n1`{RmYC+K zn6L0mh0h}+-nB+Hzwa%y-JT#**TOMTGAA>(iMvL|xi2%-k!%{&Q}a&COt@IC;m)WeRQoj5%^@*a)BQx)n2r z>;&0B{c2NtiHXcyJ%~A(okCw*n>o;J58`X1s_N#s;nk4mV(8|I3mM}= zYkLg6YQq*NGLlCiZlqbLdW>$Mwa6Idts) z(^j&RcPG)x=XvL3r}>L=bWZO(kB(G&&b)07ooaUyRh*dDh5z-FsHd%|dW02_Pn)AGgyhU55cbf~p z{h0b=b+s$5P2*zc>8cQ?anbD9!`)Bg(yd0KVXhc9hfH}!dG6$jUen0vq(FU{2^nE~ zw?M{nIhSSrI~d#Rcz5Yb)M2_c^X7*qWADYdI+1g@2n*-({L{E}pNx47PgXRCjJ`MS znO~SgMqfp(FEd&{*Or-j3d{m(%S`j7tggz;4|oU0afz;&r(t(bWu_WkkB;5=+R9?3cO);#O;xUyo^lfwCo;XH_2?L5nd>-|pksO6HnL;=@@;&I zHg~kkmzMmo&=H&6%BScBIudJhQ^z~I*zIln99iA%8(Qo%Gj|l`@sNn+$uP&|L#xxw zoZ!5K*tCCcYGnx#vAW#kz&s*4*^^;A<`FUeCD-GgN5p)QC+{D(HJWi{x^z1keF?th zZSX5M@fz!{-etFVbGsnt@UX1PV`pRXVVt@rQyIfU-{HylYV{dz;@6wtPOc)ZzUtrb z)x5aABR$tV`R%T*=ct~|WdNlZ)sJR*LBhMDjw2)7l-riak+6WB4^#x8VYt=!|~I#TOp zcM7dG!zHgr$6n3JZI&rPN9yfdzpMlu@y9tD}Zi8&D^t}^Ds+jS>;jdW+*97{C zQmtHjUbeKGRErB)Ld*PXE7`I*pP7&4daLOHQo+`Wtn->6=DZwjO}1hlud0S}ysbPg zyB*RB?Qp6@x^29e@G?Kv4liLDa$6#}C)3S@$K=a|mSpDjSoL{dCcLEY->Q-jUcy7= z<}x$-%XXR8>tihG1AFy9i>an~_`oQiF<>ps2_QvLITj{Un)>wRN zlRxM_6tg#PZE@MpgATW7ZztI3tMXpHa|#=aTiz*;acqn^aCc9}vC(b#Tj(2$J?>8N zl-yWX$Lm+du_=2bHQpAs&|**0!+19?H&vU&`?{m?6go|`lXLZQdQ<51iqRpXBk{pq zH%`fpRWa^9=Qui^LwWm4)99F0xFgu7{!NFEcW$MMU14m+HrNO=;btx`W7pa1=xW}V z8_C+;RmM0r+8fU7qZo@|V{&7=p4`>%xZLQzv&_DNwQ_q7Go~%dT)^k(SSQRQF7p2_`NYAl+1Pjn2KPL$-A-no%6WQ^l?R}Evx z^d1zES$#dDJ0|O&CY=EH`rEP7)Wj+|O>dMMM@DSZ&2Wt&Q%*=^R^I}2dx>GI?`wsP z^xbni(;sGQV<)Pc=uB>29%LLFyLs!bs>ZRgNg(%}{1`UXR4h`}j|Z|+;@!45Q*F>= zwopG>sawRVcyGlwu5Wa!Wc^sG9w4h+ybOc3=W18odA|i_w@rw~1#jPD92?U&x1Ek- zqc3%P^N?|DZ0mvhhSE4TF{sSLc`bDc-67k9W*=C^u!ScPI_BrLunA?EhY*&*Z|W5`%%#64d=j*R6S^-q)D#LM{q zq1*N6>%NgrNbVGOh;$cFk$Znykm!5P$rW+u!M7?ktG;$}(hdUM zvH5dv(wp&LxjbqK5$gwMW=rM~=>`{xxj7DV2@|VlYMz{GESAS*YOEzWF?KvR*Rq63 z8=J{IvLhcD_XFDTLh`uW^!B`*#Pboh%9F{B%So6>PLSJgz9c8s+f#m1PovswG1*B< z(*oDuH|6f?CVEfJA)|3T#9Mlz$`~GY=Os63{S=z1@9W>XiLXCJX7=j)jP0xb zzrL@z+LNsw@9@*N|GAoa`ZYemZ-GFQm`8C_TmDg>O7p>=`tRs-yo;~?60s!1%*>wv z+XnC98^)|gk&|Vt^<*^c6B{;yZ>cTA&n?%MS{_!lvd(6hG2KoQ;-_V=Tc5!0=N`@p z2$AO9wm*TvSC&g6)4Q1ST$&Lde7OF;r7qG9>kcMl%ws+Yn^Zl$brjXzan)U0N73ES zZKI3IHI!w1h~NK+ziv1Av0I8B24NZ%+mn~u_qMa!X;kW;lvnJYs&5*VDmYTL=U$9j zmX`Q3GUc3m(Q*wgRw>uVMdx1}%-NiN(do@xZhKoD>F%L?mR_Sj5B~af^g&-oy>SuW z8N8Zmjox^Z@ zXXuZ)^H8s}hYaQMAT7=Cvh2B6+H}@2SG~JG1M@Mt?zs0eup#LnGe>yCUQfEdyirAFH&LA|CKq~j#eOtfw z>rM{wM43A;H9iIFc;>2Hw+-)lfU@L6*M7~hlSki zVd(#q)&q4o2hIG6D;fIDXWeC>zlnaecGAv&ibG;f_@|(|G;%ZiIFvgNfsx zg3aJ$XH48@L1z$ZL}PvyLu}ZRUD4|e@1hfR5q{??ZjxN~6EfG2$P2Mgz;=}m^(Vit zHkH4z&%nBc**V&A%VnQHGeG6J&|#gzfacezymk{=&IvT9w0B6$bD$c0Khqd}22CJ8 z4r#Ml=|htCFe_B9F*R}=sxkB(fZW`X*K+B`$QmrVqS))m6*N(M_I*0`{Cf>EbcUB| z7-ko_`$XgCk^d}=Jv_v78ScVu=~=VVXSesVlgD*5Y3KnzF6lE4s78FtY7(7stI-9> zeinLz^bq|k-KSfFpU$2O>%bnSx8i%4YjAkklhJJ+(#^@J5Iw;5ZoGxJGg`bh~w|0po4p$U?39U$VtQHfte>n14S}uA{TKsPGpbwGrK$a z{Fq{h$GDGG>|%;B-r@@O2z!9_``gRd#Cu#v6(x>+EO0F1HX2wZte05h8Uw5yt}^B` zyy_FIGyI;vxxuT8gySlnaqsE-{sXLSoX2UL{Bh@faa9to%8sj%aM4R%f3*Uxg!p-J zC1jM6UrRf#Uc%+h`x5mxPmh(c6uF`?$CAjFLNuA1-s~@N2L)Mgugfyp%=w2i|HAAu z#sAhG;8M8OKW{g{rR15v za}t>rO?OWxGG(gmQ8`|&ZN#4L?*c@o>?jEg?f03+XMSW&)~Tvo2SwcB6KA#pD)a@^ zU#ielkf|51@wtfC{J#A;yMe|`y?TIlJi>l}Mcw#6sxdLmQ$1_pn|W#n?BxpoC;Oa1 zWLh-cb7L$1Z<0_WUdEuNp>-xV|98lLCC~iboZE?3n{K^@$dn1l-HsfxhRe*a7CNiZ0_TNsv03OKvYXATM literal 0 HcmV?d00001 diff --git a/flake8_errors_temp.txt b/flake8_errors_temp.txt new file mode 100644 index 0000000000000000000000000000000000000000..9181c1715322ef9eed73901b9b77f3d8a76c1e38 GIT binary patch literal 7168 zcmdT|%TB{E5S%j-|G*J0(Aas{9Juiv6$<4cr7a4*z{dl#<;aDMghr@}Yda55r?a!` ze16Q>-~o3Salni{cDUkb$78}9-g$P$E9XX@yXR=l(U#v6KkFY?UgCv!U8BXowqV8f z47cdmYuKCc%x7=dJMek?<4mmi$lf`xk85st45(~JJaL7YN1*#ga)DEvaPBWqcU)gV zovo;QiR)_Sy63;Woa>5Y<$9p9m!mG!zf;$R(X<@3o9pK284B)VWjknDk9E0vXB-%0cnZ#|gkCYrw8I>}PriEQQd z!B&h*@BT88H^oofbyY;Awx4(VcQB{;x7$yugxkHp%*^wOPAdJ==_ldd+FLg7{xXv{ z%}=~}CvYo#$9r 79 characters) +refactron/analyzers/code_smell_analyzer.py:51:80: E501 line too long (83 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:67:80: E501 line too long (91 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:68:80: E501 line too long (92 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:74:80: E501 line too long (85 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:89:80: E501 line too long (92 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:101:80: E501 line too long (98 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:105:80: E501 line too long (100 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:128:80: E501 line too long (81 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:146:80: E501 line too long (92 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:149:80: E501 line too long (94 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:158:80: E501 line too long (87 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:177:80: E501 line too long (85 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:182:80: E501 line too long (91 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:186:80: E501 line too long (92 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:197:80: E501 line too long (86 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:203:80: E501 line too long (87 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:211:80: E501 line too long (82 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:212:80: E501 line too long (92 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:220:80: E501 line too long (91 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:225:80: E501 line too long (87 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:227:80: E501 line too long (80 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:232:80: E501 line too long (91 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:236:80: E501 line too long (86 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:240:80: E501 line too long (95 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:260:80: E501 line too long (85 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:274:80: E501 line too long (82 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:285:80: E501 line too long (90 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:295:80: E501 line too long (81 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:314:80: E501 line too long (93 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:328:80: E501 line too long (94 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:330:80: E501 line too long (81 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:338:80: E501 line too long (80 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:340:80: E501 line too long (87 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:354:80: E501 line too long (95 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:380:80: E501 line too long (87 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:386:80: E501 line too long (93 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:387:80: E501 line too long (84 > 79 characters) +refactron/analyzers/code_smell_analyzer.py:390:80: E501 line too long (93 > 79 characters) \ No newline at end of file diff --git a/refactron/analyzers/code_smell_analyzer.py b/refactron/analyzers/code_smell_analyzer.py index a0c83a0..2a88bfd 100644 --- a/refactron/analyzers/code_smell_analyzer.py +++ b/refactron/analyzers/code_smell_analyzer.py @@ -3,15 +3,25 @@ import ast import copy from pathlib import Path -from typing import Dict, List, Set +from typing import Dict, List, Optional, Set from refactron.analyzers.base_analyzer import BaseAnalyzer +from refactron.core.config import RefactronConfig from refactron.core.models import CodeIssue, IssueCategory, IssueLevel +from refactron.llm.orchestrator import LLMOrchestrator class CodeSmellAnalyzer(BaseAnalyzer): """Detects common code smells and anti-patterns.""" + def __init__( + self, + config: RefactronConfig, + orchestrator: Optional[LLMOrchestrator] = None, + ): + super().__init__(config) + self.orchestrator = orchestrator + @property def name(self) -> str: return "code_smells" @@ -51,6 +61,29 @@ def analyze(self, file_path: Path, source_code: str) -> List[CodeIssue]: ) issues.append(issue) + # AI Triage: Filter out safe/intentional smells + if self.config.enable_ai_triage and self.orchestrator and issues: + # Batch evaluate all issues + # evaluate_issues_batch returns Dict[str, float] mapping issue_id to confidence + confidence_scores = self.orchestrator.evaluate_issues_batch(issues, source_code) + + # Filter issues with a confidence < 0.3 + # (meaning LLM thinks it might be a false positive/safe) + final_issues = [] + for i, issue in enumerate(issues): + # evaluate_issues_batch defaults to f"issue_{i}" if rule_id is absent + issue_id = getattr(issue, "rule_id", None) or f"issue_{i}" + + confidence = confidence_scores.get(issue_id, 1.0) + + # Optional: Attach the confidence score to the issue metadata + # for reporting/debugging + issue.metadata["validation_confidence"] = confidence + + if confidence >= 0.3: + final_issues.append(issue) + issues = final_issues + return issues def _check_too_many_parameters(self, tree: ast.AST, file_path: Path) -> List[CodeIssue]: diff --git a/refactron/core/config.py b/refactron/core/config.py index 4f0c830..e83d811 100644 --- a/refactron/core/config.py +++ b/refactron/core/config.py @@ -130,6 +130,9 @@ class RefactronConfig: pattern_learning_enabled: bool = True # Enable learning from feedback pattern_ranking_enabled: bool = True # Enable ranking based on learned patterns + # AI Triage settings + enable_ai_triage: bool = False # Use LLM to filter false positive code smells + @classmethod def from_file( cls, @@ -243,6 +246,7 @@ def to_file(self, config_path: Path) -> None: ), "pattern_learning_enabled": self.pattern_learning_enabled, "pattern_ranking_enabled": self.pattern_ranking_enabled, + "enable_ai_triage": self.enable_ai_triage, } try: diff --git a/tests/test_analyzers.py b/tests/test_analyzers.py index ed6109d..43459da 100644 --- a/tests/test_analyzers.py +++ b/tests/test_analyzers.py @@ -1,10 +1,12 @@ """Tests for analyzers.""" from pathlib import Path +from unittest.mock import MagicMock from refactron.analyzers.code_smell_analyzer import CodeSmellAnalyzer from refactron.analyzers.complexity_analyzer import ComplexityAnalyzer from refactron.core.config import RefactronConfig +from refactron.llm.orchestrator import LLMOrchestrator def test_complexity_analyzer() -> None: @@ -55,6 +57,49 @@ def method_without_docstring(self): assert analyzer.name == "code_smells" +def test_code_smell_ai_triage_filtering() -> None: + """Test that CodeSmellAnalyzer filters issues based on AI triage validation.""" + config = RefactronConfig(enable_ai_triage=True) + + # Mock the LLMOrchestrator + mock_orchestrator = MagicMock(spec=LLMOrchestrator) + + # Create the analyzer with the mocked orchestrator + analyzer = CodeSmellAnalyzer(config, orchestrator=mock_orchestrator) + + code = """ +def deeply_nested(): + if True: + if True: + if True: + if True: + if True: + pass +""" + + # We expect 2 issues: deep nesting (S002) and missing docstring (S005). + # The mock will return S002 with low confidence (0.2) + # and ignore S005 or give it high confidence (0.9). + mock_orchestrator.evaluate_issues_batch.return_value = {"S002": 0.2, "S005": 0.9} + + issues = analyzer.analyze(Path("test.py"), code) + + # The S002 issue should be filtered out. S005 should remain. + assert len(issues) == 1 + assert issues[0].rule_id == "S005" + mock_orchestrator.evaluate_issues_batch.assert_called_once() + + # Test case 2: High confidence for both + mock_orchestrator.evaluate_issues_batch.return_value = {"S002": 0.9, "S005": 0.9} + + issues = analyzer.analyze(Path("test.py"), code) + + # Neither should be filtered out + assert len(issues) == 2 + assert any(i.rule_id == "S002" for i in issues) + assert any(i.rule_id == "S005" for i in issues) + + def test_analyzer_handles_syntax_errors() -> None: """Test that analyzers handle syntax errors gracefully.""" config = RefactronConfig() From 4e3ca22997c5e3f321cdaaa1a1c2f614c7cf8891 Mon Sep 17 00:00:00 2001 From: shrutu0929 Date: Wed, 11 Mar 2026 19:22:39 +0530 Subject: [PATCH 2/5] chore: resolve all flake8 and mypy errors reported by pre-commit --- refactron/analyzers/complexity_analyzer.py | 4 +- refactron/cli.py | 8 ++-- refactron/core/config.py | 2 +- refactron/core/config_loader.py | 2 +- refactron/core/memory_profiler.py | 2 +- refactron/core/repositories.py | 10 +++-- refactron/core/workspace.py | 3 +- refactron/llm/backend_client.py | 9 ++-- refactron/llm/client.py | 2 +- refactron/llm/models.py | 4 +- refactron/llm/orchestrator.py | 20 ++++++++- refactron/llm/safety.py | 6 +-- refactron/rag/indexer.py | 24 +++++----- refactron/rag/parser.py | 52 +++++++++++++++------- refactron/rag/retriever.py | 5 ++- scripts/analyze_feedback_data.py | 26 +++++------ tests/test_analyzers.py | 3 +- tests/test_backend_client.py | 3 +- tests/test_config_loader_edge_cases.py | 2 +- tests/test_config_management.py | 2 +- tests/test_llm_orchestrator.py | 3 +- tests/test_patterns_integration.py | 8 +--- tests/test_rag_indexer.py | 3 +- 23 files changed, 119 insertions(+), 84 deletions(-) diff --git a/refactron/analyzers/complexity_analyzer.py b/refactron/analyzers/complexity_analyzer.py index 0d8969c..c413bc1 100644 --- a/refactron/analyzers/complexity_analyzer.py +++ b/refactron/analyzers/complexity_analyzer.py @@ -4,8 +4,8 @@ from pathlib import Path from typing import List, Union -from radon.complexity import cc_visit -from radon.metrics import mi_visit +from radon.complexity import cc_visit # type: ignore +from radon.metrics import mi_visit # type: ignore from refactron.analyzers.base_analyzer import BaseAnalyzer from refactron.core.models import CodeIssue, IssueCategory, IssueLevel diff --git a/refactron/cli.py b/refactron/cli.py index 3b2c725..6cc2ff1 100644 --- a/refactron/cli.py +++ b/refactron/cli.py @@ -12,7 +12,7 @@ import click import requests # type: ignore -import yaml +import yaml # type: ignore from rich import box from rich.align import Align from rich.console import Console @@ -1146,7 +1146,7 @@ def _interactive_file_selector(workspace_path: Path) -> Path: console.print( f"\n[success]āœ“ Selected: {selected_path.relative_to(workspace_path)}[/success]\n" ) - return selected_path + return Path(selected_path) except (KeyboardInterrupt, EOFError): console.print("\n[yellow]Selection cancelled.[/yellow]") @@ -3253,7 +3253,7 @@ def patterns_profile(project_path: str, config_path: Optional[str]) -> None: @click.option("--line", type=int, help="Specific line number to fix") @click.option("--interactive/--no-interactive", default=True, help="Use interactive mode") @click.option("--apply/--no-apply", default=False, help="Apply the suggested changes to the file") -def suggest(target: Optional[str], line: Optional[int], interactive: bool, apply: bool): +def suggest(target: Optional[str], line: Optional[int], interactive: bool, apply: bool) -> None: """ Generate AI-powered refactoring suggestions. @@ -3413,7 +3413,7 @@ def suggest(target: Optional[str], line: Optional[int], interactive: bool, apply "--apply/--no-apply", default=False, help="Apply the documentation changes to the file" ) @click.option("--interactive/--no-interactive", default=True, help="Use interactive mode for apply") -def document(target: str, apply: bool, interactive: bool): +def document(target: str, apply: bool, interactive: bool) -> None: """ Generate Google-style docstrings for a Python file. diff --git a/refactron/core/config.py b/refactron/core/config.py index e83d811..cc2befa 100644 --- a/refactron/core/config.py +++ b/refactron/core/config.py @@ -4,7 +4,7 @@ from pathlib import Path from typing import Any, Dict, List, Optional -import yaml +import yaml # type: ignore from refactron.core.config_loader import ConfigLoader from refactron.core.config_validator import ConfigValidator diff --git a/refactron/core/config_loader.py b/refactron/core/config_loader.py index eb93c56..ff93b9a 100644 --- a/refactron/core/config_loader.py +++ b/refactron/core/config_loader.py @@ -4,7 +4,7 @@ from pathlib import Path from typing import Any, Dict, Optional -import yaml +import yaml # type: ignore from refactron.core.config_validator import ConfigValidator from refactron.core.exceptions import ConfigError diff --git a/refactron/core/memory_profiler.py b/refactron/core/memory_profiler.py index 1440ce8..f8b1eb4 100644 --- a/refactron/core/memory_profiler.py +++ b/refactron/core/memory_profiler.py @@ -59,7 +59,7 @@ def __init__( # Try to import psutil for accurate memory tracking self._psutil_available = False try: - import psutil + import psutil # type: ignore self._psutil = psutil self._process = psutil.Process(os.getpid()) diff --git a/refactron/core/repositories.py b/refactron/core/repositories.py index 3cf1ac4..47f16b8 100644 --- a/refactron/core/repositories.py +++ b/refactron/core/repositories.py @@ -76,7 +76,6 @@ def list_repositories(api_base_url: str, timeout_seconds: int = 10) -> List[Repo if creds.expires_at: try: # Parse the expiration time - from datetime import datetime if isinstance(creds.expires_at, str): # Remove timezone info for comparison @@ -122,8 +121,10 @@ def list_repositories(api_base_url: str, timeout_seconds: int = 10) -> List[Repo ) if not isinstance(repositories_data, list): raise RuntimeError( - f"Unexpected API response format. Expected list or dict with 'repositories' key. " - f"Got: {type(data)} with keys: {list(data.keys()) if isinstance(data, dict) else 'N/A'}" + "Unexpected API response format. " + "Expected list or dict with 'repositories' key. " + f"Got: {type(data)} with keys: " + f"{list(data.keys()) if isinstance(data, dict) else 'N/A'}" ) else: raise RuntimeError(f"Unexpected API response type: {type(data)}") @@ -151,7 +152,8 @@ def list_repositories(api_base_url: str, timeout_seconds: int = 10) -> List[Repo ) elif e.code == 403: raise RuntimeError( - "GitHub access denied. Please reconnect your GitHub account on the Refactron website." + "GitHub access denied. " + "Please reconnect your GitHub account on the Refactron website." ) elif e.code == 404: raise RuntimeError( diff --git a/refactron/core/workspace.py b/refactron/core/workspace.py index 03b56d6..db5d948 100644 --- a/refactron/core/workspace.py +++ b/refactron/core/workspace.py @@ -121,7 +121,8 @@ def get_workspace(self, repo_name: str) -> Optional[WorkspaceMapping]: # Try matching by short name (repo name without user) repo_name_lower = repo_name.lower() for full_name, workspace_data in workspaces.items(): - # Extract short name from full name (e.g., "volumeofsphere" from "omsherikar/volumeofsphere") + # Extract short name from full name + # (e.g., "volumeofsphere" from "omsherikar/volumeofsphere") short_name = full_name.split("/")[-1].lower() if short_name == repo_name_lower: return WorkspaceMapping.from_dict(workspace_data) diff --git a/refactron/llm/backend_client.py b/refactron/llm/backend_client.py index 8687bdd..62ea661 100644 --- a/refactron/llm/backend_client.py +++ b/refactron/llm/backend_client.py @@ -2,10 +2,9 @@ from __future__ import annotations -import os -from typing import Any, Dict, Optional +from typing import Optional -import requests +import requests # type: ignore from refactron.core.credentials import load_credentials @@ -94,7 +93,7 @@ def generate( raise RuntimeError(f"Backend LLM proxy error ({response.status_code}): {error_msg}") data = response.json() - return data["content"] + return str(data["content"]) except requests.exceptions.RequestException as e: raise RuntimeError(f"Failed to connect to Refactron backend: {e}") @@ -114,6 +113,6 @@ def check_health(self) -> bool: f"{self.backend_url}/api/llm/health", timeout=10, ) - return response.status_code == 200 + return bool(response.status_code == 200) except Exception: return False diff --git a/refactron/llm/client.py b/refactron/llm/client.py index bc3a576..2aa528a 100644 --- a/refactron/llm/client.py +++ b/refactron/llm/client.py @@ -79,7 +79,7 @@ def generate( max_tokens=max_tokens or self.max_tokens, ) - return response.choices[0].message.content + return str(response.choices[0].message.content or "") def check_health(self) -> bool: """Check if the Groq API is accessible. diff --git a/refactron/llm/models.py b/refactron/llm/models.py index 82ff83f..5b6e4fe 100644 --- a/refactron/llm/models.py +++ b/refactron/llm/models.py @@ -4,7 +4,7 @@ import uuid from dataclasses import dataclass, field from enum import Enum -from typing import Any, Dict, List, Optional +from typing import List, Optional from refactron.core.models import CodeIssue @@ -58,7 +58,7 @@ class RefactoringSuggestion: suggestion_id: str = field(default_factory=lambda: str(uuid.uuid4())) timestamp: float = field(default_factory=time.time) - def __post_init__(self): + def __post_init__(self) -> None: if self.safety_result is None: # Default empty safety result self.safety_result = SafetyCheckResult( diff --git a/refactron/llm/orchestrator.py b/refactron/llm/orchestrator.py index f4da49d..1fe5ebc 100644 --- a/refactron/llm/orchestrator.py +++ b/refactron/llm/orchestrator.py @@ -5,7 +5,7 @@ import os import re from pathlib import Path -from typing import List, Optional, Union +from typing import Dict, List, Optional, Union from refactron.core.models import CodeIssue, IssueCategory, IssueLevel from refactron.llm.backend_client import BackendLLMClient @@ -246,6 +246,24 @@ def generate_documentation( status=SuggestionStatus.FAILED, ) + def evaluate_issues_batch(self, issues: List[CodeIssue], source_code: str) -> Dict[str, float]: + """Batch evaluate confidence for multiple issues. + + Args: + issues: List of issues to evaluate. + source_code: The source code context. + + Returns: + A dictionary mapping issue rule_ids (or fallback IDs) to a confidence score. + """ + # Default implementation returns 1.0 (high confidence) for all issues + # Can be enhanced to actually call the LLM for batch triage + scores = {} + for i, issue in enumerate(issues): + issue_id = getattr(issue, "rule_id", None) or f"issue_{i}" + scores[issue_id] = 1.0 + return scores + def _clean_json_response(self, text: str) -> str: """Clean LLM response to extract JSON.""" text = text.strip() diff --git a/refactron/llm/safety.py b/refactron/llm/safety.py index a3b1543..3b4e7c5 100644 --- a/refactron/llm/safety.py +++ b/refactron/llm/safety.py @@ -1,7 +1,7 @@ """Safety gate for validating LLM-generated code.""" import ast -from typing import List, Optional +from typing import List, Set from refactron.llm.models import RefactoringSuggestion, SafetyCheckResult @@ -90,8 +90,8 @@ def _check_dangerous_imports(self, proposed_code: str, original_code: str) -> Li """Check for potentially dangerous imports that are NEW.""" dangerous_modules = ["subprocess", "os", "shutil", "sys"] - def get_imports(code): - imports = set() + def get_imports(code: str) -> Set[str]: + imports: Set[str] = set() try: tree = ast.parse(code) for node in ast.walk(tree): diff --git a/refactron/rag/indexer.py b/refactron/rag/indexer.py index 4d62fec..66df3f1 100644 --- a/refactron/rag/indexer.py +++ b/refactron/rag/indexer.py @@ -5,12 +5,12 @@ import json from dataclasses import dataclass from pathlib import Path -from typing import List, Optional +from typing import Dict, List, Optional, cast try: import chromadb from chromadb.config import Settings - from sentence_transformers import SentenceTransformer + from sentence_transformers import SentenceTransformer # type: ignore CHROMA_AVAILABLE = True except ImportError: @@ -20,7 +20,7 @@ CHROMA_AVAILABLE = False from refactron.rag.chunker import CodeChunk -from refactron.rag.parser import CodeParser, ParsedFile +from refactron.rag.parser import CodeParser # Import for type hints try: @@ -60,7 +60,8 @@ def __init__( """ if not CHROMA_AVAILABLE: raise RuntimeError( - "ChromaDB is not available. Install with: pip install chromadb sentence-transformers" + "ChromaDB is not available. Install with: " + "pip install chromadb sentence-transformers" ) self.workspace_path = Path(workspace_path) @@ -68,7 +69,6 @@ def __init__( self.index_path.mkdir(exist_ok=True) # Initialize LLM client for summarization - from refactron.llm.client import GroqClient self.llm_client = llm_client @@ -125,7 +125,7 @@ def index_repository( ] total_chunks = 0 - chunk_type_counts = {} + chunk_type_counts: Dict[str, int] = {} # Index each file for py_file in python_files: @@ -181,7 +181,8 @@ def _index_file(self, file_path: Path, summarize: bool = False) -> List[CodeChun try: summary = self._summarize_chunk(chunk) if summary: - # Prepend summary to content for embedding (makes it searchable by plain English) + # Prepend summary to content for embedding + # (makes it searchable by plain English) chunk.content = f"Summary: {summary}\n\n{chunk.content}" chunk.metadata["ai_summary"] = summary except Exception as e: @@ -207,7 +208,10 @@ def _summarize_chunk(self, chunk: CodeChunk) -> Optional[str]: try: summary = self.llm_client.generate( prompt=prompt, - system="You are a senior software architect. Provide a concise, semantic summary of code purpose.", + system=( + "You are a senior software architect. " + "Provide a concise, semantic summary of code purpose." + ), max_tokens=100, ) return summary.strip() @@ -277,11 +281,11 @@ def _save_metadata(self, metadata: dict) -> None: with open(metadata_file, "w") as f: json.dump(metadata, f, indent=2) - def _load_metadata(self) -> dict: + def _load_metadata(self) -> Dict: """Load index metadata.""" metadata_file = self.index_path / "metadata.json" if not metadata_file.exists(): return {} with open(metadata_file, "r") as f: - return json.load(f) + return cast(Dict, json.load(f)) diff --git a/refactron/rag/parser.py b/refactron/rag/parser.py index d48f49b..95d6864 100644 --- a/refactron/rag/parser.py +++ b/refactron/rag/parser.py @@ -4,7 +4,7 @@ from dataclasses import dataclass from pathlib import Path -from typing import Any, Dict, List, Optional, Tuple +from typing import List, Optional, Tuple try: import tree_sitter_python as tspython @@ -51,32 +51,52 @@ class ParsedFile: class CodeParser: """AST-aware code parser using tree-sitter.""" - def __init__(self): + def __init__(self) -> None: """Initialize the parser.""" if not TREE_SITTER_AVAILABLE: raise RuntimeError( - "tree-sitter is not available. Install with: pip install tree-sitter tree-sitter-python" + "tree-sitter is not available. Install with: " + "pip install tree-sitter tree-sitter-python" ) # Initialize Python language - handle different tree-sitter API versions - lang = tspython.language() + lang_data = tspython.language() - # In some versions, tspython.language() already returns a Language object - if isinstance(lang, Language): - PY_LANGUAGE = lang + # Try to get a proper Language object + py_language = None + if isinstance(lang_data, Language): + py_language = lang_data else: # Try newer API first (single argument) try: - PY_LANGUAGE = Language(lang) - except TypeError: + py_language = Language(lang_data) + except (TypeError, ValueError): # Try older API (needs name) try: - PY_LANGUAGE = Language(lang, "python") - except TypeError: - # Last resort: try as keyword - PY_LANGUAGE = Language(lang, name="python") - - self.parser = Parser(PY_LANGUAGE) + py_language = Language(lang_data, "python") + except (TypeError, ValueError): + try: + py_language = Language(lang_data, name="python") + except (TypeError, ValueError): + # Fallback to using the raw data if it can be used directly + py_language = lang_data + + # Initialize Parser - handle different tree-sitter API versions + try: + self.parser = Parser(py_language) + except Exception: + # Older API might not take it in constructor + self.parser = Parser() + try: + self.parser.set_language(py_language) + except Exception: + # If everything fails, it might be due to a mismatch between + # tree-sitter-python and tree-sitter versions. + # There's not much more we can do here but raise with context. + raise RuntimeError( + "Failed to initialize tree-sitter parser with language " + f"data of type {type(lang_data)}" + ) def parse_file(self, file_path: Path) -> ParsedFile: """Parse a Python file. @@ -256,7 +276,7 @@ def _extract_class_docstring(self, node: Node, source: bytes) -> Optional[str]: def _extract_parameters(self, node: Node, source: bytes) -> List[str]: """Extract function parameters.""" - params = [] + params: List[str] = [] params_node = node.child_by_field_name("parameters") if not params_node: return params diff --git a/refactron/rag/retriever.py b/refactron/rag/retriever.py index 2a71d1b..a68d1fe 100644 --- a/refactron/rag/retriever.py +++ b/refactron/rag/retriever.py @@ -9,7 +9,7 @@ try: import chromadb from chromadb.config import Settings - from sentence_transformers import SentenceTransformer + from sentence_transformers import SentenceTransformer # type: ignore CHROMA_AVAILABLE = True except ImportError: @@ -50,7 +50,8 @@ def __init__( """ if not CHROMA_AVAILABLE: raise RuntimeError( - "ChromaDB is not available. Install with: pip install chromadb sentence-transformers" + "ChromaDB is not available. Install with: " + "pip install chromadb sentence-transformers" ) self.workspace_path = Path(workspace_path) diff --git a/scripts/analyze_feedback_data.py b/scripts/analyze_feedback_data.py index 1093573..a9e3e5f 100644 --- a/scripts/analyze_feedback_data.py +++ b/scripts/analyze_feedback_data.py @@ -12,14 +12,12 @@ import sys from collections import Counter from pathlib import Path - -# Add parent directory to path for imports -sys.path.insert(0, str(Path(__file__).parent.parent)) +from typing import Dict, Optional from refactron.patterns.storage import PatternStorage -def analyze_feedback(): +def analyze_feedback() -> Optional[Dict]: """Analyze all available feedback data.""" # Find all pattern storage directories @@ -52,23 +50,23 @@ def analyze_feedback(): return None print(f"\n{'='*60}") - print(f"AGGREGATE STATISTICS") + print("AGGREGATE STATISTICS") print(f"{'='*60}\n") - print(f"šŸ“Š Total Records:") + print("šŸ“Š Total Records:") print(f" Feedback: {len(all_feedback)}") print(f" Patterns: {len(all_patterns)}") # Action distribution actions = Counter(f.action for f in all_feedback) - print(f"\nāœ… Action Distribution:") + print("\nāœ… Action Distribution:") for action, count in actions.most_common(): pct = count / len(all_feedback) * 100 print(f" {action:12s}: {count:4d} ({pct:5.1f}%)") # Operation types operation_types = Counter(f.operation_type for f in all_feedback) - print(f"\nšŸ”§ Operation Types:") + print("\nšŸ”§ Operation Types:") for op_type, count in operation_types.most_common(5): pct = count / len(all_feedback) * 100 print(f" {op_type:20s}: {count:4d} ({pct:5.1f}%)") @@ -79,24 +77,24 @@ def analyze_feedback(): ) with_reason = sum(1 for f in all_feedback if hasattr(f, "reason") and f.reason) - print(f"\nšŸ“‹ Data Quality:") + print("\nšŸ“‹ Data Quality:") print(f" With pattern hash: {with_patterns:4d} ({with_patterns/len(all_feedback)*100:5.1f}%)") print(f" With reason: {with_reason:4d} ({with_reason/len(all_feedback)*100:5.1f}%)") # ML readiness quality_score = with_patterns / len(all_feedback) if all_feedback else 0 - print(f"\nšŸŽÆ ML Readiness:") + print("\nšŸŽÆ ML Readiness:") print(f" Quality Score: {quality_score:.2%}") if len(all_feedback) < 50: - print(f" Status: āŒ INSUFFICIENT DATA") + print(" Status: āŒ INSUFFICIENT DATA") print(f" Need: {50 - len(all_feedback)} more feedback records") elif quality_score < 0.7: - print(f" Status: āš ļø LOW QUALITY") - print(f" Many records missing pattern hashes") + print(" Status: āš ļø LOW QUALITY") + print(" Many records missing pattern hashes") else: - print(f" Status: āœ… READY FOR TRAINING") + print(" Status: āœ… READY FOR TRAINING") # Save detailed report report = { diff --git a/tests/test_analyzers.py b/tests/test_analyzers.py index 43459da..7434a5f 100644 --- a/tests/test_analyzers.py +++ b/tests/test_analyzers.py @@ -6,7 +6,6 @@ from refactron.analyzers.code_smell_analyzer import CodeSmellAnalyzer from refactron.analyzers.complexity_analyzer import ComplexityAnalyzer from refactron.core.config import RefactronConfig -from refactron.llm.orchestrator import LLMOrchestrator def test_complexity_analyzer() -> None: @@ -62,7 +61,7 @@ def test_code_smell_ai_triage_filtering() -> None: config = RefactronConfig(enable_ai_triage=True) # Mock the LLMOrchestrator - mock_orchestrator = MagicMock(spec=LLMOrchestrator) + mock_orchestrator = MagicMock() # Create the analyzer with the mocked orchestrator analyzer = CodeSmellAnalyzer(config, orchestrator=mock_orchestrator) diff --git a/tests/test_backend_client.py b/tests/test_backend_client.py index fe0399e..c3b6fdd 100644 --- a/tests/test_backend_client.py +++ b/tests/test_backend_client.py @@ -3,7 +3,6 @@ from unittest.mock import MagicMock, patch import pytest -import requests from refactron.llm.backend_client import BackendLLMClient @@ -56,7 +55,7 @@ def test_backend_client_error_handling(mock_post, mock_credentials): client = BackendLLMClient() with pytest.raises( - RuntimeError, match="Backend LLM proxy error \(500\): Internal Server Error" + RuntimeError, match=r"Backend LLM proxy error \(500\): Internal Server Error" ): client.generate(prompt="Refactor this") diff --git a/tests/test_config_loader_edge_cases.py b/tests/test_config_loader_edge_cases.py index a52d983..c1df6c4 100644 --- a/tests/test_config_loader_edge_cases.py +++ b/tests/test_config_loader_edge_cases.py @@ -4,7 +4,7 @@ from pathlib import Path import pytest -import yaml +import yaml # type: ignore from refactron.core.config_loader import ConfigLoader from refactron.core.exceptions import ConfigError diff --git a/tests/test_config_management.py b/tests/test_config_management.py index be0ad44..4fec4b6 100644 --- a/tests/test_config_management.py +++ b/tests/test_config_management.py @@ -4,7 +4,7 @@ from pathlib import Path import pytest -import yaml +import yaml # type: ignore from refactron.core.config import RefactronConfig from refactron.core.config_loader import ConfigLoader diff --git a/tests/test_llm_orchestrator.py b/tests/test_llm_orchestrator.py index 27b1e88..cb95413 100644 --- a/tests/test_llm_orchestrator.py +++ b/tests/test_llm_orchestrator.py @@ -1,13 +1,12 @@ """Tests for LLM Orchestrator.""" -import json from pathlib import Path from unittest.mock import MagicMock, Mock import pytest from refactron.core.models import CodeIssue, IssueCategory, IssueLevel -from refactron.llm.models import RefactoringSuggestion, SuggestionStatus +from refactron.llm.models import SuggestionStatus from refactron.llm.orchestrator import LLMOrchestrator from refactron.rag.retriever import RetrievedContext diff --git a/tests/test_patterns_integration.py b/tests/test_patterns_integration.py index de724b4..3bd5500 100644 --- a/tests/test_patterns_integration.py +++ b/tests/test_patterns_integration.py @@ -257,12 +257,8 @@ def func2(): # Patterns should be stored in separate directories assert storage1_dir.exists() or storage2_dir.exists() - # Verify actual pattern isolation: patterns from project1 should not be in project2 - # and vice versa (they use different storage directories) - pattern_hashes1 = {p.pattern_hash for p in patterns1.values()} - pattern_hashes2 = {p.pattern_hash for p in patterns2.values()} - - # Verify the key property: storage directories are different (isolation works) + # Verify actual pattern isolation + assert refactron1.pattern_storage.storage_dir != refactron2.pattern_storage.storage_dir # Note: Anonymized fingerprinting may make structurally similar code have same hash # which is correct behavior - the test should check storage isolation assert refactron1.pattern_storage.storage_dir != refactron2.pattern_storage.storage_dir diff --git a/tests/test_rag_indexer.py b/tests/test_rag_indexer.py index 7305fe6..d9820ff 100644 --- a/tests/test_rag_indexer.py +++ b/tests/test_rag_indexer.py @@ -1,9 +1,8 @@ """Tests for the RAG indexer module.""" -import sys import tempfile from pathlib import Path -from unittest.mock import MagicMock, Mock, create_autospec, patch +from unittest.mock import MagicMock, Mock, patch import pytest From ab375e25ac2cd1a4727b47183dc369b08f5691f6 Mon Sep 17 00:00:00 2001 From: shrutu0929 Date: Wed, 11 Mar 2026 19:50:29 +0530 Subject: [PATCH 3/5] chore: apply formatting fixes and update auto-label workflow permissions --- .github/workflows/auto-label.yml | 9 +++-- all_flake8_errors.txt | Bin 180130 -> 0 bytes coverage.json | 1 + docs/advanced/ci-cd.mdx | 12 +++--- docs/advanced/monitoring.mdx | 8 ++-- docs/advanced/performance.mdx | 10 ++--- docs/api-reference/refactron-class.mdx | 4 +- docs/docs.json | 2 +- docs/essentials/authentication.mdx | 10 ++--- docs/essentials/configuration.mdx | 16 ++++---- docs/essentials/installation.mdx | 8 ++-- docs/guides/ai-features.mdx | 32 ++++++++-------- docs/guides/code-analysis.mdx | 28 +++++++------- docs/guides/pattern-learning.mdx | 16 ++++---- docs/guides/refactoring.mdx | 50 ++++++++++++------------- docs/introduction.mdx | 10 ++--- docs/quickstart.mdx | 22 +++++------ docs/resources/faq.mdx | 38 +++++++++---------- documentation/docs/CLI_REFERENCE.md | 49 ++++++++++++------------ documentation/docs/api/analyzers.md | 1 - documentation/docs/api/autofix.md | 1 - documentation/docs/api/cicd.md | 1 - documentation/docs/api/core.md | 1 - documentation/docs/api/llm.md | 1 - documentation/docs/api/patterns.md | 1 - documentation/docs/api/rag.md | 1 - documentation/docs/api/refactorers.md | 1 - flake8_errors.txt | Bin 7996 -> 0 bytes flake8_errors_temp.txt | Bin 7168 -> 0 bytes flake8_errors_utf8.txt | 39 ------------------- 30 files changed, 164 insertions(+), 208 deletions(-) delete mode 100644 all_flake8_errors.txt create mode 100644 coverage.json delete mode 100644 flake8_errors.txt delete mode 100644 flake8_errors_temp.txt delete mode 100644 flake8_errors_utf8.txt diff --git a/.github/workflows/auto-label.yml b/.github/workflows/auto-label.yml index 4dcaf4e..94caedb 100644 --- a/.github/workflows/auto-label.yml +++ b/.github/workflows/auto-label.yml @@ -4,13 +4,14 @@ name: Auto-label Bot on: issues: types: [opened, edited] - pull_request: + pull_request_target: types: [opened, edited, synchronize] +# Default permissions for the workflow permissions: + contents: read issues: write pull-requests: write - contents: read jobs: label-issues: @@ -20,6 +21,7 @@ jobs: - name: Auto-label issues uses: actions/github-script@v8 with: + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const { owner, repo, number } = context.issue; const issue = context.payload.issue; @@ -116,7 +118,7 @@ jobs: } label-pull-requests: - if: github.event_name == 'pull_request' + if: github.event_name == 'pull_request_target' runs-on: ubuntu-latest steps: - name: Checkout code @@ -127,6 +129,7 @@ jobs: - name: Auto-label PRs uses: actions/github-script@v8 with: + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const { owner, repo, number } = context.issue; const pr = context.payload.pull_request; diff --git a/all_flake8_errors.txt b/all_flake8_errors.txt deleted file mode 100644 index 51801fa10646d1287a4485c73bfa76fb1a528ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180130 zcmdU&$#NY>l0|bZGyMa0s#>0NEg@68q!3+ixZxfd}Li z$8Tgj7)>Gw4Y<$4$Lk&*|M$Pw-J9-hcivreH{Esjsk`c4b!YMGLwxlizNfGM)_v~2 zb-#Ac;;$Fo-{bE`-EZCV`06;m`q=-wZ{n+)`0qdU-_if)U3~SI?q&Bhe*Z`ObsAqE z#m{*kKkfSaPka+!ed+$%{oMT&U#&;-0wH;kKyn_R=sZ5_x9)!er%=D@evj{bi9emi z@B9CBC$T3XrE;0QNXhIz79qWeb9vn({nA~=?;qpW9BQ3$=}EUn{WSE8pq36({mjey zS)4UNow2Gs>XY6JlxoP!-e0tn^^5KakoC*>uUcxzOXzpq-mc7tybS+QuGhz*SATCR z?c+G@V}SfcW8FRuKSKOpYwbP`?PgZ_tg)UvhkA0_822gi-7g}OY3T)zBYz~hRO^@{ z+>g^PUqU@OX{;wNyA$NU+uG%mkT$8Wl+(1dOW|gA*&4SZW_gCv+Mg&pA(_>S@I!6& zM4D1AZ`ByBaWnmHTUR~_zd+*7i}0Rp<^2@eW!wBjOb_uVt@ElUao(rME?fKWQ{)Gg z)wI>`7YKLj`toVWjp#{^|IIU1PhmYT)}^JM2siU5ZR3u-H{(y*+NE$adAH50o`#+> zyKEaTp9bp3DQ{ZOw`J^~M$}>XcWXbWzEXMJP$%wOMkn-R^w0k6d!yfGdT7U}Dy|dd z*P~X|P%i5_oxk;{pP`KEWq2TegkO)E)(fpslWMrNhCD|a@**nemKt&jt+7T0zh19Z z(Gnk0BX2E1%~<0aRq%S$igM+$ei>Dcp>CZEKb4D-b=YGeJ2Oy@h3GZvi0&-2a0qmTl;U}evC1mcl_LO zM-!yyF-LlKXP)#vLwh^gGPAI{wiRN;9^j8Tbn3?bMclpXNGse>G_ewB}EqH9Y zp}dcIJa^q&B56K>>CXE~Q4?8fTFG0Bm7!Ljsa&u9+*v7VBI~x%g-*J*jW6P{iL6`e z^>b8%`KPoHSB)haqW%n<{%ec+Db(w>70mNT7#lUu z#UgrJ4LN~bgO)YHlc))ZtXq3NItkELLs+HjXD7@2wK9tG{MtX&Uy7PBeD2d(QIUG;aauYxU`n-r19CK^&BHm*ng3~|79DzNpabqk_g*2-`Fnd*Af>O3-g zbk9`E9!qeG%PE(4or<>vw<3Ev?w9s?ky3fHJiEQTX{WcX4-})re0L3gwM4(!?3sTi zzEr>I-iaDjLW#T&<<51fyiZ~F>YijM#m#nR)Yv{zhFo_fS>&nFMOd%lV$)de-PRN8 zj?H7tP@Y8OA$6ty_FJibGhV)R-JlwcvBfo*`4YQi9=uK;qzpIlC#^GZ-MMBnByIJC z-!^QETX`(&hq&X8bo)9sDSnE-U-tU|FXB7XJN9V2bXPp3xT(C|99t=FT4B1GpK{zp zzy1EZ6gRyk+1f5?m!Y*?YNC%YR&M`Yswb3@byxJIxHVhHDz!sE&T=a^n_Mn))tTj5 z?w@ug$XT7~uImYMqAiCY^I@aI&|f?1{u!B~^yjGi`n@yv_WS1Q*YQ2=Z`NkyqwbgP zzv53HB9ps{uctOs-=BNemgREUK7~^ct)q>YZ<3ezw;h$soKE?-j+C0jWIm*IP9@}o zJ$VsY=Iy(dYYUyGax>rrx%~F91+K*V{b%?-y#`R*_tA{Cy=3XVz4ji2?nZ501#9m0 zFnG06I}~!V55a%Kf*>a`-rr*&$VtxHo;6WFiXm^E5lYKhZPvP~6mr6y_-8cB^_=dt zaaWak1?M8_s_VtQSaidbJ9d^JX1Qxi#3bVQcaN3Gm{_3yj#&v}!v6Uu|JNgCyMp{) zZaren<2*Lo+ilyC1rAl0zH=0w@l8JsK5$NYS#4mLj)G@;8~4i(mUJvyvW>bs z!x++bzD}>?5;^AUrJK{Nx@u{I^vxpo98-yI z=ypGeDJ?OxjdCs70!SU0cRZsEN00kD5&ywBx_jn|^G$o%+YbNBiF=U!U6vGw~fQW1-kD zq8t9#L)Ob#n28PgXLw66vz()4{MI}K$vIl`xx!5Jxn&!glqbW=2WA(K4oJvp{w%2kGkZ(OUlEpJW?7OudY53c&o!3Gnr#tloqMosy1lH4zxLlNEYlE8gqHK@{<-K<)Q7eu8X_M?vZq`v^EJ3T?c@2-{Tch5&*GQ( zJZaW5#Xd5j7xk9L6)8P zT!W0g4wGd9*C5lq+Va!P-j3TxCj0!@^X;F)BES5w06HO->$|MOb{zhU*r)eQrzCeA zY&q!;`p@;xIM?etXG*8CbNS7~Gku7QRrk&)FvO{Sd8s~QHA8KQsVZO=kh=x7e3qJq zC9FqwU&k^sW%op8`L6vMY^?W_oiJZUru+RQd-VI-`(EQ&L{E})Y;m4?U4mFacFV`| zdD8ntS$=OB*-4xytG{deG|k)*&yll%i^$9_V$bQTzB;*yd5Evw?@>9O_b*Be8&7ZZ zwPz4vW|FZCq2?CZ`DU1kQjBaXLGDIX8AkC`EGx<6=A{@JzvH!-k6|ma7-8S>4SH#g z#j}i;xi7sbWULt?bqyWN#qmYOgYc zL;gXen5intF|z!{6HnHhw5E8NC1*I~QaRGRK6BHq93#o2bKUiQjGFhn==ZW;hOfT) z;jL*D$uQUJkg;4fck6R4GRCHO;+rgY>NMr~SmxsKD*qiB^m(wI(y(u#aqs#F_vQ{m z)>hxv;3M*LWv9#dXojC*@@}nS86VxH;jxWneCk!Oe!nLNTt=vg1Xc@svX?ao=}qxm zeI&oK%aa+?o@0M5de62)AjX1dQZ`q=D+TfA1VirTz`h)Wfpuei+90-`Fdw<@=zTe` z-QPKe`9211sw}U3y!y~4M(x`Lt)rbfc?xU!T&&)g1KTT|yODTbCs`N4Yn$S|h+X7j z>i$`<*^+EUa~Fd;bcA2Z^$z#-;c5747PE4!!oD2nzA2w=Du-eWP>#9SmjkLdtT<>vcIXuzN<{vtT=FoRL!-ml-SOtF*)g5uJ2K zPHo;{@xtdP#YZu_@MV;m%OROm?hfyM{vZq_UO1V1VIXIbot?THyT!{fyYT6xG?G<0 zK3^>iL?@k$lxCBNPC9+H>TZ_9_^MuEU^$F0uU0pN#4M+63IoweXUq}?q7S(#@_k<| z8zX1o%%g;XorTXXltnQNxtW2x@j{-OB}c&=ZuMQo(0VxoI0uOzPzL5 zoIa4hBl_UQz$T8I`J}o4L=Mgl=fLujY|hIM>i@>(V*EH*U&$FkhdqeIUpc2jhB>C^x_`u9%F~Zxg7|$*bn4#1MND`OcX|KX{oMW3&!oQn{{8EiGro#jRr}e5Q0PV> z@maq3Ar!i8Mo{=FFU9gFD2_SfxlquXPQHwPK*3^}j~fvR#u8<3w%pC~go5sp@pXZ9 z>x0da=XNjN_ZLFJ^uotaNEY%Lt^I{26j+Yov=L3L5D)Inbd-IwXy%L~LP50CD+^63 zu>8W;hZF+Z{c`3P>e3S%@p>(xAk3~e&Y(T9M7v1!hEo*@Hg zUdzXy2nDO!z1i=x@ZXHz^vXgNXL){+y&bxrcdBM5al|Rw|oda~TD5{Bwc6$AVP%z)= zv=N~oam2}lOE1{XD=&*erwZI0v}!$;VPy8)-se$-g7uP}`Y9AdKfO7hA_6%PZ&yGa zau&~=-cz^ySiS7zQIxMRy>M2l$}b2CZ~jZW+g?sdD41S2c~@oAEVetnmMnz%3n#Os z7|mqiwbT=s=lG)8u>^vYI+*zFoMSB|&3fi;sMY90~$-Pc>2NW!h`07;6YblnL z_a?l0Ar!=S`cbexjc+DqI1!e2x>1n4)7ce}ELd;C>n}8!L-fMC^-8m@#8RD%l4eZX zGmSz)JMB&nu8u14TF$<%rcBu_J0}A@pkUo)r`M7sNUr6r1jMZo5AMyubxWO`h_`1o zye`EeiL(}v?`*Fbx+y?>xU=K0$x5c5-fT-7(nwTw_Ln6Kx^KqGH3|i*i=4H9I{rjE zz41&ah^2b@HO(Ec>ddPb>~4|jTh~1+*$B(|oO?b76eOy8c@)WlL{)DVE_R>9RIe|WggsnA}q`CTB^2BkT~M3M|4A#)~UW~Stw|J;p5i^6vTr& zBfC(r$nIpq2NWdxb=t^)f_W{U?-UAJoB8q!q0pU$^3IuCFIaEFxm!%KVEKg?g=QaE z&F<6-)kF-1(|3wnBUz4DJC)TRnp&;?hn_*~Xi)C9*AFi1#!scWvl283E$yf1u_*uO7d)2=suCI6R?lOzX>FN?D z;#srvTsus^_ggpr6)&%Uz9SgSSPt`Z48kr%JOq_Bnv2u{ z+3AcqeG(?(Gi&O&?%*&vx$1$3IxbA42bjG{IDdA!$yTo8uI|oQypx=Wf2wPD^bKWK zhIy+`XWhrh63)BV{R?$FzM^%txr~pUsf*uP!l%6z#18!V%=r1zz2jTSk5%%%Ds}06 zm7$lPuZyp~>*vPLSL_V45D!zl1|iL_T{Z2}87ns;5!T0&E+b@{j%(DH<9ev*OZX<& z)WEVH3Ll#x@Yf1w{X4OjF`M!+BC_6${c?xhV3TJx@|d&kkHDulkzV&Wl@snV2b$T` zhiFeG;G>&D@bJEn?93;;8>y9~;lvA!@LDOfh(<3aCugi4TpU>kY*<+2$Ztm38 zlVUhsUCp)fq?I%jGHvhLO-!oD>_)QE9AtPEfY|%i@}!ykwz=o9XSQ6P+n;;e>FWL3ZO)FgrKDV* zb=abLoP-_s#iQ$}D8=($MQ!<^ui$R$OI8EB_`o@2ZFBZHWON$S|q&9WsA@kViq(FU3&^A0GH`fH^yxiE$;q2bRb^1no zhMu0xyxiCg{;lN3;#GaQQ9j$%Uw!+X(Ng{QIc6HaL^UX$>yN%7yoniw^T<#B6@R*& zR$$vKU0#nMrkRw-7ZSvJVXj?o zo0oIh|2#HjhD;AVo^uHuyK(HQdza8@LciRGUG>{MI>jBegzB^gP{_HTY;$@i6jh5V9>3uIa~h2-#GOryH~mVaxh+4MMS#1fz>#Q^dUtd%o_z z^;zU~e69PlANR6G`mTuQq}O3Qfzi&BC#=J$4Lc+zyO^Z4D49;W_DZZp$!3MKZ@2BL z{k16R%^6RmS&x#jI$K(}@*cKb%)@m`ma3}NbG^&-6Un*m%#35A_Uk*%hjP;HN|v>H zrq#wJrMuUphve!GPNO1m!o{4Aqtdh?vp-M2Z5kDmRb8(@^LNke@RY3djyS2zJkjWL zFgs!;Klb_MEyu$!c`~;tOl#44ZnQ2sH2Hv&p zV;U9XyXxwd>Yj3M<>IBMWF?NJ998WTq`glMCpaZ5dI!-}OHShwvhq``?X$!XFrBY` zjx-*6viIq8)O#4@96dSd94?ZTy6&`2yFK) zQyNC6B5Hel-H9eljf-jj9F@L~|M@Bv^u!P3O4k$@NI} z(i*X2PfxPs^xLv`Wk|{C`(j+l>9Z`sRo|>f`W)teo?Qbar%!jjc^Iw|q_j8a%6ZnG zKD&+Qt4d0c65Dt6JxWfW-6Hg{2l?&I@Iu(G`#Euw&?Oc|f;s*g+LN+)7lV5L<+8?4N>TpV194zN4kZTtZ3 ztF@3Taq|vutf%|w-`u_b=}(178Kno zx(Mb{(~oEImp1i&jVX?sJNIoC$f&ov>r9wn2dhvQp|Qr$74m7a`lJxVfz;L4BgqEtk`x)Wna z9IWBL@8e>=#vl9c<6<`9Vd&@1k;FJx4K|I7&4Rmb=gi?E-K+X~FD{R1n1`{RmYC+K zn6L0mh0h}+-nB+Hzwa%y-JT#**TOMTGAA>(iMvL|xi2%-k!%{&Q}a&COt@IC;m)WeRQoj5%^@*a)BQx)n2r z>;&0B{c2NtiHXcyJ%~A(okCw*n>o;J58`X1s_N#s;nk4mV(8|I3mM}= zYkLg6YQq*NGLlCiZlqbLdW>$Mwa6Idts) z(^j&RcPG)x=XvL3r}>L=bWZO(kB(G&&b)07ooaUyRh*dDh5z-FsHd%|dW02_Pn)AGgyhU55cbf~p z{h0b=b+s$5P2*zc>8cQ?anbD9!`)Bg(yd0KVXhc9hfH}!dG6$jUen0vq(FU{2^nE~ zw?M{nIhSSrI~d#Rcz5Yb)M2_c^X7*qWADYdI+1g@2n*-({L{E}pNx47PgXRCjJ`MS znO~SgMqfp(FEd&{*Or-j3d{m(%S`j7tggz;4|oU0afz;&r(t(bWu_WkkB;5=+R9?3cO);#O;xUyo^lfwCo;XH_2?L5nd>-|pksO6HnL;=@@;&I zHg~kkmzMmo&=H&6%BScBIudJhQ^z~I*zIln99iA%8(Qo%Gj|l`@sNn+$uP&|L#xxw zoZ!5K*tCCcYGnx#vAW#kz&s*4*^^;A<`FUeCD-GgN5p)QC+{D(HJWi{x^z1keF?th zZSX5M@fz!{-etFVbGsnt@UX1PV`pRXVVt@rQyIfU-{HylYV{dz;@6wtPOc)ZzUtrb z)x5aABR$tV`R%T*=ct~|WdNlZ)sJR*LBhMDjw2)7l-riak+6WB4^#x8VYt=!|~I#TOp zcM7dG!zHgr$6n3JZI&rPN9yfdzpMlu@y9tD}Zi8&D^t}^Ds+jS>;jdW+*97{C zQmtHjUbeKGRErB)Ld*PXE7`I*pP7&4daLOHQo+`Wtn->6=DZwjO}1hlud0S}ysbPg zyB*RB?Qp6@x^29e@G?Kv4liLDa$6#}C)3S@$K=a|mSpDjSoL{dCcLEY->Q-jUcy7= z<}x$-%XXR8>tihG1AFy9i>an~_`oQiF<>ps2_QvLITj{Un)>wRN zlRxM_6tg#PZE@MpgATW7ZztI3tMXpHa|#=aTiz*;acqn^aCc9}vC(b#Tj(2$J?>8N zl-yWX$Lm+du_=2bHQpAs&|**0!+19?H&vU&`?{m?6go|`lXLZQdQ<51iqRpXBk{pq zH%`fpRWa^9=Qui^LwWm4)99F0xFgu7{!NFEcW$MMU14m+HrNO=;btx`W7pa1=xW}V z8_C+;RmM0r+8fU7qZo@|V{&7=p4`>%xZLQzv&_DNwQ_q7Go~%dT)^k(SSQRQF7p2_`NYAl+1Pjn2KPL$-A-no%6WQ^l?R}Evx z^d1zES$#dDJ0|O&CY=EH`rEP7)Wj+|O>dMMM@DSZ&2Wt&Q%*=^R^I}2dx>GI?`wsP z^xbni(;sGQV<)Pc=uB>29%LLFyLs!bs>ZRgNg(%}{1`UXR4h`}j|Z|+;@!45Q*F>= zwopG>sawRVcyGlwu5Wa!Wc^sG9w4h+ybOc3=W18odA|i_w@rw~1#jPD92?U&x1Ek- zqc3%P^N?|DZ0mvhhSE4TF{sSLc`bDc-67k9W*=C^u!ScPI_BrLunA?EhY*&*Z|W5`%%#64d=j*R6S^-q)D#LM{q zq1*N6>%NgrNbVGOh;$cFk$Znykm!5P$rW+u!M7?ktG;$}(hdUM zvH5dv(wp&LxjbqK5$gwMW=rM~=>`{xxj7DV2@|VlYMz{GESAS*YOEzWF?KvR*Rq63 z8=J{IvLhcD_XFDTLh`uW^!B`*#Pboh%9F{B%So6>PLSJgz9c8s+f#m1PovswG1*B< z(*oDuH|6f?CVEfJA)|3T#9Mlz$`~GY=Os63{S=z1@9W>XiLXCJX7=j)jP0xb zzrL@z+LNsw@9@*N|GAoa`ZYemZ-GFQm`8C_TmDg>O7p>=`tRs-yo;~?60s!1%*>wv z+XnC98^)|gk&|Vt^<*^c6B{;yZ>cTA&n?%MS{_!lvd(6hG2KoQ;-_V=Tc5!0=N`@p z2$AO9wm*TvSC&g6)4Q1ST$&Lde7OF;r7qG9>kcMl%ws+Yn^Zl$brjXzan)U0N73ES zZKI3IHI!w1h~NK+ziv1Av0I8B24NZ%+mn~u_qMa!X;kW;lvnJYs&5*VDmYTL=U$9j zmX`Q3GUc3m(Q*wgRw>uVMdx1}%-NiN(do@xZhKoD>F%L?mR_Sj5B~af^g&-oy>SuW z8N8Zmjox^Z@ zXXuZ)^H8s}hYaQMAT7=Cvh2B6+H}@2SG~JG1M@Mt?zs0eup#LnGe>yCUQfEdyirAFH&LA|CKq~j#eOtfw z>rM{wM43A;H9iIFc;>2Hw+-)lfU@L6*M7~hlSki zVd(#q)&q4o2hIG6D;fIDXWeC>zlnaecGAv&ibG;f_@|(|G;%ZiIFvgNfsx zg3aJ$XH48@L1z$ZL}PvyLu}ZRUD4|e@1hfR5q{??ZjxN~6EfG2$P2Mgz;=}m^(Vit zHkH4z&%nBc**V&A%VnQHGeG6J&|#gzfacezymk{=&IvT9w0B6$bD$c0Khqd}22CJ8 z4r#Ml=|htCFe_B9F*R}=sxkB(fZW`X*K+B`$QmrVqS))m6*N(M_I*0`{Cf>EbcUB| z7-ko_`$XgCk^d}=Jv_v78ScVu=~=VVXSesVlgD*5Y3KnzF6lE4s78FtY7(7stI-9> zeinLz^bq|k-KSfFpU$2O>%bnSx8i%4YjAkklhJJ+(#^@ - + Fail builds based on severity: ```yaml @@ -142,7 +142,7 @@ repos: max_error_issues: 10 ``` - + Speed up CI runs by caching pip packages: ```yaml @@ -153,7 +153,7 @@ repos: key: ${{ runner.os }}-pip-refactron ``` - + Create HTML reports and save as artifacts: ```bash diff --git a/docs/advanced/monitoring.mdx b/docs/advanced/monitoring.mdx index 9a0441d..0a63072 100644 --- a/docs/advanced/monitoring.mdx +++ b/docs/advanced/monitoring.mdx @@ -8,7 +8,7 @@ description: 'Production monitoring and telemetry' Refactron includes comprehensive logging and monitoring capabilities for production environments: - **Structured Logging** - JSON-formatted logs for CI/CD -- **Metrics Collection** - Track analysis time and success rates +- **Metrics Collection** - Track analysis time and success rates - **Prometheus Integration** - Expose metrics via HTTP endpoint - **Opt-in Telemetry** - Anonymous usage analytics @@ -187,15 +187,15 @@ prometheus_port: 9090 JSON format integrates easily with log aggregation systems - + Track performance and identify bottlenecks - + Visualize Refactron metrics over time - + Respect user privacy with opt-in telemetry diff --git a/docs/advanced/performance.mdx b/docs/advanced/performance.mdx index 9734477..cc28219 100644 --- a/docs/advanced/performance.mdx +++ b/docs/advanced/performance.mdx @@ -36,12 +36,12 @@ Cache parsed Abstract Syntax Trees to avoid re-parsing. - Reduces CPU usage - Especially effective for large files - + ```python from refactron import Refactron from refactron.core.config import RefactronConfig - + config = RefactronConfig( enable_ast_cache=True, max_ast_cache_size_mb=100 @@ -49,7 +49,7 @@ Cache parsed Abstract Syntax Trees to avoid re-parsing. refactron = Refactron(config) ``` - + ```python stats = refactron.get_performance_stats() @@ -156,13 +156,13 @@ refactron.clear_caches() print(f"Hit rate: {stats['ast_cache']['hit_rate']}%") ``` - + - Reduce cache size: `max_ast_cache_size_mb: 50` - Lower parallel workers: `max_parallel_workers: 2` - Clear caches periodically: `refactron.clear_caches()` - + Disable for small codebases: ```yaml diff --git a/docs/api-reference/refactron-class.mdx b/docs/api-reference/refactron-class.mdx index 40c9f7d..a93705f 100644 --- a/docs/api-reference/refactron-class.mdx +++ b/docs/api-reference/refactron-class.mdx @@ -80,7 +80,7 @@ def refactor( Specific refactoring types to apply. None = all types. - + Available types: - `extract_constant` - `add_docstring` @@ -316,7 +316,7 @@ for op in result.operations: print(f" File: {op.file_path}:{op.line_number}") print(f" Risk: {op.risk_score}") print(f" Description: {op.description}") - + # Record feedback refactron.record_feedback( operation_id=op.operation_id, diff --git a/docs/docs.json b/docs/docs.json index ae238f7..cdf306b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -93,4 +93,4 @@ "vscode" ] } -} \ No newline at end of file +} diff --git a/docs/essentials/authentication.mdx b/docs/essentials/authentication.mdx index ddb6cd9..4f7e397 100644 --- a/docs/essentials/authentication.mdx +++ b/docs/essentials/authentication.mdx @@ -84,17 +84,17 @@ Features that require authentication: refactron repo connect my-repo ``` - + Enhanced AI-powered refactoring with cloud LLM models - + ```bash refactron metrics ``` - + Share learned patterns across your team @@ -120,7 +120,7 @@ Cloud features gracefully degrade when offline. 2. Paste it into your browser manually 3. Complete the authentication - + If you see "Token expired" errors: ```bash @@ -128,7 +128,7 @@ Cloud features gracefully degrade when offline. refactron login ``` - + Verify the API key is set correctly: ```bash diff --git a/docs/essentials/configuration.mdx b/docs/essentials/configuration.mdx index 335614a..c3d3abe 100644 --- a/docs/essentials/configuration.mdx +++ b/docs/essentials/configuration.mdx @@ -67,23 +67,23 @@ pattern_storage_dir: null # null = auto-detect Detects security vulnerabilities like SQL injection, code injection, hardcoded secrets, and SSRF - + Identifies magic numbers, long functions, excessive parameters, and deep nesting - + Measures cyclomatic complexity, maintainability index, and nested loops - + Checks for missing or incomplete type annotations - + Finds unused functions and unreachable code - + Analyzes circular imports and wildcard imports @@ -95,15 +95,15 @@ pattern_storage_dir: null # null = auto-detect Extract magic numbers into named constants - + Add missing docstrings to functions and classes - + Simplify complex conditional statements - + Reduce function parameter count using dataclasses or dictionaries diff --git a/docs/essentials/installation.mdx b/docs/essentials/installation.mdx index 0ec2f0e..7fe801e 100644 --- a/docs/essentials/installation.mdx +++ b/docs/essentials/installation.mdx @@ -6,7 +6,7 @@ description: 'How to install and set up Refactron' ## Requirements - **Python Version**: 3.8 or higher + **Python Version**: 3.8 or higher **Supported Platforms**: macOS, Linux, Windows @@ -71,7 +71,7 @@ Refactron automatically installs these dependencies: - **radon** - Complexity metrics - **astroid** - AST analysis - + - **chromadb** - Vector database for RAG - **tree-sitter** - Code parsing @@ -90,7 +90,7 @@ Refactron automatically installs these dependencies: pip install --user refactron ``` - + Ensure you're using Python 3.8+: ```bash @@ -101,7 +101,7 @@ Refactron automatically installs these dependencies: python3.10 -m pip install refactron ``` - + On macOS, you may need to install certificates: ```bash diff --git a/docs/guides/ai-features.mdx b/docs/guides/ai-features.mdx index 16466e6..dd843a2 100644 --- a/docs/guides/ai-features.mdx +++ b/docs/guides/ai-features.mdx @@ -120,19 +120,19 @@ refactron refactor myfile.py --ai --apply Refactron analyzes your code for issues - + RAG system retrieves relevant code chunks from your project - + LLM generates refactoring suggestions with project context - + Safety gate validates syntax and checks for issues - + Suggestions presented with explanations and risk scores @@ -158,10 +158,10 @@ AI-powered refactoring suggests: # AI-suggested refactoring def process_users(users): """Process and filter users based on eligibility criteria. - + Args: users: List of user objects to process - + Returns: List of eligible users (adult, active, verified) """ @@ -202,21 +202,21 @@ refactron suggest myfile.py --line 42 --apply Fast, cloud-based LLM provider with free tier - + **Models:** - `llama3-70b-8192` - Best quality - `llama3-8b-8192` - Faster, good quality - `mixtral-8x7b-32768` - Long context window - + **Setup:** ```bash export GROQ_API_KEY='your-key' ``` - + Bring your own LLM provider - + Configure in `.refactron.yaml`: ```yaml llm: @@ -301,19 +301,19 @@ refactron feedback --action rejected --reason "Breaks API contrac Re-run `refactron rag index` after significant code changes for accurate context - + Models like Llama 3 70B provide better refactoring logic than smaller models - + Use `--preview` to review AI-generated code before applying - + Record feedback to improve AI suggestions over time - + Run your test suite after applying AI refactorings @@ -329,14 +329,14 @@ refactron feedback --action rejected --reason "Breaks API contrac ``` Export it in your shell profile for persistence - + Create index first: ```bash refactron rag index ``` - + - Use smaller models (llama3-8b-8192) - Reduce `max_tokens` diff --git a/docs/guides/code-analysis.mdx b/docs/guides/code-analysis.mdx index 9a8de3a..9515e29 100644 --- a/docs/guides/code-analysis.mdx +++ b/docs/guides/code-analysis.mdx @@ -49,7 +49,7 @@ for issue in analysis.issues: - **Code Injection**: Use of `eval()` and `exec()` - **Hardcoded Secrets**: API keys, passwords in code - **SSRF Vulnerabilities**: Unsafe URL handling - + ```python # āŒ Security issue detected query = f"SELECT * FROM users WHERE id = {user_id}" # SQL injection @@ -57,14 +57,14 @@ for issue in analysis.issues: API_KEY = "hardcoded-secret-123" # Hardcoded secret ``` - + Identifies code smells and maintainability issues: - **Magic Numbers**: Unexplained numeric constants - **Long Functions**: Functions exceeding length threshold - **Excessive Parameters**: Too many function parameters - **Deep Nesting**: Complex nested control structures - + ```python # āŒ Code quality issues def process(a, b, c, d, e, f, g): # Too many parameters @@ -75,14 +75,14 @@ for issue in analysis.issues: return 42 # Magic number ``` - + Measures code complexity: - **Cyclomatic Complexity**: Control flow complexity - **Cognitive Complexity**: Human readability complexity - **Maintainability Index**: Overall maintainability score - **Nested Loops**: Performance-impacting nested iterations - + ```python # āŒ High complexity def complex_function(data): @@ -94,51 +94,51 @@ for issue in analysis.issues: process(val) ``` - + Checks type annotation coverage: - Missing function type hints - Incomplete parameter annotations - Missing return type annotations - + ```python # āŒ Missing type hints def calculate(x, y): # No type hints return x + y - + # āœ… Properly typed def calculate(x: int, y: int) -> int: return x + y ``` - + Finds unused and unreachable code: - Unused variables - Unused functions - Unreachable code blocks - + ```python # āŒ Dead code def process(): result = expensive_calculation() # Unused variable return None - + def unused_function(): # Never called pass - + def example(): return True print("Never executed") # Unreachable ``` - + Analyzes import patterns: - Circular imports - Wildcard imports - Deprecated modules - + ```python # āŒ Dependency issues from module_a import * # Wildcard import diff --git a/docs/guides/pattern-learning.mdx b/docs/guides/pattern-learning.mdx index 3022ede..b468c48 100644 --- a/docs/guides/pattern-learning.mdx +++ b/docs/guides/pattern-learning.mdx @@ -13,11 +13,11 @@ Refactron's Pattern Learning System learns from your refactoring decisions, buil When Refactron suggests a refactoring, it creates a unique "fingerprint" of the code pattern - + You provide feedback: **accepted**, **rejected**, or **ignored** - + Refactron tracks: - Acceptance rates for each pattern @@ -25,7 +25,7 @@ Refactron's Pattern Learning System learns from your refactoring decisions, buil - Code metrics improvements - Project-specific preferences - + Future suggestions ranked based on historical acceptance rates and patterns @@ -237,7 +237,7 @@ pattern_storage_dir: /custom/path/patterns - **Reject** inappropriate suggestions - **Ignore** if unsure - + For large projects, use automated tuning: ```bash @@ -245,14 +245,14 @@ pattern_storage_dir: /custom/path/patterns refactron patterns tune --auto ``` - + Periodically check pattern performance: ```bash refactron patterns analyze ``` - + In CI/CD environments, use consistent storage: ```yaml @@ -321,14 +321,14 @@ Pattern learning integrates with [AI Features](/guides/ai-features): 2. Verify storage directory is writable 3. Check logs: `refactron refactor --log-level DEBUG` - + **Solutions:** 1. Check `pattern_ranking_enabled` is `true` 2. Ensure patterns have been learned (provide feedback first) 3. Verify sufficient pattern history exists - + **Solutions:** 1. Check directory permissions diff --git a/docs/guides/refactoring.mdx b/docs/guides/refactoring.mdx index ac55e22..ac167f9 100644 --- a/docs/guides/refactoring.mdx +++ b/docs/guides/refactoring.mdx @@ -34,67 +34,67 @@ refactron refactor myfile.py Replaces magic numbers with named constants - + ```python # Before def calculate_tax(amount): return amount * 0.18 - + # After TAX_RATE = 0.18 - + def calculate_tax(amount): return amount * TAX_RATE ``` - + Adds missing docstrings to functions and classes - + ```python # Before def calculate_total(items): return sum(item.price for item in items) - + # After def calculate_total(items): """Calculate total price for list of items. - + Args: items: List of items with price attribute - + Returns: Total sum of item prices """ return sum(item.price for item in items) ``` - + Refactors complex conditional expressions - + ```python # Before if not (x < 10 or x > 20): process() - + # After if 10 <= x <= 20: process() ``` - + Reduces function parameters using dataclasses or dicts - + ```python # Before def create_user(name, email, age, city, country): pass - + # After from dataclasses import dataclass - + @dataclass class UserData: name: str @@ -102,7 +102,7 @@ refactron refactor myfile.py age: int city: str country: str - + def create_user(user: UserData): pass ``` @@ -226,29 +226,29 @@ file_ops.rollback_all() refactron analyze myproject/ ``` - + Preview refactoring suggestions ```bash refactron refactor myproject/ --preview ``` - + Review the diff output and risk scores - + Apply refactorings you want to keep ```bash refactron refactor myproject/ --type extract_constant ``` - + Run your tests to ensure nothing broke - + Rollback if something went wrong ```bash @@ -299,19 +299,19 @@ refactron feedback --action accepted Use `--preview` to see changes before applying them - + Commit your code before refactoring for easy rollback - + Run your test suite after applying refactorings - + Begin with safe refactorings, then gradually increase risk tolerance - + Refactor small portions at a time rather than entire codebase diff --git a/docs/introduction.mdx b/docs/introduction.mdx index 4d4ec7e..572b253 100644 --- a/docs/introduction.mdx +++ b/docs/introduction.mdx @@ -54,23 +54,23 @@ Refactron is a powerful Python library that analyzes your code for security vuln Detect SQL injection, code injection, hardcoded secrets, and SSRF vulnerabilities - + Identify magic numbers, long functions, excessive parameters, and deep nesting - + LLM orchestration with RAG (Retrieval-Augmented Generation) for context-aware refactoring - + Learn from your project-specific coding standards and improve over time - + AST caching, incremental analysis, and parallel processing for large codebases - + 14 automated fixers with configurable safety levels and rollback support diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index 35f585d..d653c9a 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -26,7 +26,7 @@ Follow this workflow to get the most out of Refactron: refactron login ``` - + Set up Refactron in your project: ```bash @@ -34,46 +34,46 @@ Follow this workflow to get the most out of Refactron: ``` Choose a template (base, django, fastapi, or flask) to get started quickly. - + Connect your GitHub repository for enhanced features: ```bash refactron repo connect ``` - + Run comprehensive code analysis: ```bash refactron analyze . --detailed ``` - + Generate AI-powered refactoring suggestions: ```bash refactron suggest myfile.py ``` - + Preview and apply refactoring changes: ```bash # Preview changes first refactron refactor myfile.py --preview - + # Apply when ready refactron refactor myfile.py --apply ``` - + Create a comprehensive technical debt report: ```bash refactron report . --format html -o report.html ``` - + Rollback changes if something goes wrong: ```bash @@ -155,15 +155,15 @@ When you run an analysis, you'll see: āœ“ Analyzing myproject/ Files analyzed: 25 Issues found: 12 - + CRITICAL (2): - SQL injection vulnerability (line 45) - Hardcoded secret detected (line 78) - + ERROR (4): - High cyclomatic complexity (line 120) - Deep nesting detected (line 156) - + WARNING (6): - Magic number usage (line 23) - Missing type hints (line 67) diff --git a/docs/resources/faq.mdx b/docs/resources/faq.mdx index a7e83c7..8c47a6c 100644 --- a/docs/resources/faq.mdx +++ b/docs/resources/faq.mdx @@ -9,15 +9,15 @@ description: 'Frequently asked questions' Refactron is an intelligent Python code refactoring tool that analyzes your code for issues and suggests automated improvements with safety guarantees. - + Yes! Refactron is open source and free to use. Some advanced features require an API key for authentication. - + Refactron supports Python 3.8 and above. - + Absolutely! Refactron is designed for CI/CD integration. Use `refactron ci` to generate configuration templates. @@ -36,7 +36,7 @@ description: 'Frequently asked questions' refactron login ``` - + Refactron works out of the box with sensible defaults. For customization, run: ```bash @@ -44,7 +44,7 @@ description: 'Frequently asked questions' ``` This creates a `.refactron.yaml` configuration file. - + Refactron automatically installs all required dependencies via pip. For AI features, you'll need a Groq API key (free tier available). @@ -60,7 +60,7 @@ description: 'Frequently asked questions' ``` This will scan your code and report issues by severity. - + Refactron includes multiple safety features: - **Preview mode** - See changes before applying @@ -68,7 +68,7 @@ description: 'Frequently asked questions' - **Automatic backups** - All changes are backed up - **Rollback** - Easily undo changes - + Yes! Use the `--type` flag: ```bash @@ -81,7 +81,7 @@ description: 'Frequently asked questions' - add_docstring ``` - + First, set your Groq API key: ```bash @@ -104,11 +104,11 @@ description: 'Frequently asked questions' By default, Refactron uses Groq (Llama 3). You can also configure custom LLM providers. - + When using AI features with cloud LLM providers (like Groq), code snippets are sent for analysis. The RAG indexing happens locally. You can use local LLM providers for complete privacy. - + Re-index after significant code changes: ```bash @@ -127,14 +127,14 @@ description: 'Frequently asked questions' Refactron learns from your feedback on refactoring suggestions. When you accept or reject suggestions, it adapts to your project's style and preferences. - + Yes, in `.refactron.yaml`: ```yaml enable_pattern_learning: false ``` - + By default in `.refactron/patterns/` in your project root. You can customize this: ```yaml @@ -152,7 +152,7 @@ description: 'Frequently asked questions' refactron auth status ``` - + Enable performance optimizations: ```yaml @@ -161,7 +161,7 @@ description: 'Frequently asked questions' max_parallel_workers: 4 ``` - + You can: 1. Provide feedback to pattern learning @@ -175,7 +175,7 @@ description: 'Frequently asked questions' - "*/tests/*" ``` - + List available rollback sessions: ```bash @@ -186,7 +186,7 @@ description: 'Frequently asked questions' refactron rollback --session ``` - + Create the index first: ```bash @@ -202,14 +202,14 @@ description: 'Frequently asked questions' Yes! Extend the `BaseAnalyzer` class: ```python from refactron.analyzers.base_analyzer import BaseAnalyzer - + class MyAnalyzer(BaseAnalyzer): def analyze_file(self, file_path, ast_tree): # Your analysis logic return issues ``` - + Yes! Refactron integrates well with: - **Black** - Code formatting @@ -218,7 +218,7 @@ description: 'Frequently asked questions' - **pre-commit** - Git hooks - **Prometheus** - Monitoring - + Check out our [GitHub repository](https://github.com/Refactron-ai/Refactron_lib) and see the CONTRIBUTING.md guide! diff --git a/documentation/docs/CLI_REFERENCE.md b/documentation/docs/CLI_REFERENCE.md index 56d58d5..2d07ac0 100644 --- a/documentation/docs/CLI_REFERENCE.md +++ b/documentation/docs/CLI_REFERENCE.md @@ -16,32 +16,32 @@ This document contains the reference for all Refactron CLI commands. COMMAND CENTER Select a command by name or number - - ID COMMAND DESCRIPTION - ──────────────────────────────────────────────────────────────────────────────────────────────────────── - 01 ANALYZE Analyze code for issues and technical debt. - 02 AUTH Manage authentication state. - 03 AUTOFIX Automatically fix code issues (Phase 3... - 04 DOCUMENT Generate Google-style docstrings for a... - 05 FEEDBACK Provide feedback on a refactoring operation. - 06 GENERATE-CICD Generate CI/CD integration templates. - 07 INIT Initialize Refactron configuration in the... - 08 LOGIN Log in to Refactron CLI via device-code flow. - 09 LOGOUT Log out of Refactron CLI. - 10 METRICS Display collected metrics from the current... - 11 PATTERNS Pattern learning and project-specific... - 12 RAG RAG (Retrieval-Augmented Generation)... - 13 REFACTOR Refactor code with intelligent... - 14 REPO Manage GitHub repository connections. - 15 REPORT Generate a detailed technical debt report. - 16 ROLLBACK Rollback refactoring changes to restore... - 17 SERVE-METRICS Start a Prometheus metrics HTTP server. - 18 SUGGEST Generate AI-powered refactoring suggestions. - 19 TELEMETRY Manage telemetry settings. - + + ID COMMAND DESCRIPTION + ──────────────────────────────────────────────────────────────────────────────────────────────────────── + 01 ANALYZE Analyze code for issues and technical debt. + 02 AUTH Manage authentication state. + 03 AUTOFIX Automatically fix code issues (Phase 3... + 04 DOCUMENT Generate Google-style docstrings for a... + 05 FEEDBACK Provide feedback on a refactoring operation. + 06 GENERATE-CICD Generate CI/CD integration templates. + 07 INIT Initialize Refactron configuration in the... + 08 LOGIN Log in to Refactron CLI via device-code flow. + 09 LOGOUT Log out of Refactron CLI. + 10 METRICS Display collected metrics from the current... + 11 PATTERNS Pattern learning and project-specific... + 12 RAG RAG (Retrieval-Augmented Generation)... + 13 REFACTOR Refactor code with intelligent... + 14 REPO Manage GitHub repository connections. + 15 REPORT Generate a detailed technical debt report. + 16 ROLLBACK Rollback refactoring changes to restore... + 17 SERVE-METRICS Start a Prometheus metrics HTTP server. + 18 SUGGEST Generate AI-powered refactoring suggestions. + 19 TELEMETRY Manage telemetry settings. + GLOBAL OPTIONS ---version Show the version and exit. +--version Show the version and exit. --help Show this message and exit. USAGE: refactron ... @@ -452,4 +452,3 @@ Options: --help Show this message and exit. ``` - diff --git a/documentation/docs/api/analyzers.md b/documentation/docs/api/analyzers.md index cf39613..beccbb0 100644 --- a/documentation/docs/api/analyzers.md +++ b/documentation/docs/api/analyzers.md @@ -485,4 +485,3 @@ Returns: astroid.nodes.Module ## Functions - diff --git a/documentation/docs/api/autofix.md b/documentation/docs/api/autofix.md index 0cd2213..1e626ab 100644 --- a/documentation/docs/api/autofix.md +++ b/documentation/docs/api/autofix.md @@ -799,4 +799,3 @@ FixRiskLevel(*values) Risk levels for automatic fixes. ## Functions - diff --git a/documentation/docs/api/cicd.md b/documentation/docs/api/cicd.md index c8ff4ee..5cf00e8 100644 --- a/documentation/docs/api/cicd.md +++ b/documentation/docs/api/cicd.md @@ -467,4 +467,3 @@ Returns: Dictionary with issue counts ## Functions - diff --git a/documentation/docs/api/core.md b/documentation/docs/api/core.md index c71b646..3e64e90 100644 --- a/documentation/docs/api/core.md +++ b/documentation/docs/api/core.md @@ -2878,4 +2878,3 @@ WorkspaceMapping.to_dict(self) -> 'Dict[str, Any]' Convert to dictionary for JSON serialization. ## Functions - diff --git a/documentation/docs/api/llm.md b/documentation/docs/api/llm.md index a57f9b6..0c594aa 100644 --- a/documentation/docs/api/llm.md +++ b/documentation/docs/api/llm.md @@ -287,4 +287,3 @@ Returns: Safety check result ## Functions - diff --git a/documentation/docs/api/patterns.md b/documentation/docs/api/patterns.md index 3e4bccf..bba6981 100644 --- a/documentation/docs/api/patterns.md +++ b/documentation/docs/api/patterns.md @@ -911,4 +911,3 @@ Heuristics: - Adjust pattern weights based on project acceptance. ## Functions - diff --git a/documentation/docs/api/rag.md b/documentation/docs/api/rag.md index 930892e..66f6929 100644 --- a/documentation/docs/api/rag.md +++ b/documentation/docs/api/rag.md @@ -348,4 +348,3 @@ RetrievedContext.__init__(self, content: 'str', file_path: 'str', chunk_type: 's Initialize self. See help(type(self)) for accurate signature. ## Functions - diff --git a/documentation/docs/api/refactorers.md b/documentation/docs/api/refactorers.md index 696ca5d..27c08ea 100644 --- a/documentation/docs/api/refactorers.md +++ b/documentation/docs/api/refactorers.md @@ -275,4 +275,3 @@ Returns: List of simplification operations ## Functions - diff --git a/flake8_errors.txt b/flake8_errors.txt deleted file mode 100644 index 1ba1842f6c2e248b510a4bcb0631ba43d8d2f3f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7996 zcmd5>J5Iw;5ZoGxJGg`bh~w|0po4p$U?39U$VtQHfte>n14S}uA{TKsPGpbwGrK$a z{Fq{h$GDGG>|%;B-r@@O2z!9_``gRd#Cu#v6(x>+EO0F1HX2wZte05h8Uw5yt}^B` zyy_FIGyI;vxxuT8gySlnaqsE-{sXLSoX2UL{Bh@faa9to%8sj%aM4R%f3*Uxg!p-J zC1jM6UrRf#Uc%+h`x5mxPmh(c6uF`?$CAjFLNuA1-s~@N2L)Mgugfyp%=w2i|HAAu z#sAhG;8M8OKW{g{rR15v za}t>rO?OWxGG(gmQ8`|&ZN#4L?*c@o>?jEg?f03+XMSW&)~Tvo2SwcB6KA#pD)a@^ zU#ielkf|51@wtfC{J#A;yMe|`y?TIlJi>l}Mcw#6sxdLmQ$1_pn|W#n?BxpoC;Oa1 zWLh-cb7L$1Z<0_WUdEuNp>-xV|98lLCC~iboZE?3n{K^@$dn1l-HsfxhRe*a7CNiZ0_TNsv03OKvYXATM diff --git a/flake8_errors_temp.txt b/flake8_errors_temp.txt deleted file mode 100644 index 9181c1715322ef9eed73901b9b77f3d8a76c1e38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7168 zcmdT|%TB{E5S%j-|G*J0(Aas{9Juiv6$<4cr7a4*z{dl#<;aDMghr@}Yda55r?a!` ze16Q>-~o3Salni{cDUkb$78}9-g$P$E9XX@yXR=l(U#v6KkFY?UgCv!U8BXowqV8f z47cdmYuKCc%x7=dJMek?<4mmi$lf`xk85st45(~JJaL7YN1*#ga)DEvaPBWqcU)gV zovo;QiR)_Sy63;Woa>5Y<$9p9m!mG!zf;$R(X<@3o9pK284B)VWjknDk9E0vXB-%0cnZ#|gkCYrw8I>}PriEQQd z!B&h*@BT88H^oofbyY;Awx4(VcQB{;x7$yugxkHp%*^wOPAdJ==_ldd+FLg7{xXv{ z%}=~}CvYo#$9r 79 characters) -refactron/analyzers/code_smell_analyzer.py:51:80: E501 line too long (83 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:67:80: E501 line too long (91 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:68:80: E501 line too long (92 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:74:80: E501 line too long (85 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:89:80: E501 line too long (92 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:101:80: E501 line too long (98 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:105:80: E501 line too long (100 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:128:80: E501 line too long (81 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:146:80: E501 line too long (92 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:149:80: E501 line too long (94 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:158:80: E501 line too long (87 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:177:80: E501 line too long (85 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:182:80: E501 line too long (91 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:186:80: E501 line too long (92 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:197:80: E501 line too long (86 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:203:80: E501 line too long (87 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:211:80: E501 line too long (82 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:212:80: E501 line too long (92 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:220:80: E501 line too long (91 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:225:80: E501 line too long (87 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:227:80: E501 line too long (80 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:232:80: E501 line too long (91 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:236:80: E501 line too long (86 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:240:80: E501 line too long (95 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:260:80: E501 line too long (85 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:274:80: E501 line too long (82 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:285:80: E501 line too long (90 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:295:80: E501 line too long (81 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:314:80: E501 line too long (93 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:328:80: E501 line too long (94 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:330:80: E501 line too long (81 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:338:80: E501 line too long (80 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:340:80: E501 line too long (87 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:354:80: E501 line too long (95 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:380:80: E501 line too long (87 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:386:80: E501 line too long (93 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:387:80: E501 line too long (84 > 79 characters) -refactron/analyzers/code_smell_analyzer.py:390:80: E501 line too long (93 > 79 characters) \ No newline at end of file From 95740f9ede34126a227d8137eb21c0466b1268b7 Mon Sep 17 00:00:00 2001 From: shrutu0929 Date: Wed, 11 Mar 2026 20:30:03 +0530 Subject: [PATCH 4/5] feat: implement automated auto-fix for high-confidence code smells --- refactron/analyzers/code_smell_analyzer.py | 18 +++++ refactron/autofix/engine.py | 13 +++- refactron/autofix/fixers.py | 41 ++++++++++ tests/test_ai_autofix.py | 88 ++++++++++++++++++++++ 4 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 tests/test_ai_autofix.py diff --git a/refactron/analyzers/code_smell_analyzer.py b/refactron/analyzers/code_smell_analyzer.py index 2a88bfd..f52d90f 100644 --- a/refactron/analyzers/code_smell_analyzer.py +++ b/refactron/analyzers/code_smell_analyzer.py @@ -81,6 +81,24 @@ def analyze(self, file_path: Path, source_code: str) -> List[CodeIssue]: issue.metadata["validation_confidence"] = confidence if confidence >= 0.3: + # If confidence is very high, trigger auto-fix suggestion + if confidence > 0.8 and self.orchestrator: + try: + # Generate a suggestion using the full source code for context + suggestion_obj = self.orchestrator.generate_suggestion( + issue, source_code + ) + if suggestion_obj.proposed_code: + issue.suggestion = suggestion_obj.proposed_code + issue.metadata["ai_fix_available"] = True + issue.metadata["ai_explanation"] = suggestion_obj.explanation + issue.metadata["ai_reasoning"] = suggestion_obj.reasoning + except Exception: + # Failing to generate a suggestion shouldn't break triage + pass + else: + pass + final_issues.append(issue) issues = final_issues diff --git a/refactron/autofix/engine.py b/refactron/autofix/engine.py index 95a43a2..b29954e 100644 --- a/refactron/autofix/engine.py +++ b/refactron/autofix/engine.py @@ -34,6 +34,7 @@ def _register_fixers(self) -> Dict[str, "BaseFixer"]: from refactron.autofix.fixers import ( AddDocstringsFixer, AddMissingCommasFixer, + AISuggestionFixer, ConvertToFStringFixer, ExtractMagicNumbersFixer, FixIndentationFixer, @@ -64,6 +65,7 @@ def _register_fixers(self) -> Dict[str, "BaseFixer"]: FixIndentationFixer, AddMissingCommasFixer, RemovePrintStatementsFixer, + AISuggestionFixer, ]: fixer = fixer_class() fixers[fixer.name] = fixer @@ -80,7 +82,9 @@ def can_fix(self, issue: CodeIssue) -> bool: Returns: True if a fixer is available, False otherwise """ - return issue.rule_id in self.fixers if issue.rule_id else False + if issue.rule_id in self.fixers: + return True + return bool(issue.suggestion) def fix(self, issue: CodeIssue, code: str, preview: bool = True) -> FixResult: """ @@ -99,7 +103,12 @@ def fix(self, issue: CodeIssue, code: str, preview: bool = True) -> FixResult: success=False, reason=f"No fixer available for issue: {issue.rule_id or 'unknown'}" ) - fixer = self.fixers[issue.rule_id] + # Prefer rule-based fixer if available, otherwise use AI suggestion + if issue.rule_id and issue.rule_id in self.fixers: + fixer = self.fixers[issue.rule_id] + else: + # Must have issue.suggestion based on can_fix() check + fixer = self.fixers["ai_suggestion"] # Check risk level if fixer.risk_score > self.safety_level.value: diff --git a/refactron/autofix/fixers.py b/refactron/autofix/fixers.py index efde987..f3a6c0b 100644 --- a/refactron/autofix/fixers.py +++ b/refactron/autofix/fixers.py @@ -731,3 +731,44 @@ def apply(self, issue: CodeIssue, code: str) -> FixResult: def _create_diff(self, original: str, fixed: str) -> str: """Create a simple diff.""" return f"--- Original\n{original}\n\n+++ Fixed\n{fixed}" + + +class AISuggestionFixer(BaseFixer): + """Generic fixer that applies AI-generated suggestions.""" + + def __init__(self) -> None: + super().__init__(name="ai_suggestion", risk_score=0.5) + + def preview(self, issue: CodeIssue, code: str) -> FixResult: + """Preview the AI-generated suggestion.""" + if not issue.suggestion: + return FixResult( + success=False, + reason="No AI suggestion available for this issue", + risk_score=self.risk_score, + ) + + return FixResult( + success=True, + reason=issue.metadata.get("ai_explanation", "Applied AI-generated refactoring"), + diff=self._create_diff(code, issue.suggestion), + original=code, + fixed=issue.suggestion, + risk_score=self.risk_score, + ) + + def apply(self, issue: CodeIssue, code: str) -> FixResult: + """Apply the AI-generated suggestion.""" + return self.preview(issue, code) + + def _create_diff(self, original: str, fixed: str) -> str: + """Create a simple diff.""" + import difflib + + diff = difflib.unified_diff( + original.splitlines(keepends=True), + fixed.splitlines(keepends=True), + fromfile="Original", + tofile="AI Fixed", + ) + return "".join(diff) diff --git a/tests/test_ai_autofix.py b/tests/test_ai_autofix.py new file mode 100644 index 0000000..eb1fbf2 --- /dev/null +++ b/tests/test_ai_autofix.py @@ -0,0 +1,88 @@ +import unittest +from pathlib import Path +from unittest.mock import MagicMock, patch + +from refactron.analyzers.code_smell_analyzer import CodeSmellAnalyzer +from refactron.autofix.engine import AutoFixEngine +from refactron.core.config import RefactronConfig +from refactron.core.models import CodeIssue, IssueCategory, IssueLevel +from refactron.llm.models import RefactoringSuggestion, SuggestionStatus + + +class TestAIAutoFixIntegration(unittest.TestCase): + """Integration tests for AI-triggered auto-fixes.""" + + def setUp(self): + self.config = RefactronConfig() # Fresh config + self.config.enable_ai_triage = True + self.orchestrator = MagicMock() + self.analyzer = CodeSmellAnalyzer(self.config, self.orchestrator) + # Use a higher safety level to allow AI suggestions (0.5) + from refactron.autofix.models import FixRiskLevel + self.engine = AutoFixEngine(safety_level=FixRiskLevel.HIGH) + + def test_high_confidence_magic_number_triggers_suggestion(self): + """Test that a high-confidence magic number triggers an AI suggestion.""" + source_code = "def area(radius):\n return 3.14159 * radius * radius" + file_path = Path("test_file.py") + + # Mock AI triage to return high confidence (0.9) for the magic number (rule S004) + # and low confidence for other issues (like missing docstring S005) + self.orchestrator.evaluate_issues_batch.return_value = {"S004": 0.9, "S005": 0.5} + + # Mock AI suggestion generation + proposed_code = "PI = 3.14159\n\ndef area(radius):\n return PI * radius * radius" + suggestion = RefactoringSuggestion( + issue=MagicMock(spec=CodeIssue), + original_code=source_code, + context_files=[], + proposed_code=proposed_code, + explanation="Extracted magic number 3.14159 to constant PI", + reasoning="Magic numbers reduce maintainability. Using a named constant is better.", + model_name="mock-model", + confidence_score=0.9, + status=SuggestionStatus.PENDING + ) + self.orchestrator.generate_suggestion.return_value = suggestion + + # Run analysis + issues = self.analyzer.analyze(file_path, source_code) + + # Verify magic number issue was detected and has a suggestion + magic_number_issue = next((i for i in issues if i.rule_id == "S004"), None) + self.assertIsNotNone(magic_number_issue) + self.assertEqual(magic_number_issue.suggestion, proposed_code) + self.assertTrue(magic_number_issue.metadata.get("ai_fix_available")) + + # Verify engine can fix it using the AI suggestion + self.assertTrue(self.engine.can_fix(magic_number_issue)) + + # Apply the fix + result = self.engine.fix(magic_number_issue, source_code, preview=False) + + self.assertTrue(result.success, f"Fix failed: {result.reason}") + self.assertEqual(result.fixed, proposed_code) + self.assertIn("PI = 3.14159", result.fixed) + self.assertIn("PI * radius * radius", result.fixed) + + def test_low_confidence_does_not_trigger_suggestion(self): + """Test that a low-confidence issue does not trigger an AI suggestion.""" + source_code = "def area(radius):\n return 3.14159 * radius * radius" + file_path = Path("test_file.py") + + # Confidence (0.5) is above filtered threshold (0.3) but below auto-fix threshold (0.8) + # Also mock S005 to be low confidence + self.orchestrator.evaluate_issues_batch.return_value = {"S004": 0.5, "S005": 0.1} + + # Run analysis + issues = self.analyzer.analyze(file_path, source_code) + + # Verify magic number issue exists but NO suggestion was generated (stays default) + magic_number_issue = next((i for i in issues if i.rule_id == "S004"), None) + self.assertIsNotNone(magic_number_issue) + self.assertEqual(magic_number_issue.suggestion, "Consider extracting this number into a named constant.") + self.orchestrator.generate_suggestion.assert_not_called() + + +if __name__ == "__main__": + unittest.main() From 97e36b17c55edb60be2a1fcc84886f6705c24ad8 Mon Sep 17 00:00:00 2001 From: shrutu0929 Date: Wed, 11 Mar 2026 21:55:05 +0530 Subject: [PATCH 5/5] fix: resolve pre-commit, IndentationError, and circular import issues across RAG and core --- coverage.json | 2 +- debug_syntax.py | 32 +++++++++++++++++++++++++++++++ last_errors.txt | 0 refactron/core/refactron.py | 23 +++++++++++++++------- refactron/rag/indexer.py | 5 +++-- refactron/rag/parser.py | 1 + scripts/analyze_feedback_data.py | 1 - test_output.txt | Bin 0 -> 28808 bytes test_output_2.txt | Bin 0 -> 30648 bytes tests/test_ai_autofix.py | 15 +++++++++------ 10 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 debug_syntax.py create mode 100644 last_errors.txt create mode 100644 test_output.txt create mode 100644 test_output_2.txt diff --git a/coverage.json b/coverage.json index af6a7bd..a3163fc 100644 --- a/coverage.json +++ b/coverage.json @@ -1 +1 @@ -{"meta": {"format": 3, "version": "7.13.4", "timestamp": "2026-03-11T14:25:10.773298", "branch_coverage": false, "show_contexts": false}, "files": {"refactron\\__init__.py": {"executed_lines": [7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\ai\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\base_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 21, 23, 24, 37, 38, 39], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 86.66666666666667, "percent_statements_covered_display": "87"}, "missing_lines": [35, 41], "excluded_lines": [], "functions": {"BaseAnalyzer.__init__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "BaseAnalyzer.analyze": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35], "excluded_lines": [], "start_line": 24}, "BaseAnalyzer.name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 39}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BaseAnalyzer": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [35, 41], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\code_smell_analyzer.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 14, 17, 22, 23, 25, 26, 27, 29, 40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 62, 65, 68, 72, 73, 75, 77, 81, 83, 84, 85, 87, 89, 91, 93, 94, 95, 97, 98, 112, 114, 116, 123, 124, 126, 128, 129, 131, 132, 133, 134, 136, 138, 139, 140, 142, 143, 154, 156, 158, 160, 163, 165, 166, 167, 170, 171, 172, 173, 174, 176, 177, 178, 179, 191, 192, 193, 195, 197, 199, 201, 203, 205, 206, 216, 218, 220, 222, 224, 225, 227, 228, 230, 231, 232, 233, 244, 246, 248, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 275, 276, 278, 279, 282, 283, 286, 290, 291, 292, 293, 294, 296, 297, 299, 300, 310, 312, 314, 316, 318, 320, 322, 323, 326, 328, 329, 331, 333, 336, 337, 339, 340, 341, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 374, 375, 376, 392, 393, 395], "summary": {"covered_lines": 181, "num_statements": 185, "percent_covered": 97.83783783783784, "percent_covered_display": "98", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 97.83783783783784, "percent_statements_covered_display": "98"}, "missing_lines": [287, 344, 345, 346], "excluded_lines": [], "functions": {"CodeSmellAnalyzer.__init__": {"executed_lines": [22, 23], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "CodeSmellAnalyzer.name": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 26}, "CodeSmellAnalyzer.analyze": {"executed_lines": [40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 62, 65, 68, 72, 73, 75, 77, 81, 83, 84, 85, 87], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 29}, "CodeSmellAnalyzer._check_too_many_parameters": {"executed_lines": [91, 93, 94, 95, 97, 98, 112, 114], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 89}, "CodeSmellAnalyzer._check_nested_depth": {"executed_lines": [123, 124, 126, 138, 139, 140, 142, 143, 154, 156], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 116}, "CodeSmellAnalyzer._check_nested_depth.get_nesting_depth": {"executed_lines": [128, 129, 131, 132, 133, 134, 136], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 126}, "CodeSmellAnalyzer._check_duplicate_code": {"executed_lines": [160, 163, 165, 166, 167, 170, 171, 172, 173, 174, 176, 177, 178, 179, 191, 192, 193, 195], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 158}, "CodeSmellAnalyzer._check_magic_numbers": {"executed_lines": [199, 201, 203, 205, 206, 216, 218], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 197}, "CodeSmellAnalyzer._check_missing_docstrings": {"executed_lines": [222, 224, 225, 227, 228, 230, 231, 232, 233, 244, 246], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 220}, "CodeSmellAnalyzer._check_unused_imports": {"executed_lines": [252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 275, 276, 278, 279, 282, 283, 286, 290, 291, 292, 293, 294, 296, 297, 299, 300, 310, 312], "summary": {"covered_lines": 34, "num_statements": 35, "percent_covered": 97.14285714285714, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.14285714285714, "percent_statements_covered_display": "97"}, "missing_lines": [287], "excluded_lines": [], "start_line": 248}, "CodeSmellAnalyzer._check_repeated_code_blocks": {"executed_lines": [316, 318, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 374, 375, 376, 392, 393, 395], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 314}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern": {"executed_lines": [320, 322, 323, 328, 336, 337, 339, 340, 341], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [344, 345, 346], "excluded_lines": [], "start_line": 318}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern.PatternVisitor.visit_Constant": {"executed_lines": [326], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 323}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern.PatternVisitor.visit_Name": {"executed_lines": [329, 331, 333], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 328}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 14, 17, 25, 26, 29, 89, 116, 158, 197, 220, 248, 314], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"CodeSmellAnalyzer": {"executed_lines": [22, 23, 27, 40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 62, 65, 68, 72, 73, 75, 77, 81, 83, 84, 85, 87, 91, 93, 94, 95, 97, 98, 112, 114, 123, 124, 126, 128, 129, 131, 132, 133, 134, 136, 138, 139, 140, 142, 143, 154, 156, 160, 163, 165, 166, 167, 170, 171, 172, 173, 174, 176, 177, 178, 179, 191, 192, 193, 195, 199, 201, 203, 205, 206, 216, 218, 222, 224, 225, 227, 228, 230, 231, 232, 233, 244, 246, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 275, 276, 278, 279, 282, 283, 286, 290, 291, 292, 293, 294, 296, 297, 299, 300, 310, 312, 316, 318, 320, 322, 323, 328, 336, 337, 339, 340, 341, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 374, 375, 376, 392, 393, 395], "summary": {"covered_lines": 157, "num_statements": 161, "percent_covered": 97.51552795031056, "percent_covered_display": "98", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 97.51552795031056, "percent_statements_covered_display": "98"}, "missing_lines": [287, 344, 345, 346], "excluded_lines": [], "start_line": 14}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern.PatternVisitor": {"executed_lines": [326, 329, 331, 333], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 322}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 14, 17, 25, 26, 29, 89, 116, 158, 197, 220, 248, 314], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\complexity_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 32, 34, 36, 38, 39, 40, 42, 58, 61, 62, 63, 80, 81, 82, 83, 84, 86, 87, 103, 106, 109, 114, 116, 123, 125, 127, 129, 130, 131, 132, 133, 134, 137, 141, 142, 147, 149, 150, 152, 154, 155, 157, 158, 159, 160, 162, 164, 165, 166, 168, 169, 186, 188, 190, 192, 193, 195, 197, 198, 199, 200, 202, 204, 205, 206, 208, 209, 224, 226], "summary": {"covered_lines": 81, "num_statements": 89, "percent_covered": 91.01123595505618, "percent_covered_display": "91", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 91.01123595505618, "percent_statements_covered_display": "91"}, "missing_lines": [64, 75, 76, 77, 111, 112, 135, 145], "excluded_lines": [], "functions": {"ComplexityAnalyzer.name": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "ComplexityAnalyzer.analyze": {"executed_lines": [32, 34, 36, 38, 39, 40, 42, 58, 61, 62, 63, 80, 81, 82, 83, 84, 86, 87, 103, 106, 109, 114, 116, 123, 125], "summary": {"covered_lines": 25, "num_statements": 31, "percent_covered": 80.64516129032258, "percent_covered_display": "81", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 80.64516129032258, "percent_statements_covered_display": "81"}, "missing_lines": [64, 75, 76, 77, 111, 112], "excluded_lines": [], "start_line": 21}, "ComplexityAnalyzer._get_complexity_level": {"executed_lines": [129, 130, 131, 132, 133, 134], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [135], "excluded_lines": [], "start_line": 127}, "ComplexityAnalyzer._get_function_length": {"executed_lines": [141, 142], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [145], "excluded_lines": [], "start_line": 137}, "ComplexityAnalyzer._check_nested_loops": {"executed_lines": [149, 150, 152, 164, 165, 166, 168, 169, 186, 188], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "ComplexityAnalyzer._check_nested_loops.get_loop_depth": {"executed_lines": [154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 152}, "ComplexityAnalyzer._check_call_chain_complexity": {"executed_lines": [192, 193, 195, 204, 205, 206, 208, 209, 224, 226], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 190}, "ComplexityAnalyzer._check_call_chain_complexity.get_chain_length": {"executed_lines": [197, 198, 199, 200, 202], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 195}, "": {"executed_lines": [3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 21, 127, 137, 147, 190], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ComplexityAnalyzer": {"executed_lines": [19, 32, 34, 36, 38, 39, 40, 42, 58, 61, 62, 63, 80, 81, 82, 83, 84, 86, 87, 103, 106, 109, 114, 116, 123, 125, 129, 130, 131, 132, 133, 134, 141, 142, 149, 150, 152, 154, 155, 157, 158, 159, 160, 162, 164, 165, 166, 168, 169, 186, 188, 192, 193, 195, 197, 198, 199, 200, 202, 204, 205, 206, 208, 209, 224, 226], "summary": {"covered_lines": 66, "num_statements": 74, "percent_covered": 89.1891891891892, "percent_covered_display": "89", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 89.1891891891892, "percent_statements_covered_display": "89"}, "missing_lines": [64, 75, 76, 77, 111, 112, 135, 145], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 21, 127, 137, 147, 190], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\dead_code_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 46, 48, 51, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 73, 75, 76, 89, 91, 93, 95, 98, 99, 101, 102, 104, 106, 107, 108, 109, 112, 113, 116, 117, 118, 134, 136, 138, 140, 142, 143, 145, 147, 148, 149, 159, 160, 162, 163, 166, 167, 169, 171, 175, 177, 178, 179, 188, 189, 191, 192, 194, 196, 198, 199, 201, 202, 205, 206, 208, 209, 211, 212, 213, 214, 216, 217, 228, 230, 232, 234, 236, 237, 239, 240, 241, 252, 254, 255, 264, 267, 268, 269, 270, 271, 272, 273, 282, 283, 284, 293, 295, 297, 299, 300, 301, 302, 303, 304, 305, 306, 307], "summary": {"covered_lines": 135, "num_statements": 135, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"DeadCodeAnalyzer.name": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "DeadCodeAnalyzer.analyze": {"executed_lines": [29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "DeadCodeAnalyzer._check_unused_functions": {"executed_lines": [48, 51, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 73, 75, 76, 89, 91], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "DeadCodeAnalyzer._check_unused_variables": {"executed_lines": [95, 98, 99, 101, 102, 104, 106, 107, 108, 109, 112, 113, 116, 117, 118, 134, 136], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 93}, "DeadCodeAnalyzer._check_unreachable_code": {"executed_lines": [140, 142, 143, 145, 147, 148, 149, 159, 160, 162, 163, 166, 167, 169], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 138}, "DeadCodeAnalyzer._check_loop_unreachable": {"executed_lines": [175, 177, 178, 179, 188, 189, 191, 192], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 171}, "DeadCodeAnalyzer._check_empty_functions": {"executed_lines": [196, 198, 199, 201, 202, 205, 206, 208, 209, 211, 212, 213, 214, 216, 217, 228, 230], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 194}, "DeadCodeAnalyzer._check_redundant_conditions": {"executed_lines": [234, 236, 237, 239, 240, 241, 252, 254, 255, 264, 267, 268, 269, 270, 271, 272, 273, 282, 283, 284, 293, 295], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 232}, "DeadCodeAnalyzer._is_exported": {"executed_lines": [299, 300, 301, 302, 303, 304, 305, 306, 307], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 297}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 93, 138, 171, 194, 232, 297], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DeadCodeAnalyzer": {"executed_lines": [16, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 48, 51, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 73, 75, 76, 89, 91, 95, 98, 99, 101, 102, 104, 106, 107, 108, 109, 112, 113, 116, 117, 118, 134, 136, 140, 142, 143, 145, 147, 148, 149, 159, 160, 162, 163, 166, 167, 169, 175, 177, 178, 179, 188, 189, 191, 192, 196, 198, 199, 201, 202, 205, 206, 208, 209, 211, 212, 213, 214, 216, 217, 228, 230, 234, 236, 237, 239, 240, 241, 252, 254, 255, 264, 267, 268, 269, 270, 271, 272, 273, 282, 283, 284, 293, 295, 299, 300, 301, 302, 303, 304, 305, 306, 307], "summary": {"covered_lines": 119, "num_statements": 119, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 93, 138, 171, 194, 232, 297], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\dependency_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 14, 17, 18, 19, 21, 22, 23, 25, 36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 50, 51, 53, 55, 59, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 87, 88, 90, 91, 92, 93, 95, 96, 106, 108, 110, 112, 114, 115, 116, 117, 118, 119, 130, 132, 134, 136, 139, 140, 141, 142, 143, 147, 163, 164, 166, 168, 170, 172, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 187, 188, 189, 191, 192, 194, 195, 210, 211, 213, 215, 217, 219, 221, 222, 223, 224, 235, 237, 239, 241, 243, 245, 246, 247, 248, 249, 250, 263, 265, 267, 269, 271, 273, 281, 282, 283, 284, 285, 295, 297, 298, 311, 313, 315, 316, 317, 321, 323, 326, 535, 537, 538, 539, 540], "summary": {"covered_lines": 143, "num_statements": 147, "percent_covered": 97.27891156462584, "percent_covered_display": "97", "missing_lines": 4, "excluded_lines": 2, "percent_statements_covered": 97.27891156462584, "percent_statements_covered_display": "97"}, "missing_lines": [299, 309, 318, 541], "excluded_lines": [10, 11], "functions": {"DependencyAnalyzer.__init__": {"executed_lines": [18, 19], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "DependencyAnalyzer.name": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "DependencyAnalyzer.analyze": {"executed_lines": [36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 50, 51, 53], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "DependencyAnalyzer._check_unused_imports": {"executed_lines": [59, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 87, 88, 90, 91, 92, 93, 95, 96, 106, 108], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 55}, "DependencyAnalyzer._check_wildcard_imports": {"executed_lines": [112, 114, 115, 116, 117, 118, 119, 130, 132], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 110}, "DependencyAnalyzer._check_circular_imports": {"executed_lines": [136, 139, 140, 141, 142, 143, 147, 163, 164, 166], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "DependencyAnalyzer._check_import_order": {"executed_lines": [170, 172, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 187, 188, 189, 191, 192, 194, 195, 210, 211, 213, 215], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 168}, "DependencyAnalyzer._check_relative_imports": {"executed_lines": [219, 221, 222, 223, 224, 235, 237], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 217}, "DependencyAnalyzer._check_duplicate_imports": {"executed_lines": [241, 243, 245, 246, 247, 248, 249, 250, 263, 265, 267], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 239}, "DependencyAnalyzer._check_deprecated_modules": {"executed_lines": [271, 273, 281, 282, 283, 284, 285, 295, 297, 298, 311], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [299, 309], "excluded_lines": [], "start_line": 269}, "DependencyAnalyzer._classify_import": {"executed_lines": [315, 316, 317, 321], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [318], "excluded_lines": [], "start_line": 313}, "DependencyAnalyzer._get_stdlib_modules": {"executed_lines": [326], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 323}, "DependencyAnalyzer._get_root_name": {"executed_lines": [537, 538, 539, 540], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [541], "excluded_lines": [], "start_line": 535}, "": {"executed_lines": [3, 4, 5, 7, 8, 14, 17, 21, 22, 25, 55, 110, 134, 168, 217, 239, 269, 313, 323, 535], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [10, 11], "start_line": 1}}, "classes": {"DependencyAnalyzer": {"executed_lines": [18, 19, 23, 36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 50, 51, 53, 59, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 87, 88, 90, 91, 92, 93, 95, 96, 106, 108, 112, 114, 115, 116, 117, 118, 119, 130, 132, 136, 139, 140, 141, 142, 143, 147, 163, 164, 166, 170, 172, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 187, 188, 189, 191, 192, 194, 195, 210, 211, 213, 215, 219, 221, 222, 223, 224, 235, 237, 241, 243, 245, 246, 247, 248, 249, 250, 263, 265, 267, 271, 273, 281, 282, 283, 284, 285, 295, 297, 298, 311, 315, 316, 317, 321, 326, 537, 538, 539, 540], "summary": {"covered_lines": 123, "num_statements": 127, "percent_covered": 96.85039370078741, "percent_covered_display": "97", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 96.85039370078741, "percent_statements_covered_display": "97"}, "missing_lines": [299, 309, 318, 541], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 7, 8, 14, 17, 21, 22, 25, 55, 110, 134, 168, 217, 239, 269, 313, 323, 535], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [10, 11], "start_line": 1}}}, "refactron\\analyzers\\performance_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 46, 48, 50, 51, 53, 54, 55, 58, 72, 73, 90, 91, 93, 95, 99, 101, 103, 104, 107, 108, 109, 110, 111, 112, 125, 128, 130, 131, 132, 133, 135, 136, 137, 138, 140, 142, 158, 160, 162, 164, 165, 167, 169, 170, 171, 172, 173, 174, 175, 178, 179, 180, 196, 198, 200, 204, 206, 207, 209, 210, 211, 213, 214, 232, 233, 235, 237, 239, 241, 242, 243, 246, 247, 250, 251, 263, 265, 267, 269, 270, 271, 272], "summary": {"covered_lines": 103, "num_statements": 107, "percent_covered": 96.26168224299066, "percent_covered_display": "96", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 96.26168224299066, "percent_statements_covered_display": "96"}, "missing_lines": [134, 143, 156, 273], "excluded_lines": [], "functions": {"PerformanceAnalyzer.name": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "PerformanceAnalyzer.analyze": {"executed_lines": [29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "PerformanceAnalyzer._check_n_plus_one_queries": {"executed_lines": [48, 50, 51, 53, 54, 55, 58, 72, 73, 90, 91, 93], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "PerformanceAnalyzer._check_inefficient_list_comprehensions": {"executed_lines": [99, 101, 103, 104, 107, 108, 109, 110, 111, 112, 125, 128, 130, 131, 132, 133, 135, 136, 137, 138, 140, 142, 158], "summary": {"covered_lines": 23, "num_statements": 26, "percent_covered": 88.46153846153847, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 88.46153846153847, "percent_statements_covered_display": "88"}, "missing_lines": [134, 143, 156], "excluded_lines": [], "start_line": 95}, "PerformanceAnalyzer._check_unnecessary_iterations": {"executed_lines": [162, 164, 165, 167, 169, 170, 171, 172, 173, 174, 175, 178, 179, 180, 196, 198], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 160}, "PerformanceAnalyzer._check_inefficient_string_concatenation": {"executed_lines": [204, 206, 207, 209, 210, 211, 213, 214, 232, 233, 235], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 200}, "PerformanceAnalyzer._check_redundant_list_calls": {"executed_lines": [239, 241, 242, 243, 246, 247, 250, 251, 263, 265], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 237}, "PerformanceAnalyzer._get_function_name": {"executed_lines": [269, 270, 271, 272], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [273], "excluded_lines": [], "start_line": 267}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 95, 160, 200, 237, 267], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PerformanceAnalyzer": {"executed_lines": [16, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 48, 50, 51, 53, 54, 55, 58, 72, 73, 90, 91, 93, 99, 101, 103, 104, 107, 108, 109, 110, 111, 112, 125, 128, 130, 131, 132, 133, 135, 136, 137, 138, 140, 142, 158, 162, 164, 165, 167, 169, 170, 171, 172, 173, 174, 175, 178, 179, 180, 196, 198, 204, 206, 207, 209, 210, 211, 213, 214, 232, 233, 235, 239, 241, 242, 243, 246, 247, 250, 251, 263, 265, 269, 270, 271, 272], "summary": {"covered_lines": 88, "num_statements": 92, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 95.65217391304348, "percent_statements_covered_display": "96"}, "missing_lines": [134, 143, 156, 273], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 95, 160, 200, 237, 267], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\security_analyzer.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 12, 16, 17, 18, 21, 32, 39, 45, 57, 58, 59, 61, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 78, 89, 92, 93, 96, 98, 99, 102, 103, 105, 106, 108, 110, 122, 123, 125, 127, 128, 131, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 149, 163, 164, 165, 166, 168, 169, 171, 173, 175, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 190, 192, 194, 195, 196, 198, 200, 202, 213, 215, 217, 219, 221, 222, 223, 225, 226, 227, 228, 230, 231, 233, 235, 246, 248, 250, 252, 254, 268, 284, 285, 286, 287, 288, 291, 292, 295, 297, 300, 302, 304, 305, 306, 310, 312, 328, 330, 332, 334, 336, 337, 338, 341, 342, 343, 346, 347, 360, 362, 365, 378, 380, 382, 384, 387, 389, 397, 398, 399, 402, 420, 421, 422, 423, 424, 425, 426, 428, 429, 439, 441, 443, 445, 447, 448, 449, 450, 451, 452, 463, 465, 467, 469, 471, 472, 473, 475, 476, 488, 490, 492, 494, 496, 497, 500, 511, 513, 515, 517, 518, 519, 520, 523, 525, 527, 528, 529, 530, 531, 533, 534, 535, 537, 539, 542, 544, 545, 546, 547, 549, 551, 554, 555, 556, 557, 560, 561, 564, 565, 566, 569, 571, 572, 575, 595, 615, 616, 632, 634, 636, 638, 640, 641, 642, 645, 646, 648, 649, 652, 665, 666, 683, 685, 687, 689, 691, 692, 694, 695, 696, 698, 699, 712, 714, 716, 718, 720, 721, 723, 724, 725, 728, 729, 741, 744, 745, 749, 750, 751, 752, 764, 766], "summary": {"covered_lines": 275, "num_statements": 285, "percent_covered": 96.49122807017544, "percent_covered_display": "96", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 96.49122807017544, "percent_statements_covered_display": "96"}, "missing_lines": [182, 406, 416, 417, 521, 576, 592, 596, 597, 612], "excluded_lines": [], "functions": {"SecurityAnalyzer.name": {"executed_lines": [59], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 58}, "SecurityAnalyzer._is_ignored_file": {"executed_lines": [63, 64, 65, 66, 67], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "SecurityAnalyzer._is_rule_whitelisted": {"executed_lines": [71, 72, 73, 74, 75, 76], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 69}, "SecurityAnalyzer._get_context_confidence": {"executed_lines": [89, 92, 93, 96, 98, 99, 102, 103, 105, 106, 108], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 78}, "SecurityAnalyzer.analyze": {"executed_lines": [122, 123, 125, 127, 128, 131, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 149, 163, 164, 165, 166, 168, 169, 171, 173], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 110}, "SecurityAnalyzer._build_alias_map": {"executed_lines": [177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [182], "excluded_lines": [], "start_line": 175}, "SecurityAnalyzer._check_dangerous_functions": {"executed_lines": [192, 194, 195, 196, 198, 200, 202, 213, 215], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 190}, "SecurityAnalyzer._check_dangerous_imports": {"executed_lines": [219, 221, 222, 223, 225, 226, 227, 228, 230, 231, 233, 235, 246, 248], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 217}, "SecurityAnalyzer._check_hardcoded_secrets": {"executed_lines": [252, 254, 268, 284, 285, 286, 287, 288, 291, 292, 295, 297, 300, 302, 304, 305, 306, 310, 312, 328, 330], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 250}, "SecurityAnalyzer._check_sql_injection": {"executed_lines": [334, 336, 337, 338, 341, 342, 343, 346, 347, 360, 362, 365, 378, 380], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 332}, "SecurityAnalyzer._check_command_injection": {"executed_lines": [384, 387, 389, 397, 398, 399, 402, 420, 421, 422, 423, 424, 425, 426, 428, 429, 439, 441], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [406, 416, 417], "excluded_lines": [], "start_line": 382}, "SecurityAnalyzer._check_weak_crypto": {"executed_lines": [445, 447, 448, 449, 450, 451, 452, 463, 465], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 443}, "SecurityAnalyzer._check_unsafe_yaml": {"executed_lines": [469, 471, 472, 473, 475, 476, 488, 490], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 467}, "SecurityAnalyzer._check_assert_statements": {"executed_lines": [494, 496, 497, 500, 511, 513], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 492}, "SecurityAnalyzer._get_function_name": {"executed_lines": [517, 518, 519, 520], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [521], "excluded_lines": [], "start_line": 515}, "SecurityAnalyzer._get_full_function_name": {"executed_lines": [525, 527, 528, 529, 530, 531, 533, 534, 535], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 523}, "SecurityAnalyzer._check_sql_parameterization": {"executed_lines": [539, 542, 544, 545, 546, 547, 549, 551, 554, 555, 556, 557, 560, 561, 564, 565, 566, 569, 571, 572, 575, 595, 615, 616, 632, 634], "summary": {"covered_lines": 26, "num_statements": 31, "percent_covered": 83.87096774193549, "percent_covered_display": "84", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 83.87096774193549, "percent_statements_covered_display": "84"}, "missing_lines": [576, 592, 596, 597, 612], "excluded_lines": [], "start_line": 537}, "SecurityAnalyzer._check_ssrf_vulnerabilities": {"executed_lines": [638, 640, 641, 642, 645, 646, 648, 649, 652, 665, 666, 683, 685], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 636}, "SecurityAnalyzer._check_insecure_random": {"executed_lines": [689, 691, 692, 694, 695, 696, 698, 699, 712, 714], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 687}, "SecurityAnalyzer._check_weak_ssl_tls": {"executed_lines": [718, 720, 721, 723, 724, 725, 728, 729, 741, 744, 745, 749, 750, 751, 752, 764, 766], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 716}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 12, 16, 17, 18, 21, 32, 39, 45, 57, 58, 61, 69, 78, 110, 175, 190, 217, 250, 332, 382, 443, 467, 492, 515, 523, 537, 636, 687, 716], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SecurityAnalyzer": {"executed_lines": [59, 63, 64, 65, 66, 67, 71, 72, 73, 74, 75, 76, 89, 92, 93, 96, 98, 99, 102, 103, 105, 106, 108, 122, 123, 125, 127, 128, 131, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 149, 163, 164, 165, 166, 168, 169, 171, 173, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 192, 194, 195, 196, 198, 200, 202, 213, 215, 219, 221, 222, 223, 225, 226, 227, 228, 230, 231, 233, 235, 246, 248, 252, 254, 268, 284, 285, 286, 287, 288, 291, 292, 295, 297, 300, 302, 304, 305, 306, 310, 312, 328, 330, 334, 336, 337, 338, 341, 342, 343, 346, 347, 360, 362, 365, 378, 380, 384, 387, 389, 397, 398, 399, 402, 420, 421, 422, 423, 424, 425, 426, 428, 429, 439, 441, 445, 447, 448, 449, 450, 451, 452, 463, 465, 469, 471, 472, 473, 475, 476, 488, 490, 494, 496, 497, 500, 511, 513, 517, 518, 519, 520, 525, 527, 528, 529, 530, 531, 533, 534, 535, 539, 542, 544, 545, 546, 547, 549, 551, 554, 555, 556, 557, 560, 561, 564, 565, 566, 569, 571, 572, 575, 595, 615, 616, 632, 634, 638, 640, 641, 642, 645, 646, 648, 649, 652, 665, 666, 683, 685, 689, 691, 692, 694, 695, 696, 698, 699, 712, 714, 718, 720, 721, 723, 724, 725, 728, 729, 741, 744, 745, 749, 750, 751, 752, 764, 766], "summary": {"covered_lines": 240, "num_statements": 250, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 96.0, "percent_statements_covered_display": "96"}, "missing_lines": [182, 406, 416, 417, 521, 576, 592, 596, 597, 612], "excluded_lines": [], "start_line": 12}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 12, 16, 17, 18, 21, 32, 39, 45, 57, 58, 61, 69, 78, 110, 175, 190, 217, 250, 332, 382, 443, 467, 492, 515, 523, 537, 636, 687, 716], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\type_hint_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 46, 48, 50, 51, 53, 54, 57, 62, 64, 65, 66, 67, 68, 70, 71, 83, 85, 87, 89, 91, 92, 94, 95, 98, 100, 101, 103, 104, 117, 119, 121, 123, 125, 126, 128, 129, 132, 134, 135, 137, 138, 153, 155, 157, 159, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 175, 176, 178, 179, 192, 195, 196, 197, 209, 211, 213, 215, 217, 224, 225, 227, 228, 229, 230, 240, 243, 244, 245, 248, 268, 270, 272, 273, 275, 276, 279, 281, 283, 285, 286, 287, 289, 293], "summary": {"covered_lines": 114, "num_statements": 119, "percent_covered": 95.7983193277311, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 95.7983193277311, "percent_statements_covered_display": "96"}, "missing_lines": [131, 249, 266, 277, 291], "excluded_lines": [], "functions": {"TypeHintAnalyzer.name": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "TypeHintAnalyzer.analyze": {"executed_lines": [29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "TypeHintAnalyzer._check_missing_return_type": {"executed_lines": [48, 50, 51, 53, 54, 57, 62, 64, 65, 66, 67, 68, 70, 71, 83, 85], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "TypeHintAnalyzer._check_missing_parameter_types": {"executed_lines": [89, 91, 92, 94, 95, 98, 100, 101, 103, 104, 117, 119], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 87}, "TypeHintAnalyzer._check_missing_attribute_types": {"executed_lines": [123, 125, 126, 128, 129, 132, 134, 135, 137, 138, 153, 155], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [131], "excluded_lines": [], "start_line": 121}, "TypeHintAnalyzer._check_any_usage": {"executed_lines": [159, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 175, 176, 178, 179, 192, 195, 196, 197, 209, 211], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 157}, "TypeHintAnalyzer._check_incomplete_types": {"executed_lines": [215, 217, 224, 225, 227, 228, 229, 230, 240, 243, 244, 245, 248, 268], "summary": {"covered_lines": 14, "num_statements": 16, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [249, 266], "excluded_lines": [], "start_line": 213}, "TypeHintAnalyzer._contains_any": {"executed_lines": [272, 273, 275, 276, 279], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [277], "excluded_lines": [], "start_line": 270}, "TypeHintAnalyzer._find_incomplete_generics": {"executed_lines": [283, 285, 286, 287, 289, 293], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [291], "excluded_lines": [], "start_line": 281}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 87, 121, 157, 213, 270, 281], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"TypeHintAnalyzer": {"executed_lines": [16, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 48, 50, 51, 53, 54, 57, 62, 64, 65, 66, 67, 68, 70, 71, 83, 85, 89, 91, 92, 94, 95, 98, 100, 101, 103, 104, 117, 119, 123, 125, 126, 128, 129, 132, 134, 135, 137, 138, 153, 155, 159, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 175, 176, 178, 179, 192, 195, 196, 197, 209, 211, 215, 217, 224, 225, 227, 228, 229, 230, 240, 243, 244, 245, 248, 268, 272, 273, 275, 276, 279, 283, 285, 286, 287, 289, 293], "summary": {"covered_lines": 98, "num_statements": 103, "percent_covered": 95.14563106796116, "percent_covered_display": "95", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 95.14563106796116, "percent_statements_covered_display": "95"}, "missing_lines": [131, 249, 266, 277, 291], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 87, 121, 157, 213, 270, 281], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\__init__.py": {"executed_lines": [8, 9, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [8, 9, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [8, 9, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\engine.py": {"executed_lines": [8, 10, 11, 14, 22, 29, 30, 32, 34, 51, 52, 68, 69, 71, 73, 83, 85, 97, 98, 102, 105, 106, 115, 116, 119, 131, 133, 134, 135, 139, 142, 145, 153, 154, 156, 169], "summary": {"covered_lines": 36, "num_statements": 38, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 2, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [117, 137], "excluded_lines": [167, 180], "functions": {"AutoFixEngine.__init__": {"executed_lines": [29, 30], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "AutoFixEngine._register_fixers": {"executed_lines": [34, 51, 52, 68, 69, 71], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "AutoFixEngine.can_fix": {"executed_lines": [83], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 73}, "AutoFixEngine.fix": {"executed_lines": [97, 98, 102, 105, 106, 115, 116], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [117], "excluded_lines": [], "start_line": 85}, "AutoFixEngine.fix_all": {"executed_lines": [131, 133, 134, 135, 139], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [137], "excluded_lines": [], "start_line": 119}, "BaseFixer.__init__": {"executed_lines": [153, 154], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "BaseFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [167], "start_line": 156}, "BaseFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [180], "start_line": 169}, "": {"executed_lines": [8, 10, 11, 14, 22, 32, 73, 85, 119, 142, 145, 156, 169], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"AutoFixEngine": {"executed_lines": [29, 30, 34, 51, 52, 68, 69, 71, 83, 97, 98, 102, 105, 106, 115, 116, 131, 133, 134, 135, 139], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [117, 137], "excluded_lines": [], "start_line": 14}, "BaseFixer": {"executed_lines": [153, 154], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [167, 180], "start_line": 142}, "": {"executed_lines": [8, 10, 11, 14, 22, 32, 73, 85, 119, 142, 145, 156, 169], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\file_ops.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 13, 16, 23, 24, 25, 27, 29, 36, 38, 40, 41, 42, 44, 54, 55, 58, 61, 62, 63, 66, 69, 77, 79, 81, 93, 94, 95, 98, 100, 105, 106, 109, 111, 124, 135, 137, 138, 141, 142, 144, 148, 149, 151, 158, 159, 162, 163, 164, 167, 168, 169, 170, 171, 173, 175, 182, 183, 185, 192, 195, 196, 197, 198, 201, 202, 204], "summary": {"covered_lines": 72, "num_statements": 84, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [30, 31, 32, 33, 34, 35, 118, 120, 121, 122, 145, 165], "excluded_lines": [], "functions": {"FileOperations.__init__": {"executed_lines": [23, 24, 25], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "FileOperations._load_backup_index": {"executed_lines": [29, 36], "summary": {"covered_lines": 2, "num_statements": 8, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 25.0, "percent_statements_covered_display": "25"}, "missing_lines": [30, 31, 32, 33, 34, 35], "excluded_lines": [], "start_line": 27}, "FileOperations._save_backup_index": {"executed_lines": [40, 41, 42], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 38}, "FileOperations.backup_file": {"executed_lines": [54, 55, 58, 61, 62, 63, 66, 69, 77, 79], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 44}, "FileOperations.write_with_backup": {"executed_lines": [93, 94, 95, 98, 100, 105, 106, 109, 111], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 69.23076923076923, "percent_statements_covered_display": "69"}, "missing_lines": [118, 120, 121, 122], "excluded_lines": [], "start_line": 81}, "FileOperations.rollback_file": {"executed_lines": [135, 137, 138, 141, 142, 144, 148, 149], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [145], "excluded_lines": [], "start_line": 124}, "FileOperations.rollback_all": {"executed_lines": [158, 159, 162, 163, 164, 167, 168, 169, 170, 171, 173], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [165], "excluded_lines": [], "start_line": 151}, "FileOperations.list_backups": {"executed_lines": [182, 183], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 175}, "FileOperations.clear_backups": {"executed_lines": [192, 195, 196, 197, 198, 201, 202, 204], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 185}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 13, 16, 27, 38, 44, 81, 124, 151, 175, 185], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FileOperations": {"executed_lines": [23, 24, 25, 29, 36, 40, 41, 42, 54, 55, 58, 61, 62, 63, 66, 69, 77, 79, 93, 94, 95, 98, 100, 105, 106, 109, 111, 135, 137, 138, 141, 142, 144, 148, 149, 158, 159, 162, 163, 164, 167, 168, 169, 170, 171, 173, 182, 183, 192, 195, 196, 197, 198, 201, 202, 204], "summary": {"covered_lines": 56, "num_statements": 68, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 82.3529411764706, "percent_statements_covered_display": "82"}, "missing_lines": [30, 31, 32, 33, 34, 35, 118, 120, 121, 122, 145, 165], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 13, 16, 27, 38, 44, 81, 124, 151, 175, 185], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\fixers.py": {"executed_lines": [8, 9, 11, 12, 13, 16, 19, 20, 22, 24, 26, 27, 35, 44, 48, 50, 51, 56, 57, 58, 59, 60, 68, 69, 70, 72, 82, 85, 86, 87, 88, 91, 92, 94, 96, 98, 100, 102, 103, 105, 106, 107, 109, 110, 112, 114, 116, 117, 119, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 134, 137, 140, 141, 143, 146, 153, 154, 157, 160, 161, 163, 172, 176, 179, 184, 186, 188, 190, 193, 196, 197, 199, 201, 203, 210, 211, 213, 218, 227, 231, 233, 235, 239, 240, 243, 246, 248, 250, 252, 255, 258, 259, 261, 264, 266, 272, 273, 274, 276, 285, 289, 291, 294, 297, 298, 300, 304, 308, 313, 316, 317, 319, 350, 354, 359, 362, 363, 365, 391, 395, 400, 403, 404, 405, 407, 439, 443, 448, 451, 452, 454, 491, 495, 500, 503, 504, 506, 540, 544, 549, 552, 553, 555, 593, 597, 602, 605, 606, 607, 609, 645, 649, 654, 657, 658, 660, 682, 686, 691, 694, 695, 696, 698, 727, 731], "summary": {"covered_lines": 175, "num_statements": 309, "percent_covered": 56.63430420711974, "percent_covered_display": "57", "missing_lines": 134, "excluded_lines": 0, "percent_statements_covered": 56.63430420711974, "percent_statements_covered_display": "57"}, "missing_lines": [46, 52, 53, 71, 147, 174, 180, 181, 185, 204, 205, 214, 229, 236, 267, 287, 310, 321, 322, 324, 326, 327, 335, 343, 344, 352, 356, 367, 368, 369, 371, 372, 380, 382, 393, 397, 410, 412, 414, 415, 418, 419, 421, 422, 430, 441, 445, 457, 459, 460, 463, 464, 465, 468, 469, 470, 473, 474, 475, 477, 478, 482, 493, 497, 508, 510, 511, 515, 516, 517, 518, 521, 522, 523, 524, 526, 527, 531, 542, 546, 558, 559, 565, 566, 569, 570, 571, 572, 573, 574, 575, 577, 579, 580, 584, 595, 599, 611, 612, 613, 615, 617, 618, 619, 620, 621, 623, 625, 627, 628, 636, 647, 651, 662, 665, 666, 668, 669, 673, 684, 688, 700, 702, 704, 705, 708, 709, 710, 711, 713, 714, 718, 729, 733], "excluded_lines": [], "functions": {"RemoveUnusedImportsFixer.__init__": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "RemoveUnusedImportsFixer.preview": {"executed_lines": [24, 26, 27, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "RemoveUnusedImportsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [46], "excluded_lines": [], "start_line": 44}, "RemoveUnusedImportsFixer._remove_unused_imports": {"executed_lines": [50, 51, 56, 57, 58, 59, 60, 68, 69, 70, 72, 82, 85, 86, 87, 88, 91, 92, 94], "summary": {"covered_lines": 19, "num_statements": 22, "percent_covered": 86.36363636363636, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 86.36363636363636, "percent_statements_covered_display": "86"}, "missing_lines": [52, 53, 71], "excluded_lines": [], "start_line": 48}, "RemoveUnusedImportsFixer._find_used_names": {"executed_lines": [98, 100, 102, 103, 105, 106, 107, 109, 110, 112], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 96}, "RemoveUnusedImportsFixer._create_diff": {"executed_lines": [116, 117, 119, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 134], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 114}, "ExtractMagicNumbersFixer.__init__": {"executed_lines": [141], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 140}, "ExtractMagicNumbersFixer.preview": {"executed_lines": [146, 153, 154, 157, 160, 161, 163], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [147], "excluded_lines": [], "start_line": 143}, "ExtractMagicNumbersFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [174], "excluded_lines": [], "start_line": 172}, "ExtractMagicNumbersFixer._generate_constant_name": {"executed_lines": [179, 184, 186], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [180, 181, 185], "excluded_lines": [], "start_line": 176}, "ExtractMagicNumbersFixer._create_diff": {"executed_lines": [190], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 188}, "AddDocstringsFixer.__init__": {"executed_lines": [197], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 196}, "AddDocstringsFixer.preview": {"executed_lines": [201, 203, 210, 211, 213, 218], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [204, 205, 214], "excluded_lines": [], "start_line": 199}, "AddDocstringsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [229], "excluded_lines": [], "start_line": 227}, "AddDocstringsFixer._add_docstring": {"executed_lines": [233, 235, 239, 240, 243, 246, 248], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [236], "excluded_lines": [], "start_line": 231}, "AddDocstringsFixer._create_diff": {"executed_lines": [252], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 250}, "RemoveDeadCodeFixer.__init__": {"executed_lines": [259], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 258}, "RemoveDeadCodeFixer.preview": {"executed_lines": [264, 266, 272, 273, 274, 276], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [267], "excluded_lines": [], "start_line": 261}, "RemoveDeadCodeFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [287], "excluded_lines": [], "start_line": 285}, "RemoveDeadCodeFixer._create_diff": {"executed_lines": [291], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 289}, "FixTypeHintsFixer.__init__": {"executed_lines": [298], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 297}, "FixTypeHintsFixer.preview": {"executed_lines": [304], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 300}, "FixTypeHintsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [310], "excluded_lines": [], "start_line": 308}, "SortImportsFixer.__init__": {"executed_lines": [317], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 316}, "SortImportsFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [321, 322, 324, 326, 327, 335, 343, 344], "excluded_lines": [], "start_line": 319}, "SortImportsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [352], "excluded_lines": [], "start_line": 350}, "SortImportsFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [356], "excluded_lines": [], "start_line": 354}, "RemoveTrailingWhitespaceFixer.__init__": {"executed_lines": [363], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 362}, "RemoveTrailingWhitespaceFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [367, 368, 369, 371, 372, 380, 382], "excluded_lines": [], "start_line": 365}, "RemoveTrailingWhitespaceFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [393], "excluded_lines": [], "start_line": 391}, "RemoveTrailingWhitespaceFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [397], "excluded_lines": [], "start_line": 395}, "NormalizeQuotesFixer.__init__": {"executed_lines": [404, 405], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 403}, "NormalizeQuotesFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [410, 412, 414, 415, 418, 419, 421, 422, 430], "excluded_lines": [], "start_line": 407}, "NormalizeQuotesFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [441], "excluded_lines": [], "start_line": 439}, "NormalizeQuotesFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [445], "excluded_lines": [], "start_line": 443}, "SimplifyBooleanFixer.__init__": {"executed_lines": [452], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 451}, "SimplifyBooleanFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [457, 459, 460, 463, 464, 465, 468, 469, 470, 473, 474, 475, 477, 478, 482], "excluded_lines": [], "start_line": 454}, "SimplifyBooleanFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [493], "excluded_lines": [], "start_line": 491}, "SimplifyBooleanFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [497], "excluded_lines": [], "start_line": 495}, "ConvertToFStringFixer.__init__": {"executed_lines": [504], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 503}, "ConvertToFStringFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [508, 510, 511, 515, 516, 517, 518, 521, 522, 523, 524, 526, 527, 531], "excluded_lines": [], "start_line": 506}, "ConvertToFStringFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [542], "excluded_lines": [], "start_line": 540}, "ConvertToFStringFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [546], "excluded_lines": [], "start_line": 544}, "RemoveUnusedVariablesFixer.__init__": {"executed_lines": [553], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 552}, "RemoveUnusedVariablesFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [558, 559, 565, 566, 569, 570, 571, 572, 573, 574, 575, 577, 579, 580, 584], "excluded_lines": [], "start_line": 555}, "RemoveUnusedVariablesFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [595], "excluded_lines": [], "start_line": 593}, "RemoveUnusedVariablesFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [599], "excluded_lines": [], "start_line": 597}, "FixIndentationFixer.__init__": {"executed_lines": [606, 607], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 605}, "FixIndentationFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [611, 612, 613, 615, 617, 618, 619, 620, 621, 623, 625, 627, 628, 636], "excluded_lines": [], "start_line": 609}, "FixIndentationFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [647], "excluded_lines": [], "start_line": 645}, "FixIndentationFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [651], "excluded_lines": [], "start_line": 649}, "AddMissingCommasFixer.__init__": {"executed_lines": [658], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 657}, "AddMissingCommasFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [662, 665, 666, 668, 669, 673], "excluded_lines": [], "start_line": 660}, "AddMissingCommasFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [684], "excluded_lines": [], "start_line": 682}, "AddMissingCommasFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [688], "excluded_lines": [], "start_line": 686}, "RemovePrintStatementsFixer.__init__": {"executed_lines": [695, 696], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 694}, "RemovePrintStatementsFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [700, 702, 704, 705, 708, 709, 710, 711, 713, 714, 718], "excluded_lines": [], "start_line": 698}, "RemovePrintStatementsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [729], "excluded_lines": [], "start_line": 727}, "RemovePrintStatementsFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [733], "excluded_lines": [], "start_line": 731}, "": {"executed_lines": [8, 9, 11, 12, 13, 16, 19, 22, 44, 48, 96, 114, 137, 140, 143, 172, 176, 188, 193, 196, 199, 227, 231, 250, 255, 258, 261, 285, 289, 294, 297, 300, 308, 313, 316, 319, 350, 354, 359, 362, 365, 391, 395, 400, 403, 407, 439, 443, 448, 451, 454, 491, 495, 500, 503, 506, 540, 544, 549, 552, 555, 593, 597, 602, 605, 609, 645, 649, 654, 657, 660, 682, 686, 691, 694, 698, 727, 731], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RemoveUnusedImportsFixer": {"executed_lines": [20, 24, 26, 27, 35, 50, 51, 56, 57, 58, 59, 60, 68, 69, 70, 72, 82, 85, 86, 87, 88, 91, 92, 94, 98, 100, 102, 103, 105, 106, 107, 109, 110, 112, 116, 117, 119, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 134], "summary": {"covered_lines": 48, "num_statements": 52, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [46, 52, 53, 71], "excluded_lines": [], "start_line": 16}, "ExtractMagicNumbersFixer": {"executed_lines": [141, 146, 153, 154, 157, 160, 161, 163, 179, 184, 186, 190], "summary": {"covered_lines": 12, "num_statements": 17, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 70.58823529411765, "percent_statements_covered_display": "71"}, "missing_lines": [147, 174, 180, 181, 185], "excluded_lines": [], "start_line": 137}, "AddDocstringsFixer": {"executed_lines": [197, 201, 203, 210, 211, 213, 218, 233, 235, 239, 240, 243, 246, 248, 252], "summary": {"covered_lines": 15, "num_statements": 20, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [204, 205, 214, 229, 236], "excluded_lines": [], "start_line": 193}, "RemoveDeadCodeFixer": {"executed_lines": [259, 264, 266, 272, 273, 274, 276, 291], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [267, 287], "excluded_lines": [], "start_line": 255}, "FixTypeHintsFixer": {"executed_lines": [298, 304], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [310], "excluded_lines": [], "start_line": 294}, "SortImportsFixer": {"executed_lines": [317], "summary": {"covered_lines": 1, "num_statements": 11, "percent_covered": 9.090909090909092, "percent_covered_display": "9", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 9.090909090909092, "percent_statements_covered_display": "9"}, "missing_lines": [321, 322, 324, 326, 327, 335, 343, 344, 352, 356], "excluded_lines": [], "start_line": 313}, "RemoveTrailingWhitespaceFixer": {"executed_lines": [363], "summary": {"covered_lines": 1, "num_statements": 10, "percent_covered": 10.0, "percent_covered_display": "10", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 10.0, "percent_statements_covered_display": "10"}, "missing_lines": [367, 368, 369, 371, 372, 380, 382, 393, 397], "excluded_lines": [], "start_line": 359}, "NormalizeQuotesFixer": {"executed_lines": [404, 405], "summary": {"covered_lines": 2, "num_statements": 13, "percent_covered": 15.384615384615385, "percent_covered_display": "15", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 15.384615384615385, "percent_statements_covered_display": "15"}, "missing_lines": [410, 412, 414, 415, 418, 419, 421, 422, 430, 441, 445], "excluded_lines": [], "start_line": 400}, "SimplifyBooleanFixer": {"executed_lines": [452], "summary": {"covered_lines": 1, "num_statements": 18, "percent_covered": 5.555555555555555, "percent_covered_display": "6", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 5.555555555555555, "percent_statements_covered_display": "6"}, "missing_lines": [457, 459, 460, 463, 464, 465, 468, 469, 470, 473, 474, 475, 477, 478, 482, 493, 497], "excluded_lines": [], "start_line": 448}, "ConvertToFStringFixer": {"executed_lines": [504], "summary": {"covered_lines": 1, "num_statements": 17, "percent_covered": 5.882352941176471, "percent_covered_display": "6", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 5.882352941176471, "percent_statements_covered_display": "6"}, "missing_lines": [508, 510, 511, 515, 516, 517, 518, 521, 522, 523, 524, 526, 527, 531, 542, 546], "excluded_lines": [], "start_line": 500}, "RemoveUnusedVariablesFixer": {"executed_lines": [553], "summary": {"covered_lines": 1, "num_statements": 18, "percent_covered": 5.555555555555555, "percent_covered_display": "6", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 5.555555555555555, "percent_statements_covered_display": "6"}, "missing_lines": [558, 559, 565, 566, 569, 570, 571, 572, 573, 574, 575, 577, 579, 580, 584, 595, 599], "excluded_lines": [], "start_line": 549}, "FixIndentationFixer": {"executed_lines": [606, 607], "summary": {"covered_lines": 2, "num_statements": 18, "percent_covered": 11.11111111111111, "percent_covered_display": "11", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 11.11111111111111, "percent_statements_covered_display": "11"}, "missing_lines": [611, 612, 613, 615, 617, 618, 619, 620, 621, 623, 625, 627, 628, 636, 647, 651], "excluded_lines": [], "start_line": 602}, "AddMissingCommasFixer": {"executed_lines": [658], "summary": {"covered_lines": 1, "num_statements": 9, "percent_covered": 11.11111111111111, "percent_covered_display": "11", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 11.11111111111111, "percent_statements_covered_display": "11"}, "missing_lines": [662, 665, 666, 668, 669, 673, 684, 688], "excluded_lines": [], "start_line": 654}, "RemovePrintStatementsFixer": {"executed_lines": [695, 696], "summary": {"covered_lines": 2, "num_statements": 15, "percent_covered": 13.333333333333334, "percent_covered_display": "13", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 13.333333333333334, "percent_statements_covered_display": "13"}, "missing_lines": [700, 702, 704, 705, 708, 709, 710, 711, 713, 714, 718, 729, 733], "excluded_lines": [], "start_line": 691}, "": {"executed_lines": [8, 9, 11, 12, 13, 16, 19, 22, 44, 48, 96, 114, 137, 140, 143, 172, 176, 188, 193, 196, 199, 227, 231, 250, 255, 258, 261, 285, 289, 294, 297, 300, 308, 313, 316, 319, 350, 354, 359, 362, 365, 391, 395, 400, 403, 407, 439, 443, 448, 451, 454, 491, 495, 500, 503, 506, 540, 544, 549, 552, 555, 593, 597, 602, 605, 609, 645, 649, 654, 657, 660, 682, 686, 691, 694, 698, 727, 731], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\models.py": {"executed_lines": [5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 21, 25, 26, 27, 28, 29, 30, 32, 33, 34], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"FixResult.__post_init__": {"executed_lines": [33, 34], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "": {"executed_lines": [5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 21, 25, 26, 27, 28, 29, 30, 32], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FixRiskLevel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "FixResult": {"executed_lines": [33, 34], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 21}, "": {"executed_lines": [5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 21, 25, 26, 27, 28, 29, 30, 32], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\__init__.py": {"executed_lines": [3, 4, 5, 6, 7, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 5, 6, 7, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\github_actions.py": {"executed_lines": [3, 4, 7, 10, 11, 32, 33, 35, 36, 38, 39, 41, 43, 50, 187, 189, 190, 203, 204, 206, 208, 249, 251, 252, 262, 263, 264], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"GitHubActionsGenerator.generate_analysis_workflow": {"executed_lines": [32, 33, 35, 36, 38, 39, 41, 43, 50, 187], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "GitHubActionsGenerator.generate_pre_commit_workflow": {"executed_lines": [203, 204, 206, 208, 249], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 190}, "GitHubActionsGenerator.save_workflow": {"executed_lines": [262, 263, 264], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 252}, "": {"executed_lines": [3, 4, 7, 10, 11, 189, 190, 251, 252], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"GitHubActionsGenerator": {"executed_lines": [32, 33, 35, 36, 38, 39, 41, 43, 50, 187, 203, 204, 206, 208, 249, 262, 263, 264], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 11, 189, 190, 251, 252], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\gitlab_ci.py": {"executed_lines": [3, 4, 7, 10, 11, 28, 29, 31, 32, 34, 145, 147, 148, 157, 189, 191, 192, 202, 203, 204], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"GitLabCIGenerator.generate_analysis_pipeline": {"executed_lines": [28, 29, 31, 32, 34, 145], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "GitLabCIGenerator.generate_pre_commit_pipeline": {"executed_lines": [157, 189], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 148}, "GitLabCIGenerator.save_pipeline": {"executed_lines": [202, 203, 204], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 192}, "": {"executed_lines": [3, 4, 7, 10, 11, 147, 148, 191, 192], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"GitLabCIGenerator": {"executed_lines": [28, 29, 31, 32, 34, 145, 157, 189, 202, 203, 204], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 11, 147, 148, 191, 192], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\pr_integration.py": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 19, 20, 22, 44, 47, 48, 57, 58, 60, 61, 64, 65, 66, 69, 70, 71, 72, 73, 74, 77, 86, 91, 92, 93, 95, 96, 97, 100, 102, 103, 104, 106, 107, 108, 110, 112, 113, 123, 125, 127, 129, 135, 137, 146, 148, 150, 151, 162, 163, 172, 174, 175, 177, 179, 180, 182, 188, 189], "summary": {"covered_lines": 65, "num_statements": 87, "percent_covered": 74.71264367816092, "percent_covered_display": "75", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 74.71264367816092, "percent_statements_covered_display": "75"}, "missing_lines": [28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41, 78, 82, 83, 87, 88, 160, 199, 211, 212, 213], "excluded_lines": [], "functions": {"PRComment.to_markdown": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41], "excluded_lines": [], "start_line": 22}, "PRIntegration.generate_pr_summary": {"executed_lines": [57, 58, 60, 61, 64, 65, 66, 69, 70, 71, 72, 73, 74, 77, 86, 91, 92, 93, 95, 96, 97, 100, 102, 103, 104, 106, 107, 108, 110], "summary": {"covered_lines": 29, "num_statements": 34, "percent_covered": 85.29411764705883, "percent_covered_display": "85", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 85.29411764705883, "percent_statements_covered_display": "85"}, "missing_lines": [78, 82, 83, 87, 88], "excluded_lines": [], "start_line": 48}, "PRIntegration.generate_inline_comments": {"executed_lines": [123, 125, 127, 129, 135, 137, 146, 148], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 113}, "PRIntegration.generate_github_comment_body": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [160], "excluded_lines": [], "start_line": 151}, "PRIntegration.format_comment_for_github_api": {"executed_lines": [172, 174, 175, 177, 179, 180, 182], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 163}, "PRIntegration.save_comments_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [199, 211, 212, 213], "excluded_lines": [], "start_line": 189}, "": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 19, 20, 22, 44, 47, 48, 112, 113, 150, 151, 162, 163, 188, 189], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PRComment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41], "excluded_lines": [], "start_line": 12}, "PRIntegration": {"executed_lines": [57, 58, 60, 61, 64, 65, 66, 69, 70, 71, 72, 73, 74, 77, 86, 91, 92, 93, 95, 96, 97, 100, 102, 103, 104, 106, 107, 108, 110, 123, 125, 127, 129, 135, 137, 146, 148, 172, 174, 175, 177, 179, 180, 182], "summary": {"covered_lines": 44, "num_statements": 54, "percent_covered": 81.48148148148148, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 81.48148148148148, "percent_statements_covered_display": "81"}, "missing_lines": [78, 82, 83, 87, 88, 160, 199, 211, 212, 213], "excluded_lines": [], "start_line": 44}, "": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 19, 20, 22, 44, 47, 48, 112, 113, 150, 151, 162, 163, 188, 189], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\pre_commit.py": {"executed_lines": [3, 4, 7, 10, 11, 30, 31, 33, 35, 87, 89, 90, 96, 129, 131, 132, 142, 143, 144, 146, 147, 157, 158, 159, 162], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"PreCommitGenerator.generate_pre_commit_config": {"executed_lines": [30, 31, 33, 35, 87], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "PreCommitGenerator.generate_simple_hook": {"executed_lines": [96, 129], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 90}, "PreCommitGenerator.save_config": {"executed_lines": [142, 143, 144], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 132}, "PreCommitGenerator.save_hook": {"executed_lines": [157, 158, 159, 162], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "": {"executed_lines": [3, 4, 7, 10, 11, 89, 90, 131, 132, 146, 147], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PreCommitGenerator": {"executed_lines": [30, 31, 33, 35, 87, 96, 129, 142, 143, 144, 157, 158, 159, 162], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 11, 89, 90, 131, 132, 146, 147], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\quality_gates.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 34, 35, 38, 39, 44, 50, 58, 64, 65, 66, 74, 75, 77, 80, 83, 84, 86, 88, 90, 101, 102, 104, 107, 110, 111, 124, 125, 127, 128, 129, 130, 134, 135, 144, 153, 154, 155, 157, 158, 159, 161, 162, 163, 165, 166, 169, 170, 171, 173, 175, 176, 185, 190, 191, 201, 203, 204, 206, 208, 209], "summary": {"covered_lines": 77, "num_statements": 104, "percent_covered": 74.03846153846153, "percent_covered_display": "74", "missing_lines": 27, "excluded_lines": 0, "percent_statements_covered": 74.03846153846153, "percent_statements_covered_display": "74"}, "missing_lines": [45, 51, 55, 59, 67, 71, 78, 81, 131, 132, 167, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 236], "excluded_lines": [], "functions": {"QualityGate.check": {"executed_lines": [34, 35, 38, 39, 44, 50, 58, 64, 65, 66, 74, 75, 77, 80, 83, 84, 86], "summary": {"covered_lines": 17, "num_statements": 25, "percent_covered": 68.0, "percent_covered_display": "68", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 68.0, "percent_statements_covered_display": "68"}, "missing_lines": [45, 51, 55, 59, 67, 71, 78, 81], "excluded_lines": [], "start_line": 25}, "QualityGate.to_dict": {"executed_lines": [90], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 88}, "QualityGate.from_dict": {"executed_lines": [104], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 102}, "QualityGateParser.parse_json_output": {"executed_lines": [124, 125, 127, 128, 129, 130], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [131, 132], "excluded_lines": [], "start_line": 111}, "QualityGateParser.parse_text_output": {"executed_lines": [144, 153, 154, 155, 157, 158, 159, 161, 162, 163, 165, 166, 169, 170, 171, 173], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.11764705882354, "percent_statements_covered_display": "94"}, "missing_lines": [167], "excluded_lines": [], "start_line": 135}, "QualityGateParser.parse_exit_code": {"executed_lines": [185], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 176}, "QualityGateParser.enforce_gate": {"executed_lines": [201, 203, 204, 206], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 191}, "QualityGateParser.generate_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 236], "excluded_lines": [], "start_line": 209}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 88, 101, 102, 107, 110, 111, 134, 135, 175, 176, 190, 191, 208, 209], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"QualityGate": {"executed_lines": [34, 35, 38, 39, 44, 50, 58, 64, 65, 66, 74, 75, 77, 80, 83, 84, 86, 90, 104], "summary": {"covered_lines": 19, "num_statements": 27, "percent_covered": 70.37037037037037, "percent_covered_display": "70", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 70.37037037037037, "percent_statements_covered_display": "70"}, "missing_lines": [45, 51, 55, 59, 67, 71, 78, 81], "excluded_lines": [], "start_line": 13}, "QualityGateParser": {"executed_lines": [124, 125, 127, 128, 129, 130, 144, 153, 154, 155, 157, 158, 159, 161, 162, 163, 165, 166, 169, 170, 171, 173, 185, 201, 203, 204, 206], "summary": {"covered_lines": 27, "num_statements": 46, "percent_covered": 58.69565217391305, "percent_covered_display": "59", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 58.69565217391305, "percent_statements_covered_display": "59"}, "missing_lines": [131, 132, 167, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 236], "excluded_lines": [], "start_line": 107}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 88, 101, 102, 107, 110, 111, 134, 135, 175, 176, 190, 191, 208, 209], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cli.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 70, 73, 74, 79, 82, 83, 86, 87, 88, 89, 91, 92, 94, 106, 159, 161, 162, 169, 171, 179, 182, 183, 186, 190, 196, 197, 203, 214, 223, 230, 272, 284, 287, 288, 299, 300, 301, 317, 320, 347, 365, 376, 382, 390, 416, 440, 491, 511, 638, 640, 642, 643, 644, 645, 646, 648, 649, 651, 654, 655, 656, 658, 659, 660, 661, 662, 664, 666, 667, 668, 669, 670, 671, 672, 674, 675, 678, 679, 680, 683, 755, 756, 757, 758, 765, 768, 769, 770, 771, 772, 773, 776, 780, 784, 814, 816, 819, 820, 826, 832, 839, 845, 847, 849, 1007, 1008, 1010, 1035, 1036, 1038, 1041, 1042, 1044, 1073, 1074, 1079, 1156, 1157, 1158, 1164, 1169, 1174, 1179, 1184, 1189, 1200, 1210, 1227, 1318, 1319, 1320, 1326, 1337, 1347, 1352, 1358, 1363, 1378, 1493, 1494, 1495, 1502, 1508, 1514, 1524, 1525, 1526, 1529, 1532, 1533, 1539, 1541, 1542, 1543, 1544, 1545, 1549, 1554, 1559, 1560, 1561, 1562, 1568, 1569, 1570, 1576, 1582, 1588, 1595, 1601, 1614, 1615, 1616, 1618, 1621, 1625, 1626, 1628, 1630, 1631, 1632, 1633, 1635, 1637, 1638, 1639, 1641, 1642, 1648, 1650, 1651, 1652, 1655, 1656, 1657, 1663, 1674, 1684, 1689, 1696, 1763, 1764, 1771, 1773, 1775, 1777, 1778, 1779, 1780, 1783, 1784, 1796, 1797, 1799, 1800, 1802, 1803, 1804, 1808, 1809, 1817, 1818, 1819, 1826, 1832, 1839, 1845, 1868, 1869, 1871, 1875, 1877, 1878, 1879, 1882, 1885, 1886, 1887, 1889, 1890, 1891, 1892, 1893, 1917, 1925, 1926, 1927, 1928, 1929, 1971, 1972, 1978, 1984, 1991, 2044, 2045, 2052, 2112, 2113, 2118, 2124, 2167, 2168, 2169, 2175, 2180, 2185, 2190, 2196, 2202, 2332, 2333, 2337, 2351, 2352, 2360, 2367, 2425, 2426, 2434, 2441, 2496, 2497, 2505, 2511, 2518, 2582, 2583, 2588, 2589, 2595, 2670, 2671, 2672, 2679, 2685, 2846, 2847, 2848, 2853, 2964, 2965, 2970, 2971, 2972, 2973, 3040, 3041, 3042, 3043, 3044, 3045, 3122, 3123, 3177, 3178, 3186, 3193, 3251, 3252, 3253, 3254, 3255, 3256, 3410, 3411, 3412, 3415, 3416], "summary": {"covered_lines": 369, "num_statements": 1604, "percent_covered": 23.00498753117207, "percent_covered_display": "23", "missing_lines": 1235, "excluded_lines": 2, "percent_statements_covered": 23.00498753117207, "percent_statements_covered_display": "23"}, "missing_lines": [116, 117, 118, 123, 124, 128, 129, 133, 134, 139, 140, 141, 142, 143, 144, 148, 149, 153, 185, 187, 198, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211, 216, 217, 218, 219, 220, 225, 226, 227, 232, 240, 241, 243, 244, 245, 246, 248, 254, 255, 257, 259, 262, 267, 269, 289, 290, 292, 293, 294, 295, 296, 302, 303, 304, 307, 308, 311, 312, 313, 314, 315, 322, 323, 328, 329, 336, 337, 340, 341, 349, 351, 352, 357, 359, 360, 361, 362, 367, 368, 370, 371, 378, 379, 384, 385, 386, 387, 392, 400, 401, 403, 404, 406, 407, 409, 411, 413, 418, 419, 426, 427, 432, 433, 434, 436, 437, 448, 449, 451, 452, 454, 455, 456, 457, 458, 459, 461, 467, 468, 470, 471, 472, 477, 478, 480, 481, 488, 499, 500, 502, 503, 513, 514, 516, 517, 518, 519, 522, 524, 533, 535, 543, 551, 553, 554, 555, 556, 558, 560, 561, 562, 565, 566, 567, 568, 570, 572, 573, 575, 576, 577, 578, 580, 582, 584, 585, 586, 587, 590, 593, 594, 595, 597, 598, 599, 601, 602, 605, 606, 612, 614, 616, 617, 618, 621, 622, 623, 626, 627, 630, 631, 632, 633, 634, 635, 686, 687, 688, 689, 692, 693, 694, 697, 705, 706, 707, 709, 710, 711, 713, 715, 726, 727, 729, 730, 731, 732, 735, 736, 738, 742, 743, 744, 745, 746, 747, 748, 750, 751, 752, 781, 786, 787, 791, 793, 794, 795, 803, 804, 805, 806, 807, 809, 810, 811, 815, 851, 852, 853, 854, 855, 856, 857, 858, 860, 861, 862, 863, 864, 865, 868, 870, 872, 873, 874, 875, 876, 878, 888, 889, 890, 891, 892, 893, 902, 903, 904, 911, 912, 913, 916, 917, 918, 919, 920, 929, 930, 931, 932, 937, 939, 940, 941, 947, 948, 956, 958, 959, 961, 971, 972, 973, 974, 977, 979, 980, 984, 985, 987, 988, 989, 990, 991, 992, 994, 995, 996, 998, 999, 1004, 1011, 1012, 1013, 1014, 1015, 1016, 1025, 1045, 1046, 1047, 1048, 1049, 1050, 1053, 1055, 1056, 1057, 1058, 1060, 1061, 1062, 1063, 1064, 1066, 1076, 1088, 1091, 1092, 1095, 1098, 1099, 1101, 1102, 1103, 1106, 1107, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1120, 1121, 1122, 1123, 1126, 1127, 1128, 1129, 1131, 1132, 1134, 1135, 1138, 1139, 1144, 1146, 1149, 1151, 1152, 1153, 1229, 1230, 1231, 1234, 1235, 1236, 1238, 1239, 1242, 1243, 1244, 1246, 1256, 1259, 1262, 1263, 1264, 1267, 1268, 1269, 1270, 1271, 1272, 1274, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1287, 1288, 1289, 1291, 1293, 1294, 1296, 1299, 1300, 1302, 1303, 1304, 1305, 1308, 1311, 1314, 1315, 1380, 1381, 1382, 1385, 1386, 1387, 1389, 1390, 1391, 1395, 1402, 1405, 1406, 1407, 1408, 1411, 1412, 1413, 1416, 1417, 1419, 1421, 1422, 1424, 1426, 1427, 1432, 1433, 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1447, 1448, 1449, 1450, 1455, 1456, 1457, 1460, 1461, 1462, 1464, 1466, 1468, 1469, 1470, 1472, 1473, 1476, 1478, 1479, 1481, 1484, 1485, 1487, 1489, 1490, 1534, 1535, 1536, 1563, 1564, 1565, 1622, 1623, 1644, 1645, 1646, 1713, 1714, 1715, 1718, 1719, 1720, 1723, 1729, 1732, 1734, 1735, 1737, 1739, 1740, 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1757, 1785, 1786, 1787, 1792, 1805, 1812, 1813, 1814, 1880, 1881, 1883, 1884, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904, 1905, 1906, 1914, 1915, 1918, 1919, 1921, 1922, 1923, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1941, 1942, 1944, 1945, 1947, 1949, 1952, 1953, 1954, 1956, 1958, 1959, 1960, 1961, 1962, 1963, 1967, 1968, 2004, 2006, 2007, 2008, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2040, 2041, 2063, 2065, 2067, 2068, 2069, 2071, 2072, 2074, 2075, 2078, 2079, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2091, 2092, 2093, 2094, 2095, 2098, 2099, 2100, 2101, 2102, 2105, 2106, 2107, 2108, 2109, 2136, 2138, 2139, 2140, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2151, 2152, 2154, 2155, 2156, 2157, 2158, 2160, 2161, 2162, 2163, 2164, 2222, 2224, 2225, 2226, 2228, 2229, 2230, 2232, 2235, 2238, 2245, 2246, 2247, 2248, 2251, 2252, 2255, 2258, 2259, 2260, 2263, 2266, 2267, 2268, 2270, 2271, 2272, 2275, 2278, 2279, 2280, 2283, 2286, 2287, 2288, 2290, 2291, 2292, 2295, 2301, 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2315, 2320, 2321, 2322, 2323, 2324, 2325, 2327, 2328, 2329, 2344, 2345, 2346, 2347, 2348, 2373, 2374, 2375, 2377, 2378, 2380, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2391, 2392, 2393, 2394, 2396, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2409, 2410, 2411, 2412, 2422, 2447, 2448, 2449, 2451, 2452, 2454, 2456, 2457, 2459, 2460, 2461, 2462, 2463, 2465, 2466, 2467, 2469, 2470, 2471, 2473, 2478, 2479, 2480, 2482, 2483, 2484, 2485, 2486, 2488, 2490, 2491, 2493, 2529, 2530, 2531, 2533, 2534, 2536, 2538, 2539, 2541, 2542, 2543, 2544, 2545, 2547, 2548, 2549, 2551, 2552, 2553, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2565, 2566, 2567, 2568, 2570, 2571, 2572, 2573, 2574, 2576, 2585, 2601, 2602, 2603, 2604, 2606, 2607, 2608, 2610, 2611, 2621, 2624, 2631, 2632, 2633, 2634, 2635, 2638, 2640, 2641, 2642, 2643, 2644, 2646, 2647, 2648, 2650, 2651, 2652, 2654, 2656, 2657, 2658, 2662, 2663, 2664, 2665, 2666, 2667, 2694, 2695, 2696, 2697, 2699, 2702, 2703, 2706, 2707, 2708, 2709, 2710, 2711, 2713, 2718, 2721, 2722, 2728, 2731, 2732, 2733, 2734, 2735, 2736, 2739, 2740, 2741, 2745, 2746, 2748, 2749, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2761, 2762, 2763, 2764, 2767, 2768, 2771, 2773, 2775, 2776, 2782, 2783, 2784, 2785, 2786, 2787, 2791, 2794, 2802, 2806, 2807, 2809, 2810, 2814, 2821, 2822, 2823, 2824, 2827, 2829, 2843, 2861, 2862, 2863, 2864, 2866, 2869, 2870, 2871, 2872, 2873, 2875, 2881, 2884, 2885, 2886, 2887, 2888, 2890, 2893, 2894, 2895, 2897, 2908, 2911, 2912, 2915, 2916, 2919, 2920, 2921, 2922, 2924, 2925, 2926, 2927, 2928, 2929, 2932, 2934, 2946, 2967, 2975, 2977, 2978, 2979, 2981, 2982, 2984, 2985, 2986, 2987, 2989, 2990, 2992, 2995, 2996, 2997, 2998, 3002, 3004, 3006, 3007, 3009, 3010, 3012, 3013, 3015, 3016, 3017, 3019, 3035, 3036, 3037, 3047, 3048, 3050, 3051, 3053, 3056, 3057, 3058, 3062, 3064, 3066, 3067, 3068, 3070, 3071, 3072, 3074, 3076, 3077, 3080, 3081, 3082, 3084, 3085, 3091, 3097, 3099, 3100, 3101, 3102, 3103, 3105, 3116, 3117, 3118, 3119, 3125, 3126, 3128, 3129, 3131, 3134, 3135, 3136, 3140, 3142, 3144, 3145, 3146, 3148, 3149, 3153, 3155, 3172, 3173, 3174, 3199, 3200, 3201, 3203, 3204, 3206, 3208, 3210, 3211, 3212, 3213, 3214, 3216, 3217, 3218, 3220, 3225, 3226, 3227, 3229, 3235, 3236, 3237, 3239, 3240, 3241, 3242, 3248, 3262, 3263, 3264, 3267, 3268, 3270, 3273, 3274, 3276, 3277, 3278, 3281, 3282, 3283, 3284, 3285, 3288, 3289, 3291, 3294, 3295, 3297, 3298, 3299, 3301, 3302, 3303, 3305, 3306, 3307, 3310, 3311, 3312, 3313, 3315, 3316, 3318, 3321, 3325, 3333, 3334, 3337, 3338, 3339, 3341, 3342, 3350, 3352, 3356, 3357, 3358, 3361, 3362, 3364, 3367, 3368, 3369, 3370, 3371, 3373, 3375, 3376, 3379, 3382, 3383, 3385, 3389, 3392, 3393, 3395, 3396, 3397, 3398, 3400, 3402, 3403, 3404, 3406, 3407, 3422, 3423, 3424, 3427, 3428, 3430, 3432, 3433, 3434, 3436, 3437, 3439, 3442, 3443, 3444, 3445, 3448, 3450, 3453, 3455, 3456, 3458, 3459, 3460, 3462, 3464, 3465, 3473, 3481, 3482, 3485, 3486, 3487, 3490, 3491, 3493, 3495, 3496, 3500, 3501], "excluded_lines": [3504, 3505], "functions": {"_auth_banner": {"executed_lines": [82, 83, 86, 87, 88, 89, 91, 92, 94], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 79}, "_validate_api_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [116, 117, 118, 123, 124, 128, 129, 133, 134, 139, 140, 141, 142, 143, 144, 148, 149, 153], "excluded_lines": [], "start_line": 106}, "_setup_logging": {"executed_lines": [161, 162, 169, 171, 179, 182, 183, 186], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [185, 187], "excluded_lines": [], "start_line": 159}, "_load_config": {"executed_lines": [196, 197, 203], "summary": {"covered_lines": 3, "num_statements": 16, "percent_covered": 18.75, "percent_covered_display": "19", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 18.75, "percent_statements_covered_display": "19"}, "missing_lines": [198, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211], "excluded_lines": [], "start_line": 190}, "_validate_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [216, 217, 218, 219, 220], "excluded_lines": [], "start_line": 214}, "_print_file_count": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [225, 226, 227], "excluded_lines": [], "start_line": 223}, "_create_summary_table": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [232, 240, 241, 243, 244, 245, 246, 248, 254, 255, 257, 259, 262, 267, 269], "excluded_lines": [], "start_line": 230}, "_detect_project_type": {"executed_lines": [284, 287, 288, 299, 300, 301, 317], "summary": {"covered_lines": 7, "num_statements": 24, "percent_covered": 29.166666666666668, "percent_covered_display": "29", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 29.166666666666668, "percent_statements_covered_display": "29"}, "missing_lines": [289, 290, 292, 293, 294, 295, 296, 302, 303, 304, 307, 308, 311, 312, 313, 314, 315], "excluded_lines": [], "start_line": 272}, "_print_status_messages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [322, 323, 328, 329, 336, 337, 340, 341], "excluded_lines": [], "start_line": 320}, "_print_detailed_issues": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [349, 351, 352, 357, 359, 360, 361, 362], "excluded_lines": [], "start_line": 347}, "_print_helpful_tips": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [367, 368, 370, 371], "excluded_lines": [], "start_line": 365}, "_print_refactor_filters": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [378, 379], "excluded_lines": [], "start_line": 376}, "_confirm_apply_mode": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [384, 385, 386, 387], "excluded_lines": [], "start_line": 382}, "_create_refactor_table": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [392, 400, 401, 403, 404, 406, 407, 409, 411, 413], "excluded_lines": [], "start_line": 390}, "_print_refactor_messages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [418, 419, 426, 427, 432, 433, 434, 436, 437], "excluded_lines": [], "start_line": 416}, "_collect_feedback_interactive": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [448, 449, 451, 452, 454, 455, 456, 457, 458, 459, 461, 467, 468, 470, 471, 472, 477, 478, 480, 481, 488], "excluded_lines": [], "start_line": 440}, "_record_applied_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [499, 500, 502, 503], "excluded_lines": [], "start_line": 491}, "_run_startup_animation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [513, 514, 516, 517, 518, 519, 522, 524, 533, 535, 543, 551, 553, 614, 616, 617, 618, 621, 622, 623, 626, 627, 630, 631, 632, 633, 634, 635], "excluded_lines": [], "start_line": 511}, "_run_startup_animation.get_renderable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [554, 555, 556, 558, 560, 561, 562, 565, 566, 567, 568, 570, 572, 573, 575, 576, 577, 578, 580, 582, 584, 585, 586, 587, 590, 593, 594, 595, 597, 598, 599, 601, 602, 605, 606, 612], "excluded_lines": [], "start_line": 553}, "_print_custom_help": {"executed_lines": [640, 642, 643, 644, 645, 646, 648, 649, 651, 654, 655, 656, 658, 659, 660, 661, 662, 664, 666, 667, 668, 669, 670, 671, 672, 674, 675], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 638}, "CustomHelpGroup.format_help": {"executed_lines": [680], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 679}, "_run_minimal_loop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [686, 726, 727, 729, 730, 731, 732, 735, 736, 738, 742, 743, 744, 745, 746, 747, 748, 750, 751, 752], "excluded_lines": [], "start_line": 683}, "_run_minimal_loop.print_header": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [687, 688, 689, 692, 693, 694, 697, 705, 706, 707, 709, 710, 711, 713, 715], "excluded_lines": [], "start_line": 686}, "main": {"executed_lines": [765, 768, 769, 770, 771, 772, 773, 776, 780, 784, 814, 816], "summary": {"covered_lines": 12, "num_statements": 28, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 42.857142857142854, "percent_statements_covered_display": "43"}, "missing_lines": [781, 786, 787, 791, 793, 794, 795, 803, 804, 805, 806, 807, 809, 810, 811, 815], "excluded_lines": [], "start_line": 758}, "login": {"executed_lines": [847, 849], "summary": {"covered_lines": 2, "num_statements": 76, "percent_covered": 2.6315789473684212, "percent_covered_display": "3", "missing_lines": 74, "excluded_lines": 0, "percent_statements_covered": 2.6315789473684212, "percent_statements_covered_display": "3"}, "missing_lines": [851, 852, 853, 854, 855, 856, 857, 858, 860, 861, 862, 863, 864, 865, 868, 870, 872, 873, 874, 875, 876, 878, 888, 889, 890, 891, 892, 893, 902, 903, 904, 911, 912, 913, 916, 917, 918, 919, 920, 929, 930, 931, 932, 937, 939, 940, 941, 947, 948, 956, 958, 959, 961, 971, 972, 973, 974, 977, 979, 980, 984, 985, 987, 988, 989, 990, 991, 992, 994, 995, 996, 998, 999, 1004], "excluded_lines": [], "start_line": 845}, "logout": {"executed_lines": [1010], "summary": {"covered_lines": 1, "num_statements": 8, "percent_covered": 12.5, "percent_covered_display": "12", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 12.5, "percent_statements_covered_display": "12"}, "missing_lines": [1011, 1012, 1013, 1014, 1015, 1016, 1025], "excluded_lines": [], "start_line": 1008}, "auth": {"executed_lines": [1038], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1036}, "auth_status": {"executed_lines": [1044], "summary": {"covered_lines": 1, "num_statements": 18, "percent_covered": 5.555555555555555, "percent_covered_display": "6", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 5.555555555555555, "percent_statements_covered_display": "6"}, "missing_lines": [1045, 1046, 1047, 1048, 1049, 1050, 1053, 1055, 1056, 1057, 1058, 1060, 1061, 1062, 1063, 1064, 1066], "excluded_lines": [], "start_line": 1042}, "auth_logout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1076], "excluded_lines": [], "start_line": 1074}, "_interactive_file_selector": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1088, 1091, 1092, 1095, 1098, 1099, 1101, 1102, 1103, 1106, 1107, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1120, 1121, 1122, 1123, 1126, 1127, 1128, 1129, 1131, 1132, 1134, 1135, 1138, 1139, 1144, 1146, 1149, 1151, 1152, 1153], "excluded_lines": [], "start_line": 1079}, "analyze": {"executed_lines": [1227], "summary": {"covered_lines": 1, "num_statements": 50, "percent_covered": 2.0, "percent_covered_display": "2", "missing_lines": 49, "excluded_lines": 0, "percent_statements_covered": 2.0, "percent_statements_covered_display": "2"}, "missing_lines": [1229, 1230, 1231, 1234, 1235, 1236, 1238, 1239, 1242, 1243, 1244, 1246, 1256, 1259, 1262, 1263, 1264, 1267, 1268, 1269, 1270, 1271, 1272, 1274, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1287, 1288, 1289, 1291, 1293, 1294, 1296, 1299, 1300, 1302, 1303, 1304, 1305, 1308, 1311, 1314, 1315], "excluded_lines": [], "start_line": 1210}, "refactor": {"executed_lines": [1378], "summary": {"covered_lines": 1, "num_statements": 64, "percent_covered": 1.5625, "percent_covered_display": "2", "missing_lines": 63, "excluded_lines": 0, "percent_statements_covered": 1.5625, "percent_statements_covered_display": "2"}, "missing_lines": [1380, 1381, 1382, 1385, 1386, 1387, 1389, 1390, 1391, 1395, 1402, 1405, 1406, 1407, 1408, 1411, 1412, 1413, 1416, 1417, 1419, 1421, 1422, 1424, 1426, 1427, 1432, 1433, 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1447, 1448, 1449, 1450, 1455, 1456, 1457, 1460, 1461, 1462, 1464, 1466, 1468, 1469, 1470, 1472, 1473, 1476, 1478, 1479, 1481, 1484, 1485, 1487, 1489, 1490], "excluded_lines": [], "start_line": 1363}, "feedback": {"executed_lines": [1524, 1525, 1526, 1529, 1532, 1533, 1539, 1541, 1542, 1543, 1544, 1545, 1549, 1554, 1559, 1560, 1561, 1562], "summary": {"covered_lines": 18, "num_statements": 24, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [1534, 1535, 1536, 1563, 1564, 1565], "excluded_lines": [], "start_line": 1514}, "report": {"executed_lines": [1614, 1615, 1616, 1618, 1621, 1625, 1626, 1628, 1630, 1631, 1632, 1633, 1635, 1637, 1638, 1639, 1641, 1642, 1648, 1650, 1651, 1652], "summary": {"covered_lines": 22, "num_statements": 27, "percent_covered": 81.48148148148148, "percent_covered_display": "81", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 81.48148148148148, "percent_statements_covered_display": "81"}, "missing_lines": [1622, 1623, 1644, 1645, 1646], "excluded_lines": [], "start_line": 1601}, "autofix": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1713, 1714, 1715, 1718, 1719, 1720, 1723, 1729, 1732, 1734, 1735, 1737, 1739, 1740, 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1757], "excluded_lines": [], "start_line": 1696}, "init": {"executed_lines": [1773, 1775, 1777, 1778, 1779, 1780, 1783, 1784, 1796, 1797, 1799, 1800, 1802, 1803, 1804, 1808, 1809], "summary": {"covered_lines": 17, "num_statements": 25, "percent_covered": 68.0, "percent_covered_display": "68", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 68.0, "percent_statements_covered_display": "68"}, "missing_lines": [1785, 1786, 1787, 1792, 1805, 1812, 1813, 1814], "excluded_lines": [], "start_line": 1771}, "rollback": {"executed_lines": [1868, 1869, 1871, 1875, 1877, 1878, 1879, 1882, 1885, 1886, 1887, 1889, 1890, 1891, 1892, 1893, 1917, 1925, 1926, 1927, 1928, 1929], "summary": {"covered_lines": 22, "num_statements": 71, "percent_covered": 30.985915492957748, "percent_covered_display": "31", "missing_lines": 49, "excluded_lines": 0, "percent_statements_covered": 30.985915492957748, "percent_statements_covered_display": "31"}, "missing_lines": [1880, 1881, 1883, 1884, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904, 1905, 1906, 1914, 1915, 1918, 1919, 1921, 1922, 1923, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1941, 1942, 1944, 1945, 1947, 1949, 1952, 1953, 1954, 1956, 1958, 1959, 1960, 1961, 1962, 1963, 1967, 1968], "excluded_lines": [], "start_line": 1845}, "telemetry": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2004, 2006, 2007, 2008, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2040, 2041], "excluded_lines": [], "start_line": 1991}, "metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2063, 2065, 2067, 2068, 2069, 2071, 2072, 2074, 2075, 2078, 2079, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2091, 2092, 2093, 2094, 2095, 2098, 2099, 2100, 2101, 2102, 2105, 2106, 2107, 2108, 2109], "excluded_lines": [], "start_line": 2052}, "serve_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2136, 2138, 2139, 2140, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2151, 2152, 2154, 2155, 2156, 2157, 2158, 2160, 2161, 2162, 2163, 2164], "excluded_lines": [], "start_line": 2124}, "generate_cicd": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 60, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2222, 2224, 2225, 2226, 2228, 2229, 2230, 2232, 2235, 2238, 2245, 2246, 2247, 2248, 2251, 2252, 2255, 2258, 2259, 2260, 2263, 2266, 2267, 2268, 2270, 2271, 2272, 2275, 2278, 2279, 2280, 2283, 2286, 2287, 2288, 2290, 2291, 2292, 2295, 2301, 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2315, 2320, 2321, 2322, 2323, 2324, 2325, 2327, 2328, 2329], "excluded_lines": [], "start_line": 2202}, "patterns": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 2333}, "_get_pattern_storage_from_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2344, 2345, 2346, 2347, 2348], "excluded_lines": [], "start_line": 2337}, "patterns_analyze": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2373, 2374, 2375, 2377, 2378, 2380, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2391, 2392, 2393, 2394, 2396, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2409, 2410, 2411, 2412, 2422], "excluded_lines": [], "start_line": 2367}, "patterns_recommend": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 32, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2447, 2448, 2449, 2451, 2452, 2454, 2456, 2457, 2459, 2460, 2461, 2462, 2463, 2465, 2466, 2467, 2469, 2470, 2471, 2473, 2478, 2479, 2480, 2482, 2483, 2484, 2485, 2486, 2488, 2490, 2491, 2493], "excluded_lines": [], "start_line": 2441}, "patterns_tune": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2529, 2530, 2531, 2533, 2534, 2536, 2538, 2539, 2541, 2542, 2543, 2544, 2545, 2547, 2548, 2549, 2551, 2552, 2553, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2565, 2566, 2567, 2568, 2570, 2571, 2572, 2573, 2574, 2576], "excluded_lines": [], "start_line": 2518}, "repo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2585], "excluded_lines": [], "start_line": 2583}, "repo_list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2601, 2602, 2603, 2604, 2606, 2607, 2608, 2610, 2611, 2621, 2624, 2631, 2632, 2633, 2634, 2635, 2638, 2640, 2641, 2642, 2643, 2644, 2646, 2647, 2648, 2650, 2651, 2652, 2654, 2656, 2657, 2658, 2662, 2663, 2664, 2665, 2666, 2667], "excluded_lines": [], "start_line": 2595}, "repo_connect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 69, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 69, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2694, 2695, 2696, 2697, 2699, 2702, 2703, 2706, 2707, 2708, 2709, 2710, 2711, 2713, 2718, 2721, 2722, 2728, 2731, 2732, 2733, 2734, 2735, 2736, 2739, 2740, 2741, 2745, 2746, 2748, 2749, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2761, 2762, 2763, 2764, 2767, 2768, 2771, 2773, 2775, 2776, 2782, 2783, 2784, 2785, 2786, 2787, 2791, 2794, 2802, 2806, 2807, 2809, 2810, 2814, 2821, 2822, 2823, 2824, 2827, 2829, 2843], "excluded_lines": [], "start_line": 2685}, "repo_disconnect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2861, 2862, 2863, 2864, 2866, 2869, 2870, 2871, 2872, 2873, 2875, 2881, 2884, 2885, 2886, 2887, 2888, 2890, 2893, 2894, 2895, 2897, 2908, 2911, 2912, 2915, 2916, 2919, 2920, 2921, 2922, 2924, 2925, 2926, 2927, 2928, 2929, 2932, 2934, 2946], "excluded_lines": [], "start_line": 2853}, "rag": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2967], "excluded_lines": [], "start_line": 2965}, "rag_index": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 32, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2975, 2977, 2978, 2979, 2981, 2982, 2984, 2985, 2986, 2987, 2989, 2990, 2992, 2995, 2996, 2997, 2998, 3002, 3004, 3006, 3007, 3009, 3010, 3012, 3013, 3015, 3016, 3017, 3019, 3035, 3036, 3037], "excluded_lines": [], "start_line": 2973}, "rag_search": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3047, 3048, 3050, 3051, 3053, 3056, 3057, 3058, 3062, 3064, 3066, 3067, 3068, 3070, 3071, 3072, 3074, 3076, 3077, 3080, 3081, 3082, 3084, 3085, 3091, 3097, 3099, 3100, 3101, 3102, 3103, 3105, 3116, 3117, 3118, 3119], "excluded_lines": [], "start_line": 3045}, "rag_status": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3125, 3126, 3128, 3129, 3131, 3134, 3135, 3136, 3140, 3142, 3144, 3145, 3146, 3148, 3149, 3153, 3155, 3172, 3173, 3174], "excluded_lines": [], "start_line": 3123}, "patterns_profile": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3199, 3200, 3201, 3203, 3204, 3206, 3208, 3210, 3211, 3212, 3213, 3214, 3216, 3217, 3218, 3220, 3225, 3226, 3227, 3229, 3235, 3236, 3237, 3239, 3240, 3241, 3242, 3248], "excluded_lines": [], "start_line": 3193}, "suggest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 79, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 79, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3262, 3263, 3264, 3267, 3268, 3270, 3273, 3274, 3276, 3277, 3278, 3281, 3282, 3283, 3284, 3285, 3288, 3289, 3291, 3294, 3295, 3297, 3298, 3299, 3301, 3302, 3303, 3305, 3306, 3307, 3310, 3311, 3312, 3313, 3315, 3316, 3318, 3321, 3325, 3333, 3334, 3337, 3338, 3339, 3341, 3342, 3350, 3352, 3356, 3357, 3358, 3361, 3362, 3364, 3367, 3368, 3369, 3370, 3371, 3373, 3375, 3376, 3379, 3382, 3383, 3385, 3389, 3392, 3393, 3395, 3396, 3397, 3398, 3400, 3402, 3403, 3404, 3406, 3407], "excluded_lines": [], "start_line": 3256}, "document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3422, 3423, 3424, 3427, 3428, 3430, 3432, 3433, 3434, 3436, 3437, 3439, 3442, 3443, 3444, 3445, 3448, 3450, 3453, 3455, 3456, 3458, 3459, 3460, 3462, 3464, 3465, 3473, 3481, 3482, 3485, 3486, 3487, 3490, 3491, 3493, 3495, 3496, 3500, 3501], "excluded_lines": [], "start_line": 3416}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 70, 73, 74, 79, 106, 159, 190, 214, 223, 230, 272, 320, 347, 365, 376, 382, 390, 416, 440, 491, 511, 638, 678, 679, 683, 755, 756, 757, 758, 819, 820, 826, 832, 839, 845, 1007, 1008, 1035, 1036, 1041, 1042, 1073, 1074, 1079, 1156, 1157, 1158, 1164, 1169, 1174, 1179, 1184, 1189, 1200, 1210, 1318, 1319, 1320, 1326, 1337, 1347, 1352, 1358, 1363, 1493, 1494, 1495, 1502, 1508, 1514, 1568, 1569, 1570, 1576, 1582, 1588, 1595, 1601, 1655, 1656, 1657, 1663, 1674, 1684, 1689, 1696, 1763, 1764, 1771, 1817, 1818, 1819, 1826, 1832, 1839, 1845, 1971, 1972, 1978, 1984, 1991, 2044, 2045, 2052, 2112, 2113, 2118, 2124, 2167, 2168, 2169, 2175, 2180, 2185, 2190, 2196, 2202, 2332, 2333, 2337, 2351, 2352, 2360, 2367, 2425, 2426, 2434, 2441, 2496, 2497, 2505, 2511, 2518, 2582, 2583, 2588, 2589, 2595, 2670, 2671, 2672, 2679, 2685, 2846, 2847, 2848, 2853, 2964, 2965, 2970, 2971, 2972, 2973, 3040, 3041, 3042, 3043, 3044, 3045, 3122, 3123, 3177, 3178, 3186, 3193, 3251, 3252, 3253, 3254, 3255, 3256, 3410, 3411, 3412, 3415, 3416], "summary": {"covered_lines": 216, "num_statements": 216, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [3504, 3505], "start_line": 1}}, "classes": {"ApiKeyValidationResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "CustomHelpGroup": {"executed_lines": [680], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 678}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 70, 73, 74, 79, 82, 83, 86, 87, 88, 89, 91, 92, 94, 106, 159, 161, 162, 169, 171, 179, 182, 183, 186, 190, 196, 197, 203, 214, 223, 230, 272, 284, 287, 288, 299, 300, 301, 317, 320, 347, 365, 376, 382, 390, 416, 440, 491, 511, 638, 640, 642, 643, 644, 645, 646, 648, 649, 651, 654, 655, 656, 658, 659, 660, 661, 662, 664, 666, 667, 668, 669, 670, 671, 672, 674, 675, 678, 679, 683, 755, 756, 757, 758, 765, 768, 769, 770, 771, 772, 773, 776, 780, 784, 814, 816, 819, 820, 826, 832, 839, 845, 847, 849, 1007, 1008, 1010, 1035, 1036, 1038, 1041, 1042, 1044, 1073, 1074, 1079, 1156, 1157, 1158, 1164, 1169, 1174, 1179, 1184, 1189, 1200, 1210, 1227, 1318, 1319, 1320, 1326, 1337, 1347, 1352, 1358, 1363, 1378, 1493, 1494, 1495, 1502, 1508, 1514, 1524, 1525, 1526, 1529, 1532, 1533, 1539, 1541, 1542, 1543, 1544, 1545, 1549, 1554, 1559, 1560, 1561, 1562, 1568, 1569, 1570, 1576, 1582, 1588, 1595, 1601, 1614, 1615, 1616, 1618, 1621, 1625, 1626, 1628, 1630, 1631, 1632, 1633, 1635, 1637, 1638, 1639, 1641, 1642, 1648, 1650, 1651, 1652, 1655, 1656, 1657, 1663, 1674, 1684, 1689, 1696, 1763, 1764, 1771, 1773, 1775, 1777, 1778, 1779, 1780, 1783, 1784, 1796, 1797, 1799, 1800, 1802, 1803, 1804, 1808, 1809, 1817, 1818, 1819, 1826, 1832, 1839, 1845, 1868, 1869, 1871, 1875, 1877, 1878, 1879, 1882, 1885, 1886, 1887, 1889, 1890, 1891, 1892, 1893, 1917, 1925, 1926, 1927, 1928, 1929, 1971, 1972, 1978, 1984, 1991, 2044, 2045, 2052, 2112, 2113, 2118, 2124, 2167, 2168, 2169, 2175, 2180, 2185, 2190, 2196, 2202, 2332, 2333, 2337, 2351, 2352, 2360, 2367, 2425, 2426, 2434, 2441, 2496, 2497, 2505, 2511, 2518, 2582, 2583, 2588, 2589, 2595, 2670, 2671, 2672, 2679, 2685, 2846, 2847, 2848, 2853, 2964, 2965, 2970, 2971, 2972, 2973, 3040, 3041, 3042, 3043, 3044, 3045, 3122, 3123, 3177, 3178, 3186, 3193, 3251, 3252, 3253, 3254, 3255, 3256, 3410, 3411, 3412, 3415, 3416], "summary": {"covered_lines": 368, "num_statements": 1603, "percent_covered": 22.95695570804741, "percent_covered_display": "23", "missing_lines": 1235, "excluded_lines": 2, "percent_statements_covered": 22.95695570804741, "percent_statements_covered_display": "23"}, "missing_lines": [116, 117, 118, 123, 124, 128, 129, 133, 134, 139, 140, 141, 142, 143, 144, 148, 149, 153, 185, 187, 198, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211, 216, 217, 218, 219, 220, 225, 226, 227, 232, 240, 241, 243, 244, 245, 246, 248, 254, 255, 257, 259, 262, 267, 269, 289, 290, 292, 293, 294, 295, 296, 302, 303, 304, 307, 308, 311, 312, 313, 314, 315, 322, 323, 328, 329, 336, 337, 340, 341, 349, 351, 352, 357, 359, 360, 361, 362, 367, 368, 370, 371, 378, 379, 384, 385, 386, 387, 392, 400, 401, 403, 404, 406, 407, 409, 411, 413, 418, 419, 426, 427, 432, 433, 434, 436, 437, 448, 449, 451, 452, 454, 455, 456, 457, 458, 459, 461, 467, 468, 470, 471, 472, 477, 478, 480, 481, 488, 499, 500, 502, 503, 513, 514, 516, 517, 518, 519, 522, 524, 533, 535, 543, 551, 553, 554, 555, 556, 558, 560, 561, 562, 565, 566, 567, 568, 570, 572, 573, 575, 576, 577, 578, 580, 582, 584, 585, 586, 587, 590, 593, 594, 595, 597, 598, 599, 601, 602, 605, 606, 612, 614, 616, 617, 618, 621, 622, 623, 626, 627, 630, 631, 632, 633, 634, 635, 686, 687, 688, 689, 692, 693, 694, 697, 705, 706, 707, 709, 710, 711, 713, 715, 726, 727, 729, 730, 731, 732, 735, 736, 738, 742, 743, 744, 745, 746, 747, 748, 750, 751, 752, 781, 786, 787, 791, 793, 794, 795, 803, 804, 805, 806, 807, 809, 810, 811, 815, 851, 852, 853, 854, 855, 856, 857, 858, 860, 861, 862, 863, 864, 865, 868, 870, 872, 873, 874, 875, 876, 878, 888, 889, 890, 891, 892, 893, 902, 903, 904, 911, 912, 913, 916, 917, 918, 919, 920, 929, 930, 931, 932, 937, 939, 940, 941, 947, 948, 956, 958, 959, 961, 971, 972, 973, 974, 977, 979, 980, 984, 985, 987, 988, 989, 990, 991, 992, 994, 995, 996, 998, 999, 1004, 1011, 1012, 1013, 1014, 1015, 1016, 1025, 1045, 1046, 1047, 1048, 1049, 1050, 1053, 1055, 1056, 1057, 1058, 1060, 1061, 1062, 1063, 1064, 1066, 1076, 1088, 1091, 1092, 1095, 1098, 1099, 1101, 1102, 1103, 1106, 1107, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1120, 1121, 1122, 1123, 1126, 1127, 1128, 1129, 1131, 1132, 1134, 1135, 1138, 1139, 1144, 1146, 1149, 1151, 1152, 1153, 1229, 1230, 1231, 1234, 1235, 1236, 1238, 1239, 1242, 1243, 1244, 1246, 1256, 1259, 1262, 1263, 1264, 1267, 1268, 1269, 1270, 1271, 1272, 1274, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1287, 1288, 1289, 1291, 1293, 1294, 1296, 1299, 1300, 1302, 1303, 1304, 1305, 1308, 1311, 1314, 1315, 1380, 1381, 1382, 1385, 1386, 1387, 1389, 1390, 1391, 1395, 1402, 1405, 1406, 1407, 1408, 1411, 1412, 1413, 1416, 1417, 1419, 1421, 1422, 1424, 1426, 1427, 1432, 1433, 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1447, 1448, 1449, 1450, 1455, 1456, 1457, 1460, 1461, 1462, 1464, 1466, 1468, 1469, 1470, 1472, 1473, 1476, 1478, 1479, 1481, 1484, 1485, 1487, 1489, 1490, 1534, 1535, 1536, 1563, 1564, 1565, 1622, 1623, 1644, 1645, 1646, 1713, 1714, 1715, 1718, 1719, 1720, 1723, 1729, 1732, 1734, 1735, 1737, 1739, 1740, 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1757, 1785, 1786, 1787, 1792, 1805, 1812, 1813, 1814, 1880, 1881, 1883, 1884, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904, 1905, 1906, 1914, 1915, 1918, 1919, 1921, 1922, 1923, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1941, 1942, 1944, 1945, 1947, 1949, 1952, 1953, 1954, 1956, 1958, 1959, 1960, 1961, 1962, 1963, 1967, 1968, 2004, 2006, 2007, 2008, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2040, 2041, 2063, 2065, 2067, 2068, 2069, 2071, 2072, 2074, 2075, 2078, 2079, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2091, 2092, 2093, 2094, 2095, 2098, 2099, 2100, 2101, 2102, 2105, 2106, 2107, 2108, 2109, 2136, 2138, 2139, 2140, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2151, 2152, 2154, 2155, 2156, 2157, 2158, 2160, 2161, 2162, 2163, 2164, 2222, 2224, 2225, 2226, 2228, 2229, 2230, 2232, 2235, 2238, 2245, 2246, 2247, 2248, 2251, 2252, 2255, 2258, 2259, 2260, 2263, 2266, 2267, 2268, 2270, 2271, 2272, 2275, 2278, 2279, 2280, 2283, 2286, 2287, 2288, 2290, 2291, 2292, 2295, 2301, 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2315, 2320, 2321, 2322, 2323, 2324, 2325, 2327, 2328, 2329, 2344, 2345, 2346, 2347, 2348, 2373, 2374, 2375, 2377, 2378, 2380, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2391, 2392, 2393, 2394, 2396, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2409, 2410, 2411, 2412, 2422, 2447, 2448, 2449, 2451, 2452, 2454, 2456, 2457, 2459, 2460, 2461, 2462, 2463, 2465, 2466, 2467, 2469, 2470, 2471, 2473, 2478, 2479, 2480, 2482, 2483, 2484, 2485, 2486, 2488, 2490, 2491, 2493, 2529, 2530, 2531, 2533, 2534, 2536, 2538, 2539, 2541, 2542, 2543, 2544, 2545, 2547, 2548, 2549, 2551, 2552, 2553, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2565, 2566, 2567, 2568, 2570, 2571, 2572, 2573, 2574, 2576, 2585, 2601, 2602, 2603, 2604, 2606, 2607, 2608, 2610, 2611, 2621, 2624, 2631, 2632, 2633, 2634, 2635, 2638, 2640, 2641, 2642, 2643, 2644, 2646, 2647, 2648, 2650, 2651, 2652, 2654, 2656, 2657, 2658, 2662, 2663, 2664, 2665, 2666, 2667, 2694, 2695, 2696, 2697, 2699, 2702, 2703, 2706, 2707, 2708, 2709, 2710, 2711, 2713, 2718, 2721, 2722, 2728, 2731, 2732, 2733, 2734, 2735, 2736, 2739, 2740, 2741, 2745, 2746, 2748, 2749, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2761, 2762, 2763, 2764, 2767, 2768, 2771, 2773, 2775, 2776, 2782, 2783, 2784, 2785, 2786, 2787, 2791, 2794, 2802, 2806, 2807, 2809, 2810, 2814, 2821, 2822, 2823, 2824, 2827, 2829, 2843, 2861, 2862, 2863, 2864, 2866, 2869, 2870, 2871, 2872, 2873, 2875, 2881, 2884, 2885, 2886, 2887, 2888, 2890, 2893, 2894, 2895, 2897, 2908, 2911, 2912, 2915, 2916, 2919, 2920, 2921, 2922, 2924, 2925, 2926, 2927, 2928, 2929, 2932, 2934, 2946, 2967, 2975, 2977, 2978, 2979, 2981, 2982, 2984, 2985, 2986, 2987, 2989, 2990, 2992, 2995, 2996, 2997, 2998, 3002, 3004, 3006, 3007, 3009, 3010, 3012, 3013, 3015, 3016, 3017, 3019, 3035, 3036, 3037, 3047, 3048, 3050, 3051, 3053, 3056, 3057, 3058, 3062, 3064, 3066, 3067, 3068, 3070, 3071, 3072, 3074, 3076, 3077, 3080, 3081, 3082, 3084, 3085, 3091, 3097, 3099, 3100, 3101, 3102, 3103, 3105, 3116, 3117, 3118, 3119, 3125, 3126, 3128, 3129, 3131, 3134, 3135, 3136, 3140, 3142, 3144, 3145, 3146, 3148, 3149, 3153, 3155, 3172, 3173, 3174, 3199, 3200, 3201, 3203, 3204, 3206, 3208, 3210, 3211, 3212, 3213, 3214, 3216, 3217, 3218, 3220, 3225, 3226, 3227, 3229, 3235, 3236, 3237, 3239, 3240, 3241, 3242, 3248, 3262, 3263, 3264, 3267, 3268, 3270, 3273, 3274, 3276, 3277, 3278, 3281, 3282, 3283, 3284, 3285, 3288, 3289, 3291, 3294, 3295, 3297, 3298, 3299, 3301, 3302, 3303, 3305, 3306, 3307, 3310, 3311, 3312, 3313, 3315, 3316, 3318, 3321, 3325, 3333, 3334, 3337, 3338, 3339, 3341, 3342, 3350, 3352, 3356, 3357, 3358, 3361, 3362, 3364, 3367, 3368, 3369, 3370, 3371, 3373, 3375, 3376, 3379, 3382, 3383, 3385, 3389, 3392, 3393, 3395, 3396, 3397, 3398, 3400, 3402, 3403, 3404, 3406, 3407, 3422, 3423, 3424, 3427, 3428, 3430, 3432, 3433, 3434, 3436, 3437, 3439, 3442, 3443, 3444, 3445, 3448, 3450, 3453, 3455, 3456, 3458, 3459, 3460, 3462, 3464, 3465, 3473, 3481, 3482, 3485, 3486, 3487, 3490, 3491, 3493, 3495, 3496, 3500, 3501], "excluded_lines": [3504, 3505], "start_line": 1}}}, "refactron\\core\\__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\analysis_result.py": {"executed_lines": [3, 4, 5, 7, 10, 11, 17, 20, 21, 24, 25, 26, 27, 29, 30, 32, 34, 35, 37, 39, 40, 42, 43, 44, 45, 47, 48, 50, 51, 52, 53, 55, 56, 58, 59, 60, 61, 63, 65, 67, 69, 70, 71, 74, 76, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134], "summary": {"covered_lines": 87, "num_statements": 88, "percent_covered": 98.86363636363636, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.86363636363636, "percent_statements_covered_display": "99"}, "missing_lines": [72], "excluded_lines": [], "functions": {"AnalysisResult.files_analyzed_successfully": {"executed_lines": [32], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 30}, "AnalysisResult.files_failed": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "AnalysisResult.critical_issues": {"executed_lines": [42, 43, 44, 45], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 40}, "AnalysisResult.error_issues": {"executed_lines": [50, 51, 52, 53], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 48}, "AnalysisResult.all_issues": {"executed_lines": [58, 59, 60, 61], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "AnalysisResult.issues_by_level": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 63}, "AnalysisResult.issues_by_file": {"executed_lines": [69, 70, 71], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [72], "excluded_lines": [], "start_line": 67}, "AnalysisResult.summary": {"executed_lines": [76], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "AnalysisResult.report": {"executed_lines": [89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 87}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 17, 20, 21, 24, 25, 26, 27, 29, 30, 34, 35, 39, 40, 47, 48, 55, 56, 63, 67, 74, 87], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FileAnalysisError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "AnalysisResult": {"executed_lines": [32, 37, 42, 43, 44, 45, 50, 51, 52, 53, 58, 59, 60, 61, 65, 69, 70, 71, 76, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134], "summary": {"covered_lines": 60, "num_statements": 61, "percent_covered": 98.36065573770492, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.36065573770492, "percent_statements_covered_display": "98"}, "missing_lines": [72], "excluded_lines": [], "start_line": 21}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 17, 20, 21, 24, 25, 26, 27, 29, 30, 34, 35, 39, 40, 47, 48, 55, 56, 63, 67, 74, 87], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\backup.py": {"executed_lines": [10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 28, 35, 36, 37, 38, 40, 42, 48, 50, 52, 53, 54, 55, 60, 70, 71, 72, 73, 75, 77, 85, 86, 88, 90, 101, 103, 104, 106, 107, 109, 110, 111, 112, 114, 116, 117, 119, 120, 121, 129, 131, 132, 134, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 168, 169, 171, 172, 174, 175, 176, 177, 178, 180, 183, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 197, 199, 206, 208, 218, 219, 220, 221, 223, 233, 234, 235, 237, 238, 239, 241, 248, 250, 251, 252, 253, 255, 256, 257, 259, 270, 271, 272, 273, 274, 275, 277, 284, 285, 286, 289, 292, 299, 301, 303, 304, 306, 308, 309, 311, 312, 319, 323, 325, 326, 328, 329, 336, 340, 342, 343, 345, 346, 353, 357, 372, 373, 375, 376, 378, 379, 380, 381, 399, 403, 410, 415, 416, 418, 419, 420, 421, 422, 423, 424, 425, 426, 428, 438, 441, 442, 443, 445, 446, 452, 457, 462, 469, 470, 471, 473, 490, 492, 494, 501, 503, 518, 526, 541, 542, 543, 544, 545, 550, 556, 558, 560, 562, 564], "summary": {"covered_lines": 201, "num_statements": 237, "percent_covered": 84.81012658227849, "percent_covered_display": "85", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 84.81012658227849, "percent_statements_covered_display": "85"}, "missing_lines": [43, 44, 45, 46, 47, 56, 57, 58, 181, 320, 321, 337, 338, 354, 355, 388, 392, 400, 401, 412, 413, 439, 453, 454, 495, 499, 527, 528, 530, 532, 533, 534, 535, 537, 539, 546], "excluded_lines": [], "functions": {"BackupManager.__init__": {"executed_lines": [35, 36, 37, 38], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "BackupManager._load_index": {"executed_lines": [42, 48], "summary": {"covered_lines": 2, "num_statements": 7, "percent_covered": 28.571428571428573, "percent_covered_display": "29", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 28.571428571428573, "percent_statements_covered_display": "29"}, "missing_lines": [43, 44, 45, 46, 47], "excluded_lines": [], "start_line": 40}, "BackupManager._save_index": {"executed_lines": [52, 53, 54, 55], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [56, 57, 58], "excluded_lines": [], "start_line": 50}, "BackupManager.create_backup_session": {"executed_lines": [70, 71, 72, 73, 75, 77, 85, 86, 88], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 60}, "BackupManager.backup_file": {"executed_lines": [101, 103, 104, 106, 107, 109, 110, 111, 112, 114, 116, 117, 119, 120, 121, 129, 131, 132], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 90}, "BackupManager.backup_files": {"executed_lines": [147, 148, 149, 150, 151, 152, 153, 154, 155, 156], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "BackupManager.rollback_session": {"executed_lines": [168, 169, 171, 172, 174, 175, 176, 177, 178, 180, 183, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 197], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.65217391304348, "percent_statements_covered_display": "96"}, "missing_lines": [181], "excluded_lines": [], "start_line": 158}, "BackupManager.list_sessions": {"executed_lines": [206], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 199}, "BackupManager.get_session": {"executed_lines": [218, 219, 220, 221], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 208}, "BackupManager.clear_session": {"executed_lines": [233, 234, 235, 237, 238, 239], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 223}, "BackupManager.clear_all_sessions": {"executed_lines": [248, 250, 251, 252, 253, 255, 256, 257], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 241}, "BackupManager.update_session_git_commit": {"executed_lines": [270, 271, 272, 273, 274, 275], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 259}, "BackupManager.get_latest_session": {"executed_lines": [284, 285, 286], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 277}, "GitIntegration.__init__": {"executed_lines": [299], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 292}, "GitIntegration.is_git_repo": {"executed_lines": [303, 304], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 301}, "GitIntegration.has_uncommitted_changes": {"executed_lines": [308, 309, 311, 312, 319], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [320, 321], "excluded_lines": [], "start_line": 306}, "GitIntegration.get_current_branch": {"executed_lines": [325, 326, 328, 329, 336], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [337, 338], "excluded_lines": [], "start_line": 323}, "GitIntegration.get_current_commit": {"executed_lines": [342, 343, 345, 346, 353], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [354, 355], "excluded_lines": [], "start_line": 340}, "GitIntegration.create_pre_refactor_commit": {"executed_lines": [372, 373, 375, 376, 378, 379, 380, 381, 399, 403, 410], "summary": {"covered_lines": 11, "num_statements": 17, "percent_covered": 64.70588235294117, "percent_covered_display": "65", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 64.70588235294117, "percent_statements_covered_display": "65"}, "missing_lines": [388, 392, 400, 401, 412, 413], "excluded_lines": [], "start_line": 357}, "GitIntegration._is_valid_git_ref": {"executed_lines": [418, 419, 420, 421, 422, 423, 424, 425, 426], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 416}, "GitIntegration.git_rollback_to_commit": {"executed_lines": [438, 441, 442, 443, 445, 446, 452], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [439, 453, 454], "excluded_lines": [], "start_line": 428}, "BackupRollbackSystem.__init__": {"executed_lines": [469, 470, 471], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 462}, "BackupRollbackSystem.prepare_for_refactoring": {"executed_lines": [490, 492, 494, 501], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [495, 499], "excluded_lines": [], "start_line": 473}, "BackupRollbackSystem.rollback": {"executed_lines": [518, 526, 541, 542, 543, 544, 545, 550, 556], "summary": {"covered_lines": 9, "num_statements": 19, "percent_covered": 47.36842105263158, "percent_covered_display": "47", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 47.36842105263158, "percent_statements_covered_display": "47"}, "missing_lines": [527, 528, 530, 532, 533, 534, 535, 537, 539, 546], "excluded_lines": [], "start_line": 503}, "BackupRollbackSystem.list_sessions": {"executed_lines": [560], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 558}, "BackupRollbackSystem.clear_all": {"executed_lines": [564], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 562}, "": {"executed_lines": [10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 28, 40, 50, 60, 90, 134, 158, 199, 208, 223, 241, 259, 277, 289, 292, 301, 306, 323, 340, 357, 415, 416, 428, 457, 462, 473, 503, 558, 562], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BackupManager": {"executed_lines": [35, 36, 37, 38, 42, 48, 52, 53, 54, 55, 70, 71, 72, 73, 75, 77, 85, 86, 88, 101, 103, 104, 106, 107, 109, 110, 111, 112, 114, 116, 117, 119, 120, 121, 129, 131, 132, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 168, 169, 171, 172, 174, 175, 176, 177, 178, 180, 183, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 197, 206, 218, 219, 220, 221, 233, 234, 235, 237, 238, 239, 248, 250, 251, 252, 253, 255, 256, 257, 270, 271, 272, 273, 274, 275, 284, 285, 286], "summary": {"covered_lines": 97, "num_statements": 106, "percent_covered": 91.50943396226415, "percent_covered_display": "92", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 91.50943396226415, "percent_statements_covered_display": "92"}, "missing_lines": [43, 44, 45, 46, 47, 56, 57, 58, 181], "excluded_lines": [], "start_line": 22}, "GitIntegration": {"executed_lines": [299, 303, 304, 308, 309, 311, 312, 319, 325, 326, 328, 329, 336, 342, 343, 345, 346, 353, 372, 373, 375, 376, 378, 379, 380, 381, 399, 403, 410, 418, 419, 420, 421, 422, 423, 424, 425, 426, 438, 441, 442, 443, 445, 446, 452], "summary": {"covered_lines": 45, "num_statements": 60, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [320, 321, 337, 338, 354, 355, 388, 392, 400, 401, 412, 413, 439, 453, 454], "excluded_lines": [], "start_line": 289}, "BackupRollbackSystem": {"executed_lines": [469, 470, 471, 490, 492, 494, 501, 518, 526, 541, 542, 543, 544, 545, 550, 556, 560, 564], "summary": {"covered_lines": 18, "num_statements": 30, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [495, 499, 527, 528, 530, 532, 533, 534, 535, 537, 539, 546], "excluded_lines": [], "start_line": 457}, "": {"executed_lines": [10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 28, 40, 50, 60, 90, 134, 158, 199, 208, 223, 241, 259, 277, 289, 292, 301, 306, 323, 340, 357, 415, 416, 428, 457, 462, 473, 503, 558, 562], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\cache.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 21, 37, 38, 39, 41, 42, 44, 46, 48, 49, 52, 55, 62, 72, 74, 84, 86, 97, 100, 103, 104, 105, 106, 107, 110, 111, 133, 134, 136, 152, 155, 157, 158, 160, 163, 166, 167, 168, 169, 170, 175, 177, 179, 182, 183, 184, 186, 208, 211, 214, 215, 216, 217, 218, 223, 230, 237, 238, 240, 241, 243, 244, 245, 246, 247, 252], "summary": {"covered_lines": 74, "num_statements": 110, "percent_covered": 67.27272727272727, "percent_covered_display": "67", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 67.27272727272727, "percent_statements_covered_display": "67"}, "missing_lines": [98, 112, 113, 114, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 153, 171, 172, 180, 187, 188, 191, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 219, 220, 248, 250], "excluded_lines": [], "functions": {"ASTCache.__init__": {"executed_lines": [37, 38, 39, 41, 42, 44, 46, 48, 49, 52, 55], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 21}, "ASTCache._compute_hash": {"executed_lines": [72], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 62}, "ASTCache._get_cache_path": {"executed_lines": [84], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "ASTCache.get": {"executed_lines": [97, 100, 103, 104, 105, 106, 107, 110, 111, 133, 134], "summary": {"covered_lines": 11, "num_statements": 26, "percent_covered": 42.30769230769231, "percent_covered_display": "42", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 42.30769230769231, "percent_statements_covered_display": "42"}, "missing_lines": [98, 112, 113, 114, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129], "excluded_lines": [], "start_line": 86}, "ASTCache.put": {"executed_lines": [152, 155, 157, 158, 160, 163, 166, 167, 168, 169, 170, 175], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [153, 171, 172], "excluded_lines": [], "start_line": 136}, "ASTCache._cleanup_if_needed": {"executed_lines": [179, 182, 183, 184, 186], "summary": {"covered_lines": 5, "num_statements": 19, "percent_covered": 26.31578947368421, "percent_covered_display": "26", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 26.31578947368421, "percent_statements_covered_display": "26"}, "missing_lines": [180, 187, 188, 191, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206], "excluded_lines": [], "start_line": 177}, "ASTCache.clear": {"executed_lines": [211, 214, 215, 216, 217, 218, 223], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [219, 220], "excluded_lines": [], "start_line": 208}, "ASTCache.get_stats": {"executed_lines": [237, 238, 240, 241, 243, 244, 245, 246, 247, 252], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [248, 250], "excluded_lines": [], "start_line": 230}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 21, 62, 74, 86, 136, 177, 208, 230], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ASTCache": {"executed_lines": [37, 38, 39, 41, 42, 44, 46, 48, 49, 52, 55, 72, 84, 97, 100, 103, 104, 105, 106, 107, 110, 111, 133, 134, 152, 155, 157, 158, 160, 163, 166, 167, 168, 169, 170, 175, 179, 182, 183, 184, 186, 211, 214, 215, 216, 217, 218, 223, 237, 238, 240, 241, 243, 244, 245, 246, 247, 252], "summary": {"covered_lines": 58, "num_statements": 94, "percent_covered": 61.702127659574465, "percent_covered_display": "62", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 61.702127659574465, "percent_statements_covered_display": "62"}, "missing_lines": [98, 112, 113, 114, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 153, 171, 172, 180, 187, 188, 191, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 219, 220, 248, 250], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 21, 62, 74, 86, 136, 177, 208, 230], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config.py": {"executed_lines": [3, 4, 5, 7, 9, 10, 11, 14, 15, 19, 20, 23, 36, 47, 48, 49, 50, 53, 54, 57, 58, 61, 62, 74, 77, 84, 85, 88, 89, 90, 92, 93, 95, 96, 97, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 115, 116, 119, 120, 121, 124, 125, 128, 129, 130, 131, 134, 136, 137, 157, 160, 166, 167, 174, 175, 186, 195, 252, 254, 256, 257, 264, 265, 267], "summary": {"covered_lines": 76, "num_statements": 81, "percent_covered": 93.82716049382717, "percent_covered_display": "94", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 93.82716049382717, "percent_statements_covered_display": "94"}, "missing_lines": [172, 176, 177, 258, 259], "excluded_lines": [], "functions": {"RefactronConfig.from_file": {"executed_lines": [157, 160, 166, 167, 174, 175], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [172, 176, 177], "excluded_lines": [], "start_line": 137}, "RefactronConfig.to_file": {"executed_lines": [195, 252, 254, 256, 257], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [258, 259], "excluded_lines": [], "start_line": 186}, "RefactronConfig.default": {"executed_lines": [267], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 265}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 11, 14, 15, 19, 20, 23, 36, 47, 48, 49, 50, 53, 54, 57, 58, 61, 62, 74, 77, 84, 85, 88, 89, 90, 92, 93, 95, 96, 97, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 115, 116, 119, 120, 121, 124, 125, 128, 129, 130, 131, 134, 136, 137, 186, 264, 265], "summary": {"covered_lines": 64, "num_statements": 64, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactronConfig": {"executed_lines": [157, 160, 166, 167, 174, 175, 195, 252, 254, 256, 257, 267], "summary": {"covered_lines": 12, "num_statements": 17, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 70.58823529411765, "percent_statements_covered_display": "71"}, "missing_lines": [172, 176, 177, 258, 259], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 11, 14, 15, 19, 20, 23, 36, 47, 48, 49, 50, 53, 54, 57, 58, 61, 62, 74, 77, 84, 85, 88, 89, 90, 92, 93, 95, 96, 97, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 115, 116, 119, 120, 121, 124, 125, 128, 129, 130, 131, 134, 136, 137, 186, 264, 265], "summary": {"covered_lines": 64, "num_statements": 64, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config_loader.py": {"executed_lines": [3, 4, 5, 7, 9, 10, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 30, 31, 51, 52, 58, 59, 60, 61, 62, 77, 80, 81, 83, 86, 88, 89, 90, 98, 101, 102, 103, 110, 111, 112, 118, 124, 125, 128, 129, 132, 134, 135, 137, 138, 153, 154, 155, 158, 160, 161, 163, 166, 168, 170, 171, 193, 195, 196, 213, 214, 218, 219], "summary": {"covered_lines": 68, "num_statements": 80, "percent_covered": 85.0, "percent_covered_display": "85", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 85.0, "percent_statements_covered_display": "85"}, "missing_lines": [26, 27, 28, 70, 71, 104, 113, 121, 156, 228, 229, 231], "excluded_lines": [], "functions": {"ConfigLoader._normalize_environment": {"executed_lines": [19, 20, 21, 22, 23, 24, 25], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [26, 27, 28], "excluded_lines": [], "start_line": 17}, "ConfigLoader.load_with_profile": {"executed_lines": [51, 52, 58, 59, 60, 61, 62, 77, 80, 81, 83, 86, 88, 89, 90, 98, 101, 102, 103, 110, 111, 112, 118, 124, 125, 128, 129, 132, 134, 135], "summary": {"covered_lines": 30, "num_statements": 35, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [70, 71, 104, 113, 121], "excluded_lines": [], "start_line": 31}, "ConfigLoader._merge_config": {"executed_lines": [153, 154, 155, 158, 160, 161, 163, 166, 168], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [156], "excluded_lines": [], "start_line": 138}, "ConfigLoader.load_from_file": {"executed_lines": [193], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 171}, "ConfigLoader.migrate_config": {"executed_lines": [213, 214, 218, 219], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [228, 229, 231], "excluded_lines": [], "start_line": 196}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 13, 16, 17, 30, 31, 137, 138, 170, 171, 195, 196], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ConfigLoader": {"executed_lines": [19, 20, 21, 22, 23, 24, 25, 51, 52, 58, 59, 60, 61, 62, 77, 80, 81, 83, 86, 88, 89, 90, 98, 101, 102, 103, 110, 111, 112, 118, 124, 125, 128, 129, 132, 134, 135, 153, 154, 155, 158, 160, 161, 163, 166, 168, 193, 213, 214, 218, 219], "summary": {"covered_lines": 51, "num_statements": 63, "percent_covered": 80.95238095238095, "percent_covered_display": "81", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 80.95238095238095, "percent_statements_covered_display": "81"}, "missing_lines": [26, 27, 28, 70, 71, 104, 113, 121, 156, 228, 229, 231], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 13, 16, 17, 30, 31, 137, 138, 170, 171, 195, 196], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config_templates.py": {"executed_lines": [3, 5, 8, 11, 12, 14, 95, 96, 98, 99, 129, 131, 132, 134, 135, 156, 158, 159, 161, 162, 181, 183, 184, 197, 198, 200, 202, 204, 205, 207], "summary": {"covered_lines": 30, "num_statements": 33, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [199, 201, 203], "excluded_lines": [], "functions": {"ConfigTemplates.get_base_template": {"executed_lines": [14], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "ConfigTemplates.get_django_template": {"executed_lines": [98, 99, 129], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 96}, "ConfigTemplates.get_fastapi_template": {"executed_lines": [134, 135, 156], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 132}, "ConfigTemplates.get_flask_template": {"executed_lines": [161, 162, 181], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 159}, "ConfigTemplates.get_template": {"executed_lines": [197, 198, 200, 202, 204, 205, 207], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [199, 201, 203], "excluded_lines": [], "start_line": 184}, "": {"executed_lines": [3, 5, 8, 11, 12, 95, 96, 131, 132, 158, 159, 183, 184], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ConfigTemplates": {"executed_lines": [14, 98, 99, 129, 134, 135, 156, 161, 162, 181, 197, 198, 200, 202, 204, 205, 207], "summary": {"covered_lines": 17, "num_statements": 20, "percent_covered": 85.0, "percent_covered_display": "85", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.0, "percent_statements_covered_display": "85"}, "missing_lines": [199, 201, 203], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [3, 5, 8, 11, 12, 95, 96, 131, 132, 158, 159, 183, 184], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config_validator.py": {"executed_lines": [3, 4, 6, 9, 13, 16, 19, 30, 39, 42, 45, 47, 48, 62, 65, 66, 67, 74, 75, 76, 77, 83, 84, 85, 88, 89, 90, 96, 97, 98, 101, 102, 109, 121, 122, 123, 124, 125, 127, 131, 132, 133, 137, 145, 146, 147, 148, 149, 150, 156, 157, 159, 163, 183, 184, 185, 186, 190, 191, 192, 193, 198, 199, 200, 203, 204, 205, 212, 218, 219, 220, 221, 223, 227, 229, 230, 231, 232, 236, 243, 244, 245, 246, 252, 253, 254, 258, 259, 262, 267, 273, 275, 276, 289, 290], "summary": {"covered_lines": 95, "num_statements": 112, "percent_covered": 84.82142857142857, "percent_covered_display": "85", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 84.82142857142857, "percent_statements_covered_display": "85"}, "missing_lines": [86, 99, 103, 126, 128, 134, 151, 158, 160, 187, 201, 206, 222, 224, 233, 247, 255], "excluded_lines": [], "functions": {"ConfigValidator.validate": {"executed_lines": [62, 65, 66, 67, 74, 75, 76, 77, 83, 84, 85, 88, 89, 90, 96, 97, 98, 101, 102, 109, 121, 122, 123, 124, 125, 127, 131, 132, 133, 137, 145, 146, 147, 148, 149, 150, 156, 157, 159, 163, 183, 184, 185, 186, 190, 191, 192, 193, 198, 199, 200, 203, 204, 205, 212, 218, 219, 220, 221, 223, 227, 229, 230, 231, 232, 236, 243, 244, 245, 246, 252, 253, 254, 258, 259, 262, 267, 273], "summary": {"covered_lines": 78, "num_statements": 95, "percent_covered": 82.10526315789474, "percent_covered_display": "82", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 82.10526315789474, "percent_statements_covered_display": "82"}, "missing_lines": [86, 99, 103, 126, 128, 134, 151, 158, 160, 187, 201, 206, 222, 224, 233, 247, 255], "excluded_lines": [], "start_line": 48}, "ConfigValidator.validate_version_compatibility": {"executed_lines": [289, 290], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 276}, "": {"executed_lines": [3, 4, 6, 9, 13, 16, 19, 30, 39, 42, 45, 47, 48, 275, 276], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ConfigValidator": {"executed_lines": [62, 65, 66, 67, 74, 75, 76, 77, 83, 84, 85, 88, 89, 90, 96, 97, 98, 101, 102, 109, 121, 122, 123, 124, 125, 127, 131, 132, 133, 137, 145, 146, 147, 148, 149, 150, 156, 157, 159, 163, 183, 184, 185, 186, 190, 191, 192, 193, 198, 199, 200, 203, 204, 205, 212, 218, 219, 220, 221, 223, 227, 229, 230, 231, 232, 236, 243, 244, 245, 246, 252, 253, 254, 258, 259, 262, 267, 273, 289, 290], "summary": {"covered_lines": 80, "num_statements": 97, "percent_covered": 82.47422680412372, "percent_covered_display": "82", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 82.47422680412372, "percent_statements_covered_display": "82"}, "missing_lines": [86, 99, 103, 126, 128, 134, 151, 158, 160, 187, 201, 206, 222, 224, 233, 247, 255], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [3, 4, 6, 9, 13, 16, 19, 30, 39, 42, 45, 47, 48, 275, 276], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\credentials.py": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 30, 41, 42, 61, 63, 66, 81, 83, 84, 85, 99], "summary": {"covered_lines": 27, "num_statements": 58, "percent_covered": 46.55172413793103, "percent_covered_display": "47", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 46.55172413793103, "percent_statements_covered_display": "47"}, "missing_lines": [31, 43, 44, 45, 46, 47, 48, 50, 68, 69, 70, 75, 76, 77, 78, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 106], "excluded_lines": [], "functions": {"RefactronCredentials.to_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31], "excluded_lines": [], "start_line": 30}, "RefactronCredentials.from_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [43, 44, 45, 46, 47, 48, 50], "excluded_lines": [], "start_line": 42}, "credentials_path": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "save_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [68, 69, 70, 75, 76, 77, 78], "excluded_lines": [], "start_line": 66}, "load_credentials": {"executed_lines": [83, 84, 85], "summary": {"covered_lines": 3, "num_statements": 13, "percent_covered": 23.076923076923077, "percent_covered_display": "23", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 23.076923076923077, "percent_statements_covered_display": "23"}, "missing_lines": [86, 87, 88, 89, 90, 91, 93, 94, 95, 96], "excluded_lines": [], "start_line": 81}, "delete_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [101, 102, 103, 104, 105, 106], "excluded_lines": [], "start_line": 99}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 30, 41, 42, 61, 66, 81, 99], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactronCredentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31, 43, 44, 45, 46, 47, 48, 50], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 30, 41, 42, 61, 63, 66, 81, 83, 84, 85, 99], "summary": {"covered_lines": 27, "num_statements": 50, "percent_covered": 54.0, "percent_covered_display": "54", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 54.0, "percent_statements_covered_display": "54"}, "missing_lines": [68, 69, 70, 75, 76, 77, 78, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 106], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\device_auth.py": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 44, 49, 76, 110], "summary": {"covered_lines": 30, "num_statements": 96, "percent_covered": 31.25, "percent_covered_display": "31", "missing_lines": 66, "excluded_lines": 0, "percent_statements_covered": 31.25, "percent_statements_covered_display": "31"}, "missing_lines": [41, 45, 46, 50, 51, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 101, 119, 120, 121, 123, 124, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 163, 164, 166, 175], "excluded_lines": [], "functions": {"TokenResponse.expires_at": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 40}, "_normalize_base_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [45, 46], "excluded_lines": [], "start_line": 44}, "_post_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [50, 51, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "excluded_lines": [], "start_line": 49}, "start_device_authorization": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [81, 82, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 101], "excluded_lines": [], "start_line": 76}, "poll_for_token": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [119, 120, 121, 123, 124, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 163, 164, 166, 175], "excluded_lines": [], "start_line": 110}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 44, 49, 76, 110], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DeviceAuthorization": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "TokenResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 32}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 44, 49, 76, 110], "summary": {"covered_lines": 30, "num_statements": 95, "percent_covered": 31.57894736842105, "percent_covered_display": "32", "missing_lines": 65, "excluded_lines": 0, "percent_statements_covered": 31.57894736842105, "percent_statements_covered_display": "32"}, "missing_lines": [45, 46, 50, 51, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 101, 119, 120, 121, 123, 124, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 163, 164, 166, 175], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\exceptions.py": {"executed_lines": [7, 8, 11, 18, 31, 32, 33, 35, 37, 38, 39, 40, 41, 42, 45, 56, 71, 74, 75, 76, 77, 78, 80, 82, 84, 86, 87, 88, 91, 92, 93, 94, 95, 96, 99, 110, 125, 128, 129, 130, 131, 132, 136, 140, 142, 144, 145, 146, 149, 150, 151, 152, 153, 154, 157, 168, 183, 186, 187, 188, 191, 192, 193, 194, 196, 198, 200, 202, 203, 204, 207, 208, 209, 210, 211, 212], "summary": {"covered_lines": 76, "num_statements": 76, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"RefactronError.__init__": {"executed_lines": [31, 32, 33], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "RefactronError.__str__": {"executed_lines": [37, 38, 39, 40, 41, 42], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "AnalysisError.__init__": {"executed_lines": [71, 74, 75, 76, 77, 78, 80, 82], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "AnalysisError.__str__": {"executed_lines": [86, 87, 88, 91, 92, 93, 94, 95, 96], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 84}, "RefactoringError.__init__": {"executed_lines": [125, 128, 129, 130, 131, 132, 136, 140], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 110}, "RefactoringError.__str__": {"executed_lines": [144, 145, 146, 149, 150, 151, 152, 153, 154], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 142}, "ConfigError.__init__": {"executed_lines": [183, 186, 187, 188, 191, 192, 193, 194, 196, 198], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 168}, "ConfigError.__str__": {"executed_lines": [202, 203, 204, 207, 208, 209, 210, 211, 212], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 200}, "": {"executed_lines": [7, 8, 11, 18, 35, 45, 56, 84, 99, 110, 142, 157, 168, 200], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactronError": {"executed_lines": [31, 32, 33, 37, 38, 39, 40, 41, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "AnalysisError": {"executed_lines": [71, 74, 75, 76, 77, 78, 80, 82, 86, 87, 88, 91, 92, 93, 94, 95, 96], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "RefactoringError": {"executed_lines": [125, 128, 129, 130, 131, 132, 136, 140, 144, 145, 146, 149, 150, 151, 152, 153, 154], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 99}, "ConfigError": {"executed_lines": [183, 186, 187, 188, 191, 192, 193, 194, 196, 198, 202, 203, 204, 207, 208, 209, 210, 211, 212], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 157}, "": {"executed_lines": [7, 8, 11, 18, 35, 45, 56, 84, 99, 110, 142, 157, 168, 200], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\false_positive_tracker.py": {"executed_lines": [3, 4, 5, 8, 11, 18, 19, 20, 22, 24, 25, 26, 27, 28, 34, 36, 38, 39, 40, 41, 43, 51, 52, 53, 54, 56, 67, 69, 79, 81, 88, 89, 90, 92, 94, 95], "summary": {"covered_lines": 36, "num_statements": 38, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [31, 32], "excluded_lines": [], "functions": {"FalsePositiveTracker.__init__": {"executed_lines": [18, 19, 20], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "FalsePositiveTracker.load": {"executed_lines": [24, 25, 26, 27, 28, 34], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [31, 32], "excluded_lines": [], "start_line": 22}, "FalsePositiveTracker.save": {"executed_lines": [38, 39, 40, 41], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "FalsePositiveTracker.mark_false_positive": {"executed_lines": [51, 52, 53, 54], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "FalsePositiveTracker.is_false_positive": {"executed_lines": [67], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "FalsePositiveTracker.get_false_positive_patterns": {"executed_lines": [79], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 69}, "FalsePositiveTracker.clear_rule": {"executed_lines": [88, 89, 90], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 81}, "FalsePositiveTracker.clear_all": {"executed_lines": [94, 95], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 92}, "": {"executed_lines": [3, 4, 5, 8, 11, 22, 36, 43, 56, 69, 81, 92], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FalsePositiveTracker": {"executed_lines": [18, 19, 20, 24, 25, 26, 27, 28, 34, 38, 39, 40, 41, 51, 52, 53, 54, 67, 79, 88, 89, 90, 94, 95], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [31, 32], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [3, 4, 5, 8, 11, 22, 36, 43, 56, 69, 81, 92], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\incremental.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 20, 32, 34, 35, 37, 39, 42, 45, 47, 48, 50, 52, 53, 54, 55, 56, 61, 63, 66, 68, 70, 71, 72, 76, 86, 89, 92, 95, 96, 97, 98, 104, 105, 106, 108, 109, 110, 113, 114, 115, 117, 119, 129, 132, 134, 135, 136, 138, 139, 141, 143, 150, 153, 156, 158, 159, 160, 161, 168, 184, 206, 208, 210, 212, 213, 215, 216, 217, 218, 222, 229], "summary": {"covered_lines": 78, "num_statements": 112, "percent_covered": 69.64285714285714, "percent_covered_display": "70", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 69.64285714285714, "percent_statements_covered_display": "70"}, "missing_lines": [57, 58, 59, 64, 73, 74, 87, 90, 99, 100, 101, 130, 151, 154, 165, 166, 175, 176, 178, 179, 180, 181, 182, 191, 192, 194, 196, 198, 200, 201, 203, 204, 219, 220], "excluded_lines": [], "functions": {"IncrementalAnalysisTracker.__init__": {"executed_lines": [32, 34, 35, 37, 39, 42, 45, 47, 48], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "IncrementalAnalysisTracker._load_state": {"executed_lines": [52, 53, 54, 55, 56], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [57, 58, 59], "excluded_lines": [], "start_line": 50}, "IncrementalAnalysisTracker._save_state": {"executed_lines": [63, 66, 68, 70, 71, 72], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [64, 73, 74], "excluded_lines": [], "start_line": 61}, "IncrementalAnalysisTracker.has_file_changed": {"executed_lines": [86, 89, 92, 95, 96, 97, 98, 104, 105, 106, 108, 109, 110, 113, 114, 115, 117], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 77.27272727272727, "percent_statements_covered_display": "77"}, "missing_lines": [87, 90, 99, 100, 101], "excluded_lines": [], "start_line": 76}, "IncrementalAnalysisTracker.get_changed_files": {"executed_lines": [129, 132, 134, 135, 136, 138, 139, 141], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [130], "excluded_lines": [], "start_line": 119}, "IncrementalAnalysisTracker.update_file_state": {"executed_lines": [150, 153, 156, 158, 159, 160, 161], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 63.63636363636363, "percent_statements_covered_display": "64"}, "missing_lines": [151, 154, 165, 166], "excluded_lines": [], "start_line": 143}, "IncrementalAnalysisTracker.remove_file_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [175, 176, 178, 179, 180, 181, 182], "excluded_lines": [], "start_line": 168}, "IncrementalAnalysisTracker.cleanup_missing_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [191, 192, 194, 196, 198, 200, 201, 203, 204], "excluded_lines": [], "start_line": 184}, "IncrementalAnalysisTracker.save": {"executed_lines": [208], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 206}, "IncrementalAnalysisTracker.clear": {"executed_lines": [212, 213, 215, 216, 217, 218], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [219, 220], "excluded_lines": [], "start_line": 210}, "IncrementalAnalysisTracker.get_stats": {"executed_lines": [229], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 222}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 20, 50, 61, 76, 119, 143, 168, 184, 206, 210, 222], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IncrementalAnalysisTracker": {"executed_lines": [32, 34, 35, 37, 39, 42, 45, 47, 48, 52, 53, 54, 55, 56, 63, 66, 68, 70, 71, 72, 86, 89, 92, 95, 96, 97, 98, 104, 105, 106, 108, 109, 110, 113, 114, 115, 117, 129, 132, 134, 135, 136, 138, 139, 141, 150, 153, 156, 158, 159, 160, 161, 208, 212, 213, 215, 216, 217, 218, 229], "summary": {"covered_lines": 60, "num_statements": 94, "percent_covered": 63.829787234042556, "percent_covered_display": "64", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 63.829787234042556, "percent_statements_covered_display": "64"}, "missing_lines": [57, 58, 59, 64, 73, 74, 87, 90, 99, 100, 101, 130, 151, 154, 165, 166, 175, 176, 178, 179, 180, 181, 182, 191, 192, 194, 196, 198, 200, 201, 203, 204, 219, 220], "excluded_lines": [], "start_line": 12}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 20, 50, 61, 76, 119, 143, 168, 184, 206, 210, 222], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\logging_config.py": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 16, 19, 28, 39, 40, 47, 48, 50, 53, 56, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 93, 95, 96, 98, 101, 102, 105, 106, 108, 114, 115, 116, 117, 118, 121, 123, 125, 130, 131, 132, 134, 140, 142, 170, 193], "summary": {"covered_lines": 53, "num_statements": 59, "percent_covered": 89.83050847457628, "percent_covered_display": "90", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 89.83050847457628, "percent_statements_covered_display": "90"}, "missing_lines": [152, 153, 155, 164, 165, 167], "excluded_lines": [], "functions": {"JSONFormatter.format": {"executed_lines": [28, 39, 40, 47, 48, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "StructuredLogger.__init__": {"executed_lines": [79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 93, 95, 96], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "StructuredLogger._setup_logger": {"executed_lines": [101, 102, 105, 106, 108, 114, 115, 116, 117, 118, 121, 123, 125, 130, 131, 132], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 98}, "StructuredLogger.get_logger": {"executed_lines": [140], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "StructuredLogger.log_with_context": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [152, 153, 155, 164, 165, 167], "excluded_lines": [], "start_line": 142}, "setup_logging": {"executed_lines": [193], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 170}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 16, 19, 53, 56, 98, 134, 142, 170], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"JSONFormatter": {"executed_lines": [28, 39, 40, 47, 48, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "StructuredLogger": {"executed_lines": [79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 93, 95, 96, 101, 102, 105, 106, 108, 114, 115, 116, 117, 118, 121, 123, 125, 130, 131, 132, 140], "summary": {"covered_lines": 31, "num_statements": 37, "percent_covered": 83.78378378378379, "percent_covered_display": "84", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 83.78378378378379, "percent_statements_covered_display": "84"}, "missing_lines": [152, 153, 155, 164, 165, 167], "excluded_lines": [], "start_line": 53}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 16, 19, 53, 56, 98, 134, 142, 170, 193], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\memory_profiler.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 15, 23, 25, 33, 40, 54, 55, 56, 57, 60, 61, 62, 64, 65, 66, 67, 71, 78, 79, 80, 81, 83, 100, 110, 113, 114, 115, 116, 118, 129, 133, 134, 136, 142, 157, 161, 164, 167, 170, 173, 176, 178, 179, 181, 183, 205, 212, 215, 218, 223, 224, 226, 228, 237, 244, 246, 256, 258, 264, 283], "summary": {"covered_lines": 68, "num_statements": 101, "percent_covered": 67.32673267326733, "percent_covered_display": "67", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 67.32673267326733, "percent_statements_covered_display": "67"}, "missing_lines": [68, 69, 89, 90, 93, 111, 130, 131, 158, 159, 197, 199, 200, 201, 203, 213, 230, 231, 233, 234, 235, 275, 276, 277, 278, 279, 280, 293, 294, 295, 296, 297, 298], "excluded_lines": [], "functions": {"MemorySnapshot.__str__": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "MemoryProfiler.__init__": {"executed_lines": [54, 55, 56, 57, 60, 61, 62, 64, 65, 66, 67], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [68, 69], "excluded_lines": [], "start_line": 40}, "MemoryProfiler.get_current_memory": {"executed_lines": [78, 79, 80, 81, 83], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [89, 90, 93], "excluded_lines": [], "start_line": 71}, "MemoryProfiler.snapshot": {"executed_lines": [110, 113, 114, 115, 116], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [111], "excluded_lines": [], "start_line": 100}, "MemoryProfiler.compare": {"executed_lines": [129, 133, 134, 136], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [130, 131], "excluded_lines": [], "start_line": 118}, "MemoryProfiler.profile_function": {"executed_lines": [157, 161, 164, 167, 170, 173, 176, 178, 179, 181], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [158, 159], "excluded_lines": [], "start_line": 142}, "MemoryProfiler.optimize_for_large_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [197, 199, 200, 201, 203], "excluded_lines": [], "start_line": 183}, "MemoryProfiler.check_memory_pressure": {"executed_lines": [212, 215, 218, 223, 224, 226], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [213], "excluded_lines": [], "start_line": 205}, "MemoryProfiler.suggest_gc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [230, 231, 233, 234, 235], "excluded_lines": [], "start_line": 228}, "MemoryProfiler.get_stats": {"executed_lines": [244, 246], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 237}, "MemoryProfiler.clear_snapshots": {"executed_lines": [258], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 256}, "stream_large_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [275, 276, 277, 278, 279, 280], "excluded_lines": [], "start_line": 264}, "estimate_file_size_mb": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [293, 294, 295, 296, 297, 298], "excluded_lines": [], "start_line": 283}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 15, 23, 33, 40, 71, 100, 118, 142, 183, 205, 228, 237, 256, 264, 283], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"MemorySnapshot": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "MemoryProfiler": {"executed_lines": [54, 55, 56, 57, 60, 61, 62, 64, 65, 66, 67, 78, 79, 80, 81, 83, 110, 113, 114, 115, 116, 129, 133, 134, 136, 157, 161, 164, 167, 170, 173, 176, 178, 179, 181, 212, 215, 218, 223, 224, 226, 244, 246, 258], "summary": {"covered_lines": 44, "num_statements": 65, "percent_covered": 67.6923076923077, "percent_covered_display": "68", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 67.6923076923077, "percent_statements_covered_display": "68"}, "missing_lines": [68, 69, 89, 90, 93, 111, 130, 131, 158, 159, 197, 199, 200, 201, 203, 213, 230, 231, 233, 234, 235], "excluded_lines": [], "start_line": 33}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 15, 23, 33, 40, 71, 100, 118, 142, 183, 205, 228, 237, 256, 264, 283], "summary": {"covered_lines": 23, "num_statements": 35, "percent_covered": 65.71428571428571, "percent_covered_display": "66", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 65.71428571428571, "percent_statements_covered_display": "66"}, "missing_lines": [275, 276, 277, 278, 279, 280, 293, 294, 295, 296, 297, 298], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\metrics.py": {"executed_lines": [9, 10, 11, 12, 13, 14, 17, 18, 25, 26, 29, 30, 33, 34, 42, 45, 48, 51, 53, 56, 57, 58, 61, 62, 63, 66, 67, 68, 71, 72, 73, 74, 75, 77, 79, 80, 82, 84, 85, 87, 108, 109, 118, 120, 121, 122, 123, 126, 127, 129, 136, 137, 138, 140, 142, 143, 145, 147, 148, 150, 169, 170, 178, 180, 181, 182, 184, 186, 192, 193, 194, 195, 197, 198, 199, 203, 204, 205, 210, 221, 227, 228, 229, 230, 232, 233, 234, 238, 239, 240, 241, 244, 245, 246, 248, 258, 264, 270, 272, 273, 274, 275, 276, 277, 279, 280, 281, 282, 284, 285, 286, 287, 288, 292, 293, 296, 303, 304, 305, 306, 309, 311, 312, 313], "summary": {"covered_lines": 124, "num_statements": 124, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"MetricsCollector.__init__": {"executed_lines": [53, 56, 57, 58, 61, 62, 63, 66, 67, 68, 71, 72, 73, 74, 75], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 51}, "MetricsCollector.start_analysis": {"executed_lines": [79, 80], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 77}, "MetricsCollector.end_analysis": {"executed_lines": [84, 85], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 82}, "MetricsCollector.record_file_analysis": {"executed_lines": [108, 109, 118, 120, 121, 122, 123, 126, 127], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 87}, "MetricsCollector.record_analyzer_hit": {"executed_lines": [136, 137, 138], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 129}, "MetricsCollector.start_refactoring": {"executed_lines": [142, 143], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 140}, "MetricsCollector.end_refactoring": {"executed_lines": [147, 148], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "MetricsCollector.record_refactoring": {"executed_lines": [169, 170, 178, 180, 181, 182, 184], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 150}, "MetricsCollector.get_analysis_summary": {"executed_lines": [192, 193, 194, 195, 197, 198, 199, 203, 204, 205, 210], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 186}, "MetricsCollector.get_refactoring_summary": {"executed_lines": [227, 228, 229, 230, 232, 233, 234, 238, 239, 240, 241, 244, 245, 246, 248], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 221}, "MetricsCollector.get_combined_summary": {"executed_lines": [264], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 258}, "MetricsCollector.reset": {"executed_lines": [272, 273, 274, 275, 276, 277, 279, 280, 281, 282, 284, 285, 286, 287, 288], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 270}, "get_metrics_collector": {"executed_lines": [303, 304, 305, 306], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 296}, "reset_metrics_collector": {"executed_lines": [311, 312, 313], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 309}, "": {"executed_lines": [9, 10, 11, 12, 13, 14, 17, 18, 25, 26, 29, 30, 33, 34, 42, 45, 48, 51, 77, 82, 87, 129, 140, 145, 150, 186, 221, 258, 270, 292, 293, 296, 309], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FileMetric": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "RefactoringMetric": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 34}, "MetricsCollector": {"executed_lines": [53, 56, 57, 58, 61, 62, 63, 66, 67, 68, 71, 72, 73, 74, 75, 79, 80, 84, 85, 108, 109, 118, 120, 121, 122, 123, 126, 127, 136, 137, 138, 142, 143, 147, 148, 169, 170, 178, 180, 181, 182, 184, 192, 193, 194, 195, 197, 198, 199, 203, 204, 205, 210, 227, 228, 229, 230, 232, 233, 234, 238, 239, 240, 241, 244, 245, 246, 248, 264, 272, 273, 274, 275, 276, 277, 279, 280, 281, 282, 284, 285, 286, 287, 288], "summary": {"covered_lines": 84, "num_statements": 84, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 48}, "": {"executed_lines": [9, 10, 11, 12, 13, 14, 17, 18, 25, 26, 29, 30, 33, 34, 42, 45, 48, 51, 77, 82, 87, 129, 140, 145, 150, 186, 221, 258, 270, 292, 293, 296, 303, 304, 305, 306, 309, 311, 312, 313], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\models.py": {"executed_lines": [3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 57, 58, 69, 71, 72, 75, 76, 77, 79, 80, 81, 83, 84, 85, 88, 89, 99, 100, 101, 103], "summary": {"covered_lines": 54, "num_statements": 56, "percent_covered": 96.42857142857143, "percent_covered_display": "96", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.42857142857143, "percent_statements_covered_display": "96"}, "missing_lines": [73, 104], "excluded_lines": [], "functions": {"CodeIssue.__str__": {"executed_lines": [53, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 52}, "FileMetrics.total_lines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [73], "excluded_lines": [], "start_line": 72}, "FileMetrics.issue_count": {"executed_lines": [77], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 76}, "FileMetrics.critical_issues": {"executed_lines": [81], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 80}, "FileMetrics.error_issues": {"executed_lines": [85], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 84}, "RefactoringOperation.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [104], "excluded_lines": [], "start_line": 103}, "": {"executed_lines": [3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 44, 45, 46, 47, 48, 49, 50, 52, 57, 58, 69, 71, 72, 75, 76, 79, 80, 83, 84, 88, 89, 99, 100, 101, 103], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IssueLevel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "IssueCategory": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "CodeIssue": {"executed_lines": [53, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "FileMetrics": {"executed_lines": [77, 81, 85], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [73], "excluded_lines": [], "start_line": 58}, "RefactoringOperation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [104], "excluded_lines": [], "start_line": 89}, "": {"executed_lines": [3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 44, 45, 46, 47, 48, 49, 50, 52, 57, 58, 69, 71, 72, 75, 76, 79, 80, 83, 84, 88, 89, 99, 100, 101, 103], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\parallel.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 12, 15, 22, 37, 38, 40, 42, 44, 46, 49, 52, 58, 76, 78, 81, 84, 86, 93, 94, 96, 97, 98, 99, 101, 114, 117, 119, 126, 127, 128, 130, 132, 137, 138, 139, 141, 142, 143, 144, 145, 146, 159, 162, 164, 221, 228], "summary": {"covered_lines": 53, "num_statements": 92, "percent_covered": 57.608695652173914, "percent_covered_display": "58", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 57.608695652173914, "percent_statements_covered_display": "58"}, "missing_lines": [50, 82, 100, 102, 103, 104, 105, 115, 147, 148, 149, 150, 160, 177, 178, 179, 181, 182, 184, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 211, 212, 213, 214, 216, 217, 219], "excluded_lines": [], "functions": {"ParallelProcessor.__init__": {"executed_lines": [37, 38, 40, 42, 44, 46, 49, 52], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [50], "excluded_lines": [], "start_line": 22}, "ParallelProcessor.process_files": {"executed_lines": [76, 78, 81, 84], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [82], "excluded_lines": [], "start_line": 58}, "ParallelProcessor._process_sequential": {"executed_lines": [93, 94, 96, 97, 98, 99, 101, 114, 117], "summary": {"covered_lines": 9, "num_statements": 15, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [100, 102, 103, 104, 105, 115], "excluded_lines": [], "start_line": 86}, "ParallelProcessor._process_parallel_threads": {"executed_lines": [126, 127, 128, 130, 132, 137, 138, 139, 141, 142, 143, 144, 145, 146, 159, 162], "summary": {"covered_lines": 16, "num_statements": 21, "percent_covered": 76.19047619047619, "percent_covered_display": "76", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 76.19047619047619, "percent_statements_covered_display": "76"}, "missing_lines": [147, 148, 149, 150, 160], "excluded_lines": [], "start_line": 119}, "ParallelProcessor._process_parallel_processes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 26, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 26, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [177, 178, 179, 181, 182, 184, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 211, 212, 213, 214, 216, 217, 219], "excluded_lines": [], "start_line": 164}, "ParallelProcessor.get_config": {"executed_lines": [228], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 221}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 12, 15, 22, 58, 86, 119, 164, 221], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ParallelProcessor": {"executed_lines": [37, 38, 40, 42, 44, 46, 49, 52, 76, 78, 81, 84, 93, 94, 96, 97, 98, 99, 101, 114, 117, 126, 127, 128, 130, 132, 137, 138, 139, 141, 142, 143, 144, 145, 146, 159, 162, 228], "summary": {"covered_lines": 38, "num_statements": 77, "percent_covered": 49.35064935064935, "percent_covered_display": "49", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 49.35064935064935, "percent_statements_covered_display": "49"}, "missing_lines": [50, 82, 100, 102, 103, 104, 105, 115, 147, 148, 149, 150, 160, 177, 178, 179, 181, 182, 184, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 211, 212, 213, 214, 216, 217, 219], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 12, 15, 22, 58, 86, 119, 164, 221], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\prometheus_metrics.py": {"executed_lines": [7, 8, 9, 11, 14, 17, 19, 21, 27, 28, 31, 34, 35, 36, 37, 39, 42, 43, 44, 46, 47, 48, 49, 51, 54, 55, 56, 58, 62, 63, 67, 69, 70, 71, 72, 75, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 97, 99, 102, 103, 107, 109, 112, 113, 116, 118, 121, 122, 125, 127, 131, 132, 136, 138, 141, 142, 145, 148, 151, 152, 153, 154, 155, 156, 157, 160, 163, 164, 165, 166, 169, 170, 171, 173, 176, 179, 181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 197, 198, 199, 201, 203, 206, 209, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 232, 233, 234, 235, 237, 243, 247, 248, 251, 262, 263, 264, 265, 266, 269, 272, 273, 274, 275, 278, 284], "summary": {"covered_lines": 143, "num_statements": 143, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"PrometheusMetrics.__init__": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "PrometheusMetrics.format_metrics": {"executed_lines": [27, 28, 31, 34, 35, 36, 37, 39, 42, 43, 44, 46, 47, 48, 49, 51, 54, 55, 56, 58, 62, 63, 67, 69, 70, 71, 72, 75, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 97, 99, 102, 103, 107, 109, 112, 113, 116, 118, 121, 122, 125, 127, 131, 132, 136, 138, 141, 142, 145, 148, 151, 152, 153, 154, 155, 156, 157, 160, 163, 164, 165, 166, 169, 170, 171, 173], "summary": {"covered_lines": 81, "num_statements": 81, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 21}, "MetricsHTTPHandler.do_GET": {"executed_lines": [181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 197, 198, 199], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 179}, "MetricsHTTPHandler.log_message": {"executed_lines": [203], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 201}, "PrometheusMetricsServer.__init__": {"executed_lines": [216, 217, 218, 219], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 209}, "PrometheusMetricsServer.start": {"executed_lines": [223, 224, 226, 227, 228], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 221}, "PrometheusMetricsServer.stop": {"executed_lines": [232, 233, 234, 235], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 230}, "PrometheusMetricsServer.is_running": {"executed_lines": [243], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 237}, "start_metrics_server": {"executed_lines": [262, 263, 264, 265, 266], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 251}, "stop_metrics_server": {"executed_lines": [272, 273, 274, 275], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 269}, "get_metrics_server": {"executed_lines": [284], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 278}, "": {"executed_lines": [7, 8, 9, 11, 14, 17, 21, 176, 179, 201, 206, 209, 221, 230, 237, 247, 248, 251, 269, 278], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PrometheusMetrics": {"executed_lines": [19, 27, 28, 31, 34, 35, 36, 37, 39, 42, 43, 44, 46, 47, 48, 49, 51, 54, 55, 56, 58, 62, 63, 67, 69, 70, 71, 72, 75, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 97, 99, 102, 103, 107, 109, 112, 113, 116, 118, 121, 122, 125, 127, 131, 132, 136, 138, 141, 142, 145, 148, 151, 152, 153, 154, 155, 156, 157, 160, 163, 164, 165, 166, 169, 170, 171, 173], "summary": {"covered_lines": 82, "num_statements": 82, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "MetricsHTTPHandler": {"executed_lines": [181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 197, 198, 199, 203], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 176}, "PrometheusMetricsServer": {"executed_lines": [216, 217, 218, 219, 223, 224, 226, 227, 228, 232, 233, 234, 235, 243], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 206}, "": {"executed_lines": [7, 8, 9, 11, 14, 17, 21, 176, 179, 201, 206, 209, 221, 230, 237, 247, 248, 251, 262, 263, 264, 265, 266, 269, 272, 273, 274, 275, 278, 284], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\refactor_result.py": {"executed_lines": [3, 4, 5, 7, 10, 11, 14, 15, 16, 18, 19, 23, 24, 28, 29, 33, 39, 49, 53, 57, 96, 135], "summary": {"covered_lines": 22, "num_statements": 91, "percent_covered": 24.175824175824175, "percent_covered_display": "24", "missing_lines": 69, "excluded_lines": 0, "percent_statements_covered": 24.175824175824175, "percent_statements_covered_display": "24"}, "missing_lines": [21, 26, 31, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 51, 55, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 93, 94, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 117, 118, 119, 120, 124, 126, 127, 129, 130, 132, 133, 137], "excluded_lines": [], "functions": {"RefactorResult.total_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [21], "excluded_lines": [], "start_line": 19}, "RefactorResult.high_risk_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [26], "excluded_lines": [], "start_line": 24}, "RefactorResult.safe_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31], "excluded_lines": [], "start_line": 29}, "RefactorResult.top_ranked_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35, 36, 37], "excluded_lines": [], "start_line": 33}, "RefactorResult.get_ranking_score": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41, 42, 43, 44, 45, 46, 47], "excluded_lines": [], "start_line": 39}, "RefactorResult.operations_by_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [51], "excluded_lines": [], "start_line": 49}, "RefactorResult.operations_by_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [55], "excluded_lines": [], "start_line": 53}, "RefactorResult.show_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 93, 94], "excluded_lines": [], "start_line": 57}, "RefactorResult.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 117, 118, 119, 120, 124, 126, 127, 129, 130, 132, 133], "excluded_lines": [], "start_line": 96}, "RefactorResult.summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [137], "excluded_lines": [], "start_line": 135}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 14, 15, 16, 18, 19, 23, 24, 28, 29, 33, 39, 49, 53, 57, 96, 135], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactorResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 69, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 69, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [21, 26, 31, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 51, 55, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 93, 94, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 117, 118, 119, 120, 124, 126, 127, 129, 130, 132, 133, 137], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 14, 15, 16, 18, 19, 23, 24, 28, 29, 33, 39, 49, 53, 57, 96, 135], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\refactron.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 42, 52, 59, 60, 61, 64, 75, 76, 81, 84, 87, 101, 108, 113, 119, 126, 127, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 141, 144, 145, 151, 152, 154, 160, 173, 175, 176, 178, 180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, 196, 198, 199, 201, 203, 204, 206, 207, 209, 210, 212, 213, 215, 216, 218, 234, 235, 238, 241, 243, 246, 247, 249, 252, 253, 254, 255, 257, 260, 261, 266, 269, 270, 273, 274, 276, 277, 278, 279, 285, 297, 302, 303, 304, 307, 308, 309, 310, 311, 314, 315, 316, 317, 318, 339, 340, 343, 344, 347, 358, 364, 366, 379, 381, 382, 383, 384, 386, 387, 388, 397, 420, 421, 422, 423, 424, 426, 443, 446, 447, 448, 449, 450, 454, 455, 456, 457, 473, 474, 475, 484, 486, 508, 510, 513, 514, 516, 518, 520, 521, 522, 523, 524, 526, 533, 534, 536, 537, 538, 539, 544, 549, 552, 553, 559, 561, 578, 579, 580, 581, 582, 592, 595, 596, 599, 600, 603, 604, 605, 607, 609, 613, 622, 624, 626, 628, 629, 632, 636, 637, 638, 639, 640, 642, 644, 646, 648, 650, 651, 654, 656, 663, 670, 689, 694, 696, 697, 700, 701, 702, 703, 706, 707, 708, 709, 710, 714, 723, 724, 733, 745, 746, 749, 750, 751, 752, 753, 764, 779, 782, 791, 792, 793, 794, 795, 797, 801, 803, 804, 805, 806, 807], "summary": {"covered_lines": 275, "num_statements": 342, "percent_covered": 80.4093567251462, "percent_covered_display": "80", "missing_lines": 67, "excluded_lines": 0, "percent_statements_covered": 80.4093567251462, "percent_statements_covered_display": "80"}, "missing_lines": [78, 82, 88, 89, 93, 97, 98, 161, 162, 167, 168, 169, 170, 171, 239, 244, 286, 287, 288, 294, 326, 327, 328, 329, 348, 349, 350, 359, 360, 361, 362, 401, 403, 404, 405, 414, 436, 437, 460, 463, 464, 466, 511, 528, 530, 540, 541, 555, 557, 586, 587, 597, 610, 611, 614, 616, 633, 634, 652, 725, 726, 757, 759, 761, 762, 796, 799], "excluded_lines": [], "functions": {"Refactron.__init__": {"executed_lines": [59, 60, 61, 64, 75, 76, 81, 84, 87, 101, 108, 113, 119, 126, 127, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 141, 144, 145, 151, 152, 154, 160, 173, 175, 176], "summary": {"covered_lines": 35, "num_statements": 49, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [78, 82, 88, 89, 93, 97, 98, 161, 162, 167, 168, 169, 170, 171], "excluded_lines": [], "start_line": 52}, "Refactron._initialize_analyzers": {"executed_lines": [180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, 196, 198, 199], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 178}, "Refactron._initialize_refactorers": {"executed_lines": [203, 204, 206, 207, 209, 210, 212, 213, 215, 216], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 201}, "Refactron.analyze": {"executed_lines": [234, 235, 238, 241, 243, 246, 247, 249, 252, 253, 254, 255, 257, 260, 261, 266, 297, 302, 303, 304, 307, 308, 309, 310, 311, 314, 315, 316, 317, 318, 339, 340, 343, 344, 347, 358, 364], "summary": {"covered_lines": 37, "num_statements": 50, "percent_covered": 74.0, "percent_covered_display": "74", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 74.0, "percent_statements_covered_display": "74"}, "missing_lines": [239, 244, 326, 327, 328, 329, 348, 349, 350, 359, 360, 361, 362], "excluded_lines": [], "start_line": 218}, "Refactron.analyze.process_file_wrapper": {"executed_lines": [269, 270, 273, 274, 276, 277, 278, 279, 285], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 69.23076923076923, "percent_statements_covered_display": "69"}, "missing_lines": [286, 287, 288, 294], "excluded_lines": [], "start_line": 266}, "Refactron._analyze_file": {"executed_lines": [379, 381, 382, 383, 384, 386, 387, 388, 397, 420, 421, 422, 423, 424, 426, 443, 446, 447, 448, 449, 450, 454, 455, 456, 457, 473, 474, 475, 484], "summary": {"covered_lines": 29, "num_statements": 40, "percent_covered": 72.5, "percent_covered_display": "72", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 72.5, "percent_statements_covered_display": "72"}, "missing_lines": [401, 403, 404, 405, 414, 436, 437, 460, 463, 464, 466], "excluded_lines": [], "start_line": 366}, "Refactron.refactor": {"executed_lines": [508, 510, 513, 514, 516, 518, 520, 521, 522, 523, 524, 526, 533, 534, 536, 537, 538, 539, 544, 549, 552, 553, 559], "summary": {"covered_lines": 23, "num_statements": 30, "percent_covered": 76.66666666666667, "percent_covered_display": "77", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 76.66666666666667, "percent_statements_covered_display": "77"}, "missing_lines": [511, 528, 530, 540, 541, 555, 557], "excluded_lines": [], "start_line": 486}, "Refactron._refactor_file": {"executed_lines": [578, 579, 580, 581, 582, 592, 595, 596, 599, 600, 603, 604, 605, 607, 609, 613, 622], "summary": {"covered_lines": 17, "num_statements": 24, "percent_covered": 70.83333333333333, "percent_covered_display": "71", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 70.83333333333333, "percent_statements_covered_display": "71"}, "missing_lines": [586, 587, 597, 610, 611, 614, 616], "excluded_lines": [], "start_line": 561}, "Refactron.get_python_files": {"executed_lines": [626, 628, 629, 632, 636, 637, 638, 639, 640, 642], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [633, 634], "excluded_lines": [], "start_line": 624}, "Refactron._should_exclude": {"executed_lines": [646, 648, 650, 651, 654], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [652], "excluded_lines": [], "start_line": 644}, "Refactron.get_performance_stats": {"executed_lines": [663], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 656}, "Refactron.record_feedback": {"executed_lines": [689, 694, 696, 697, 700, 701, 702, 703, 706, 707, 708, 709, 710, 714, 723, 724, 733, 745, 746, 749, 750, 751, 752, 753], "summary": {"covered_lines": 24, "num_statements": 30, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [725, 726, 757, 759, 761, 762], "excluded_lines": [], "start_line": 670}, "Refactron.detect_project_root": {"executed_lines": [779, 782, 791, 792, 793, 794, 795, 797], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [796, 799], "excluded_lines": [], "start_line": 764}, "Refactron.clear_caches": {"executed_lines": [803, 804, 805, 806, 807], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 801}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 42, 52, 178, 201, 218, 366, 486, 561, 624, 644, 656, 670, 764, 801], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"Refactron": {"executed_lines": [59, 60, 61, 64, 75, 76, 81, 84, 87, 101, 108, 113, 119, 126, 127, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 141, 144, 145, 151, 152, 154, 160, 173, 175, 176, 180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, 196, 198, 199, 203, 204, 206, 207, 209, 210, 212, 213, 215, 216, 234, 235, 238, 241, 243, 246, 247, 249, 252, 253, 254, 255, 257, 260, 261, 266, 269, 270, 273, 274, 276, 277, 278, 279, 285, 297, 302, 303, 304, 307, 308, 309, 310, 311, 314, 315, 316, 317, 318, 339, 340, 343, 344, 347, 358, 364, 379, 381, 382, 383, 384, 386, 387, 388, 397, 420, 421, 422, 423, 424, 426, 443, 446, 447, 448, 449, 450, 454, 455, 456, 457, 473, 474, 475, 484, 508, 510, 513, 514, 516, 518, 520, 521, 522, 523, 524, 526, 533, 534, 536, 537, 538, 539, 544, 549, 552, 553, 559, 578, 579, 580, 581, 582, 592, 595, 596, 599, 600, 603, 604, 605, 607, 609, 613, 622, 626, 628, 629, 632, 636, 637, 638, 639, 640, 642, 646, 648, 650, 651, 654, 663, 689, 694, 696, 697, 700, 701, 702, 703, 706, 707, 708, 709, 710, 714, 723, 724, 733, 745, 746, 749, 750, 751, 752, 753, 779, 782, 791, 792, 793, 794, 795, 797, 803, 804, 805, 806, 807], "summary": {"covered_lines": 227, "num_statements": 294, "percent_covered": 77.21088435374149, "percent_covered_display": "77", "missing_lines": 67, "excluded_lines": 0, "percent_statements_covered": 77.21088435374149, "percent_statements_covered_display": "77"}, "missing_lines": [78, 82, 88, 89, 93, 97, 98, 161, 162, 167, 168, 169, 170, 171, 239, 244, 286, 287, 288, 294, 326, 327, 328, 329, 348, 349, 350, 359, 360, 361, 362, 401, 403, 404, 405, 414, 436, 437, 460, 463, 464, 466, 511, 528, 530, 540, 541, 555, 557, 586, 587, 597, 610, 611, 614, 616, 633, 634, 652, 725, 726, 757, 759, 761, 762, 796, 799], "excluded_lines": [], "start_line": 42}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 42, 52, 178, 201, 218, 366, 486, 561, 624, 644, 656, 670, 764, 801], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\repositories.py": {"executed_lines": [7, 9, 10, 11, 12, 13, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 52], "summary": {"covered_lines": 23, "num_statements": 84, "percent_covered": 27.38095238095238, "percent_covered_display": "27", "missing_lines": 61, "excluded_lines": 0, "percent_statements_covered": 27.38095238095238, "percent_statements_covered_display": "27"}, "missing_lines": [37, 66, 67, 68, 70, 71, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 90, 91, 93, 96, 97, 100, 109, 110, 111, 112, 115, 116, 117, 118, 120, 123, 124, 129, 131, 133, 134, 136, 137, 138, 139, 140, 141, 143, 152, 153, 156, 157, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 176, 177], "excluded_lines": [], "functions": {"Repository.from_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [37], "excluded_lines": [], "start_line": 35}, "list_repositories": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 60, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [66, 67, 68, 70, 71, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 90, 91, 93, 96, 97, 100, 109, 110, 111, 112, 115, 116, 117, 118, 120, 123, 124, 129, 131, 133, 134, 136, 137, 138, 139, 140, 141, 143, 152, 153, 156, 157, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 176, 177], "excluded_lines": [], "start_line": 52}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 52], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"Repository": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [37], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 52], "summary": {"covered_lines": 23, "num_statements": 83, "percent_covered": 27.710843373493976, "percent_covered_display": "28", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 27.710843373493976, "percent_statements_covered_display": "28"}, "missing_lines": [66, 67, 68, 70, 71, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 90, 91, 93, 96, 97, 100, 109, 110, 111, 112, 115, 116, 117, 118, 120, 123, 124, 129, 131, 133, 134, 136, 137, 138, 139, 140, 141, 143, 152, 153, 156, 157, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 176, 177], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\telemetry.py": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 24, 27, 28, 31, 34, 47, 48, 51, 52, 53, 54, 56, 58, 59, 61, 69, 70, 72, 83, 84, 86, 89, 102, 107, 109, 124, 134, 149, 159, 172, 181, 190, 198, 200, 201, 203, 205, 208, 209, 210, 216, 219, 224, 230, 231, 232, 234, 243, 246, 252, 253, 254, 255, 257, 259, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 278, 280, 281, 282, 283, 295, 301, 302, 304, 306, 307, 308, 310, 312, 313, 317, 320, 331, 333, 334, 336, 341, 344, 346, 347, 350, 353, 355, 356, 359], "summary": {"covered_lines": 108, "num_statements": 113, "percent_covered": 95.57522123893806, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 95.57522123893806, "percent_statements_covered_display": "96"}, "missing_lines": [220, 222, 291, 293, 303], "excluded_lines": [], "functions": {"TelemetryCollector.__init__": {"executed_lines": [47, 48, 51, 52, 53, 54, 56, 58, 59], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 34}, "TelemetryCollector._generate_anonymous_id": {"executed_lines": [69, 70], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "TelemetryCollector.record_event": {"executed_lines": [83, 84, 86, 89, 102, 107], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 72}, "TelemetryCollector.record_analysis_completed": {"executed_lines": [124], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 109}, "TelemetryCollector.record_refactoring_applied": {"executed_lines": [149], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "TelemetryCollector.record_error": {"executed_lines": [172], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 159}, "TelemetryCollector.record_feature_usage": {"executed_lines": [190], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 181}, "TelemetryCollector.flush": {"executed_lines": [200, 201, 203, 205, 208, 209, 210, 216, 219], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 81.81818181818181, "percent_statements_covered_display": "82"}, "missing_lines": [220, 222], "excluded_lines": [], "start_line": 198}, "TelemetryCollector.get_summary": {"executed_lines": [230, 231, 232, 234], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 224}, "TelemetryConfig.__init__": {"executed_lines": [252, 253, 254, 255, 257, 259], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 246}, "TelemetryConfig._load_config": {"executed_lines": [263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 261}, "TelemetryConfig.save_config": {"executed_lines": [280, 281, 282, 283], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [291, 293], "excluded_lines": [], "start_line": 278}, "TelemetryConfig.enable": {"executed_lines": [301, 302, 304, 306, 307, 308], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [303], "excluded_lines": [], "start_line": 295}, "TelemetryConfig.disable": {"executed_lines": [312, 313], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 310}, "get_telemetry_collector": {"executed_lines": [331, 333, 334, 336, 341], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 320}, "enable_telemetry": {"executed_lines": [346, 347, 350], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 344}, "disable_telemetry": {"executed_lines": [355, 356, 359], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 353}, "": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 24, 27, 28, 31, 34, 61, 72, 109, 134, 159, 181, 198, 224, 243, 246, 261, 278, 295, 310, 317, 320, 344, 353], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"TelemetryEvent": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "TelemetryCollector": {"executed_lines": [47, 48, 51, 52, 53, 54, 56, 58, 59, 69, 70, 83, 84, 86, 89, 102, 107, 124, 149, 172, 190, 200, 201, 203, 205, 208, 209, 210, 216, 219, 230, 231, 232, 234], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.44444444444444, "percent_statements_covered_display": "94"}, "missing_lines": [220, 222], "excluded_lines": [], "start_line": 31}, "TelemetryConfig": {"executed_lines": [252, 253, 254, 255, 257, 259, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 280, 281, 282, 283, 301, 302, 304, 306, 307, 308, 312, 313], "summary": {"covered_lines": 29, "num_statements": 32, "percent_covered": 90.625, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 90.625, "percent_statements_covered_display": "91"}, "missing_lines": [291, 293, 303], "excluded_lines": [], "start_line": 243}, "": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 24, 27, 28, 31, 34, 61, 72, 109, 134, 159, 181, 198, 224, 243, 246, 261, 278, 295, 310, 317, 320, 331, 333, 334, 336, 341, 344, 346, 347, 350, 353, 355, 356, 359], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\workspace.py": {"executed_lines": [7, 9, 10, 11, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27, 37, 38, 49, 52, 61, 67, 80, 95, 105, 131, 149, 158, 174], "summary": {"covered_lines": 28, "num_statements": 111, "percent_covered": 25.225225225225227, "percent_covered_display": "25", "missing_lines": 83, "excluded_lines": 0, "percent_statements_covered": 25.225225225225227, "percent_statements_covered_display": "25"}, "missing_lines": [29, 40, 58, 59, 63, 64, 65, 73, 74, 75, 76, 77, 78, 86, 87, 90, 91, 92, 93, 101, 102, 103, 114, 117, 118, 119, 122, 123, 125, 126, 127, 129, 140, 141, 143, 144, 145, 147, 155, 156, 167, 168, 169, 170, 171, 172, 183, 184, 186, 188, 189, 190, 191, 192, 194, 197, 198, 199, 201, 202, 203, 206, 207, 208, 209, 216, 217, 218, 219, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238], "excluded_lines": [], "functions": {"WorkspaceMapping.to_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [29], "excluded_lines": [], "start_line": 27}, "WorkspaceMapping.from_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [40], "excluded_lines": [], "start_line": 38}, "WorkspaceManager.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [58, 59], "excluded_lines": [], "start_line": 52}, "WorkspaceManager._ensure_config_exists": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [63, 64, 65], "excluded_lines": [], "start_line": 61}, "WorkspaceManager._load_workspaces": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [73, 74, 75, 76, 77, 78], "excluded_lines": [], "start_line": 67}, "WorkspaceManager._save_workspaces": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [86, 87, 90, 91, 92, 93], "excluded_lines": [], "start_line": 80}, "WorkspaceManager.add_workspace": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [101, 102, 103], "excluded_lines": [], "start_line": 95}, "WorkspaceManager.get_workspace": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [114, 117, 118, 119, 122, 123, 125, 126, 127, 129], "excluded_lines": [], "start_line": 105}, "WorkspaceManager.get_workspace_by_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [140, 141, 143, 144, 145, 147], "excluded_lines": [], "start_line": 131}, "WorkspaceManager.list_workspaces": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [155, 156], "excluded_lines": [], "start_line": 149}, "WorkspaceManager.remove_workspace": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [167, 168, 169, 170, 171, 172], "excluded_lines": [], "start_line": 158}, "WorkspaceManager.detect_repository": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 37, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 37, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [183, 184, 186, 188, 189, 190, 191, 192, 194, 197, 198, 199, 201, 202, 203, 206, 207, 208, 209, 216, 217, 218, 219, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238], "excluded_lines": [], "start_line": 174}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27, 37, 38, 49, 52, 61, 67, 80, 95, 105, 131, 149, 158, 174], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"WorkspaceMapping": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [29, 40], "excluded_lines": [], "start_line": 18}, "WorkspaceManager": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 81, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 81, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [58, 59, 63, 64, 65, 73, 74, 75, 76, 77, 78, 86, 87, 90, 91, 92, 93, 101, 102, 103, 114, 117, 118, 119, 122, 123, 125, 126, 127, 129, 140, 141, 143, 144, 145, 147, 155, 156, 167, 168, 169, 170, 171, 172, 183, 184, 186, 188, 189, 190, 191, 192, 194, 197, 198, 199, 201, 202, 203, 206, 207, 208, 209, 216, 217, 218, 219, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238], "excluded_lines": [], "start_line": 49}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27, 37, 38, 49, 52, 61, 67, 80, 95, 105, 131, 149, 158, 174], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\backend_client.py": {"executed_lines": [3, 5, 6, 8, 10, 13, 16, 32, 33, 34, 35, 38, 40, 58, 64, 65, 66, 70, 78, 79, 86, 87, 88, 94, 96, 97, 99, 101, 102, 106, 112, 113, 117], "summary": {"covered_lines": 33, "num_statements": 45, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 73.33333333333333, "percent_statements_covered_display": "73"}, "missing_lines": [67, 68, 89, 90, 91, 92, 93, 100, 103, 104, 118, 119], "excluded_lines": [], "functions": {"BackendLLMClient.__init__": {"executed_lines": [32, 33, 34, 35, 38], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "BackendLLMClient.generate": {"executed_lines": [58, 64, 65, 66, 70, 78, 79, 86, 87, 88, 94, 96, 97, 99, 101, 102], "summary": {"covered_lines": 16, "num_statements": 26, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 61.53846153846154, "percent_statements_covered_display": "62"}, "missing_lines": [67, 68, 89, 90, 91, 92, 93, 100, 103, 104], "excluded_lines": [], "start_line": 40}, "BackendLLMClient.check_health": {"executed_lines": [112, 113, 117], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [118, 119], "excluded_lines": [], "start_line": 106}, "": {"executed_lines": [3, 5, 6, 8, 10, 13, 16, 40, 106], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BackendLLMClient": {"executed_lines": [32, 33, 34, 35, 38, 58, 64, 65, 66, 70, 78, 79, 86, 87, 88, 94, 96, 97, 99, 101, 102, 112, 113, 117], "summary": {"covered_lines": 24, "num_statements": 36, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [67, 68, 89, 90, 91, 92, 93, 100, 103, 104, 118, 119], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [3, 5, 6, 8, 10, 13, 16, 40, 106], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\client.py": {"executed_lines": [3, 5, 6, 8, 9, 11, 16, 19, 34, 37, 38, 39, 44, 45, 46, 48, 50, 68, 70, 71, 73, 75, 82, 84, 90, 91, 92, 93, 94], "summary": {"covered_lines": 29, "num_statements": 32, "percent_covered": 90.625, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 90.625, "percent_statements_covered_display": "91"}, "missing_lines": [12, 13, 35], "excluded_lines": [], "functions": {"GroqClient.__init__": {"executed_lines": [34, 37, 38, 39, 44, 45, 46, 48], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [35], "excluded_lines": [], "start_line": 19}, "GroqClient.generate": {"executed_lines": [68, 70, 71, 73, 75, 82], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 50}, "GroqClient.check_health": {"executed_lines": [90, 91, 92, 93, 94], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 84}, "": {"executed_lines": [3, 5, 6, 8, 9, 11, 16, 19, 50, 84], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [12, 13], "excluded_lines": [], "start_line": 1}}, "classes": {"GroqClient": {"executed_lines": [34, 37, 38, 39, 44, 45, 46, 48, 68, 70, 71, 73, 75, 82, 90, 91, 92, 93, 94], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.0, "percent_statements_covered_display": "95"}, "missing_lines": [35], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [3, 5, 6, 8, 9, 11, 16, 19, 50, 84], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [12, 13], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\models.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 18, 19, 20, 23, 24, 30, 31, 34, 35, 51, 54, 55, 58, 59, 61, 62, 64], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"RefactoringSuggestion.__post_init__": {"executed_lines": [62, 64], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 18, 19, 20, 23, 24, 30, 31, 34, 35, 51, 54, 55, 58, 59, 61], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SuggestionStatus": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "SafetyCheckResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 24}, "RefactoringSuggestion": {"executed_lines": [62, 64], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 18, 19, 20, 23, 24, 30, 31, 34, 35, 51, 54, 55, 58, 59, 61], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\orchestrator.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 21, 24, 30, 32, 33, 44, 46, 57, 58, 59, 61, 64, 68, 71, 81, 82, 83, 89, 92, 95, 96, 98, 106, 110, 122, 123, 124, 126, 139, 140, 141, 144, 146, 147, 148, 150, 156, 158, 249, 267, 269, 272, 273, 274, 275, 276, 279, 287], "summary": {"covered_lines": 62, "num_statements": 121, "percent_covered": 51.239669421487605, "percent_covered_display": "51", "missing_lines": 59, "excluded_lines": 0, "percent_statements_covered": 51.239669421487605, "percent_statements_covered_display": "51"}, "missing_lines": [36, 37, 38, 39, 40, 42, 65, 66, 99, 100, 107, 108, 152, 153, 154, 171, 180, 181, 182, 184, 185, 186, 187, 189, 192, 195, 196, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 221, 234, 235, 236, 261, 262, 263, 264, 265, 278, 280, 281, 282, 283, 285], "excluded_lines": [], "functions": {"LLMOrchestrator.__init__": {"executed_lines": [30, 32, 33, 44], "summary": {"covered_lines": 4, "num_statements": 10, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 40.0, "percent_statements_covered_display": "40"}, "missing_lines": [36, 37, 38, 39, 40, 42], "excluded_lines": [], "start_line": 24}, "LLMOrchestrator.generate_suggestion": {"executed_lines": [57, 58, 59, 61, 64, 68, 71, 81, 82, 83, 89, 92, 95, 96, 98, 106, 110, 122, 123, 124, 126, 139, 140, 141, 144, 146, 147, 148, 150, 156], "summary": {"covered_lines": 30, "num_statements": 39, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 76.92307692307692, "percent_statements_covered_display": "77"}, "missing_lines": [65, 66, 99, 100, 107, 108, 152, 153, 154], "excluded_lines": [], "start_line": 46}, "LLMOrchestrator.generate_documentation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [171, 180, 181, 182, 184, 185, 186, 187, 189, 192, 195, 196, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 221, 234, 235, 236], "excluded_lines": [], "start_line": 158}, "LLMOrchestrator.evaluate_issues_batch": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [261, 262, 263, 264, 265], "excluded_lines": [], "start_line": 249}, "LLMOrchestrator._clean_json_response": {"executed_lines": [269, 272, 273, 274, 275, 276, 279, 287], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [278, 280, 281, 282, 283, 285], "excluded_lines": [], "start_line": 267}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 21, 24, 46, 158, 249, 267], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"LLMOrchestrator": {"executed_lines": [30, 32, 33, 44, 57, 58, 59, 61, 64, 68, 71, 81, 82, 83, 89, 92, 95, 96, 98, 106, 110, 122, 123, 124, 126, 139, 140, 141, 144, 146, 147, 148, 150, 156, 269, 272, 273, 274, 275, 276, 279, 287], "summary": {"covered_lines": 42, "num_statements": 101, "percent_covered": 41.584158415841586, "percent_covered_display": "42", "missing_lines": 59, "excluded_lines": 0, "percent_statements_covered": 41.584158415841586, "percent_statements_covered_display": "42"}, "missing_lines": [36, 37, 38, 39, 40, 42, 65, 66, 99, 100, 107, 108, 152, 153, 154, 171, 180, 181, 182, 184, 185, 186, 187, 189, 192, 195, 196, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 221, 234, 235, 236, 261, 262, 263, 264, 265, 278, 280, 281, 282, 283, 285], "excluded_lines": [], "start_line": 21}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 21, 24, 46, 158, 249, 267], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\prompts.py": {"executed_lines": [3, 22, 42, 64], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 22, 42, 64], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 22, 42, 64], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\safety.py": {"executed_lines": [3, 4, 6, 9, 12, 13, 15, 24, 25, 26, 29, 30, 31, 38, 45, 46, 51, 54, 59, 67, 69, 72, 83, 84, 87, 89, 91, 93, 94, 95, 96, 97, 98, 102, 107, 109, 110, 113], "summary": {"covered_lines": 38, "num_statements": 57, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [32, 33, 34, 35, 39, 42, 47, 48, 55, 56, 57, 85, 99, 100, 101, 103, 104, 105, 106], "excluded_lines": [], "functions": {"SafetyGate.__init__": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "SafetyGate.validate": {"executed_lines": [24, 25, 26, 29, 30, 31, 38, 45, 46, 51, 54, 59], "summary": {"covered_lines": 12, "num_statements": 23, "percent_covered": 52.17391304347826, "percent_covered_display": "52", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 52.17391304347826, "percent_statements_covered_display": "52"}, "missing_lines": [32, 33, 34, 35, 39, 42, 47, 48, 55, 56, 57], "excluded_lines": [], "start_line": 15}, "SafetyGate._assess_risk": {"executed_lines": [69, 72, 83, 84, 87], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [85], "excluded_lines": [], "start_line": 67}, "SafetyGate._check_dangerous_imports": {"executed_lines": [91, 93, 109, 110, 113], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 89}, "SafetyGate._check_dangerous_imports.get_imports": {"executed_lines": [94, 95, 96, 97, 98, 102, 107], "summary": {"covered_lines": 7, "num_statements": 14, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [99, 100, 101, 103, 104, 105, 106], "excluded_lines": [], "start_line": 93}, "": {"executed_lines": [3, 4, 6, 9, 12, 15, 67, 89], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SafetyGate": {"executed_lines": [13, 24, 25, 26, 29, 30, 31, 38, 45, 46, 51, 54, 59, 69, 72, 83, 84, 87, 91, 93, 94, 95, 96, 97, 98, 102, 107, 109, 110, 113], "summary": {"covered_lines": 30, "num_statements": 49, "percent_covered": 61.224489795918366, "percent_covered_display": "61", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 61.224489795918366, "percent_statements_covered_display": "61"}, "missing_lines": [32, 33, 34, 35, 39, 42, 47, 48, 55, 56, 57, 85, 99, 100, 101, 103, 104, 105, 106], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [3, 4, 6, 9, 12, 15, 67, 89], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\multifile\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\__init__.py": {"executed_lines": [3, 4, 5, 6, 7, 13, 14, 15, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 13, 14, 15, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 5, 6, 7, 13, 14, 15, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\fingerprint.py": {"executed_lines": [3, 4, 5, 7, 10, 13, 15, 17, 27, 32, 33, 34, 35, 37, 51, 52, 53, 55, 58, 59, 61, 63, 75, 76, 77, 79, 81, 93, 94, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 117, 118, 119, 124, 125, 128, 129, 130, 133, 135, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 178, 180, 182, 188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 212, 213], "summary": {"covered_lines": 98, "num_statements": 110, "percent_covered": 89.0909090909091, "percent_covered_display": "89", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 89.0909090909091, "percent_statements_covered_display": "89"}, "missing_lines": [28, 121, 131, 164, 166, 197, 207, 208, 209, 217, 219, 221], "excluded_lines": [], "functions": {"PatternFingerprinter.__init__": {"executed_lines": [15], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 13}, "PatternFingerprinter.fingerprint_code": {"executed_lines": [27, 32, 33, 34, 35], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [28], "excluded_lines": [], "start_line": 17}, "PatternFingerprinter.fingerprint_issue_context": {"executed_lines": [51, 52, 53, 55, 58, 59, 61], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 37}, "PatternFingerprinter.fingerprint_refactoring": {"executed_lines": [75, 76, 77, 79], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 63}, "PatternFingerprinter._normalize_code": {"executed_lines": [93, 94, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 117, 118, 119, 124, 125, 128, 129, 130, 133], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [121, 131], "excluded_lines": [], "start_line": 81}, "PatternFingerprinter._extract_ast_pattern": {"executed_lines": [145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 178, 180], "summary": {"covered_lines": 28, "num_statements": 30, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.33333333333333, "percent_statements_covered_display": "93"}, "missing_lines": [164, 166], "excluded_lines": [], "start_line": 135}, "PatternFingerprinter._anonymize_code": {"executed_lines": [188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 212, 213], "summary": {"covered_lines": 17, "num_statements": 24, "percent_covered": 70.83333333333333, "percent_covered_display": "71", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 70.83333333333333, "percent_statements_covered_display": "71"}, "missing_lines": [197, 207, 208, 209, 217, 219, 221], "excluded_lines": [], "start_line": 182}, "": {"executed_lines": [3, 4, 5, 7, 10, 13, 17, 37, 63, 81, 135, 182], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternFingerprinter": {"executed_lines": [15, 27, 32, 33, 34, 35, 51, 52, 53, 55, 58, 59, 61, 75, 76, 77, 79, 93, 94, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 117, 118, 119, 124, 125, 128, 129, 130, 133, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 178, 180, 188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 212, 213], "summary": {"covered_lines": 86, "num_statements": 98, "percent_covered": 87.75510204081633, "percent_covered_display": "88", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 87.75510204081633, "percent_statements_covered_display": "88"}, "missing_lines": [28, 121, 131, 164, 166, 197, 207, 208, 209, 217, 219, 221], "excluded_lines": [], "start_line": 10}, "": {"executed_lines": [3, 4, 5, 7, 10, 13, 17, 37, 63, 81, 135, 182], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\learner.py": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 12, 15, 18, 29, 30, 31, 32, 34, 35, 37, 54, 55, 56, 57, 59, 61, 62, 64, 65, 74, 76, 78, 81, 84, 87, 88, 92, 93, 94, 98, 111, 127, 128, 130, 131, 133, 135, 136, 141, 143, 144, 149, 150, 153, 154, 164, 165, 167, 169, 172, 173, 174, 179, 184, 185, 188, 189, 191, 192, 202, 203, 205, 206, 220, 230, 232, 250, 251, 252, 253, 254, 255, 257, 258, 259, 260, 261, 264, 265, 268, 271, 272, 273, 278, 284, 285, 307, 310, 311, 313, 323, 336, 337, 338, 339, 343, 344, 349, 366, 367, 368, 370, 379, 380, 382], "summary": {"covered_lines": 112, "num_statements": 157, "percent_covered": 71.3375796178344, "percent_covered_display": "71", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 71.3375796178344, "percent_statements_covered_display": "71"}, "missing_lines": [66, 67, 71, 89, 99, 100, 101, 103, 104, 109, 137, 138, 145, 146, 147, 155, 156, 157, 158, 161, 162, 180, 181, 193, 195, 196, 199, 208, 209, 211, 212, 213, 214, 215, 218, 226, 227, 228, 297, 319, 320, 321, 345, 346, 347], "excluded_lines": [], "functions": {"PatternLearner.__init__": {"executed_lines": [29, 30, 31, 32, 34, 35], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "PatternLearner.learn_from_feedback": {"executed_lines": [54, 55, 56, 57, 59, 61, 62, 64, 65, 74, 76, 78, 81, 84, 87, 88, 92, 93, 94, 98], "summary": {"covered_lines": 20, "num_statements": 30, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [66, 67, 71, 89, 99, 100, 101, 103, 104, 109], "excluded_lines": [], "start_line": 37}, "PatternLearner.batch_learn": {"executed_lines": [127, 128, 130, 131, 133, 135, 136, 141, 143, 144, 149, 150, 153, 154, 164, 165, 167, 169, 172, 173, 174, 179, 184, 185, 188, 189, 191, 192, 202, 203, 205, 206, 220, 230], "summary": {"covered_lines": 34, "num_statements": 62, "percent_covered": 54.83870967741935, "percent_covered_display": "55", "missing_lines": 28, "excluded_lines": 0, "percent_statements_covered": 54.83870967741935, "percent_statements_covered_display": "55"}, "missing_lines": [137, 138, 145, 146, 147, 155, 156, 157, 158, 161, 162, 180, 181, 193, 195, 196, 199, 208, 209, 211, 212, 213, 214, 215, 218, 226, 227, 228], "excluded_lines": [], "start_line": 111}, "PatternLearner.update_pattern_metrics": {"executed_lines": [250, 251, 252, 253, 254, 255, 257, 258, 259, 260, 261, 264, 265, 268, 271, 272, 273, 278, 284, 285, 307, 310, 311, 313], "summary": {"covered_lines": 24, "num_statements": 28, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [297, 319, 320, 321], "excluded_lines": [], "start_line": 232}, "PatternLearner._find_pattern_by_hash": {"executed_lines": [336, 337, 338, 339, 343, 344], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [345, 346, 347], "excluded_lines": [], "start_line": 323}, "PatternLearner._create_pattern_from_operation": {"executed_lines": [366, 367, 368, 370], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 349}, "PatternLearner._pattern_key": {"executed_lines": [382], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 380}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 12, 15, 18, 37, 111, 232, 323, 349, 379, 380], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternLearner": {"executed_lines": [29, 30, 31, 32, 34, 35, 54, 55, 56, 57, 59, 61, 62, 64, 65, 74, 76, 78, 81, 84, 87, 88, 92, 93, 94, 98, 127, 128, 130, 131, 133, 135, 136, 141, 143, 144, 149, 150, 153, 154, 164, 165, 167, 169, 172, 173, 174, 179, 184, 185, 188, 189, 191, 192, 202, 203, 205, 206, 220, 230, 250, 251, 252, 253, 254, 255, 257, 258, 259, 260, 261, 264, 265, 268, 271, 272, 273, 278, 284, 285, 307, 310, 311, 313, 336, 337, 338, 339, 343, 344, 366, 367, 368, 370, 382], "summary": {"covered_lines": 95, "num_statements": 140, "percent_covered": 67.85714285714286, "percent_covered_display": "68", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 67.85714285714286, "percent_statements_covered_display": "68"}, "missing_lines": [66, 67, 71, 89, 99, 100, 101, 103, 104, 109, 137, 138, 145, 146, 147, 155, 156, 157, 158, 161, 162, 180, 181, 193, 195, 196, 199, 208, 209, 211, 212, 213, 214, 215, 218, 226, 227, 228, 297, 319, 320, 321, 345, 346, 347], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 12, 15, 18, 37, 111, 232, 323, 349, 379, 380], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\learning_service.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 17, 20, 35, 36, 38, 39, 43, 56, 58, 60, 61, 62, 66, 69, 71, 73, 78, 80, 81, 83, 84, 85, 91, 96, 98, 103, 109, 121, 122, 123, 124, 126, 128, 129, 132, 135, 138, 139, 144, 151, 153, 159, 173, 174, 176, 177, 178, 179, 180, 182, 184, 186, 187, 188, 190, 191, 196, 198, 199, 201, 207, 222, 223, 226, 227, 230, 231, 232, 235, 248], "summary": {"covered_lines": 80, "num_statements": 102, "percent_covered": 78.43137254901961, "percent_covered_display": "78", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 78.43137254901961, "percent_statements_covered_display": "78"}, "missing_lines": [67, 70, 86, 87, 92, 93, 105, 106, 107, 145, 146, 148, 149, 155, 156, 157, 203, 204, 205, 250, 251, 254], "excluded_lines": [], "functions": {"LearningService.__init__": {"executed_lines": [35, 36, 38, 39], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "LearningService.process_pending_feedback": {"executed_lines": [56, 58, 60, 61, 62, 66, 69, 71, 73, 78, 80, 81, 83, 84, 85, 91, 96, 98, 103], "summary": {"covered_lines": 19, "num_statements": 28, "percent_covered": 67.85714285714286, "percent_covered_display": "68", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 67.85714285714286, "percent_statements_covered_display": "68"}, "missing_lines": [67, 70, 86, 87, 92, 93, 105, 106, 107], "excluded_lines": [], "start_line": 43}, "LearningService.update_pattern_scores": {"executed_lines": [121, 122, 123, 124, 126, 128, 129, 132, 135, 138, 139, 144, 151, 153], "summary": {"covered_lines": 14, "num_statements": 21, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [145, 146, 148, 149, 155, 156, 157], "excluded_lines": [], "start_line": 109}, "LearningService.cleanup_old_patterns": {"executed_lines": [173, 174, 176, 177, 178, 179, 180, 182, 184, 186, 187, 188, 190, 191, 196, 198, 199, 201], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [203, 204, 205], "excluded_lines": [], "start_line": 159}, "LearningService._reconstruct_operation_from_feedback": {"executed_lines": [222, 223, 226, 227, 230, 231, 232, 235, 248], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [250, 251, 254], "excluded_lines": [], "start_line": 207}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 17, 20, 43, 109, 159, 207], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"LearningService": {"executed_lines": [35, 36, 38, 39, 56, 58, 60, 61, 62, 66, 69, 71, 73, 78, 80, 81, 83, 84, 85, 91, 96, 98, 103, 121, 122, 123, 124, 126, 128, 129, 132, 135, 138, 139, 144, 151, 153, 173, 174, 176, 177, 178, 179, 180, 182, 184, 186, 187, 188, 190, 191, 196, 198, 199, 201, 222, 223, 226, 227, 230, 231, 232, 235, 248], "summary": {"covered_lines": 64, "num_statements": 86, "percent_covered": 74.4186046511628, "percent_covered_display": "74", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 74.4186046511628, "percent_statements_covered_display": "74"}, "missing_lines": [67, 70, 86, 87, 92, 93, 105, 106, 107, 145, 146, 148, 149, 155, 156, 157, 203, 204, 205, 250, 251, 254], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 17, 20, 43, 109, 159, 207], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\matcher.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 11, 14, 17, 25, 26, 27, 28, 29, 30, 32, 53, 59, 60, 66, 69, 72, 73, 75, 77, 78, 84, 85, 87, 113, 116, 117, 118, 121, 122, 125, 126, 130, 131, 133, 134, 135, 139, 140, 143, 148, 150, 169, 172, 178, 181, 183, 185, 192, 193, 194, 195, 196, 199, 200, 201, 202, 204, 206, 214, 222, 225, 226, 227, 228, 229, 230, 232, 234, 236, 237, 238], "summary": {"covered_lines": 77, "num_statements": 81, "percent_covered": 95.06172839506173, "percent_covered_display": "95", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 95.06172839506173, "percent_statements_covered_display": "95"}, "missing_lines": [54, 55, 144, 145], "excluded_lines": [], "functions": {"PatternMatcher.__init__": {"executed_lines": [25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "PatternMatcher.find_similar_patterns": {"executed_lines": [53, 59, 60, 66, 69, 72, 73, 75, 77, 78, 84, 85], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [54, 55], "excluded_lines": [], "start_line": 32}, "PatternMatcher.calculate_pattern_score": {"executed_lines": [113, 116, 117, 118, 121, 122, 125, 126, 130, 131, 133, 134, 135, 139, 140, 143, 148], "summary": {"covered_lines": 17, "num_statements": 19, "percent_covered": 89.47368421052632, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 89.47368421052632, "percent_statements_covered_display": "89"}, "missing_lines": [144, 145], "excluded_lines": [], "start_line": 87}, "PatternMatcher.find_best_matches": {"executed_lines": [169, 172, 178, 181, 183], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 150}, "PatternMatcher._load_patterns": {"executed_lines": [192, 193, 194, 195, 196, 199, 200, 201, 202, 204], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 185}, "PatternMatcher._load_hash_index": {"executed_lines": [214, 222, 225, 226, 227, 228, 229, 230, 232], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 206}, "PatternMatcher.clear_cache": {"executed_lines": [236, 237, 238], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 234}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 11, 14, 17, 32, 87, 150, 185, 206, 234], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternMatcher": {"executed_lines": [25, 26, 27, 28, 29, 30, 53, 59, 60, 66, 69, 72, 73, 75, 77, 78, 84, 85, 113, 116, 117, 118, 121, 122, 125, 126, 130, 131, 133, 134, 135, 139, 140, 143, 148, 169, 172, 178, 181, 183, 192, 193, 194, 195, 196, 199, 200, 201, 202, 204, 214, 222, 225, 226, 227, 228, 229, 230, 232, 236, 237, 238], "summary": {"covered_lines": 62, "num_statements": 66, "percent_covered": 93.93939393939394, "percent_covered_display": "94", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 93.93939393939394, "percent_statements_covered_display": "94"}, "missing_lines": [54, 55, 144, 145], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 11, 14, 17, 32, 87, 150, 185, 206, 234], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\models.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 12, 20, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 40, 41, 42, 44, 45, 57, 70, 71, 75, 76, 77, 78, 79, 80, 81, 83, 102, 104, 105, 108, 112, 115, 118, 119, 120, 122, 124, 125, 126, 128, 130, 132, 134, 136, 137, 139, 142, 143, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 164, 165, 167, 168, 169, 170, 171, 172, 175, 176, 177, 178, 182, 184, 185, 188, 189, 190, 191, 194, 197, 200, 202, 209, 211, 213, 214, 215, 216, 218, 219, 221, 222, 223, 224, 226, 227, 237, 238, 239, 252, 253, 258, 259, 260, 261, 262, 263, 265, 266, 268, 269, 271, 272, 274, 275, 281, 283, 284, 286, 288, 290, 291, 292, 293, 295, 297, 298, 299, 300, 302, 304, 305, 307, 309, 311, 313, 314, 315, 316, 317, 319, 321, 322, 323, 324, 325, 326, 328, 329, 331, 332, 333, 334, 335, 336], "summary": {"covered_lines": 169, "num_statements": 171, "percent_covered": 98.83040935672514, "percent_covered_display": "99", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 98.83040935672514, "percent_statements_covered_display": "99"}, "missing_lines": [180, 285], "excluded_lines": [], "functions": {"RefactoringFeedback.to_dict": {"executed_lines": [27, 28, 29, 30, 31, 32], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "RefactoringFeedback.from_dict": {"executed_lines": [37, 38, 39, 40, 41, 42], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "RefactoringFeedback.create": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "PatternMetric.update": {"executed_lines": [102, 104, 105, 108, 112, 115, 118, 119, 120, 122, 124, 125, 126, 128, 130], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 83}, "PatternMetric.to_dict": {"executed_lines": [134], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 132}, "PatternMetric.from_dict": {"executed_lines": [139], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 137}, "RefactoringPattern.update_from_feedback": {"executed_lines": [164, 165, 167, 168, 169, 170, 171, 172, 175, 176, 177, 178], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [180], "excluded_lines": [], "start_line": 162}, "RefactoringPattern.calculate_benefit_score": {"executed_lines": [184, 185, 188, 189, 190, 191, 194, 197, 200, 202, 209], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 182}, "RefactoringPattern.to_dict": {"executed_lines": [213, 214, 215, 216], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 211}, "RefactoringPattern.from_dict": {"executed_lines": [221, 222, 223, 224], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 219}, "RefactoringPattern.create": {"executed_lines": [237, 238, 239], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 227}, "ProjectPatternProfile.generate_project_id": {"executed_lines": [268, 269], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 266}, "ProjectPatternProfile.create": {"executed_lines": [274, 275], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 272}, "ProjectPatternProfile.enable_pattern": {"executed_lines": [283, 284, 286], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [285], "excluded_lines": [], "start_line": 281}, "ProjectPatternProfile.disable_pattern": {"executed_lines": [290, 291, 292, 293], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 288}, "ProjectPatternProfile.set_pattern_weight": {"executed_lines": [297, 298, 299, 300], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 295}, "ProjectPatternProfile.set_rule_threshold": {"executed_lines": [304, 305], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 302}, "ProjectPatternProfile.get_pattern_weight": {"executed_lines": [309], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 307}, "ProjectPatternProfile.is_pattern_enabled": {"executed_lines": [313, 314, 315, 316, 317], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 311}, "ProjectPatternProfile.to_dict": {"executed_lines": [321, 322, 323, 324, 325, 326], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 319}, "ProjectPatternProfile.from_dict": {"executed_lines": [331, 332, 333, 334, 335, 336], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 329}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 12, 20, 21, 22, 23, 25, 34, 35, 44, 45, 70, 71, 75, 76, 77, 78, 79, 80, 81, 83, 132, 136, 137, 142, 143, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 182, 211, 218, 219, 226, 227, 252, 253, 258, 259, 260, 261, 262, 263, 265, 266, 271, 272, 281, 288, 295, 302, 307, 311, 319, 328, 329], "summary": {"covered_lines": 70, "num_statements": 70, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactoringFeedback": {"executed_lines": [27, 28, 29, 30, 31, 32, 37, 38, 39, 40, 41, 42, 57], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "PatternMetric": {"executed_lines": [102, 104, 105, 108, 112, 115, 118, 119, 120, 122, 124, 125, 126, 128, 130, 134, 139], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 71}, "RefactoringPattern": {"executed_lines": [164, 165, 167, 168, 169, 170, 171, 172, 175, 176, 177, 178, 184, 185, 188, 189, 190, 191, 194, 197, 200, 202, 209, 213, 214, 215, 216, 221, 222, 223, 224, 237, 238, 239], "summary": {"covered_lines": 34, "num_statements": 35, "percent_covered": 97.14285714285714, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.14285714285714, "percent_statements_covered_display": "97"}, "missing_lines": [180], "excluded_lines": [], "start_line": 143}, "ProjectPatternProfile": {"executed_lines": [268, 269, 274, 275, 283, 284, 286, 290, 291, 292, 293, 297, 298, 299, 300, 304, 305, 309, 313, 314, 315, 316, 317, 321, 322, 323, 324, 325, 326, 331, 332, 333, 334, 335, 336], "summary": {"covered_lines": 35, "num_statements": 36, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.22222222222223, "percent_statements_covered_display": "97"}, "missing_lines": [285], "excluded_lines": [], "start_line": 253}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 12, 20, 21, 22, 23, 25, 34, 35, 44, 45, 70, 71, 75, 76, 77, 78, 79, 80, 81, 83, 132, 136, 137, 142, 143, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 182, 211, 218, 219, 226, 227, 252, 253, 258, 259, 260, 261, 262, 263, 265, 266, 271, 272, 281, 288, 295, 302, 307, 311, 319, 328, 329], "summary": {"covered_lines": 70, "num_statements": 70, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\ranker.py": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 11, 13, 16, 19, 33, 34, 35, 36, 37, 38, 40, 41, 42, 44, 68, 69, 72, 73, 74, 75, 80, 82, 83, 84, 85, 98, 100, 102, 118, 119, 120, 121, 123, 124, 125, 129, 130, 133, 139, 141, 142, 144, 145, 148, 151, 159, 160, 164, 169, 171, 173, 190, 191, 193, 194, 196, 212, 216, 217, 223, 227, 228, 230, 231, 232, 233, 234, 243, 244, 245, 250, 251, 254, 255, 264, 266], "summary": {"covered_lines": 83, "num_statements": 105, "percent_covered": 79.04761904761905, "percent_covered_display": "79", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 79.04761904761905, "percent_statements_covered_display": "79"}, "missing_lines": [76, 77, 86, 88, 93, 94, 95, 165, 166, 213, 218, 219, 220, 221, 235, 236, 240, 257, 258, 259, 260, 261], "excluded_lines": [], "functions": {"RefactoringRanker.__init__": {"executed_lines": [33, 34, 35, 36, 37, 38, 40, 41, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "RefactoringRanker.rank_operations": {"executed_lines": [68, 69, 72, 73, 74, 75, 80, 82, 83, 84, 85, 98, 100], "summary": {"covered_lines": 13, "num_statements": 20, "percent_covered": 65.0, "percent_covered_display": "65", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 65.0, "percent_statements_covered_display": "65"}, "missing_lines": [76, 77, 86, 88, 93, 94, 95], "excluded_lines": [], "start_line": 44}, "RefactoringRanker._calculate_operation_score": {"executed_lines": [118, 119, 120, 121, 123, 124, 125, 129, 130, 133, 139, 141, 142, 144, 145, 148, 151, 159, 160, 164, 169, 171], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [165, 166], "excluded_lines": [], "start_line": 102}, "RefactoringRanker.get_top_suggestions": {"executed_lines": [190, 191, 193, 194], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 173}, "RefactoringRanker.get_ranked_with_scores": {"executed_lines": [212, 216, 217, 223, 227, 228, 230, 231, 232, 233, 234, 243, 244, 245, 250, 251, 254, 255, 264, 266], "summary": {"covered_lines": 20, "num_statements": 33, "percent_covered": 60.60606060606061, "percent_covered_display": "61", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 60.60606060606061, "percent_statements_covered_display": "61"}, "missing_lines": [213, 218, 219, 220, 221, 235, 236, 240, 257, 258, 259, 260, 261], "excluded_lines": [], "start_line": 196}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 11, 13, 16, 19, 44, 102, 173, 196], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactoringRanker": {"executed_lines": [33, 34, 35, 36, 37, 38, 40, 41, 42, 68, 69, 72, 73, 74, 75, 80, 82, 83, 84, 85, 98, 100, 118, 119, 120, 121, 123, 124, 125, 129, 130, 133, 139, 141, 142, 144, 145, 148, 151, 159, 160, 164, 169, 171, 190, 191, 193, 194, 212, 216, 217, 223, 227, 228, 230, 231, 232, 233, 234, 243, 244, 245, 250, 251, 254, 255, 264, 266], "summary": {"covered_lines": 68, "num_statements": 90, "percent_covered": 75.55555555555556, "percent_covered_display": "76", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 75.55555555555556, "percent_statements_covered_display": "76"}, "missing_lines": [76, 77, 86, 88, 93, 94, 95, 165, 166, 213, 218, 219, 220, 221, 235, 236, 240, 257, 258, 259, 260, 261], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 11, 13, 16, 19, 44, 102, 173, 196], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\storage.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 16, 19, 22, 23, 24, 25, 26, 28, 37, 39, 40, 41, 46, 48, 51, 54, 55, 56, 57, 60, 61, 62, 63, 65, 72, 75, 76, 80, 88, 95, 96, 97, 98, 100, 117, 118, 119, 121, 124, 126, 128, 129, 131, 132, 135, 136, 138, 139, 141, 143, 145, 147, 154, 155, 156, 157, 159, 169, 170, 172, 180, 181, 182, 184, 186, 196, 197, 199, 207, 208, 209, 210, 211, 213, 220, 221, 222, 223, 225, 233, 234, 235, 237, 239, 249, 250, 252, 262, 263, 264, 266, 267, 270, 271, 272, 274, 277, 286, 289, 292, 293, 294, 296, 303, 304, 305, 306, 308, 316, 317, 318, 320, 322, 324, 325, 326, 327, 328, 332, 340, 341, 343, 344, 345, 347, 352, 361, 363, 364, 365, 366, 367, 372, 374, 375, 377, 378, 379, 380, 385, 387, 388, 389, 390, 391, 396, 398, 399, 401, 402, 403, 404, 412, 414, 415, 416, 417, 418, 423, 425, 426, 439, 441, 442, 443, 444, 445], "summary": {"covered_lines": 173, "num_statements": 214, "percent_covered": 80.8411214953271, "percent_covered_display": "81", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 80.8411214953271, "percent_statements_covered_display": "81"}, "missing_lines": [44, 81, 82, 83, 84, 86, 137, 280, 282, 287, 288, 348, 351, 357, 358, 359, 368, 369, 370, 381, 382, 383, 392, 393, 394, 408, 409, 410, 419, 420, 421, 428, 429, 430, 431, 435, 436, 437, 446, 447, 448], "excluded_lines": [], "functions": {"PatternStorage.__init__": {"executed_lines": [37, 39, 40, 41, 46, 48, 51, 54, 55, 56, 57, 60, 61, 62, 63], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [44], "excluded_lines": [], "start_line": 28}, "PatternStorage._find_project_root": {"executed_lines": [72, 75, 76, 80], "summary": {"covered_lines": 4, "num_statements": 9, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 44.44444444444444, "percent_statements_covered_display": "44"}, "missing_lines": [81, 82, 83, 84, 86], "excluded_lines": [], "start_line": 65}, "PatternStorage.save_feedback": {"executed_lines": [95, 96, 97, 98], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 88}, "PatternStorage.load_feedback": {"executed_lines": [117, 118, 119, 121, 124, 126, 128, 129, 131, 132, 135, 136, 138, 139, 141, 143, 145], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.44444444444444, "percent_statements_covered_display": "94"}, "missing_lines": [137], "excluded_lines": [], "start_line": 100}, "PatternStorage.save_pattern": {"executed_lines": [154, 155, 156, 157], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "PatternStorage.replace_patterns": {"executed_lines": [169, 170], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 159}, "PatternStorage.load_patterns": {"executed_lines": [180, 181, 182, 184], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 172}, "PatternStorage.get_pattern": {"executed_lines": [196, 197], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 186}, "PatternStorage.update_pattern_stats": {"executed_lines": [207, 208, 209, 210, 211], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 199}, "PatternStorage.save_pattern_metric": {"executed_lines": [220, 221, 222, 223], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 213}, "PatternStorage.load_pattern_metrics": {"executed_lines": [233, 234, 235, 237], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 225}, "PatternStorage.get_pattern_metric": {"executed_lines": [249, 250], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 239}, "PatternStorage.get_project_profile": {"executed_lines": [262, 263, 264, 266, 267, 270, 271, 272, 274, 277, 286, 289, 292, 293, 294], "summary": {"covered_lines": 15, "num_statements": 19, "percent_covered": 78.94736842105263, "percent_covered_display": "79", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 78.94736842105263, "percent_statements_covered_display": "79"}, "missing_lines": [280, 282, 287, 288], "excluded_lines": [], "start_line": 252}, "PatternStorage.save_project_profile": {"executed_lines": [303, 304, 305, 306], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 296}, "PatternStorage.load_project_profiles": {"executed_lines": [316, 317, 318, 320], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 308}, "PatternStorage.clear_cache": {"executed_lines": [324, 325, 326, 327, 328], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 322}, "PatternStorage._load_patterns_dict": {"executed_lines": [340, 341, 343, 344, 345, 347, 352], "summary": {"covered_lines": 7, "num_statements": 12, "percent_covered": 58.333333333333336, "percent_covered_display": "58", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 58.333333333333336, "percent_statements_covered_display": "58"}, "missing_lines": [348, 351, 357, 358, 359], "excluded_lines": [], "start_line": 332}, "PatternStorage._save_patterns_dict": {"executed_lines": [363, 364, 365, 366, 367], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [368, 369, 370], "excluded_lines": [], "start_line": 361}, "PatternStorage._load_feedback_list": {"executed_lines": [374, 375, 377, 378, 379, 380], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [381, 382, 383], "excluded_lines": [], "start_line": 372}, "PatternStorage._save_feedback_list": {"executed_lines": [387, 388, 389, 390, 391], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [392, 393, 394], "excluded_lines": [], "start_line": 385}, "PatternStorage._load_profiles_dict": {"executed_lines": [398, 399, 401, 402, 403, 404], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [408, 409, 410], "excluded_lines": [], "start_line": 396}, "PatternStorage._save_profiles_dict": {"executed_lines": [414, 415, 416, 417, 418], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [419, 420, 421], "excluded_lines": [], "start_line": 412}, "PatternStorage._load_metrics_dict": {"executed_lines": [425, 426], "summary": {"covered_lines": 2, "num_statements": 9, "percent_covered": 22.22222222222222, "percent_covered_display": "22", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 22.22222222222222, "percent_statements_covered_display": "22"}, "missing_lines": [428, 429, 430, 431, 435, 436, 437], "excluded_lines": [], "start_line": 423}, "PatternStorage._save_metrics_dict": {"executed_lines": [441, 442, 443, 444, 445], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [446, 447, 448], "excluded_lines": [], "start_line": 439}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 16, 19, 22, 23, 24, 25, 26, 28, 65, 88, 100, 147, 159, 172, 186, 199, 213, 225, 239, 252, 296, 308, 322, 332, 361, 372, 385, 396, 412, 423, 439], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternStorage": {"executed_lines": [37, 39, 40, 41, 46, 48, 51, 54, 55, 56, 57, 60, 61, 62, 63, 72, 75, 76, 80, 95, 96, 97, 98, 117, 118, 119, 121, 124, 126, 128, 129, 131, 132, 135, 136, 138, 139, 141, 143, 145, 154, 155, 156, 157, 169, 170, 180, 181, 182, 184, 196, 197, 207, 208, 209, 210, 211, 220, 221, 222, 223, 233, 234, 235, 237, 249, 250, 262, 263, 264, 266, 267, 270, 271, 272, 274, 277, 286, 289, 292, 293, 294, 303, 304, 305, 306, 316, 317, 318, 320, 324, 325, 326, 327, 328, 340, 341, 343, 344, 345, 347, 352, 363, 364, 365, 366, 367, 374, 375, 377, 378, 379, 380, 387, 388, 389, 390, 391, 398, 399, 401, 402, 403, 404, 414, 415, 416, 417, 418, 425, 426, 441, 442, 443, 444, 445], "summary": {"covered_lines": 136, "num_statements": 177, "percent_covered": 76.8361581920904, "percent_covered_display": "77", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 76.8361581920904, "percent_statements_covered_display": "77"}, "missing_lines": [44, 81, 82, 83, 84, 86, 137, 280, 282, 287, 288, 348, 351, 357, 358, 359, 368, 369, 370, 381, 382, 383, 392, 393, 394, 408, 409, 410, 419, 420, 421, 428, 429, 430, 431, 435, 436, 437, 446, 447, 448], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 16, 19, 22, 23, 24, 25, 26, 28, 65, 88, 100, 147, 159, 172, 186, 199, 213, 225, 239, 252, 296, 308, 322, 332, 361, 372, 385, 396, 412, 423, 439], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\tuner.py": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 35, 36, 37, 39, 42, 45, 46, 47, 48, 50, 59, 63, 66, 67, 68, 75, 76, 77, 78, 81, 83, 84, 88, 89, 90, 100, 101, 107, 108, 109, 110, 111, 116, 117, 119, 120, 121, 126, 145, 150, 156, 165, 166, 168, 169, 170, 173, 174, 175, 177, 178, 179, 180, 182, 186, 187, 189, 190, 191, 193, 198, 206, 219, 222, 223, 224, 226, 229, 232, 237, 240, 241, 243, 244, 247, 248, 249, 255, 256], "summary": {"covered_lines": 101, "num_statements": 118, "percent_covered": 85.59322033898304, "percent_covered_display": "86", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 85.59322033898304, "percent_statements_covered_display": "86"}, "missing_lines": [38, 60, 86, 92, 98, 112, 113, 123, 124, 184, 196, 220, 227, 230, 235, 250, 252], "excluded_lines": [], "functions": {"PatternStats.total_decisions": {"executed_lines": [29], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "PatternStats.total_feedback": {"executed_lines": [33], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "PatternStats.acceptance_rate": {"executed_lines": [37, 39], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [38], "excluded_lines": [], "start_line": 36}, "RuleTuner.__init__": {"executed_lines": [46, 47, 48], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "RuleTuner.analyze_project_patterns": {"executed_lines": [59, 63, 66, 67, 68, 75, 76, 77, 78, 81, 83, 84, 88, 89, 90, 100, 101, 107, 108, 109, 110, 111, 116, 117, 119, 120, 121, 126, 145, 150], "summary": {"covered_lines": 30, "num_statements": 38, "percent_covered": 78.94736842105263, "percent_covered_display": "79", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 78.94736842105263, "percent_statements_covered_display": "79"}, "missing_lines": [60, 86, 92, 98, 112, 113, 123, 124], "excluded_lines": [], "start_line": 50}, "RuleTuner.generate_recommendations": {"executed_lines": [165, 166, 168, 169, 170, 173, 174, 175, 177, 178, 179, 180, 182, 186, 187, 189, 190, 191, 193, 198], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [184, 196], "excluded_lines": [], "start_line": 156}, "RuleTuner.apply_tuning": {"executed_lines": [219, 222, 223, 224, 226, 229, 232, 237, 240, 241, 243, 244, 247, 248, 249, 255, 256], "summary": {"covered_lines": 17, "num_statements": 23, "percent_covered": 73.91304347826087, "percent_covered_display": "74", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 73.91304347826087, "percent_statements_covered_display": "74"}, "missing_lines": [220, 227, 230, 235, 250, 252], "excluded_lines": [], "start_line": 206}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 31, 32, 35, 36, 42, 45, 50, 156, 206], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternStats": {"executed_lines": [29, 33, 37, 39], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [38], "excluded_lines": [], "start_line": 17}, "RuleTuner": {"executed_lines": [46, 47, 48, 59, 63, 66, 67, 68, 75, 76, 77, 78, 81, 83, 84, 88, 89, 90, 100, 101, 107, 108, 109, 110, 111, 116, 117, 119, 120, 121, 126, 145, 150, 165, 166, 168, 169, 170, 173, 174, 175, 177, 178, 179, 180, 182, 186, 187, 189, 190, 191, 193, 198, 219, 222, 223, 224, 226, 229, 232, 237, 240, 241, 243, 244, 247, 248, 249, 255, 256], "summary": {"covered_lines": 70, "num_statements": 86, "percent_covered": 81.3953488372093, "percent_covered_display": "81", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 81.3953488372093, "percent_statements_covered_display": "81"}, "missing_lines": [60, 86, 92, 98, 112, 113, 123, 124, 184, 196, 220, 227, 230, 235, 250, 252], "excluded_lines": [], "start_line": 42}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 31, 32, 35, 36, 42, 45, 50, 156, 206], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\chunker.py": {"executed_lines": [3, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 28, 34, 36, 46, 48, 51, 52, 55, 56, 59, 60, 62, 64, 66, 68, 69, 71, 72, 75, 76, 78, 91, 94, 96, 97, 99, 102, 103, 105, 119, 121, 124, 126, 127, 130, 131, 134, 135, 137, 150, 153, 155, 156, 157, 158, 159, 161, 163, 177, 179], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"CodeChunker.__init__": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "CodeChunker.chunk_file": {"executed_lines": [46, 48, 51, 52, 55, 56, 59, 60, 62], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "CodeChunker._create_module_chunk": {"executed_lines": [66, 68, 69, 71, 72, 75, 76, 78], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 64}, "CodeChunker._create_function_chunk": {"executed_lines": [94, 96, 97, 99, 102, 103, 105], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 91}, "CodeChunker._create_class_chunks": {"executed_lines": [121, 124, 126, 127, 130, 131, 134, 135, 137, 150, 153, 155, 156, 157, 158, 159, 161, 163, 177, 179], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 119}, "": {"executed_lines": [3, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 28, 36, 64, 91, 119], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"CodeChunk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 13}, "CodeChunker": {"executed_lines": [34, 46, 48, 51, 52, 55, 56, 59, 60, 62, 66, 68, 69, 71, 72, 75, 76, 78, 94, 96, 97, 99, 102, 103, 105, 121, 124, 126, 127, 130, 131, 134, 135, 137, 150, 153, 155, 156, 157, 158, 159, 161, 163, 177, 179], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "": {"executed_lines": [3, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 28, 36, 64, 91, 119], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\indexer.py": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 22, 23, 26, 27, 32, 33, 36, 37, 38, 39, 40, 43, 46, 61, 62, 66, 67, 68, 71, 73, 76, 77, 80, 85, 90, 92, 163, 195, 217, 223, 224, 227, 228, 229, 230, 238, 243, 245, 248, 251, 258, 264, 266, 274, 276, 277, 278, 280, 282, 283, 286, 287], "summary": {"covered_lines": 66, "num_statements": 122, "percent_covered": 54.09836065573771, "percent_covered_display": "54", "missing_lines": 56, "excluded_lines": 0, "percent_statements_covered": 54.09836065573771, "percent_statements_covered_display": "54"}, "missing_lines": [15, 28, 29, 104, 105, 107, 108, 109, 110, 111, 113, 114, 116, 119, 122, 123, 127, 128, 131, 132, 133, 134, 137, 138, 141, 143, 144, 147, 155, 173, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 191, 193, 197, 198, 200, 207, 208, 213, 214, 215, 239, 240, 241, 242, 284], "excluded_lines": [], "functions": {"RAGIndexer.__init__": {"executed_lines": [61, 62, 66, 67, 68, 71, 73, 76, 77, 80, 85, 90], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "RAGIndexer.index_repository": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 26, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 26, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [104, 105, 107, 108, 109, 110, 111, 113, 114, 116, 119, 122, 123, 127, 128, 131, 132, 133, 134, 137, 138, 141, 143, 144, 147, 155], "excluded_lines": [], "start_line": 92}, "RAGIndexer._index_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [173, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 191, 193], "excluded_lines": [], "start_line": 163}, "RAGIndexer._summarize_chunk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [197, 198, 200, 207, 208, 213, 214, 215], "excluded_lines": [], "start_line": 195}, "RAGIndexer.add_chunks": {"executed_lines": [223, 224, 227, 228, 229, 230, 238, 243, 245, 248, 251], "summary": {"covered_lines": 11, "num_statements": 15, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 73.33333333333333, "percent_statements_covered_display": "73"}, "missing_lines": [239, 240, 241, 242], "excluded_lines": [], "start_line": 217}, "RAGIndexer.get_stats": {"executed_lines": [264, 266], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 258}, "RAGIndexer._save_metadata": {"executed_lines": [276, 277, 278], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 274}, "RAGIndexer._load_metadata": {"executed_lines": [282, 283, 286, 287], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [284], "excluded_lines": [], "start_line": 280}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 22, 23, 26, 27, 32, 33, 36, 37, 38, 39, 40, 43, 46, 92, 163, 195, 217, 258, 274, 280], "summary": {"covered_lines": 34, "num_statements": 37, "percent_covered": 91.89189189189189, "percent_covered_display": "92", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 91.89189189189189, "percent_statements_covered_display": "92"}, "missing_lines": [15, 28, 29], "excluded_lines": [], "start_line": 1}}, "classes": {"IndexStats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 33}, "RAGIndexer": {"executed_lines": [61, 62, 66, 67, 68, 71, 73, 76, 77, 80, 85, 90, 223, 224, 227, 228, 229, 230, 238, 243, 245, 248, 251, 264, 266, 276, 277, 278, 282, 283, 286, 287], "summary": {"covered_lines": 32, "num_statements": 85, "percent_covered": 37.64705882352941, "percent_covered_display": "38", "missing_lines": 53, "excluded_lines": 0, "percent_statements_covered": 37.64705882352941, "percent_statements_covered_display": "38"}, "missing_lines": [104, 105, 107, 108, 109, 110, 111, 113, 114, 116, 119, 122, 123, 127, 128, 131, 132, 133, 134, 137, 138, 141, 143, 144, 147, 155, 173, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 191, 193, 197, 198, 200, 207, 208, 213, 214, 215, 239, 240, 241, 242, 284], "excluded_lines": [], "start_line": 43}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 22, 23, 26, 27, 32, 33, 36, 37, 38, 39, 40, 43, 46, 92, 163, 195, 217, 258, 274, 280], "summary": {"covered_lines": 34, "num_statements": 37, "percent_covered": 91.89189189189189, "percent_covered_display": "92", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 91.89189189189189, "percent_statements_covered_display": "92"}, "missing_lines": [15, 28, 29], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\parser.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 13, 18, 19, 22, 23, 24, 25, 26, 29, 30, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 54, 56, 62, 65, 66, 70, 71, 84, 85, 99, 108, 109, 111, 112, 115, 118, 121, 124, 126, 134, 136, 137, 138, 139, 140, 145, 147, 149, 150, 151, 152, 153, 154, 156, 158, 159, 160, 161, 162, 163, 164, 166, 168, 169, 170, 171, 172, 173, 174, 176, 179, 180, 183, 186, 189, 192, 195, 197, 205, 208, 209, 212, 215, 218, 221, 224, 225, 226, 227, 228, 229, 230, 231, 233, 241, 243, 244, 247, 248, 249, 250, 251, 258, 260, 261, 264, 265, 266, 267, 268, 275, 277, 278, 279, 282, 283, 284, 285, 287], "summary": {"covered_lines": 129, "num_statements": 154, "percent_covered": 83.76623376623377, "percent_covered_display": "84", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 83.76623376623377, "percent_statements_covered_display": "84"}, "missing_lines": [14, 15, 57, 67, 72, 74, 75, 76, 77, 78, 79, 81, 86, 88, 89, 90, 91, 95, 181, 210, 245, 256, 262, 273, 280], "excluded_lines": [], "functions": {"CodeParser.__init__": {"executed_lines": [56, 62, 65, 66, 70, 71, 84, 85], "summary": {"covered_lines": 8, "num_statements": 24, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [57, 67, 72, 74, 75, 76, 77, 78, 79, 81, 86, 88, 89, 90, 91, 95], "excluded_lines": [], "start_line": 54}, "CodeParser.parse_file": {"executed_lines": [108, 109, 111, 112, 115, 118, 121, 124, 126], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 99}, "CodeParser._extract_module_docstring": {"executed_lines": [136, 137, 138, 139, 140, 145], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "CodeParser._extract_imports": {"executed_lines": [149, 150, 151, 152, 153, 154], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "CodeParser._extract_functions": {"executed_lines": [158, 159, 160, 161, 162, 163, 164], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 156}, "CodeParser._extract_classes": {"executed_lines": [168, 169, 170, 171, 172, 173, 174], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 166}, "CodeParser._parse_function": {"executed_lines": [179, 180, 183, 186, 189, 192, 195, 197], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [181], "excluded_lines": [], "start_line": 176}, "CodeParser._parse_class": {"executed_lines": [208, 209, 212, 215, 218, 221, 224, 225, 226, 227, 228, 229, 230, 231, 233], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [210], "excluded_lines": [], "start_line": 205}, "CodeParser._extract_function_docstring": {"executed_lines": [243, 244, 247, 248, 249, 250, 251], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [245, 256], "excluded_lines": [], "start_line": 241}, "CodeParser._extract_class_docstring": {"executed_lines": [260, 261, 264, 265, 266, 267, 268], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [262, 273], "excluded_lines": [], "start_line": 258}, "CodeParser._extract_parameters": {"executed_lines": [277, 278, 279, 282, 283, 284, 285, 287], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [280], "excluded_lines": [], "start_line": 275}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 13, 18, 19, 22, 23, 24, 25, 26, 29, 30, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 54, 99, 134, 147, 156, 166, 176, 205, 241, 258, 275], "summary": {"covered_lines": 41, "num_statements": 43, "percent_covered": 95.34883720930233, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 95.34883720930233, "percent_statements_covered_display": "95"}, "missing_lines": [14, 15], "excluded_lines": [], "start_line": 1}}, "classes": {"ParsedFunction": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "ParsedClass": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 30}, "ParsedFile": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 41}, "CodeParser": {"executed_lines": [56, 62, 65, 66, 70, 71, 84, 85, 108, 109, 111, 112, 115, 118, 121, 124, 126, 136, 137, 138, 139, 140, 145, 149, 150, 151, 152, 153, 154, 158, 159, 160, 161, 162, 163, 164, 168, 169, 170, 171, 172, 173, 174, 179, 180, 183, 186, 189, 192, 195, 197, 208, 209, 212, 215, 218, 221, 224, 225, 226, 227, 228, 229, 230, 231, 233, 243, 244, 247, 248, 249, 250, 251, 260, 261, 264, 265, 266, 267, 268, 277, 278, 279, 282, 283, 284, 285, 287], "summary": {"covered_lines": 88, "num_statements": 111, "percent_covered": 79.27927927927928, "percent_covered_display": "79", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 79.27927927927928, "percent_statements_covered_display": "79"}, "missing_lines": [57, 67, 72, 74, 75, 76, 77, 78, 79, 81, 86, 88, 89, 90, 91, 95, 181, 210, 245, 256, 262, 273, 280], "excluded_lines": [], "start_line": 51}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 13, 18, 19, 22, 23, 24, 25, 26, 29, 30, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 54, 99, 134, 147, 156, 166, 176, 205, 241, 258, 275], "summary": {"covered_lines": 41, "num_statements": 43, "percent_covered": 95.34883720930233, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 95.34883720930233, "percent_statements_covered_display": "95"}, "missing_lines": [14, 15], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\retriever.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 31, 32, 35, 38, 51, 52, 56, 57, 60, 63, 68, 69, 70, 71, 75, 89, 92, 93, 94, 97, 104, 105, 106, 107, 108, 110, 122, 124, 134, 137, 138, 139, 140, 142, 154, 156, 166, 168], "summary": {"covered_lines": 58, "num_statements": 60, "percent_covered": 96.66666666666667, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.66666666666667, "percent_statements_covered_display": "97"}, "missing_lines": [14, 178], "excluded_lines": [], "functions": {"ContextRetriever.__init__": {"executed_lines": [51, 52, 56, 57, 60, 63, 68, 69, 70, 71], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 38}, "ContextRetriever.retrieve_similar": {"executed_lines": [89, 92, 93, 94, 97, 104, 105, 106, 107, 108, 110, 122], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 75}, "ContextRetriever.retrieve_by_file": {"executed_lines": [134, 137, 138, 139, 140, 142, 154], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 124}, "ContextRetriever.retrieve_functions": {"executed_lines": [166], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 156}, "ContextRetriever.retrieve_classes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [178], "excluded_lines": [], "start_line": 168}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 31, 32, 35, 38, 75, 124, 156, 168], "summary": {"covered_lines": 28, "num_statements": 29, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.55172413793103, "percent_statements_covered_display": "97"}, "missing_lines": [14], "excluded_lines": [], "start_line": 1}}, "classes": {"RetrievedContext": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "ContextRetriever": {"executed_lines": [51, 52, 56, 57, 60, 63, 68, 69, 70, 71, 89, 92, 93, 94, 97, 104, 105, 106, 107, 108, 110, 122, 134, 137, 138, 139, 140, 142, 154, 166], "summary": {"covered_lines": 30, "num_statements": 31, "percent_covered": 96.7741935483871, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.7741935483871, "percent_statements_covered_display": "97"}, "missing_lines": [178], "excluded_lines": [], "start_line": 35}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 31, 32, 35, 38, 75, 124, 156, 168], "summary": {"covered_lines": 28, "num_statements": 29, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.55172413793103, "percent_statements_covered_display": "97"}, "missing_lines": [14], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\add_docstring_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 52, 59, 62, 63, 68, 70, 85, 89, 90, 92, 94, 96, 97, 98, 100, 103, 105, 110, 113, 114, 115, 119, 123, 124, 125, 128, 129, 131, 134, 135, 136, 137, 138, 141, 143, 144, 145, 147, 150, 152, 153, 154, 158, 160, 161, 163, 167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 183, 186, 187, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 203, 205, 210, 211, 212, 213, 214, 215, 217, 219, 221, 223, 224], "summary": {"covered_lines": 111, "num_statements": 119, "percent_covered": 93.27731092436974, "percent_covered_display": "93", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 93.27731092436974, "percent_statements_covered_display": "93"}, "missing_lines": [65, 106, 107, 108, 117, 156, 191, 201], "excluded_lines": [], "functions": {"AddDocstringRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "AddDocstringRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "AddDocstringRefactorer._create_docstring_addition": {"executed_lines": [59, 62, 63, 68, 70], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [65], "excluded_lines": [], "start_line": 52}, "AddDocstringRefactorer._generate_with_docstring": {"executed_lines": [89, 90, 92], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 85}, "AddDocstringRefactorer._generate_class_with_docstring": {"executed_lines": [96, 97, 98, 100, 103, 105, 110, 113, 114, 115], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [106, 107, 108, 117], "excluded_lines": [], "start_line": 94}, "AddDocstringRefactorer._generate_function_with_docstring": {"executed_lines": [123, 124, 125, 128, 129, 131, 134, 135, 136, 137, 138, 141, 143, 144, 145, 147, 150, 152, 153, 154], "summary": {"covered_lines": 20, "num_statements": 21, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.23809523809524, "percent_statements_covered_display": "95"}, "missing_lines": [156], "excluded_lines": [], "start_line": 119}, "AddDocstringRefactorer._generate_class_description": {"executed_lines": [160, 161], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 158}, "AddDocstringRefactorer._generate_function_description": {"executed_lines": [167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 163}, "AddDocstringRefactorer._generate_param_description": {"executed_lines": [186, 187, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 203], "summary": {"covered_lines": 14, "num_statements": 16, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [191, 201], "excluded_lines": [], "start_line": 183}, "AddDocstringRefactorer._generate_return_description": {"executed_lines": [210, 211, 212, 213, 214, 215, 217], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 205}, "AddDocstringRefactorer._split_camel_case": {"executed_lines": [221, 223, 224], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 219}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 52, 85, 94, 119, 158, 163, 183, 205, 219], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"AddDocstringRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 59, 62, 63, 68, 70, 89, 90, 92, 96, 97, 98, 100, 103, 105, 110, 113, 114, 115, 123, 124, 125, 128, 129, 131, 134, 135, 136, 137, 138, 141, 143, 144, 145, 147, 150, 152, 153, 154, 160, 161, 167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 186, 187, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 203, 210, 211, 212, 213, 214, 215, 217, 221, 223, 224], "summary": {"covered_lines": 93, "num_statements": 101, "percent_covered": 92.07920792079207, "percent_covered_display": "92", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 92.07920792079207, "percent_statements_covered_display": "92"}, "missing_lines": [65, 106, 107, 108, 117, 156, 191, 201], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 52, 85, 94, 119, 158, 163, 183, 205, 219], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\base_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 21, 23, 24, 37, 38, 39], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 86.66666666666667, "percent_statements_covered_display": "87"}, "missing_lines": [35, 41], "excluded_lines": [], "functions": {"BaseRefactorer.__init__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "BaseRefactorer.refactor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35], "excluded_lines": [], "start_line": 24}, "BaseRefactorer.operation_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 39}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BaseRefactorer": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [35, 41], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\extract_method_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 34, 35, 37, 39, 40, 42, 44, 51, 54, 56, 58, 59, 61, 62, 64, 75, 78, 80, 82, 84, 85, 86, 87], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.29729729729729, "percent_statements_covered_display": "97"}, "missing_lines": [89], "excluded_lines": [], "functions": {"ExtractMethodRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "ExtractMethodRefactorer.refactor": {"executed_lines": [29, 31, 32, 34, 35, 37, 39, 40, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "ExtractMethodRefactorer._analyze_function": {"executed_lines": [51, 54, 56, 58, 59, 61, 62, 64, 75, 78, 80], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 44}, "ExtractMethodRefactorer._get_code_snippet": {"executed_lines": [84, 85, 86, 87], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [89], "excluded_lines": [], "start_line": 82}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 44, 82], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ExtractMethodRefactorer": {"executed_lines": [16, 29, 31, 32, 34, 35, 37, 39, 40, 42, 51, 54, 56, 58, 59, 61, 62, 64, 75, 78, 80, 84, 85, 86, 87], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.15384615384616, "percent_statements_covered_display": "96"}, "missing_lines": [89], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 44, 82], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\magic_number_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 56, 58, 60, 62, 64, 65, 67, 68, 70, 72, 76, 77, 78, 79, 80, 83, 88, 89, 90, 91, 92, 93, 95, 99, 100, 105, 106, 107, 108, 111, 112, 113, 116, 117, 119, 121, 123, 137, 139, 141, 142, 143, 144, 154, 156, 157, 158, 159, 160, 163], "summary": {"covered_lines": 79, "num_statements": 90, "percent_covered": 87.77777777777777, "percent_covered_display": "88", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 87.77777777777777, "percent_statements_covered_display": "88"}, "missing_lines": [81, 96, 102, 145, 146, 147, 148, 150, 151, 155, 161], "excluded_lines": [], "functions": {"MagicNumberRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "MagicNumberRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 56, 58], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "MagicNumberRefactorer._find_magic_numbers": {"executed_lines": [62, 64, 65, 67, 68, 70], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 60}, "MagicNumberRefactorer._get_containing_function": {"executed_lines": [76, 77, 78, 79, 80], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [81], "excluded_lines": [], "start_line": 72}, "MagicNumberRefactorer._create_refactoring": {"executed_lines": [88, 89, 90, 91, 92, 93, 95, 99, 100, 105, 106, 107, 108, 111, 112, 113, 116, 117, 119, 121, 123], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [96, 102], "excluded_lines": [], "start_line": 83}, "MagicNumberRefactorer._generate_constant_name": {"executed_lines": [139, 141, 142, 143, 144, 154, 156, 157, 158, 159, 160, 163], "summary": {"covered_lines": 12, "num_statements": 20, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [145, 146, 147, 148, 150, 151, 155, 161], "excluded_lines": [], "start_line": 137}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 60, 72, 83, 137], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"MagicNumberRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 56, 58, 62, 64, 65, 67, 68, 70, 76, 77, 78, 79, 80, 88, 89, 90, 91, 92, 93, 95, 99, 100, 105, 106, 107, 108, 111, 112, 113, 116, 117, 119, 121, 123, 139, 141, 142, 143, 144, 154, 156, 157, 158, 159, 160, 163], "summary": {"covered_lines": 66, "num_statements": 77, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [81, 96, 102, 145, 146, 147, 148, 150, 151, 155, 161], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 60, 72, 83, 137], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\reduce_parameters_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 35, 36, 37, 39, 40, 43, 44, 46, 47, 49, 51, 60, 61, 66, 68, 93, 97, 98, 101, 104, 112, 114, 115, 118, 134, 135, 137, 153, 155, 157, 159, 160, 161, 162, 163, 165, 166, 168], "summary": {"covered_lines": 52, "num_statements": 54, "percent_covered": 96.29629629629629, "percent_covered_display": "96", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.29629629629629, "percent_statements_covered_display": "96"}, "missing_lines": [63, 164], "excluded_lines": [], "functions": {"ReduceParametersRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "ReduceParametersRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 35, 36, 37, 39, 40, 43, 44, 46, 47, 49], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "ReduceParametersRefactorer._create_parameter_reduction": {"executed_lines": [60, 61, 66, 68], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [63], "excluded_lines": [], "start_line": 51}, "ReduceParametersRefactorer._generate_with_config_object": {"executed_lines": [97, 98, 101, 104, 112, 114, 115, 118, 134, 135, 137, 153], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 93}, "ReduceParametersRefactorer._infer_type": {"executed_lines": [157, 159, 160, 161, 162, 163, 165, 166, 168], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [164], "excluded_lines": [], "start_line": 155}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 51, 93, 155], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ReduceParametersRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 35, 36, 37, 39, 40, 43, 44, 46, 47, 49, 60, 61, 66, 68, 97, 98, 101, 104, 112, 114, 115, 118, 134, 135, 137, 153, 157, 159, 160, 161, 162, 163, 165, 166, 168], "summary": {"covered_lines": 40, "num_statements": 42, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 95.23809523809524, "percent_statements_covered_display": "95"}, "missing_lines": [63, 164], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 51, 93, 155], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\simplify_conditionals_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 49, 51, 52, 54, 55, 56, 57, 59, 61, 70, 71, 76, 78, 97, 102, 105, 108, 125], "summary": {"covered_lines": 42, "num_statements": 43, "percent_covered": 97.67441860465117, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.67441860465117, "percent_statements_covered_display": "98"}, "missing_lines": [73], "excluded_lines": [], "functions": {"SimplifyConditionalsRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "SimplifyConditionalsRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "SimplifyConditionalsRefactorer._get_max_nesting_depth": {"executed_lines": [51, 52, 54, 55, 56, 57, 59], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 49}, "SimplifyConditionalsRefactorer._create_simplification": {"executed_lines": [70, 71, 76, 78], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [73], "excluded_lines": [], "start_line": 61}, "SimplifyConditionalsRefactorer._generate_simplified_version": {"executed_lines": [102, 105, 108, 125], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 97}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 49, 61, 97], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SimplifyConditionalsRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 51, 52, 54, 55, 56, 57, 59, 70, 71, 76, 78, 102, 105, 108, 125], "summary": {"covered_lines": 30, "num_statements": 31, "percent_covered": 96.7741935483871, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.7741935483871, "percent_statements_covered_display": "97"}, "missing_lines": [73], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 49, 61, 97], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rules\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}}, "totals": {"covered_lines": 5531, "num_statements": 7974, "percent_covered": 69.36292952094307, "percent_covered_display": "69", "missing_lines": 2443, "excluded_lines": 6, "percent_statements_covered": 69.36292952094307, "percent_statements_covered_display": "69"}} \ No newline at end of file +{"meta": {"format": 3, "version": "7.13.4", "timestamp": "2026-03-11T14:25:10.773298", "branch_coverage": false, "show_contexts": false}, "files": {"refactron\\__init__.py": {"executed_lines": [7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\ai\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\base_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 21, 23, 24, 37, 38, 39], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 86.66666666666667, "percent_statements_covered_display": "87"}, "missing_lines": [35, 41], "excluded_lines": [], "functions": {"BaseAnalyzer.__init__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "BaseAnalyzer.analyze": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35], "excluded_lines": [], "start_line": 24}, "BaseAnalyzer.name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 39}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BaseAnalyzer": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [35, 41], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\code_smell_analyzer.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 14, 17, 22, 23, 25, 26, 27, 29, 40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 62, 65, 68, 72, 73, 75, 77, 81, 83, 84, 85, 87, 89, 91, 93, 94, 95, 97, 98, 112, 114, 116, 123, 124, 126, 128, 129, 131, 132, 133, 134, 136, 138, 139, 140, 142, 143, 154, 156, 158, 160, 163, 165, 166, 167, 170, 171, 172, 173, 174, 176, 177, 178, 179, 191, 192, 193, 195, 197, 199, 201, 203, 205, 206, 216, 218, 220, 222, 224, 225, 227, 228, 230, 231, 232, 233, 244, 246, 248, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 275, 276, 278, 279, 282, 283, 286, 290, 291, 292, 293, 294, 296, 297, 299, 300, 310, 312, 314, 316, 318, 320, 322, 323, 326, 328, 329, 331, 333, 336, 337, 339, 340, 341, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 374, 375, 376, 392, 393, 395], "summary": {"covered_lines": 181, "num_statements": 185, "percent_covered": 97.83783783783784, "percent_covered_display": "98", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 97.83783783783784, "percent_statements_covered_display": "98"}, "missing_lines": [287, 344, 345, 346], "excluded_lines": [], "functions": {"CodeSmellAnalyzer.__init__": {"executed_lines": [22, 23], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "CodeSmellAnalyzer.name": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 26}, "CodeSmellAnalyzer.analyze": {"executed_lines": [40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 62, 65, 68, 72, 73, 75, 77, 81, 83, 84, 85, 87], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 29}, "CodeSmellAnalyzer._check_too_many_parameters": {"executed_lines": [91, 93, 94, 95, 97, 98, 112, 114], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 89}, "CodeSmellAnalyzer._check_nested_depth": {"executed_lines": [123, 124, 126, 138, 139, 140, 142, 143, 154, 156], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 116}, "CodeSmellAnalyzer._check_nested_depth.get_nesting_depth": {"executed_lines": [128, 129, 131, 132, 133, 134, 136], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 126}, "CodeSmellAnalyzer._check_duplicate_code": {"executed_lines": [160, 163, 165, 166, 167, 170, 171, 172, 173, 174, 176, 177, 178, 179, 191, 192, 193, 195], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 158}, "CodeSmellAnalyzer._check_magic_numbers": {"executed_lines": [199, 201, 203, 205, 206, 216, 218], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 197}, "CodeSmellAnalyzer._check_missing_docstrings": {"executed_lines": [222, 224, 225, 227, 228, 230, 231, 232, 233, 244, 246], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 220}, "CodeSmellAnalyzer._check_unused_imports": {"executed_lines": [252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 275, 276, 278, 279, 282, 283, 286, 290, 291, 292, 293, 294, 296, 297, 299, 300, 310, 312], "summary": {"covered_lines": 34, "num_statements": 35, "percent_covered": 97.14285714285714, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.14285714285714, "percent_statements_covered_display": "97"}, "missing_lines": [287], "excluded_lines": [], "start_line": 248}, "CodeSmellAnalyzer._check_repeated_code_blocks": {"executed_lines": [316, 318, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 374, 375, 376, 392, 393, 395], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 314}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern": {"executed_lines": [320, 322, 323, 328, 336, 337, 339, 340, 341], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [344, 345, 346], "excluded_lines": [], "start_line": 318}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern.PatternVisitor.visit_Constant": {"executed_lines": [326], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 323}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern.PatternVisitor.visit_Name": {"executed_lines": [329, 331, 333], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 328}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 14, 17, 25, 26, 29, 89, 116, 158, 197, 220, 248, 314], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"CodeSmellAnalyzer": {"executed_lines": [22, 23, 27, 40, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 62, 65, 68, 72, 73, 75, 77, 81, 83, 84, 85, 87, 91, 93, 94, 95, 97, 98, 112, 114, 123, 124, 126, 128, 129, 131, 132, 133, 134, 136, 138, 139, 140, 142, 143, 154, 156, 160, 163, 165, 166, 167, 170, 171, 172, 173, 174, 176, 177, 178, 179, 191, 192, 193, 195, 199, 201, 203, 205, 206, 216, 218, 222, 224, 225, 227, 228, 230, 231, 232, 233, 244, 246, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 273, 274, 275, 276, 278, 279, 282, 283, 286, 290, 291, 292, 293, 294, 296, 297, 299, 300, 310, 312, 316, 318, 320, 322, 323, 328, 336, 337, 339, 340, 341, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 374, 375, 376, 392, 393, 395], "summary": {"covered_lines": 157, "num_statements": 161, "percent_covered": 97.51552795031056, "percent_covered_display": "98", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 97.51552795031056, "percent_statements_covered_display": "98"}, "missing_lines": [287, 344, 345, 346], "excluded_lines": [], "start_line": 14}, "CodeSmellAnalyzer._check_repeated_code_blocks.get_statement_pattern.PatternVisitor": {"executed_lines": [326, 329, 331, 333], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 322}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 14, 17, 25, 26, 29, 89, 116, 158, 197, 220, 248, 314], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\complexity_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 32, 34, 36, 38, 39, 40, 42, 58, 61, 62, 63, 80, 81, 82, 83, 84, 86, 87, 103, 106, 109, 114, 116, 123, 125, 127, 129, 130, 131, 132, 133, 134, 137, 141, 142, 147, 149, 150, 152, 154, 155, 157, 158, 159, 160, 162, 164, 165, 166, 168, 169, 186, 188, 190, 192, 193, 195, 197, 198, 199, 200, 202, 204, 205, 206, 208, 209, 224, 226], "summary": {"covered_lines": 81, "num_statements": 89, "percent_covered": 91.01123595505618, "percent_covered_display": "91", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 91.01123595505618, "percent_statements_covered_display": "91"}, "missing_lines": [64, 75, 76, 77, 111, 112, 135, 145], "excluded_lines": [], "functions": {"ComplexityAnalyzer.name": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "ComplexityAnalyzer.analyze": {"executed_lines": [32, 34, 36, 38, 39, 40, 42, 58, 61, 62, 63, 80, 81, 82, 83, 84, 86, 87, 103, 106, 109, 114, 116, 123, 125], "summary": {"covered_lines": 25, "num_statements": 31, "percent_covered": 80.64516129032258, "percent_covered_display": "81", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 80.64516129032258, "percent_statements_covered_display": "81"}, "missing_lines": [64, 75, 76, 77, 111, 112], "excluded_lines": [], "start_line": 21}, "ComplexityAnalyzer._get_complexity_level": {"executed_lines": [129, 130, 131, 132, 133, 134], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [135], "excluded_lines": [], "start_line": 127}, "ComplexityAnalyzer._get_function_length": {"executed_lines": [141, 142], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [145], "excluded_lines": [], "start_line": 137}, "ComplexityAnalyzer._check_nested_loops": {"executed_lines": [149, 150, 152, 164, 165, 166, 168, 169, 186, 188], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "ComplexityAnalyzer._check_nested_loops.get_loop_depth": {"executed_lines": [154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 152}, "ComplexityAnalyzer._check_call_chain_complexity": {"executed_lines": [192, 193, 195, 204, 205, 206, 208, 209, 224, 226], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 190}, "ComplexityAnalyzer._check_call_chain_complexity.get_chain_length": {"executed_lines": [197, 198, 199, 200, 202], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 195}, "": {"executed_lines": [3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 21, 127, 137, 147, 190], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ComplexityAnalyzer": {"executed_lines": [19, 32, 34, 36, 38, 39, 40, 42, 58, 61, 62, 63, 80, 81, 82, 83, 84, 86, 87, 103, 106, 109, 114, 116, 123, 125, 129, 130, 131, 132, 133, 134, 141, 142, 149, 150, 152, 154, 155, 157, 158, 159, 160, 162, 164, 165, 166, 168, 169, 186, 188, 192, 193, 195, 197, 198, 199, 200, 202, 204, 205, 206, 208, 209, 224, 226], "summary": {"covered_lines": 66, "num_statements": 74, "percent_covered": 89.1891891891892, "percent_covered_display": "89", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 89.1891891891892, "percent_statements_covered_display": "89"}, "missing_lines": [64, 75, 76, 77, 111, 112, 135, 145], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 21, 127, 137, 147, 190], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\dead_code_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 46, 48, 51, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 73, 75, 76, 89, 91, 93, 95, 98, 99, 101, 102, 104, 106, 107, 108, 109, 112, 113, 116, 117, 118, 134, 136, 138, 140, 142, 143, 145, 147, 148, 149, 159, 160, 162, 163, 166, 167, 169, 171, 175, 177, 178, 179, 188, 189, 191, 192, 194, 196, 198, 199, 201, 202, 205, 206, 208, 209, 211, 212, 213, 214, 216, 217, 228, 230, 232, 234, 236, 237, 239, 240, 241, 252, 254, 255, 264, 267, 268, 269, 270, 271, 272, 273, 282, 283, 284, 293, 295, 297, 299, 300, 301, 302, 303, 304, 305, 306, 307], "summary": {"covered_lines": 135, "num_statements": 135, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"DeadCodeAnalyzer.name": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "DeadCodeAnalyzer.analyze": {"executed_lines": [29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "DeadCodeAnalyzer._check_unused_functions": {"executed_lines": [48, 51, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 73, 75, 76, 89, 91], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "DeadCodeAnalyzer._check_unused_variables": {"executed_lines": [95, 98, 99, 101, 102, 104, 106, 107, 108, 109, 112, 113, 116, 117, 118, 134, 136], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 93}, "DeadCodeAnalyzer._check_unreachable_code": {"executed_lines": [140, 142, 143, 145, 147, 148, 149, 159, 160, 162, 163, 166, 167, 169], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 138}, "DeadCodeAnalyzer._check_loop_unreachable": {"executed_lines": [175, 177, 178, 179, 188, 189, 191, 192], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 171}, "DeadCodeAnalyzer._check_empty_functions": {"executed_lines": [196, 198, 199, 201, 202, 205, 206, 208, 209, 211, 212, 213, 214, 216, 217, 228, 230], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 194}, "DeadCodeAnalyzer._check_redundant_conditions": {"executed_lines": [234, 236, 237, 239, 240, 241, 252, 254, 255, 264, 267, 268, 269, 270, 271, 272, 273, 282, 283, 284, 293, 295], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 232}, "DeadCodeAnalyzer._is_exported": {"executed_lines": [299, 300, 301, 302, 303, 304, 305, 306, 307], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 297}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 93, 138, 171, 194, 232, 297], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DeadCodeAnalyzer": {"executed_lines": [16, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 48, 51, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 73, 75, 76, 89, 91, 95, 98, 99, 101, 102, 104, 106, 107, 108, 109, 112, 113, 116, 117, 118, 134, 136, 140, 142, 143, 145, 147, 148, 149, 159, 160, 162, 163, 166, 167, 169, 175, 177, 178, 179, 188, 189, 191, 192, 196, 198, 199, 201, 202, 205, 206, 208, 209, 211, 212, 213, 214, 216, 217, 228, 230, 234, 236, 237, 239, 240, 241, 252, 254, 255, 264, 267, 268, 269, 270, 271, 272, 273, 282, 283, 284, 293, 295, 299, 300, 301, 302, 303, 304, 305, 306, 307], "summary": {"covered_lines": 119, "num_statements": 119, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 93, 138, 171, 194, 232, 297], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\dependency_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 14, 17, 18, 19, 21, 22, 23, 25, 36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 50, 51, 53, 55, 59, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 87, 88, 90, 91, 92, 93, 95, 96, 106, 108, 110, 112, 114, 115, 116, 117, 118, 119, 130, 132, 134, 136, 139, 140, 141, 142, 143, 147, 163, 164, 166, 168, 170, 172, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 187, 188, 189, 191, 192, 194, 195, 210, 211, 213, 215, 217, 219, 221, 222, 223, 224, 235, 237, 239, 241, 243, 245, 246, 247, 248, 249, 250, 263, 265, 267, 269, 271, 273, 281, 282, 283, 284, 285, 295, 297, 298, 311, 313, 315, 316, 317, 321, 323, 326, 535, 537, 538, 539, 540], "summary": {"covered_lines": 143, "num_statements": 147, "percent_covered": 97.27891156462584, "percent_covered_display": "97", "missing_lines": 4, "excluded_lines": 2, "percent_statements_covered": 97.27891156462584, "percent_statements_covered_display": "97"}, "missing_lines": [299, 309, 318, 541], "excluded_lines": [10, 11], "functions": {"DependencyAnalyzer.__init__": {"executed_lines": [18, 19], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "DependencyAnalyzer.name": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "DependencyAnalyzer.analyze": {"executed_lines": [36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 50, 51, 53], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "DependencyAnalyzer._check_unused_imports": {"executed_lines": [59, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 87, 88, 90, 91, 92, 93, 95, 96, 106, 108], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 55}, "DependencyAnalyzer._check_wildcard_imports": {"executed_lines": [112, 114, 115, 116, 117, 118, 119, 130, 132], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 110}, "DependencyAnalyzer._check_circular_imports": {"executed_lines": [136, 139, 140, 141, 142, 143, 147, 163, 164, 166], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "DependencyAnalyzer._check_import_order": {"executed_lines": [170, 172, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 187, 188, 189, 191, 192, 194, 195, 210, 211, 213, 215], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 168}, "DependencyAnalyzer._check_relative_imports": {"executed_lines": [219, 221, 222, 223, 224, 235, 237], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 217}, "DependencyAnalyzer._check_duplicate_imports": {"executed_lines": [241, 243, 245, 246, 247, 248, 249, 250, 263, 265, 267], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 239}, "DependencyAnalyzer._check_deprecated_modules": {"executed_lines": [271, 273, 281, 282, 283, 284, 285, 295, 297, 298, 311], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [299, 309], "excluded_lines": [], "start_line": 269}, "DependencyAnalyzer._classify_import": {"executed_lines": [315, 316, 317, 321], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [318], "excluded_lines": [], "start_line": 313}, "DependencyAnalyzer._get_stdlib_modules": {"executed_lines": [326], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 323}, "DependencyAnalyzer._get_root_name": {"executed_lines": [537, 538, 539, 540], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [541], "excluded_lines": [], "start_line": 535}, "": {"executed_lines": [3, 4, 5, 7, 8, 14, 17, 21, 22, 25, 55, 110, 134, 168, 217, 239, 269, 313, 323, 535], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [10, 11], "start_line": 1}}, "classes": {"DependencyAnalyzer": {"executed_lines": [18, 19, 23, 36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 50, 51, 53, 59, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 77, 79, 81, 82, 84, 87, 88, 90, 91, 92, 93, 95, 96, 106, 108, 112, 114, 115, 116, 117, 118, 119, 130, 132, 136, 139, 140, 141, 142, 143, 147, 163, 164, 166, 170, 172, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 187, 188, 189, 191, 192, 194, 195, 210, 211, 213, 215, 219, 221, 222, 223, 224, 235, 237, 241, 243, 245, 246, 247, 248, 249, 250, 263, 265, 267, 271, 273, 281, 282, 283, 284, 285, 295, 297, 298, 311, 315, 316, 317, 321, 326, 537, 538, 539, 540], "summary": {"covered_lines": 123, "num_statements": 127, "percent_covered": 96.85039370078741, "percent_covered_display": "97", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 96.85039370078741, "percent_statements_covered_display": "97"}, "missing_lines": [299, 309, 318, 541], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 7, 8, 14, 17, 21, 22, 25, 55, 110, 134, 168, 217, 239, 269, 313, 323, 535], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [10, 11], "start_line": 1}}}, "refactron\\analyzers\\performance_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 46, 48, 50, 51, 53, 54, 55, 58, 72, 73, 90, 91, 93, 95, 99, 101, 103, 104, 107, 108, 109, 110, 111, 112, 125, 128, 130, 131, 132, 133, 135, 136, 137, 138, 140, 142, 158, 160, 162, 164, 165, 167, 169, 170, 171, 172, 173, 174, 175, 178, 179, 180, 196, 198, 200, 204, 206, 207, 209, 210, 211, 213, 214, 232, 233, 235, 237, 239, 241, 242, 243, 246, 247, 250, 251, 263, 265, 267, 269, 270, 271, 272], "summary": {"covered_lines": 103, "num_statements": 107, "percent_covered": 96.26168224299066, "percent_covered_display": "96", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 96.26168224299066, "percent_statements_covered_display": "96"}, "missing_lines": [134, 143, 156, 273], "excluded_lines": [], "functions": {"PerformanceAnalyzer.name": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "PerformanceAnalyzer.analyze": {"executed_lines": [29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "PerformanceAnalyzer._check_n_plus_one_queries": {"executed_lines": [48, 50, 51, 53, 54, 55, 58, 72, 73, 90, 91, 93], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "PerformanceAnalyzer._check_inefficient_list_comprehensions": {"executed_lines": [99, 101, 103, 104, 107, 108, 109, 110, 111, 112, 125, 128, 130, 131, 132, 133, 135, 136, 137, 138, 140, 142, 158], "summary": {"covered_lines": 23, "num_statements": 26, "percent_covered": 88.46153846153847, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 88.46153846153847, "percent_statements_covered_display": "88"}, "missing_lines": [134, 143, 156], "excluded_lines": [], "start_line": 95}, "PerformanceAnalyzer._check_unnecessary_iterations": {"executed_lines": [162, 164, 165, 167, 169, 170, 171, 172, 173, 174, 175, 178, 179, 180, 196, 198], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 160}, "PerformanceAnalyzer._check_inefficient_string_concatenation": {"executed_lines": [204, 206, 207, 209, 210, 211, 213, 214, 232, 233, 235], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 200}, "PerformanceAnalyzer._check_redundant_list_calls": {"executed_lines": [239, 241, 242, 243, 246, 247, 250, 251, 263, 265], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 237}, "PerformanceAnalyzer._get_function_name": {"executed_lines": [269, 270, 271, 272], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [273], "excluded_lines": [], "start_line": 267}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 95, 160, 200, 237, 267], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PerformanceAnalyzer": {"executed_lines": [16, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 48, 50, 51, 53, 54, 55, 58, 72, 73, 90, 91, 93, 99, 101, 103, 104, 107, 108, 109, 110, 111, 112, 125, 128, 130, 131, 132, 133, 135, 136, 137, 138, 140, 142, 158, 162, 164, 165, 167, 169, 170, 171, 172, 173, 174, 175, 178, 179, 180, 196, 198, 204, 206, 207, 209, 210, 211, 213, 214, 232, 233, 235, 239, 241, 242, 243, 246, 247, 250, 251, 263, 265, 269, 270, 271, 272], "summary": {"covered_lines": 88, "num_statements": 92, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 95.65217391304348, "percent_statements_covered_display": "96"}, "missing_lines": [134, 143, 156, 273], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 95, 160, 200, 237, 267], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\security_analyzer.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 12, 16, 17, 18, 21, 32, 39, 45, 57, 58, 59, 61, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 78, 89, 92, 93, 96, 98, 99, 102, 103, 105, 106, 108, 110, 122, 123, 125, 127, 128, 131, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 149, 163, 164, 165, 166, 168, 169, 171, 173, 175, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 190, 192, 194, 195, 196, 198, 200, 202, 213, 215, 217, 219, 221, 222, 223, 225, 226, 227, 228, 230, 231, 233, 235, 246, 248, 250, 252, 254, 268, 284, 285, 286, 287, 288, 291, 292, 295, 297, 300, 302, 304, 305, 306, 310, 312, 328, 330, 332, 334, 336, 337, 338, 341, 342, 343, 346, 347, 360, 362, 365, 378, 380, 382, 384, 387, 389, 397, 398, 399, 402, 420, 421, 422, 423, 424, 425, 426, 428, 429, 439, 441, 443, 445, 447, 448, 449, 450, 451, 452, 463, 465, 467, 469, 471, 472, 473, 475, 476, 488, 490, 492, 494, 496, 497, 500, 511, 513, 515, 517, 518, 519, 520, 523, 525, 527, 528, 529, 530, 531, 533, 534, 535, 537, 539, 542, 544, 545, 546, 547, 549, 551, 554, 555, 556, 557, 560, 561, 564, 565, 566, 569, 571, 572, 575, 595, 615, 616, 632, 634, 636, 638, 640, 641, 642, 645, 646, 648, 649, 652, 665, 666, 683, 685, 687, 689, 691, 692, 694, 695, 696, 698, 699, 712, 714, 716, 718, 720, 721, 723, 724, 725, 728, 729, 741, 744, 745, 749, 750, 751, 752, 764, 766], "summary": {"covered_lines": 275, "num_statements": 285, "percent_covered": 96.49122807017544, "percent_covered_display": "96", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 96.49122807017544, "percent_statements_covered_display": "96"}, "missing_lines": [182, 406, 416, 417, 521, 576, 592, 596, 597, 612], "excluded_lines": [], "functions": {"SecurityAnalyzer.name": {"executed_lines": [59], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 58}, "SecurityAnalyzer._is_ignored_file": {"executed_lines": [63, 64, 65, 66, 67], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "SecurityAnalyzer._is_rule_whitelisted": {"executed_lines": [71, 72, 73, 74, 75, 76], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 69}, "SecurityAnalyzer._get_context_confidence": {"executed_lines": [89, 92, 93, 96, 98, 99, 102, 103, 105, 106, 108], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 78}, "SecurityAnalyzer.analyze": {"executed_lines": [122, 123, 125, 127, 128, 131, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 149, 163, 164, 165, 166, 168, 169, 171, 173], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 110}, "SecurityAnalyzer._build_alias_map": {"executed_lines": [177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [182], "excluded_lines": [], "start_line": 175}, "SecurityAnalyzer._check_dangerous_functions": {"executed_lines": [192, 194, 195, 196, 198, 200, 202, 213, 215], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 190}, "SecurityAnalyzer._check_dangerous_imports": {"executed_lines": [219, 221, 222, 223, 225, 226, 227, 228, 230, 231, 233, 235, 246, 248], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 217}, "SecurityAnalyzer._check_hardcoded_secrets": {"executed_lines": [252, 254, 268, 284, 285, 286, 287, 288, 291, 292, 295, 297, 300, 302, 304, 305, 306, 310, 312, 328, 330], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 250}, "SecurityAnalyzer._check_sql_injection": {"executed_lines": [334, 336, 337, 338, 341, 342, 343, 346, 347, 360, 362, 365, 378, 380], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 332}, "SecurityAnalyzer._check_command_injection": {"executed_lines": [384, 387, 389, 397, 398, 399, 402, 420, 421, 422, 423, 424, 425, 426, 428, 429, 439, 441], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [406, 416, 417], "excluded_lines": [], "start_line": 382}, "SecurityAnalyzer._check_weak_crypto": {"executed_lines": [445, 447, 448, 449, 450, 451, 452, 463, 465], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 443}, "SecurityAnalyzer._check_unsafe_yaml": {"executed_lines": [469, 471, 472, 473, 475, 476, 488, 490], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 467}, "SecurityAnalyzer._check_assert_statements": {"executed_lines": [494, 496, 497, 500, 511, 513], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 492}, "SecurityAnalyzer._get_function_name": {"executed_lines": [517, 518, 519, 520], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [521], "excluded_lines": [], "start_line": 515}, "SecurityAnalyzer._get_full_function_name": {"executed_lines": [525, 527, 528, 529, 530, 531, 533, 534, 535], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 523}, "SecurityAnalyzer._check_sql_parameterization": {"executed_lines": [539, 542, 544, 545, 546, 547, 549, 551, 554, 555, 556, 557, 560, 561, 564, 565, 566, 569, 571, 572, 575, 595, 615, 616, 632, 634], "summary": {"covered_lines": 26, "num_statements": 31, "percent_covered": 83.87096774193549, "percent_covered_display": "84", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 83.87096774193549, "percent_statements_covered_display": "84"}, "missing_lines": [576, 592, 596, 597, 612], "excluded_lines": [], "start_line": 537}, "SecurityAnalyzer._check_ssrf_vulnerabilities": {"executed_lines": [638, 640, 641, 642, 645, 646, 648, 649, 652, 665, 666, 683, 685], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 636}, "SecurityAnalyzer._check_insecure_random": {"executed_lines": [689, 691, 692, 694, 695, 696, 698, 699, 712, 714], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 687}, "SecurityAnalyzer._check_weak_ssl_tls": {"executed_lines": [718, 720, 721, 723, 724, 725, 728, 729, 741, 744, 745, 749, 750, 751, 752, 764, 766], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 716}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 12, 16, 17, 18, 21, 32, 39, 45, 57, 58, 61, 69, 78, 110, 175, 190, 217, 250, 332, 382, 443, 467, 492, 515, 523, 537, 636, 687, 716], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SecurityAnalyzer": {"executed_lines": [59, 63, 64, 65, 66, 67, 71, 72, 73, 74, 75, 76, 89, 92, 93, 96, 98, 99, 102, 103, 105, 106, 108, 122, 123, 125, 127, 128, 131, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 149, 163, 164, 165, 166, 168, 169, 171, 173, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 192, 194, 195, 196, 198, 200, 202, 213, 215, 219, 221, 222, 223, 225, 226, 227, 228, 230, 231, 233, 235, 246, 248, 252, 254, 268, 284, 285, 286, 287, 288, 291, 292, 295, 297, 300, 302, 304, 305, 306, 310, 312, 328, 330, 334, 336, 337, 338, 341, 342, 343, 346, 347, 360, 362, 365, 378, 380, 384, 387, 389, 397, 398, 399, 402, 420, 421, 422, 423, 424, 425, 426, 428, 429, 439, 441, 445, 447, 448, 449, 450, 451, 452, 463, 465, 469, 471, 472, 473, 475, 476, 488, 490, 494, 496, 497, 500, 511, 513, 517, 518, 519, 520, 525, 527, 528, 529, 530, 531, 533, 534, 535, 539, 542, 544, 545, 546, 547, 549, 551, 554, 555, 556, 557, 560, 561, 564, 565, 566, 569, 571, 572, 575, 595, 615, 616, 632, 634, 638, 640, 641, 642, 645, 646, 648, 649, 652, 665, 666, 683, 685, 689, 691, 692, 694, 695, 696, 698, 699, 712, 714, 718, 720, 721, 723, 724, 725, 728, 729, 741, 744, 745, 749, 750, 751, 752, 764, 766], "summary": {"covered_lines": 240, "num_statements": 250, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 96.0, "percent_statements_covered_display": "96"}, "missing_lines": [182, 406, 416, 417, 521, 576, 592, 596, 597, 612], "excluded_lines": [], "start_line": 12}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 12, 16, 17, 18, 21, 32, 39, 45, 57, 58, 61, 69, 78, 110, 175, 190, 217, 250, 332, 382, 443, 467, 492, 515, 523, 537, 636, 687, 716], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\analyzers\\type_hint_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 46, 48, 50, 51, 53, 54, 57, 62, 64, 65, 66, 67, 68, 70, 71, 83, 85, 87, 89, 91, 92, 94, 95, 98, 100, 101, 103, 104, 117, 119, 121, 123, 125, 126, 128, 129, 132, 134, 135, 137, 138, 153, 155, 157, 159, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 175, 176, 178, 179, 192, 195, 196, 197, 209, 211, 213, 215, 217, 224, 225, 227, 228, 229, 230, 240, 243, 244, 245, 248, 268, 270, 272, 273, 275, 276, 279, 281, 283, 285, 286, 287, 289, 293], "summary": {"covered_lines": 114, "num_statements": 119, "percent_covered": 95.7983193277311, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 95.7983193277311, "percent_statements_covered_display": "96"}, "missing_lines": [131, 249, 266, 277, 291], "excluded_lines": [], "functions": {"TypeHintAnalyzer.name": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "TypeHintAnalyzer.analyze": {"executed_lines": [29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "TypeHintAnalyzer._check_missing_return_type": {"executed_lines": [48, 50, 51, 53, 54, 57, 62, 64, 65, 66, 67, 68, 70, 71, 83, 85], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "TypeHintAnalyzer._check_missing_parameter_types": {"executed_lines": [89, 91, 92, 94, 95, 98, 100, 101, 103, 104, 117, 119], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 87}, "TypeHintAnalyzer._check_missing_attribute_types": {"executed_lines": [123, 125, 126, 128, 129, 132, 134, 135, 137, 138, 153, 155], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [131], "excluded_lines": [], "start_line": 121}, "TypeHintAnalyzer._check_any_usage": {"executed_lines": [159, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 175, 176, 178, 179, 192, 195, 196, 197, 209, 211], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 157}, "TypeHintAnalyzer._check_incomplete_types": {"executed_lines": [215, 217, 224, 225, 227, 228, 229, 230, 240, 243, 244, 245, 248, 268], "summary": {"covered_lines": 14, "num_statements": 16, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [249, 266], "excluded_lines": [], "start_line": 213}, "TypeHintAnalyzer._contains_any": {"executed_lines": [272, 273, 275, 276, 279], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [277], "excluded_lines": [], "start_line": 270}, "TypeHintAnalyzer._find_incomplete_generics": {"executed_lines": [283, 285, 286, 287, 289, 293], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [291], "excluded_lines": [], "start_line": 281}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 87, 121, 157, 213, 270, 281], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"TypeHintAnalyzer": {"executed_lines": [16, 29, 31, 32, 35, 36, 37, 38, 39, 41, 42, 44, 48, 50, 51, 53, 54, 57, 62, 64, 65, 66, 67, 68, 70, 71, 83, 85, 89, 91, 92, 94, 95, 98, 100, 101, 103, 104, 117, 119, 123, 125, 126, 128, 129, 132, 134, 135, 137, 138, 153, 155, 159, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 175, 176, 178, 179, 192, 195, 196, 197, 209, 211, 215, 217, 224, 225, 227, 228, 229, 230, 240, 243, 244, 245, 248, 268, 272, 273, 275, 276, 279, 283, 285, 286, 287, 289, 293], "summary": {"covered_lines": 98, "num_statements": 103, "percent_covered": 95.14563106796116, "percent_covered_display": "95", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 95.14563106796116, "percent_statements_covered_display": "95"}, "missing_lines": [131, 249, 266, 277, 291], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 46, 87, 121, 157, 213, 270, 281], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\__init__.py": {"executed_lines": [8, 9, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [8, 9, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [8, 9, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\engine.py": {"executed_lines": [8, 10, 11, 14, 22, 29, 30, 32, 34, 51, 52, 68, 69, 71, 73, 83, 85, 97, 98, 102, 105, 106, 115, 116, 119, 131, 133, 134, 135, 139, 142, 145, 153, 154, 156, 169], "summary": {"covered_lines": 36, "num_statements": 38, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 2, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [117, 137], "excluded_lines": [167, 180], "functions": {"AutoFixEngine.__init__": {"executed_lines": [29, 30], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "AutoFixEngine._register_fixers": {"executed_lines": [34, 51, 52, 68, 69, 71], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "AutoFixEngine.can_fix": {"executed_lines": [83], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 73}, "AutoFixEngine.fix": {"executed_lines": [97, 98, 102, 105, 106, 115, 116], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [117], "excluded_lines": [], "start_line": 85}, "AutoFixEngine.fix_all": {"executed_lines": [131, 133, 134, 135, 139], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [137], "excluded_lines": [], "start_line": 119}, "BaseFixer.__init__": {"executed_lines": [153, 154], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "BaseFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [167], "start_line": 156}, "BaseFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [180], "start_line": 169}, "": {"executed_lines": [8, 10, 11, 14, 22, 32, 73, 85, 119, 142, 145, 156, 169], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"AutoFixEngine": {"executed_lines": [29, 30, 34, 51, 52, 68, 69, 71, 83, 97, 98, 102, 105, 106, 115, 116, 131, 133, 134, 135, 139], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [117, 137], "excluded_lines": [], "start_line": 14}, "BaseFixer": {"executed_lines": [153, 154], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [167, 180], "start_line": 142}, "": {"executed_lines": [8, 10, 11, 14, 22, 32, 73, 85, 119, 142, 145, 156, 169], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\file_ops.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 13, 16, 23, 24, 25, 27, 29, 36, 38, 40, 41, 42, 44, 54, 55, 58, 61, 62, 63, 66, 69, 77, 79, 81, 93, 94, 95, 98, 100, 105, 106, 109, 111, 124, 135, 137, 138, 141, 142, 144, 148, 149, 151, 158, 159, 162, 163, 164, 167, 168, 169, 170, 171, 173, 175, 182, 183, 185, 192, 195, 196, 197, 198, 201, 202, 204], "summary": {"covered_lines": 72, "num_statements": 84, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [30, 31, 32, 33, 34, 35, 118, 120, 121, 122, 145, 165], "excluded_lines": [], "functions": {"FileOperations.__init__": {"executed_lines": [23, 24, 25], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "FileOperations._load_backup_index": {"executed_lines": [29, 36], "summary": {"covered_lines": 2, "num_statements": 8, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 25.0, "percent_statements_covered_display": "25"}, "missing_lines": [30, 31, 32, 33, 34, 35], "excluded_lines": [], "start_line": 27}, "FileOperations._save_backup_index": {"executed_lines": [40, 41, 42], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 38}, "FileOperations.backup_file": {"executed_lines": [54, 55, 58, 61, 62, 63, 66, 69, 77, 79], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 44}, "FileOperations.write_with_backup": {"executed_lines": [93, 94, 95, 98, 100, 105, 106, 109, 111], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 69.23076923076923, "percent_statements_covered_display": "69"}, "missing_lines": [118, 120, 121, 122], "excluded_lines": [], "start_line": 81}, "FileOperations.rollback_file": {"executed_lines": [135, 137, 138, 141, 142, 144, 148, 149], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [145], "excluded_lines": [], "start_line": 124}, "FileOperations.rollback_all": {"executed_lines": [158, 159, 162, 163, 164, 167, 168, 169, 170, 171, 173], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [165], "excluded_lines": [], "start_line": 151}, "FileOperations.list_backups": {"executed_lines": [182, 183], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 175}, "FileOperations.clear_backups": {"executed_lines": [192, 195, 196, 197, 198, 201, 202, 204], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 185}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 13, 16, 27, 38, 44, 81, 124, 151, 175, 185], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FileOperations": {"executed_lines": [23, 24, 25, 29, 36, 40, 41, 42, 54, 55, 58, 61, 62, 63, 66, 69, 77, 79, 93, 94, 95, 98, 100, 105, 106, 109, 111, 135, 137, 138, 141, 142, 144, 148, 149, 158, 159, 162, 163, 164, 167, 168, 169, 170, 171, 173, 182, 183, 192, 195, 196, 197, 198, 201, 202, 204], "summary": {"covered_lines": 56, "num_statements": 68, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 82.3529411764706, "percent_statements_covered_display": "82"}, "missing_lines": [30, 31, 32, 33, 34, 35, 118, 120, 121, 122, 145, 165], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 13, 16, 27, 38, 44, 81, 124, 151, 175, 185], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\fixers.py": {"executed_lines": [8, 9, 11, 12, 13, 16, 19, 20, 22, 24, 26, 27, 35, 44, 48, 50, 51, 56, 57, 58, 59, 60, 68, 69, 70, 72, 82, 85, 86, 87, 88, 91, 92, 94, 96, 98, 100, 102, 103, 105, 106, 107, 109, 110, 112, 114, 116, 117, 119, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 134, 137, 140, 141, 143, 146, 153, 154, 157, 160, 161, 163, 172, 176, 179, 184, 186, 188, 190, 193, 196, 197, 199, 201, 203, 210, 211, 213, 218, 227, 231, 233, 235, 239, 240, 243, 246, 248, 250, 252, 255, 258, 259, 261, 264, 266, 272, 273, 274, 276, 285, 289, 291, 294, 297, 298, 300, 304, 308, 313, 316, 317, 319, 350, 354, 359, 362, 363, 365, 391, 395, 400, 403, 404, 405, 407, 439, 443, 448, 451, 452, 454, 491, 495, 500, 503, 504, 506, 540, 544, 549, 552, 553, 555, 593, 597, 602, 605, 606, 607, 609, 645, 649, 654, 657, 658, 660, 682, 686, 691, 694, 695, 696, 698, 727, 731], "summary": {"covered_lines": 175, "num_statements": 309, "percent_covered": 56.63430420711974, "percent_covered_display": "57", "missing_lines": 134, "excluded_lines": 0, "percent_statements_covered": 56.63430420711974, "percent_statements_covered_display": "57"}, "missing_lines": [46, 52, 53, 71, 147, 174, 180, 181, 185, 204, 205, 214, 229, 236, 267, 287, 310, 321, 322, 324, 326, 327, 335, 343, 344, 352, 356, 367, 368, 369, 371, 372, 380, 382, 393, 397, 410, 412, 414, 415, 418, 419, 421, 422, 430, 441, 445, 457, 459, 460, 463, 464, 465, 468, 469, 470, 473, 474, 475, 477, 478, 482, 493, 497, 508, 510, 511, 515, 516, 517, 518, 521, 522, 523, 524, 526, 527, 531, 542, 546, 558, 559, 565, 566, 569, 570, 571, 572, 573, 574, 575, 577, 579, 580, 584, 595, 599, 611, 612, 613, 615, 617, 618, 619, 620, 621, 623, 625, 627, 628, 636, 647, 651, 662, 665, 666, 668, 669, 673, 684, 688, 700, 702, 704, 705, 708, 709, 710, 711, 713, 714, 718, 729, 733], "excluded_lines": [], "functions": {"RemoveUnusedImportsFixer.__init__": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "RemoveUnusedImportsFixer.preview": {"executed_lines": [24, 26, 27, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "RemoveUnusedImportsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [46], "excluded_lines": [], "start_line": 44}, "RemoveUnusedImportsFixer._remove_unused_imports": {"executed_lines": [50, 51, 56, 57, 58, 59, 60, 68, 69, 70, 72, 82, 85, 86, 87, 88, 91, 92, 94], "summary": {"covered_lines": 19, "num_statements": 22, "percent_covered": 86.36363636363636, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 86.36363636363636, "percent_statements_covered_display": "86"}, "missing_lines": [52, 53, 71], "excluded_lines": [], "start_line": 48}, "RemoveUnusedImportsFixer._find_used_names": {"executed_lines": [98, 100, 102, 103, 105, 106, 107, 109, 110, 112], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 96}, "RemoveUnusedImportsFixer._create_diff": {"executed_lines": [116, 117, 119, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 134], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 114}, "ExtractMagicNumbersFixer.__init__": {"executed_lines": [141], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 140}, "ExtractMagicNumbersFixer.preview": {"executed_lines": [146, 153, 154, 157, 160, 161, 163], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [147], "excluded_lines": [], "start_line": 143}, "ExtractMagicNumbersFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [174], "excluded_lines": [], "start_line": 172}, "ExtractMagicNumbersFixer._generate_constant_name": {"executed_lines": [179, 184, 186], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [180, 181, 185], "excluded_lines": [], "start_line": 176}, "ExtractMagicNumbersFixer._create_diff": {"executed_lines": [190], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 188}, "AddDocstringsFixer.__init__": {"executed_lines": [197], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 196}, "AddDocstringsFixer.preview": {"executed_lines": [201, 203, 210, 211, 213, 218], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [204, 205, 214], "excluded_lines": [], "start_line": 199}, "AddDocstringsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [229], "excluded_lines": [], "start_line": 227}, "AddDocstringsFixer._add_docstring": {"executed_lines": [233, 235, 239, 240, 243, 246, 248], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [236], "excluded_lines": [], "start_line": 231}, "AddDocstringsFixer._create_diff": {"executed_lines": [252], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 250}, "RemoveDeadCodeFixer.__init__": {"executed_lines": [259], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 258}, "RemoveDeadCodeFixer.preview": {"executed_lines": [264, 266, 272, 273, 274, 276], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [267], "excluded_lines": [], "start_line": 261}, "RemoveDeadCodeFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [287], "excluded_lines": [], "start_line": 285}, "RemoveDeadCodeFixer._create_diff": {"executed_lines": [291], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 289}, "FixTypeHintsFixer.__init__": {"executed_lines": [298], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 297}, "FixTypeHintsFixer.preview": {"executed_lines": [304], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 300}, "FixTypeHintsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [310], "excluded_lines": [], "start_line": 308}, "SortImportsFixer.__init__": {"executed_lines": [317], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 316}, "SortImportsFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [321, 322, 324, 326, 327, 335, 343, 344], "excluded_lines": [], "start_line": 319}, "SortImportsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [352], "excluded_lines": [], "start_line": 350}, "SortImportsFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [356], "excluded_lines": [], "start_line": 354}, "RemoveTrailingWhitespaceFixer.__init__": {"executed_lines": [363], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 362}, "RemoveTrailingWhitespaceFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [367, 368, 369, 371, 372, 380, 382], "excluded_lines": [], "start_line": 365}, "RemoveTrailingWhitespaceFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [393], "excluded_lines": [], "start_line": 391}, "RemoveTrailingWhitespaceFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [397], "excluded_lines": [], "start_line": 395}, "NormalizeQuotesFixer.__init__": {"executed_lines": [404, 405], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 403}, "NormalizeQuotesFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [410, 412, 414, 415, 418, 419, 421, 422, 430], "excluded_lines": [], "start_line": 407}, "NormalizeQuotesFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [441], "excluded_lines": [], "start_line": 439}, "NormalizeQuotesFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [445], "excluded_lines": [], "start_line": 443}, "SimplifyBooleanFixer.__init__": {"executed_lines": [452], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 451}, "SimplifyBooleanFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [457, 459, 460, 463, 464, 465, 468, 469, 470, 473, 474, 475, 477, 478, 482], "excluded_lines": [], "start_line": 454}, "SimplifyBooleanFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [493], "excluded_lines": [], "start_line": 491}, "SimplifyBooleanFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [497], "excluded_lines": [], "start_line": 495}, "ConvertToFStringFixer.__init__": {"executed_lines": [504], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 503}, "ConvertToFStringFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [508, 510, 511, 515, 516, 517, 518, 521, 522, 523, 524, 526, 527, 531], "excluded_lines": [], "start_line": 506}, "ConvertToFStringFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [542], "excluded_lines": [], "start_line": 540}, "ConvertToFStringFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [546], "excluded_lines": [], "start_line": 544}, "RemoveUnusedVariablesFixer.__init__": {"executed_lines": [553], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 552}, "RemoveUnusedVariablesFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [558, 559, 565, 566, 569, 570, 571, 572, 573, 574, 575, 577, 579, 580, 584], "excluded_lines": [], "start_line": 555}, "RemoveUnusedVariablesFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [595], "excluded_lines": [], "start_line": 593}, "RemoveUnusedVariablesFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [599], "excluded_lines": [], "start_line": 597}, "FixIndentationFixer.__init__": {"executed_lines": [606, 607], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 605}, "FixIndentationFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [611, 612, 613, 615, 617, 618, 619, 620, 621, 623, 625, 627, 628, 636], "excluded_lines": [], "start_line": 609}, "FixIndentationFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [647], "excluded_lines": [], "start_line": 645}, "FixIndentationFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [651], "excluded_lines": [], "start_line": 649}, "AddMissingCommasFixer.__init__": {"executed_lines": [658], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 657}, "AddMissingCommasFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [662, 665, 666, 668, 669, 673], "excluded_lines": [], "start_line": 660}, "AddMissingCommasFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [684], "excluded_lines": [], "start_line": 682}, "AddMissingCommasFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [688], "excluded_lines": [], "start_line": 686}, "RemovePrintStatementsFixer.__init__": {"executed_lines": [695, 696], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 694}, "RemovePrintStatementsFixer.preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [700, 702, 704, 705, 708, 709, 710, 711, 713, 714, 718], "excluded_lines": [], "start_line": 698}, "RemovePrintStatementsFixer.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [729], "excluded_lines": [], "start_line": 727}, "RemovePrintStatementsFixer._create_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [733], "excluded_lines": [], "start_line": 731}, "": {"executed_lines": [8, 9, 11, 12, 13, 16, 19, 22, 44, 48, 96, 114, 137, 140, 143, 172, 176, 188, 193, 196, 199, 227, 231, 250, 255, 258, 261, 285, 289, 294, 297, 300, 308, 313, 316, 319, 350, 354, 359, 362, 365, 391, 395, 400, 403, 407, 439, 443, 448, 451, 454, 491, 495, 500, 503, 506, 540, 544, 549, 552, 555, 593, 597, 602, 605, 609, 645, 649, 654, 657, 660, 682, 686, 691, 694, 698, 727, 731], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RemoveUnusedImportsFixer": {"executed_lines": [20, 24, 26, 27, 35, 50, 51, 56, 57, 58, 59, 60, 68, 69, 70, 72, 82, 85, 86, 87, 88, 91, 92, 94, 98, 100, 102, 103, 105, 106, 107, 109, 110, 112, 116, 117, 119, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 134], "summary": {"covered_lines": 48, "num_statements": 52, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [46, 52, 53, 71], "excluded_lines": [], "start_line": 16}, "ExtractMagicNumbersFixer": {"executed_lines": [141, 146, 153, 154, 157, 160, 161, 163, 179, 184, 186, 190], "summary": {"covered_lines": 12, "num_statements": 17, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 70.58823529411765, "percent_statements_covered_display": "71"}, "missing_lines": [147, 174, 180, 181, 185], "excluded_lines": [], "start_line": 137}, "AddDocstringsFixer": {"executed_lines": [197, 201, 203, 210, 211, 213, 218, 233, 235, 239, 240, 243, 246, 248, 252], "summary": {"covered_lines": 15, "num_statements": 20, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [204, 205, 214, 229, 236], "excluded_lines": [], "start_line": 193}, "RemoveDeadCodeFixer": {"executed_lines": [259, 264, 266, 272, 273, 274, 276, 291], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [267, 287], "excluded_lines": [], "start_line": 255}, "FixTypeHintsFixer": {"executed_lines": [298, 304], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [310], "excluded_lines": [], "start_line": 294}, "SortImportsFixer": {"executed_lines": [317], "summary": {"covered_lines": 1, "num_statements": 11, "percent_covered": 9.090909090909092, "percent_covered_display": "9", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 9.090909090909092, "percent_statements_covered_display": "9"}, "missing_lines": [321, 322, 324, 326, 327, 335, 343, 344, 352, 356], "excluded_lines": [], "start_line": 313}, "RemoveTrailingWhitespaceFixer": {"executed_lines": [363], "summary": {"covered_lines": 1, "num_statements": 10, "percent_covered": 10.0, "percent_covered_display": "10", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 10.0, "percent_statements_covered_display": "10"}, "missing_lines": [367, 368, 369, 371, 372, 380, 382, 393, 397], "excluded_lines": [], "start_line": 359}, "NormalizeQuotesFixer": {"executed_lines": [404, 405], "summary": {"covered_lines": 2, "num_statements": 13, "percent_covered": 15.384615384615385, "percent_covered_display": "15", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 15.384615384615385, "percent_statements_covered_display": "15"}, "missing_lines": [410, 412, 414, 415, 418, 419, 421, 422, 430, 441, 445], "excluded_lines": [], "start_line": 400}, "SimplifyBooleanFixer": {"executed_lines": [452], "summary": {"covered_lines": 1, "num_statements": 18, "percent_covered": 5.555555555555555, "percent_covered_display": "6", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 5.555555555555555, "percent_statements_covered_display": "6"}, "missing_lines": [457, 459, 460, 463, 464, 465, 468, 469, 470, 473, 474, 475, 477, 478, 482, 493, 497], "excluded_lines": [], "start_line": 448}, "ConvertToFStringFixer": {"executed_lines": [504], "summary": {"covered_lines": 1, "num_statements": 17, "percent_covered": 5.882352941176471, "percent_covered_display": "6", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 5.882352941176471, "percent_statements_covered_display": "6"}, "missing_lines": [508, 510, 511, 515, 516, 517, 518, 521, 522, 523, 524, 526, 527, 531, 542, 546], "excluded_lines": [], "start_line": 500}, "RemoveUnusedVariablesFixer": {"executed_lines": [553], "summary": {"covered_lines": 1, "num_statements": 18, "percent_covered": 5.555555555555555, "percent_covered_display": "6", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 5.555555555555555, "percent_statements_covered_display": "6"}, "missing_lines": [558, 559, 565, 566, 569, 570, 571, 572, 573, 574, 575, 577, 579, 580, 584, 595, 599], "excluded_lines": [], "start_line": 549}, "FixIndentationFixer": {"executed_lines": [606, 607], "summary": {"covered_lines": 2, "num_statements": 18, "percent_covered": 11.11111111111111, "percent_covered_display": "11", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 11.11111111111111, "percent_statements_covered_display": "11"}, "missing_lines": [611, 612, 613, 615, 617, 618, 619, 620, 621, 623, 625, 627, 628, 636, 647, 651], "excluded_lines": [], "start_line": 602}, "AddMissingCommasFixer": {"executed_lines": [658], "summary": {"covered_lines": 1, "num_statements": 9, "percent_covered": 11.11111111111111, "percent_covered_display": "11", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 11.11111111111111, "percent_statements_covered_display": "11"}, "missing_lines": [662, 665, 666, 668, 669, 673, 684, 688], "excluded_lines": [], "start_line": 654}, "RemovePrintStatementsFixer": {"executed_lines": [695, 696], "summary": {"covered_lines": 2, "num_statements": 15, "percent_covered": 13.333333333333334, "percent_covered_display": "13", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 13.333333333333334, "percent_statements_covered_display": "13"}, "missing_lines": [700, 702, 704, 705, 708, 709, 710, 711, 713, 714, 718, 729, 733], "excluded_lines": [], "start_line": 691}, "": {"executed_lines": [8, 9, 11, 12, 13, 16, 19, 22, 44, 48, 96, 114, 137, 140, 143, 172, 176, 188, 193, 196, 199, 227, 231, 250, 255, 258, 261, 285, 289, 294, 297, 300, 308, 313, 316, 319, 350, 354, 359, 362, 365, 391, 395, 400, 403, 407, 439, 443, 448, 451, 454, 491, 495, 500, 503, 506, 540, 544, 549, 552, 555, 593, 597, 602, 605, 609, 645, 649, 654, 657, 660, 682, 686, 691, 694, 698, 727, 731], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\autofix\\models.py": {"executed_lines": [5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 21, 25, 26, 27, 28, 29, 30, 32, 33, 34], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"FixResult.__post_init__": {"executed_lines": [33, 34], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "": {"executed_lines": [5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 21, 25, 26, 27, 28, 29, 30, 32], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FixRiskLevel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "FixResult": {"executed_lines": [33, 34], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 21}, "": {"executed_lines": [5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 21, 25, 26, 27, 28, 29, 30, 32], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\__init__.py": {"executed_lines": [3, 4, 5, 6, 7, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 5, 6, 7, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\github_actions.py": {"executed_lines": [3, 4, 7, 10, 11, 32, 33, 35, 36, 38, 39, 41, 43, 50, 187, 189, 190, 203, 204, 206, 208, 249, 251, 252, 262, 263, 264], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"GitHubActionsGenerator.generate_analysis_workflow": {"executed_lines": [32, 33, 35, 36, 38, 39, 41, 43, 50, 187], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "GitHubActionsGenerator.generate_pre_commit_workflow": {"executed_lines": [203, 204, 206, 208, 249], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 190}, "GitHubActionsGenerator.save_workflow": {"executed_lines": [262, 263, 264], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 252}, "": {"executed_lines": [3, 4, 7, 10, 11, 189, 190, 251, 252], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"GitHubActionsGenerator": {"executed_lines": [32, 33, 35, 36, 38, 39, 41, 43, 50, 187, 203, 204, 206, 208, 249, 262, 263, 264], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 11, 189, 190, 251, 252], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\gitlab_ci.py": {"executed_lines": [3, 4, 7, 10, 11, 28, 29, 31, 32, 34, 145, 147, 148, 157, 189, 191, 192, 202, 203, 204], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"GitLabCIGenerator.generate_analysis_pipeline": {"executed_lines": [28, 29, 31, 32, 34, 145], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "GitLabCIGenerator.generate_pre_commit_pipeline": {"executed_lines": [157, 189], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 148}, "GitLabCIGenerator.save_pipeline": {"executed_lines": [202, 203, 204], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 192}, "": {"executed_lines": [3, 4, 7, 10, 11, 147, 148, 191, 192], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"GitLabCIGenerator": {"executed_lines": [28, 29, 31, 32, 34, 145, 157, 189, 202, 203, 204], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 11, 147, 148, 191, 192], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\pr_integration.py": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 19, 20, 22, 44, 47, 48, 57, 58, 60, 61, 64, 65, 66, 69, 70, 71, 72, 73, 74, 77, 86, 91, 92, 93, 95, 96, 97, 100, 102, 103, 104, 106, 107, 108, 110, 112, 113, 123, 125, 127, 129, 135, 137, 146, 148, 150, 151, 162, 163, 172, 174, 175, 177, 179, 180, 182, 188, 189], "summary": {"covered_lines": 65, "num_statements": 87, "percent_covered": 74.71264367816092, "percent_covered_display": "75", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 74.71264367816092, "percent_statements_covered_display": "75"}, "missing_lines": [28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41, 78, 82, 83, 87, 88, 160, 199, 211, 212, 213], "excluded_lines": [], "functions": {"PRComment.to_markdown": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41], "excluded_lines": [], "start_line": 22}, "PRIntegration.generate_pr_summary": {"executed_lines": [57, 58, 60, 61, 64, 65, 66, 69, 70, 71, 72, 73, 74, 77, 86, 91, 92, 93, 95, 96, 97, 100, 102, 103, 104, 106, 107, 108, 110], "summary": {"covered_lines": 29, "num_statements": 34, "percent_covered": 85.29411764705883, "percent_covered_display": "85", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 85.29411764705883, "percent_statements_covered_display": "85"}, "missing_lines": [78, 82, 83, 87, 88], "excluded_lines": [], "start_line": 48}, "PRIntegration.generate_inline_comments": {"executed_lines": [123, 125, 127, 129, 135, 137, 146, 148], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 113}, "PRIntegration.generate_github_comment_body": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [160], "excluded_lines": [], "start_line": 151}, "PRIntegration.format_comment_for_github_api": {"executed_lines": [172, 174, 175, 177, 179, 180, 182], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 163}, "PRIntegration.save_comments_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [199, 211, 212, 213], "excluded_lines": [], "start_line": 189}, "": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 19, 20, 22, 44, 47, 48, 112, 113, 150, 151, 162, 163, 188, 189], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PRComment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41], "excluded_lines": [], "start_line": 12}, "PRIntegration": {"executed_lines": [57, 58, 60, 61, 64, 65, 66, 69, 70, 71, 72, 73, 74, 77, 86, 91, 92, 93, 95, 96, 97, 100, 102, 103, 104, 106, 107, 108, 110, 123, 125, 127, 129, 135, 137, 146, 148, 172, 174, 175, 177, 179, 180, 182], "summary": {"covered_lines": 44, "num_statements": 54, "percent_covered": 81.48148148148148, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 81.48148148148148, "percent_statements_covered_display": "81"}, "missing_lines": [78, 82, 83, 87, 88, 160, 199, 211, 212, 213], "excluded_lines": [], "start_line": 44}, "": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 19, 20, 22, 44, 47, 48, 112, 113, 150, 151, 162, 163, 188, 189], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\pre_commit.py": {"executed_lines": [3, 4, 7, 10, 11, 30, 31, 33, 35, 87, 89, 90, 96, 129, 131, 132, 142, 143, 144, 146, 147, 157, 158, 159, 162], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"PreCommitGenerator.generate_pre_commit_config": {"executed_lines": [30, 31, 33, 35, 87], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "PreCommitGenerator.generate_simple_hook": {"executed_lines": [96, 129], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 90}, "PreCommitGenerator.save_config": {"executed_lines": [142, 143, 144], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 132}, "PreCommitGenerator.save_hook": {"executed_lines": [157, 158, 159, 162], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "": {"executed_lines": [3, 4, 7, 10, 11, 89, 90, 131, 132, 146, 147], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PreCommitGenerator": {"executed_lines": [30, 31, 33, 35, 87, 96, 129, 142, 143, 144, 157, 158, 159, 162], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 11, 89, 90, 131, 132, 146, 147], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cicd\\quality_gates.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 34, 35, 38, 39, 44, 50, 58, 64, 65, 66, 74, 75, 77, 80, 83, 84, 86, 88, 90, 101, 102, 104, 107, 110, 111, 124, 125, 127, 128, 129, 130, 134, 135, 144, 153, 154, 155, 157, 158, 159, 161, 162, 163, 165, 166, 169, 170, 171, 173, 175, 176, 185, 190, 191, 201, 203, 204, 206, 208, 209], "summary": {"covered_lines": 77, "num_statements": 104, "percent_covered": 74.03846153846153, "percent_covered_display": "74", "missing_lines": 27, "excluded_lines": 0, "percent_statements_covered": 74.03846153846153, "percent_statements_covered_display": "74"}, "missing_lines": [45, 51, 55, 59, 67, 71, 78, 81, 131, 132, 167, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 236], "excluded_lines": [], "functions": {"QualityGate.check": {"executed_lines": [34, 35, 38, 39, 44, 50, 58, 64, 65, 66, 74, 75, 77, 80, 83, 84, 86], "summary": {"covered_lines": 17, "num_statements": 25, "percent_covered": 68.0, "percent_covered_display": "68", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 68.0, "percent_statements_covered_display": "68"}, "missing_lines": [45, 51, 55, 59, 67, 71, 78, 81], "excluded_lines": [], "start_line": 25}, "QualityGate.to_dict": {"executed_lines": [90], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 88}, "QualityGate.from_dict": {"executed_lines": [104], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 102}, "QualityGateParser.parse_json_output": {"executed_lines": [124, 125, 127, 128, 129, 130], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [131, 132], "excluded_lines": [], "start_line": 111}, "QualityGateParser.parse_text_output": {"executed_lines": [144, 153, 154, 155, 157, 158, 159, 161, 162, 163, 165, 166, 169, 170, 171, 173], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.11764705882354, "percent_statements_covered_display": "94"}, "missing_lines": [167], "excluded_lines": [], "start_line": 135}, "QualityGateParser.parse_exit_code": {"executed_lines": [185], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 176}, "QualityGateParser.enforce_gate": {"executed_lines": [201, 203, 204, 206], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 191}, "QualityGateParser.generate_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 236], "excluded_lines": [], "start_line": 209}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 88, 101, 102, 107, 110, 111, 134, 135, 175, 176, 190, 191, 208, 209], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"QualityGate": {"executed_lines": [34, 35, 38, 39, 44, 50, 58, 64, 65, 66, 74, 75, 77, 80, 83, 84, 86, 90, 104], "summary": {"covered_lines": 19, "num_statements": 27, "percent_covered": 70.37037037037037, "percent_covered_display": "70", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 70.37037037037037, "percent_statements_covered_display": "70"}, "missing_lines": [45, 51, 55, 59, 67, 71, 78, 81], "excluded_lines": [], "start_line": 13}, "QualityGateParser": {"executed_lines": [124, 125, 127, 128, 129, 130, 144, 153, 154, 155, 157, 158, 159, 161, 162, 163, 165, 166, 169, 170, 171, 173, 185, 201, 203, 204, 206], "summary": {"covered_lines": 27, "num_statements": 46, "percent_covered": 58.69565217391305, "percent_covered_display": "59", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 58.69565217391305, "percent_statements_covered_display": "59"}, "missing_lines": [131, 132, 167, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 233, 234, 236], "excluded_lines": [], "start_line": 107}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 88, 101, 102, 107, 110, 111, 134, 135, 175, 176, 190, 191, 208, 209], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\cli.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 70, 73, 74, 79, 82, 83, 86, 87, 88, 89, 91, 92, 94, 106, 159, 161, 162, 169, 171, 179, 182, 183, 186, 190, 196, 197, 203, 214, 223, 230, 272, 284, 287, 288, 299, 300, 301, 317, 320, 347, 365, 376, 382, 390, 416, 440, 491, 511, 638, 640, 642, 643, 644, 645, 646, 648, 649, 651, 654, 655, 656, 658, 659, 660, 661, 662, 664, 666, 667, 668, 669, 670, 671, 672, 674, 675, 678, 679, 680, 683, 755, 756, 757, 758, 765, 768, 769, 770, 771, 772, 773, 776, 780, 784, 814, 816, 819, 820, 826, 832, 839, 845, 847, 849, 1007, 1008, 1010, 1035, 1036, 1038, 1041, 1042, 1044, 1073, 1074, 1079, 1156, 1157, 1158, 1164, 1169, 1174, 1179, 1184, 1189, 1200, 1210, 1227, 1318, 1319, 1320, 1326, 1337, 1347, 1352, 1358, 1363, 1378, 1493, 1494, 1495, 1502, 1508, 1514, 1524, 1525, 1526, 1529, 1532, 1533, 1539, 1541, 1542, 1543, 1544, 1545, 1549, 1554, 1559, 1560, 1561, 1562, 1568, 1569, 1570, 1576, 1582, 1588, 1595, 1601, 1614, 1615, 1616, 1618, 1621, 1625, 1626, 1628, 1630, 1631, 1632, 1633, 1635, 1637, 1638, 1639, 1641, 1642, 1648, 1650, 1651, 1652, 1655, 1656, 1657, 1663, 1674, 1684, 1689, 1696, 1763, 1764, 1771, 1773, 1775, 1777, 1778, 1779, 1780, 1783, 1784, 1796, 1797, 1799, 1800, 1802, 1803, 1804, 1808, 1809, 1817, 1818, 1819, 1826, 1832, 1839, 1845, 1868, 1869, 1871, 1875, 1877, 1878, 1879, 1882, 1885, 1886, 1887, 1889, 1890, 1891, 1892, 1893, 1917, 1925, 1926, 1927, 1928, 1929, 1971, 1972, 1978, 1984, 1991, 2044, 2045, 2052, 2112, 2113, 2118, 2124, 2167, 2168, 2169, 2175, 2180, 2185, 2190, 2196, 2202, 2332, 2333, 2337, 2351, 2352, 2360, 2367, 2425, 2426, 2434, 2441, 2496, 2497, 2505, 2511, 2518, 2582, 2583, 2588, 2589, 2595, 2670, 2671, 2672, 2679, 2685, 2846, 2847, 2848, 2853, 2964, 2965, 2970, 2971, 2972, 2973, 3040, 3041, 3042, 3043, 3044, 3045, 3122, 3123, 3177, 3178, 3186, 3193, 3251, 3252, 3253, 3254, 3255, 3256, 3410, 3411, 3412, 3415, 3416], "summary": {"covered_lines": 369, "num_statements": 1604, "percent_covered": 23.00498753117207, "percent_covered_display": "23", "missing_lines": 1235, "excluded_lines": 2, "percent_statements_covered": 23.00498753117207, "percent_statements_covered_display": "23"}, "missing_lines": [116, 117, 118, 123, 124, 128, 129, 133, 134, 139, 140, 141, 142, 143, 144, 148, 149, 153, 185, 187, 198, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211, 216, 217, 218, 219, 220, 225, 226, 227, 232, 240, 241, 243, 244, 245, 246, 248, 254, 255, 257, 259, 262, 267, 269, 289, 290, 292, 293, 294, 295, 296, 302, 303, 304, 307, 308, 311, 312, 313, 314, 315, 322, 323, 328, 329, 336, 337, 340, 341, 349, 351, 352, 357, 359, 360, 361, 362, 367, 368, 370, 371, 378, 379, 384, 385, 386, 387, 392, 400, 401, 403, 404, 406, 407, 409, 411, 413, 418, 419, 426, 427, 432, 433, 434, 436, 437, 448, 449, 451, 452, 454, 455, 456, 457, 458, 459, 461, 467, 468, 470, 471, 472, 477, 478, 480, 481, 488, 499, 500, 502, 503, 513, 514, 516, 517, 518, 519, 522, 524, 533, 535, 543, 551, 553, 554, 555, 556, 558, 560, 561, 562, 565, 566, 567, 568, 570, 572, 573, 575, 576, 577, 578, 580, 582, 584, 585, 586, 587, 590, 593, 594, 595, 597, 598, 599, 601, 602, 605, 606, 612, 614, 616, 617, 618, 621, 622, 623, 626, 627, 630, 631, 632, 633, 634, 635, 686, 687, 688, 689, 692, 693, 694, 697, 705, 706, 707, 709, 710, 711, 713, 715, 726, 727, 729, 730, 731, 732, 735, 736, 738, 742, 743, 744, 745, 746, 747, 748, 750, 751, 752, 781, 786, 787, 791, 793, 794, 795, 803, 804, 805, 806, 807, 809, 810, 811, 815, 851, 852, 853, 854, 855, 856, 857, 858, 860, 861, 862, 863, 864, 865, 868, 870, 872, 873, 874, 875, 876, 878, 888, 889, 890, 891, 892, 893, 902, 903, 904, 911, 912, 913, 916, 917, 918, 919, 920, 929, 930, 931, 932, 937, 939, 940, 941, 947, 948, 956, 958, 959, 961, 971, 972, 973, 974, 977, 979, 980, 984, 985, 987, 988, 989, 990, 991, 992, 994, 995, 996, 998, 999, 1004, 1011, 1012, 1013, 1014, 1015, 1016, 1025, 1045, 1046, 1047, 1048, 1049, 1050, 1053, 1055, 1056, 1057, 1058, 1060, 1061, 1062, 1063, 1064, 1066, 1076, 1088, 1091, 1092, 1095, 1098, 1099, 1101, 1102, 1103, 1106, 1107, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1120, 1121, 1122, 1123, 1126, 1127, 1128, 1129, 1131, 1132, 1134, 1135, 1138, 1139, 1144, 1146, 1149, 1151, 1152, 1153, 1229, 1230, 1231, 1234, 1235, 1236, 1238, 1239, 1242, 1243, 1244, 1246, 1256, 1259, 1262, 1263, 1264, 1267, 1268, 1269, 1270, 1271, 1272, 1274, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1287, 1288, 1289, 1291, 1293, 1294, 1296, 1299, 1300, 1302, 1303, 1304, 1305, 1308, 1311, 1314, 1315, 1380, 1381, 1382, 1385, 1386, 1387, 1389, 1390, 1391, 1395, 1402, 1405, 1406, 1407, 1408, 1411, 1412, 1413, 1416, 1417, 1419, 1421, 1422, 1424, 1426, 1427, 1432, 1433, 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1447, 1448, 1449, 1450, 1455, 1456, 1457, 1460, 1461, 1462, 1464, 1466, 1468, 1469, 1470, 1472, 1473, 1476, 1478, 1479, 1481, 1484, 1485, 1487, 1489, 1490, 1534, 1535, 1536, 1563, 1564, 1565, 1622, 1623, 1644, 1645, 1646, 1713, 1714, 1715, 1718, 1719, 1720, 1723, 1729, 1732, 1734, 1735, 1737, 1739, 1740, 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1757, 1785, 1786, 1787, 1792, 1805, 1812, 1813, 1814, 1880, 1881, 1883, 1884, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904, 1905, 1906, 1914, 1915, 1918, 1919, 1921, 1922, 1923, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1941, 1942, 1944, 1945, 1947, 1949, 1952, 1953, 1954, 1956, 1958, 1959, 1960, 1961, 1962, 1963, 1967, 1968, 2004, 2006, 2007, 2008, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2040, 2041, 2063, 2065, 2067, 2068, 2069, 2071, 2072, 2074, 2075, 2078, 2079, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2091, 2092, 2093, 2094, 2095, 2098, 2099, 2100, 2101, 2102, 2105, 2106, 2107, 2108, 2109, 2136, 2138, 2139, 2140, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2151, 2152, 2154, 2155, 2156, 2157, 2158, 2160, 2161, 2162, 2163, 2164, 2222, 2224, 2225, 2226, 2228, 2229, 2230, 2232, 2235, 2238, 2245, 2246, 2247, 2248, 2251, 2252, 2255, 2258, 2259, 2260, 2263, 2266, 2267, 2268, 2270, 2271, 2272, 2275, 2278, 2279, 2280, 2283, 2286, 2287, 2288, 2290, 2291, 2292, 2295, 2301, 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2315, 2320, 2321, 2322, 2323, 2324, 2325, 2327, 2328, 2329, 2344, 2345, 2346, 2347, 2348, 2373, 2374, 2375, 2377, 2378, 2380, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2391, 2392, 2393, 2394, 2396, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2409, 2410, 2411, 2412, 2422, 2447, 2448, 2449, 2451, 2452, 2454, 2456, 2457, 2459, 2460, 2461, 2462, 2463, 2465, 2466, 2467, 2469, 2470, 2471, 2473, 2478, 2479, 2480, 2482, 2483, 2484, 2485, 2486, 2488, 2490, 2491, 2493, 2529, 2530, 2531, 2533, 2534, 2536, 2538, 2539, 2541, 2542, 2543, 2544, 2545, 2547, 2548, 2549, 2551, 2552, 2553, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2565, 2566, 2567, 2568, 2570, 2571, 2572, 2573, 2574, 2576, 2585, 2601, 2602, 2603, 2604, 2606, 2607, 2608, 2610, 2611, 2621, 2624, 2631, 2632, 2633, 2634, 2635, 2638, 2640, 2641, 2642, 2643, 2644, 2646, 2647, 2648, 2650, 2651, 2652, 2654, 2656, 2657, 2658, 2662, 2663, 2664, 2665, 2666, 2667, 2694, 2695, 2696, 2697, 2699, 2702, 2703, 2706, 2707, 2708, 2709, 2710, 2711, 2713, 2718, 2721, 2722, 2728, 2731, 2732, 2733, 2734, 2735, 2736, 2739, 2740, 2741, 2745, 2746, 2748, 2749, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2761, 2762, 2763, 2764, 2767, 2768, 2771, 2773, 2775, 2776, 2782, 2783, 2784, 2785, 2786, 2787, 2791, 2794, 2802, 2806, 2807, 2809, 2810, 2814, 2821, 2822, 2823, 2824, 2827, 2829, 2843, 2861, 2862, 2863, 2864, 2866, 2869, 2870, 2871, 2872, 2873, 2875, 2881, 2884, 2885, 2886, 2887, 2888, 2890, 2893, 2894, 2895, 2897, 2908, 2911, 2912, 2915, 2916, 2919, 2920, 2921, 2922, 2924, 2925, 2926, 2927, 2928, 2929, 2932, 2934, 2946, 2967, 2975, 2977, 2978, 2979, 2981, 2982, 2984, 2985, 2986, 2987, 2989, 2990, 2992, 2995, 2996, 2997, 2998, 3002, 3004, 3006, 3007, 3009, 3010, 3012, 3013, 3015, 3016, 3017, 3019, 3035, 3036, 3037, 3047, 3048, 3050, 3051, 3053, 3056, 3057, 3058, 3062, 3064, 3066, 3067, 3068, 3070, 3071, 3072, 3074, 3076, 3077, 3080, 3081, 3082, 3084, 3085, 3091, 3097, 3099, 3100, 3101, 3102, 3103, 3105, 3116, 3117, 3118, 3119, 3125, 3126, 3128, 3129, 3131, 3134, 3135, 3136, 3140, 3142, 3144, 3145, 3146, 3148, 3149, 3153, 3155, 3172, 3173, 3174, 3199, 3200, 3201, 3203, 3204, 3206, 3208, 3210, 3211, 3212, 3213, 3214, 3216, 3217, 3218, 3220, 3225, 3226, 3227, 3229, 3235, 3236, 3237, 3239, 3240, 3241, 3242, 3248, 3262, 3263, 3264, 3267, 3268, 3270, 3273, 3274, 3276, 3277, 3278, 3281, 3282, 3283, 3284, 3285, 3288, 3289, 3291, 3294, 3295, 3297, 3298, 3299, 3301, 3302, 3303, 3305, 3306, 3307, 3310, 3311, 3312, 3313, 3315, 3316, 3318, 3321, 3325, 3333, 3334, 3337, 3338, 3339, 3341, 3342, 3350, 3352, 3356, 3357, 3358, 3361, 3362, 3364, 3367, 3368, 3369, 3370, 3371, 3373, 3375, 3376, 3379, 3382, 3383, 3385, 3389, 3392, 3393, 3395, 3396, 3397, 3398, 3400, 3402, 3403, 3404, 3406, 3407, 3422, 3423, 3424, 3427, 3428, 3430, 3432, 3433, 3434, 3436, 3437, 3439, 3442, 3443, 3444, 3445, 3448, 3450, 3453, 3455, 3456, 3458, 3459, 3460, 3462, 3464, 3465, 3473, 3481, 3482, 3485, 3486, 3487, 3490, 3491, 3493, 3495, 3496, 3500, 3501], "excluded_lines": [3504, 3505], "functions": {"_auth_banner": {"executed_lines": [82, 83, 86, 87, 88, 89, 91, 92, 94], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 79}, "_validate_api_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [116, 117, 118, 123, 124, 128, 129, 133, 134, 139, 140, 141, 142, 143, 144, 148, 149, 153], "excluded_lines": [], "start_line": 106}, "_setup_logging": {"executed_lines": [161, 162, 169, 171, 179, 182, 183, 186], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [185, 187], "excluded_lines": [], "start_line": 159}, "_load_config": {"executed_lines": [196, 197, 203], "summary": {"covered_lines": 3, "num_statements": 16, "percent_covered": 18.75, "percent_covered_display": "19", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 18.75, "percent_statements_covered_display": "19"}, "missing_lines": [198, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211], "excluded_lines": [], "start_line": 190}, "_validate_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [216, 217, 218, 219, 220], "excluded_lines": [], "start_line": 214}, "_print_file_count": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [225, 226, 227], "excluded_lines": [], "start_line": 223}, "_create_summary_table": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [232, 240, 241, 243, 244, 245, 246, 248, 254, 255, 257, 259, 262, 267, 269], "excluded_lines": [], "start_line": 230}, "_detect_project_type": {"executed_lines": [284, 287, 288, 299, 300, 301, 317], "summary": {"covered_lines": 7, "num_statements": 24, "percent_covered": 29.166666666666668, "percent_covered_display": "29", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 29.166666666666668, "percent_statements_covered_display": "29"}, "missing_lines": [289, 290, 292, 293, 294, 295, 296, 302, 303, 304, 307, 308, 311, 312, 313, 314, 315], "excluded_lines": [], "start_line": 272}, "_print_status_messages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [322, 323, 328, 329, 336, 337, 340, 341], "excluded_lines": [], "start_line": 320}, "_print_detailed_issues": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [349, 351, 352, 357, 359, 360, 361, 362], "excluded_lines": [], "start_line": 347}, "_print_helpful_tips": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [367, 368, 370, 371], "excluded_lines": [], "start_line": 365}, "_print_refactor_filters": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [378, 379], "excluded_lines": [], "start_line": 376}, "_confirm_apply_mode": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [384, 385, 386, 387], "excluded_lines": [], "start_line": 382}, "_create_refactor_table": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [392, 400, 401, 403, 404, 406, 407, 409, 411, 413], "excluded_lines": [], "start_line": 390}, "_print_refactor_messages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [418, 419, 426, 427, 432, 433, 434, 436, 437], "excluded_lines": [], "start_line": 416}, "_collect_feedback_interactive": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [448, 449, 451, 452, 454, 455, 456, 457, 458, 459, 461, 467, 468, 470, 471, 472, 477, 478, 480, 481, 488], "excluded_lines": [], "start_line": 440}, "_record_applied_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [499, 500, 502, 503], "excluded_lines": [], "start_line": 491}, "_run_startup_animation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [513, 514, 516, 517, 518, 519, 522, 524, 533, 535, 543, 551, 553, 614, 616, 617, 618, 621, 622, 623, 626, 627, 630, 631, 632, 633, 634, 635], "excluded_lines": [], "start_line": 511}, "_run_startup_animation.get_renderable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [554, 555, 556, 558, 560, 561, 562, 565, 566, 567, 568, 570, 572, 573, 575, 576, 577, 578, 580, 582, 584, 585, 586, 587, 590, 593, 594, 595, 597, 598, 599, 601, 602, 605, 606, 612], "excluded_lines": [], "start_line": 553}, "_print_custom_help": {"executed_lines": [640, 642, 643, 644, 645, 646, 648, 649, 651, 654, 655, 656, 658, 659, 660, 661, 662, 664, 666, 667, 668, 669, 670, 671, 672, 674, 675], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 638}, "CustomHelpGroup.format_help": {"executed_lines": [680], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 679}, "_run_minimal_loop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [686, 726, 727, 729, 730, 731, 732, 735, 736, 738, 742, 743, 744, 745, 746, 747, 748, 750, 751, 752], "excluded_lines": [], "start_line": 683}, "_run_minimal_loop.print_header": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [687, 688, 689, 692, 693, 694, 697, 705, 706, 707, 709, 710, 711, 713, 715], "excluded_lines": [], "start_line": 686}, "main": {"executed_lines": [765, 768, 769, 770, 771, 772, 773, 776, 780, 784, 814, 816], "summary": {"covered_lines": 12, "num_statements": 28, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 42.857142857142854, "percent_statements_covered_display": "43"}, "missing_lines": [781, 786, 787, 791, 793, 794, 795, 803, 804, 805, 806, 807, 809, 810, 811, 815], "excluded_lines": [], "start_line": 758}, "login": {"executed_lines": [847, 849], "summary": {"covered_lines": 2, "num_statements": 76, "percent_covered": 2.6315789473684212, "percent_covered_display": "3", "missing_lines": 74, "excluded_lines": 0, "percent_statements_covered": 2.6315789473684212, "percent_statements_covered_display": "3"}, "missing_lines": [851, 852, 853, 854, 855, 856, 857, 858, 860, 861, 862, 863, 864, 865, 868, 870, 872, 873, 874, 875, 876, 878, 888, 889, 890, 891, 892, 893, 902, 903, 904, 911, 912, 913, 916, 917, 918, 919, 920, 929, 930, 931, 932, 937, 939, 940, 941, 947, 948, 956, 958, 959, 961, 971, 972, 973, 974, 977, 979, 980, 984, 985, 987, 988, 989, 990, 991, 992, 994, 995, 996, 998, 999, 1004], "excluded_lines": [], "start_line": 845}, "logout": {"executed_lines": [1010], "summary": {"covered_lines": 1, "num_statements": 8, "percent_covered": 12.5, "percent_covered_display": "12", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 12.5, "percent_statements_covered_display": "12"}, "missing_lines": [1011, 1012, 1013, 1014, 1015, 1016, 1025], "excluded_lines": [], "start_line": 1008}, "auth": {"executed_lines": [1038], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1036}, "auth_status": {"executed_lines": [1044], "summary": {"covered_lines": 1, "num_statements": 18, "percent_covered": 5.555555555555555, "percent_covered_display": "6", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 5.555555555555555, "percent_statements_covered_display": "6"}, "missing_lines": [1045, 1046, 1047, 1048, 1049, 1050, 1053, 1055, 1056, 1057, 1058, 1060, 1061, 1062, 1063, 1064, 1066], "excluded_lines": [], "start_line": 1042}, "auth_logout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1076], "excluded_lines": [], "start_line": 1074}, "_interactive_file_selector": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1088, 1091, 1092, 1095, 1098, 1099, 1101, 1102, 1103, 1106, 1107, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1120, 1121, 1122, 1123, 1126, 1127, 1128, 1129, 1131, 1132, 1134, 1135, 1138, 1139, 1144, 1146, 1149, 1151, 1152, 1153], "excluded_lines": [], "start_line": 1079}, "analyze": {"executed_lines": [1227], "summary": {"covered_lines": 1, "num_statements": 50, "percent_covered": 2.0, "percent_covered_display": "2", "missing_lines": 49, "excluded_lines": 0, "percent_statements_covered": 2.0, "percent_statements_covered_display": "2"}, "missing_lines": [1229, 1230, 1231, 1234, 1235, 1236, 1238, 1239, 1242, 1243, 1244, 1246, 1256, 1259, 1262, 1263, 1264, 1267, 1268, 1269, 1270, 1271, 1272, 1274, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1287, 1288, 1289, 1291, 1293, 1294, 1296, 1299, 1300, 1302, 1303, 1304, 1305, 1308, 1311, 1314, 1315], "excluded_lines": [], "start_line": 1210}, "refactor": {"executed_lines": [1378], "summary": {"covered_lines": 1, "num_statements": 64, "percent_covered": 1.5625, "percent_covered_display": "2", "missing_lines": 63, "excluded_lines": 0, "percent_statements_covered": 1.5625, "percent_statements_covered_display": "2"}, "missing_lines": [1380, 1381, 1382, 1385, 1386, 1387, 1389, 1390, 1391, 1395, 1402, 1405, 1406, 1407, 1408, 1411, 1412, 1413, 1416, 1417, 1419, 1421, 1422, 1424, 1426, 1427, 1432, 1433, 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1447, 1448, 1449, 1450, 1455, 1456, 1457, 1460, 1461, 1462, 1464, 1466, 1468, 1469, 1470, 1472, 1473, 1476, 1478, 1479, 1481, 1484, 1485, 1487, 1489, 1490], "excluded_lines": [], "start_line": 1363}, "feedback": {"executed_lines": [1524, 1525, 1526, 1529, 1532, 1533, 1539, 1541, 1542, 1543, 1544, 1545, 1549, 1554, 1559, 1560, 1561, 1562], "summary": {"covered_lines": 18, "num_statements": 24, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [1534, 1535, 1536, 1563, 1564, 1565], "excluded_lines": [], "start_line": 1514}, "report": {"executed_lines": [1614, 1615, 1616, 1618, 1621, 1625, 1626, 1628, 1630, 1631, 1632, 1633, 1635, 1637, 1638, 1639, 1641, 1642, 1648, 1650, 1651, 1652], "summary": {"covered_lines": 22, "num_statements": 27, "percent_covered": 81.48148148148148, "percent_covered_display": "81", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 81.48148148148148, "percent_statements_covered_display": "81"}, "missing_lines": [1622, 1623, 1644, 1645, 1646], "excluded_lines": [], "start_line": 1601}, "autofix": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1713, 1714, 1715, 1718, 1719, 1720, 1723, 1729, 1732, 1734, 1735, 1737, 1739, 1740, 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1757], "excluded_lines": [], "start_line": 1696}, "init": {"executed_lines": [1773, 1775, 1777, 1778, 1779, 1780, 1783, 1784, 1796, 1797, 1799, 1800, 1802, 1803, 1804, 1808, 1809], "summary": {"covered_lines": 17, "num_statements": 25, "percent_covered": 68.0, "percent_covered_display": "68", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 68.0, "percent_statements_covered_display": "68"}, "missing_lines": [1785, 1786, 1787, 1792, 1805, 1812, 1813, 1814], "excluded_lines": [], "start_line": 1771}, "rollback": {"executed_lines": [1868, 1869, 1871, 1875, 1877, 1878, 1879, 1882, 1885, 1886, 1887, 1889, 1890, 1891, 1892, 1893, 1917, 1925, 1926, 1927, 1928, 1929], "summary": {"covered_lines": 22, "num_statements": 71, "percent_covered": 30.985915492957748, "percent_covered_display": "31", "missing_lines": 49, "excluded_lines": 0, "percent_statements_covered": 30.985915492957748, "percent_statements_covered_display": "31"}, "missing_lines": [1880, 1881, 1883, 1884, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904, 1905, 1906, 1914, 1915, 1918, 1919, 1921, 1922, 1923, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1941, 1942, 1944, 1945, 1947, 1949, 1952, 1953, 1954, 1956, 1958, 1959, 1960, 1961, 1962, 1963, 1967, 1968], "excluded_lines": [], "start_line": 1845}, "telemetry": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2004, 2006, 2007, 2008, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2040, 2041], "excluded_lines": [], "start_line": 1991}, "metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2063, 2065, 2067, 2068, 2069, 2071, 2072, 2074, 2075, 2078, 2079, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2091, 2092, 2093, 2094, 2095, 2098, 2099, 2100, 2101, 2102, 2105, 2106, 2107, 2108, 2109], "excluded_lines": [], "start_line": 2052}, "serve_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2136, 2138, 2139, 2140, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2151, 2152, 2154, 2155, 2156, 2157, 2158, 2160, 2161, 2162, 2163, 2164], "excluded_lines": [], "start_line": 2124}, "generate_cicd": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 60, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2222, 2224, 2225, 2226, 2228, 2229, 2230, 2232, 2235, 2238, 2245, 2246, 2247, 2248, 2251, 2252, 2255, 2258, 2259, 2260, 2263, 2266, 2267, 2268, 2270, 2271, 2272, 2275, 2278, 2279, 2280, 2283, 2286, 2287, 2288, 2290, 2291, 2292, 2295, 2301, 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2315, 2320, 2321, 2322, 2323, 2324, 2325, 2327, 2328, 2329], "excluded_lines": [], "start_line": 2202}, "patterns": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 2333}, "_get_pattern_storage_from_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2344, 2345, 2346, 2347, 2348], "excluded_lines": [], "start_line": 2337}, "patterns_analyze": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2373, 2374, 2375, 2377, 2378, 2380, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2391, 2392, 2393, 2394, 2396, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2409, 2410, 2411, 2412, 2422], "excluded_lines": [], "start_line": 2367}, "patterns_recommend": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 32, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2447, 2448, 2449, 2451, 2452, 2454, 2456, 2457, 2459, 2460, 2461, 2462, 2463, 2465, 2466, 2467, 2469, 2470, 2471, 2473, 2478, 2479, 2480, 2482, 2483, 2484, 2485, 2486, 2488, 2490, 2491, 2493], "excluded_lines": [], "start_line": 2441}, "patterns_tune": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2529, 2530, 2531, 2533, 2534, 2536, 2538, 2539, 2541, 2542, 2543, 2544, 2545, 2547, 2548, 2549, 2551, 2552, 2553, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2565, 2566, 2567, 2568, 2570, 2571, 2572, 2573, 2574, 2576], "excluded_lines": [], "start_line": 2518}, "repo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2585], "excluded_lines": [], "start_line": 2583}, "repo_list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2601, 2602, 2603, 2604, 2606, 2607, 2608, 2610, 2611, 2621, 2624, 2631, 2632, 2633, 2634, 2635, 2638, 2640, 2641, 2642, 2643, 2644, 2646, 2647, 2648, 2650, 2651, 2652, 2654, 2656, 2657, 2658, 2662, 2663, 2664, 2665, 2666, 2667], "excluded_lines": [], "start_line": 2595}, "repo_connect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 69, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 69, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2694, 2695, 2696, 2697, 2699, 2702, 2703, 2706, 2707, 2708, 2709, 2710, 2711, 2713, 2718, 2721, 2722, 2728, 2731, 2732, 2733, 2734, 2735, 2736, 2739, 2740, 2741, 2745, 2746, 2748, 2749, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2761, 2762, 2763, 2764, 2767, 2768, 2771, 2773, 2775, 2776, 2782, 2783, 2784, 2785, 2786, 2787, 2791, 2794, 2802, 2806, 2807, 2809, 2810, 2814, 2821, 2822, 2823, 2824, 2827, 2829, 2843], "excluded_lines": [], "start_line": 2685}, "repo_disconnect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2861, 2862, 2863, 2864, 2866, 2869, 2870, 2871, 2872, 2873, 2875, 2881, 2884, 2885, 2886, 2887, 2888, 2890, 2893, 2894, 2895, 2897, 2908, 2911, 2912, 2915, 2916, 2919, 2920, 2921, 2922, 2924, 2925, 2926, 2927, 2928, 2929, 2932, 2934, 2946], "excluded_lines": [], "start_line": 2853}, "rag": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2967], "excluded_lines": [], "start_line": 2965}, "rag_index": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 32, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2975, 2977, 2978, 2979, 2981, 2982, 2984, 2985, 2986, 2987, 2989, 2990, 2992, 2995, 2996, 2997, 2998, 3002, 3004, 3006, 3007, 3009, 3010, 3012, 3013, 3015, 3016, 3017, 3019, 3035, 3036, 3037], "excluded_lines": [], "start_line": 2973}, "rag_search": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3047, 3048, 3050, 3051, 3053, 3056, 3057, 3058, 3062, 3064, 3066, 3067, 3068, 3070, 3071, 3072, 3074, 3076, 3077, 3080, 3081, 3082, 3084, 3085, 3091, 3097, 3099, 3100, 3101, 3102, 3103, 3105, 3116, 3117, 3118, 3119], "excluded_lines": [], "start_line": 3045}, "rag_status": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3125, 3126, 3128, 3129, 3131, 3134, 3135, 3136, 3140, 3142, 3144, 3145, 3146, 3148, 3149, 3153, 3155, 3172, 3173, 3174], "excluded_lines": [], "start_line": 3123}, "patterns_profile": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3199, 3200, 3201, 3203, 3204, 3206, 3208, 3210, 3211, 3212, 3213, 3214, 3216, 3217, 3218, 3220, 3225, 3226, 3227, 3229, 3235, 3236, 3237, 3239, 3240, 3241, 3242, 3248], "excluded_lines": [], "start_line": 3193}, "suggest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 79, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 79, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3262, 3263, 3264, 3267, 3268, 3270, 3273, 3274, 3276, 3277, 3278, 3281, 3282, 3283, 3284, 3285, 3288, 3289, 3291, 3294, 3295, 3297, 3298, 3299, 3301, 3302, 3303, 3305, 3306, 3307, 3310, 3311, 3312, 3313, 3315, 3316, 3318, 3321, 3325, 3333, 3334, 3337, 3338, 3339, 3341, 3342, 3350, 3352, 3356, 3357, 3358, 3361, 3362, 3364, 3367, 3368, 3369, 3370, 3371, 3373, 3375, 3376, 3379, 3382, 3383, 3385, 3389, 3392, 3393, 3395, 3396, 3397, 3398, 3400, 3402, 3403, 3404, 3406, 3407], "excluded_lines": [], "start_line": 3256}, "document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3422, 3423, 3424, 3427, 3428, 3430, 3432, 3433, 3434, 3436, 3437, 3439, 3442, 3443, 3444, 3445, 3448, 3450, 3453, 3455, 3456, 3458, 3459, 3460, 3462, 3464, 3465, 3473, 3481, 3482, 3485, 3486, 3487, 3490, 3491, 3493, 3495, 3496, 3500, 3501], "excluded_lines": [], "start_line": 3416}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 70, 73, 74, 79, 106, 159, 190, 214, 223, 230, 272, 320, 347, 365, 376, 382, 390, 416, 440, 491, 511, 638, 678, 679, 683, 755, 756, 757, 758, 819, 820, 826, 832, 839, 845, 1007, 1008, 1035, 1036, 1041, 1042, 1073, 1074, 1079, 1156, 1157, 1158, 1164, 1169, 1174, 1179, 1184, 1189, 1200, 1210, 1318, 1319, 1320, 1326, 1337, 1347, 1352, 1358, 1363, 1493, 1494, 1495, 1502, 1508, 1514, 1568, 1569, 1570, 1576, 1582, 1588, 1595, 1601, 1655, 1656, 1657, 1663, 1674, 1684, 1689, 1696, 1763, 1764, 1771, 1817, 1818, 1819, 1826, 1832, 1839, 1845, 1971, 1972, 1978, 1984, 1991, 2044, 2045, 2052, 2112, 2113, 2118, 2124, 2167, 2168, 2169, 2175, 2180, 2185, 2190, 2196, 2202, 2332, 2333, 2337, 2351, 2352, 2360, 2367, 2425, 2426, 2434, 2441, 2496, 2497, 2505, 2511, 2518, 2582, 2583, 2588, 2589, 2595, 2670, 2671, 2672, 2679, 2685, 2846, 2847, 2848, 2853, 2964, 2965, 2970, 2971, 2972, 2973, 3040, 3041, 3042, 3043, 3044, 3045, 3122, 3123, 3177, 3178, 3186, 3193, 3251, 3252, 3253, 3254, 3255, 3256, 3410, 3411, 3412, 3415, 3416], "summary": {"covered_lines": 216, "num_statements": 216, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [3504, 3505], "start_line": 1}}, "classes": {"ApiKeyValidationResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "CustomHelpGroup": {"executed_lines": [680], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 678}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 39, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56, 70, 73, 74, 79, 82, 83, 86, 87, 88, 89, 91, 92, 94, 106, 159, 161, 162, 169, 171, 179, 182, 183, 186, 190, 196, 197, 203, 214, 223, 230, 272, 284, 287, 288, 299, 300, 301, 317, 320, 347, 365, 376, 382, 390, 416, 440, 491, 511, 638, 640, 642, 643, 644, 645, 646, 648, 649, 651, 654, 655, 656, 658, 659, 660, 661, 662, 664, 666, 667, 668, 669, 670, 671, 672, 674, 675, 678, 679, 683, 755, 756, 757, 758, 765, 768, 769, 770, 771, 772, 773, 776, 780, 784, 814, 816, 819, 820, 826, 832, 839, 845, 847, 849, 1007, 1008, 1010, 1035, 1036, 1038, 1041, 1042, 1044, 1073, 1074, 1079, 1156, 1157, 1158, 1164, 1169, 1174, 1179, 1184, 1189, 1200, 1210, 1227, 1318, 1319, 1320, 1326, 1337, 1347, 1352, 1358, 1363, 1378, 1493, 1494, 1495, 1502, 1508, 1514, 1524, 1525, 1526, 1529, 1532, 1533, 1539, 1541, 1542, 1543, 1544, 1545, 1549, 1554, 1559, 1560, 1561, 1562, 1568, 1569, 1570, 1576, 1582, 1588, 1595, 1601, 1614, 1615, 1616, 1618, 1621, 1625, 1626, 1628, 1630, 1631, 1632, 1633, 1635, 1637, 1638, 1639, 1641, 1642, 1648, 1650, 1651, 1652, 1655, 1656, 1657, 1663, 1674, 1684, 1689, 1696, 1763, 1764, 1771, 1773, 1775, 1777, 1778, 1779, 1780, 1783, 1784, 1796, 1797, 1799, 1800, 1802, 1803, 1804, 1808, 1809, 1817, 1818, 1819, 1826, 1832, 1839, 1845, 1868, 1869, 1871, 1875, 1877, 1878, 1879, 1882, 1885, 1886, 1887, 1889, 1890, 1891, 1892, 1893, 1917, 1925, 1926, 1927, 1928, 1929, 1971, 1972, 1978, 1984, 1991, 2044, 2045, 2052, 2112, 2113, 2118, 2124, 2167, 2168, 2169, 2175, 2180, 2185, 2190, 2196, 2202, 2332, 2333, 2337, 2351, 2352, 2360, 2367, 2425, 2426, 2434, 2441, 2496, 2497, 2505, 2511, 2518, 2582, 2583, 2588, 2589, 2595, 2670, 2671, 2672, 2679, 2685, 2846, 2847, 2848, 2853, 2964, 2965, 2970, 2971, 2972, 2973, 3040, 3041, 3042, 3043, 3044, 3045, 3122, 3123, 3177, 3178, 3186, 3193, 3251, 3252, 3253, 3254, 3255, 3256, 3410, 3411, 3412, 3415, 3416], "summary": {"covered_lines": 368, "num_statements": 1603, "percent_covered": 22.95695570804741, "percent_covered_display": "23", "missing_lines": 1235, "excluded_lines": 2, "percent_statements_covered": 22.95695570804741, "percent_statements_covered_display": "23"}, "missing_lines": [116, 117, 118, 123, 124, 128, 129, 133, 134, 139, 140, 141, 142, 143, 144, 148, 149, 153, 185, 187, 198, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211, 216, 217, 218, 219, 220, 225, 226, 227, 232, 240, 241, 243, 244, 245, 246, 248, 254, 255, 257, 259, 262, 267, 269, 289, 290, 292, 293, 294, 295, 296, 302, 303, 304, 307, 308, 311, 312, 313, 314, 315, 322, 323, 328, 329, 336, 337, 340, 341, 349, 351, 352, 357, 359, 360, 361, 362, 367, 368, 370, 371, 378, 379, 384, 385, 386, 387, 392, 400, 401, 403, 404, 406, 407, 409, 411, 413, 418, 419, 426, 427, 432, 433, 434, 436, 437, 448, 449, 451, 452, 454, 455, 456, 457, 458, 459, 461, 467, 468, 470, 471, 472, 477, 478, 480, 481, 488, 499, 500, 502, 503, 513, 514, 516, 517, 518, 519, 522, 524, 533, 535, 543, 551, 553, 554, 555, 556, 558, 560, 561, 562, 565, 566, 567, 568, 570, 572, 573, 575, 576, 577, 578, 580, 582, 584, 585, 586, 587, 590, 593, 594, 595, 597, 598, 599, 601, 602, 605, 606, 612, 614, 616, 617, 618, 621, 622, 623, 626, 627, 630, 631, 632, 633, 634, 635, 686, 687, 688, 689, 692, 693, 694, 697, 705, 706, 707, 709, 710, 711, 713, 715, 726, 727, 729, 730, 731, 732, 735, 736, 738, 742, 743, 744, 745, 746, 747, 748, 750, 751, 752, 781, 786, 787, 791, 793, 794, 795, 803, 804, 805, 806, 807, 809, 810, 811, 815, 851, 852, 853, 854, 855, 856, 857, 858, 860, 861, 862, 863, 864, 865, 868, 870, 872, 873, 874, 875, 876, 878, 888, 889, 890, 891, 892, 893, 902, 903, 904, 911, 912, 913, 916, 917, 918, 919, 920, 929, 930, 931, 932, 937, 939, 940, 941, 947, 948, 956, 958, 959, 961, 971, 972, 973, 974, 977, 979, 980, 984, 985, 987, 988, 989, 990, 991, 992, 994, 995, 996, 998, 999, 1004, 1011, 1012, 1013, 1014, 1015, 1016, 1025, 1045, 1046, 1047, 1048, 1049, 1050, 1053, 1055, 1056, 1057, 1058, 1060, 1061, 1062, 1063, 1064, 1066, 1076, 1088, 1091, 1092, 1095, 1098, 1099, 1101, 1102, 1103, 1106, 1107, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1120, 1121, 1122, 1123, 1126, 1127, 1128, 1129, 1131, 1132, 1134, 1135, 1138, 1139, 1144, 1146, 1149, 1151, 1152, 1153, 1229, 1230, 1231, 1234, 1235, 1236, 1238, 1239, 1242, 1243, 1244, 1246, 1256, 1259, 1262, 1263, 1264, 1267, 1268, 1269, 1270, 1271, 1272, 1274, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1287, 1288, 1289, 1291, 1293, 1294, 1296, 1299, 1300, 1302, 1303, 1304, 1305, 1308, 1311, 1314, 1315, 1380, 1381, 1382, 1385, 1386, 1387, 1389, 1390, 1391, 1395, 1402, 1405, 1406, 1407, 1408, 1411, 1412, 1413, 1416, 1417, 1419, 1421, 1422, 1424, 1426, 1427, 1432, 1433, 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1447, 1448, 1449, 1450, 1455, 1456, 1457, 1460, 1461, 1462, 1464, 1466, 1468, 1469, 1470, 1472, 1473, 1476, 1478, 1479, 1481, 1484, 1485, 1487, 1489, 1490, 1534, 1535, 1536, 1563, 1564, 1565, 1622, 1623, 1644, 1645, 1646, 1713, 1714, 1715, 1718, 1719, 1720, 1723, 1729, 1732, 1734, 1735, 1737, 1739, 1740, 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1757, 1785, 1786, 1787, 1792, 1805, 1812, 1813, 1814, 1880, 1881, 1883, 1884, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904, 1905, 1906, 1914, 1915, 1918, 1919, 1921, 1922, 1923, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1941, 1942, 1944, 1945, 1947, 1949, 1952, 1953, 1954, 1956, 1958, 1959, 1960, 1961, 1962, 1963, 1967, 1968, 2004, 2006, 2007, 2008, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2040, 2041, 2063, 2065, 2067, 2068, 2069, 2071, 2072, 2074, 2075, 2078, 2079, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2091, 2092, 2093, 2094, 2095, 2098, 2099, 2100, 2101, 2102, 2105, 2106, 2107, 2108, 2109, 2136, 2138, 2139, 2140, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2151, 2152, 2154, 2155, 2156, 2157, 2158, 2160, 2161, 2162, 2163, 2164, 2222, 2224, 2225, 2226, 2228, 2229, 2230, 2232, 2235, 2238, 2245, 2246, 2247, 2248, 2251, 2252, 2255, 2258, 2259, 2260, 2263, 2266, 2267, 2268, 2270, 2271, 2272, 2275, 2278, 2279, 2280, 2283, 2286, 2287, 2288, 2290, 2291, 2292, 2295, 2301, 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2315, 2320, 2321, 2322, 2323, 2324, 2325, 2327, 2328, 2329, 2344, 2345, 2346, 2347, 2348, 2373, 2374, 2375, 2377, 2378, 2380, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2391, 2392, 2393, 2394, 2396, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2409, 2410, 2411, 2412, 2422, 2447, 2448, 2449, 2451, 2452, 2454, 2456, 2457, 2459, 2460, 2461, 2462, 2463, 2465, 2466, 2467, 2469, 2470, 2471, 2473, 2478, 2479, 2480, 2482, 2483, 2484, 2485, 2486, 2488, 2490, 2491, 2493, 2529, 2530, 2531, 2533, 2534, 2536, 2538, 2539, 2541, 2542, 2543, 2544, 2545, 2547, 2548, 2549, 2551, 2552, 2553, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2565, 2566, 2567, 2568, 2570, 2571, 2572, 2573, 2574, 2576, 2585, 2601, 2602, 2603, 2604, 2606, 2607, 2608, 2610, 2611, 2621, 2624, 2631, 2632, 2633, 2634, 2635, 2638, 2640, 2641, 2642, 2643, 2644, 2646, 2647, 2648, 2650, 2651, 2652, 2654, 2656, 2657, 2658, 2662, 2663, 2664, 2665, 2666, 2667, 2694, 2695, 2696, 2697, 2699, 2702, 2703, 2706, 2707, 2708, 2709, 2710, 2711, 2713, 2718, 2721, 2722, 2728, 2731, 2732, 2733, 2734, 2735, 2736, 2739, 2740, 2741, 2745, 2746, 2748, 2749, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2761, 2762, 2763, 2764, 2767, 2768, 2771, 2773, 2775, 2776, 2782, 2783, 2784, 2785, 2786, 2787, 2791, 2794, 2802, 2806, 2807, 2809, 2810, 2814, 2821, 2822, 2823, 2824, 2827, 2829, 2843, 2861, 2862, 2863, 2864, 2866, 2869, 2870, 2871, 2872, 2873, 2875, 2881, 2884, 2885, 2886, 2887, 2888, 2890, 2893, 2894, 2895, 2897, 2908, 2911, 2912, 2915, 2916, 2919, 2920, 2921, 2922, 2924, 2925, 2926, 2927, 2928, 2929, 2932, 2934, 2946, 2967, 2975, 2977, 2978, 2979, 2981, 2982, 2984, 2985, 2986, 2987, 2989, 2990, 2992, 2995, 2996, 2997, 2998, 3002, 3004, 3006, 3007, 3009, 3010, 3012, 3013, 3015, 3016, 3017, 3019, 3035, 3036, 3037, 3047, 3048, 3050, 3051, 3053, 3056, 3057, 3058, 3062, 3064, 3066, 3067, 3068, 3070, 3071, 3072, 3074, 3076, 3077, 3080, 3081, 3082, 3084, 3085, 3091, 3097, 3099, 3100, 3101, 3102, 3103, 3105, 3116, 3117, 3118, 3119, 3125, 3126, 3128, 3129, 3131, 3134, 3135, 3136, 3140, 3142, 3144, 3145, 3146, 3148, 3149, 3153, 3155, 3172, 3173, 3174, 3199, 3200, 3201, 3203, 3204, 3206, 3208, 3210, 3211, 3212, 3213, 3214, 3216, 3217, 3218, 3220, 3225, 3226, 3227, 3229, 3235, 3236, 3237, 3239, 3240, 3241, 3242, 3248, 3262, 3263, 3264, 3267, 3268, 3270, 3273, 3274, 3276, 3277, 3278, 3281, 3282, 3283, 3284, 3285, 3288, 3289, 3291, 3294, 3295, 3297, 3298, 3299, 3301, 3302, 3303, 3305, 3306, 3307, 3310, 3311, 3312, 3313, 3315, 3316, 3318, 3321, 3325, 3333, 3334, 3337, 3338, 3339, 3341, 3342, 3350, 3352, 3356, 3357, 3358, 3361, 3362, 3364, 3367, 3368, 3369, 3370, 3371, 3373, 3375, 3376, 3379, 3382, 3383, 3385, 3389, 3392, 3393, 3395, 3396, 3397, 3398, 3400, 3402, 3403, 3404, 3406, 3407, 3422, 3423, 3424, 3427, 3428, 3430, 3432, 3433, 3434, 3436, 3437, 3439, 3442, 3443, 3444, 3445, 3448, 3450, 3453, 3455, 3456, 3458, 3459, 3460, 3462, 3464, 3465, 3473, 3481, 3482, 3485, 3486, 3487, 3490, 3491, 3493, 3495, 3496, 3500, 3501], "excluded_lines": [3504, 3505], "start_line": 1}}}, "refactron\\core\\__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\analysis_result.py": {"executed_lines": [3, 4, 5, 7, 10, 11, 17, 20, 21, 24, 25, 26, 27, 29, 30, 32, 34, 35, 37, 39, 40, 42, 43, 44, 45, 47, 48, 50, 51, 52, 53, 55, 56, 58, 59, 60, 61, 63, 65, 67, 69, 70, 71, 74, 76, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134], "summary": {"covered_lines": 87, "num_statements": 88, "percent_covered": 98.86363636363636, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.86363636363636, "percent_statements_covered_display": "99"}, "missing_lines": [72], "excluded_lines": [], "functions": {"AnalysisResult.files_analyzed_successfully": {"executed_lines": [32], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 30}, "AnalysisResult.files_failed": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "AnalysisResult.critical_issues": {"executed_lines": [42, 43, 44, 45], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 40}, "AnalysisResult.error_issues": {"executed_lines": [50, 51, 52, 53], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 48}, "AnalysisResult.all_issues": {"executed_lines": [58, 59, 60, 61], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "AnalysisResult.issues_by_level": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 63}, "AnalysisResult.issues_by_file": {"executed_lines": [69, 70, 71], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [72], "excluded_lines": [], "start_line": 67}, "AnalysisResult.summary": {"executed_lines": [76], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "AnalysisResult.report": {"executed_lines": [89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 87}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 17, 20, 21, 24, 25, 26, 27, 29, 30, 34, 35, 39, 40, 47, 48, 55, 56, 63, 67, 74, 87], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FileAnalysisError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "AnalysisResult": {"executed_lines": [32, 37, 42, 43, 44, 45, 50, 51, 52, 53, 58, 59, 60, 61, 65, 69, 70, 71, 76, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134], "summary": {"covered_lines": 60, "num_statements": 61, "percent_covered": 98.36065573770492, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.36065573770492, "percent_statements_covered_display": "98"}, "missing_lines": [72], "excluded_lines": [], "start_line": 21}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 17, 20, 21, 24, 25, 26, 27, 29, 30, 34, 35, 39, 40, 47, 48, 55, 56, 63, 67, 74, 87], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\backup.py": {"executed_lines": [10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 28, 35, 36, 37, 38, 40, 42, 48, 50, 52, 53, 54, 55, 60, 70, 71, 72, 73, 75, 77, 85, 86, 88, 90, 101, 103, 104, 106, 107, 109, 110, 111, 112, 114, 116, 117, 119, 120, 121, 129, 131, 132, 134, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 168, 169, 171, 172, 174, 175, 176, 177, 178, 180, 183, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 197, 199, 206, 208, 218, 219, 220, 221, 223, 233, 234, 235, 237, 238, 239, 241, 248, 250, 251, 252, 253, 255, 256, 257, 259, 270, 271, 272, 273, 274, 275, 277, 284, 285, 286, 289, 292, 299, 301, 303, 304, 306, 308, 309, 311, 312, 319, 323, 325, 326, 328, 329, 336, 340, 342, 343, 345, 346, 353, 357, 372, 373, 375, 376, 378, 379, 380, 381, 399, 403, 410, 415, 416, 418, 419, 420, 421, 422, 423, 424, 425, 426, 428, 438, 441, 442, 443, 445, 446, 452, 457, 462, 469, 470, 471, 473, 490, 492, 494, 501, 503, 518, 526, 541, 542, 543, 544, 545, 550, 556, 558, 560, 562, 564], "summary": {"covered_lines": 201, "num_statements": 237, "percent_covered": 84.81012658227849, "percent_covered_display": "85", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 84.81012658227849, "percent_statements_covered_display": "85"}, "missing_lines": [43, 44, 45, 46, 47, 56, 57, 58, 181, 320, 321, 337, 338, 354, 355, 388, 392, 400, 401, 412, 413, 439, 453, 454, 495, 499, 527, 528, 530, 532, 533, 534, 535, 537, 539, 546], "excluded_lines": [], "functions": {"BackupManager.__init__": {"executed_lines": [35, 36, 37, 38], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "BackupManager._load_index": {"executed_lines": [42, 48], "summary": {"covered_lines": 2, "num_statements": 7, "percent_covered": 28.571428571428573, "percent_covered_display": "29", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 28.571428571428573, "percent_statements_covered_display": "29"}, "missing_lines": [43, 44, 45, 46, 47], "excluded_lines": [], "start_line": 40}, "BackupManager._save_index": {"executed_lines": [52, 53, 54, 55], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [56, 57, 58], "excluded_lines": [], "start_line": 50}, "BackupManager.create_backup_session": {"executed_lines": [70, 71, 72, 73, 75, 77, 85, 86, 88], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 60}, "BackupManager.backup_file": {"executed_lines": [101, 103, 104, 106, 107, 109, 110, 111, 112, 114, 116, 117, 119, 120, 121, 129, 131, 132], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 90}, "BackupManager.backup_files": {"executed_lines": [147, 148, 149, 150, 151, 152, 153, 154, 155, 156], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "BackupManager.rollback_session": {"executed_lines": [168, 169, 171, 172, 174, 175, 176, 177, 178, 180, 183, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 197], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.65217391304348, "percent_statements_covered_display": "96"}, "missing_lines": [181], "excluded_lines": [], "start_line": 158}, "BackupManager.list_sessions": {"executed_lines": [206], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 199}, "BackupManager.get_session": {"executed_lines": [218, 219, 220, 221], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 208}, "BackupManager.clear_session": {"executed_lines": [233, 234, 235, 237, 238, 239], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 223}, "BackupManager.clear_all_sessions": {"executed_lines": [248, 250, 251, 252, 253, 255, 256, 257], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 241}, "BackupManager.update_session_git_commit": {"executed_lines": [270, 271, 272, 273, 274, 275], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 259}, "BackupManager.get_latest_session": {"executed_lines": [284, 285, 286], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 277}, "GitIntegration.__init__": {"executed_lines": [299], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 292}, "GitIntegration.is_git_repo": {"executed_lines": [303, 304], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 301}, "GitIntegration.has_uncommitted_changes": {"executed_lines": [308, 309, 311, 312, 319], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [320, 321], "excluded_lines": [], "start_line": 306}, "GitIntegration.get_current_branch": {"executed_lines": [325, 326, 328, 329, 336], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [337, 338], "excluded_lines": [], "start_line": 323}, "GitIntegration.get_current_commit": {"executed_lines": [342, 343, 345, 346, 353], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [354, 355], "excluded_lines": [], "start_line": 340}, "GitIntegration.create_pre_refactor_commit": {"executed_lines": [372, 373, 375, 376, 378, 379, 380, 381, 399, 403, 410], "summary": {"covered_lines": 11, "num_statements": 17, "percent_covered": 64.70588235294117, "percent_covered_display": "65", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 64.70588235294117, "percent_statements_covered_display": "65"}, "missing_lines": [388, 392, 400, 401, 412, 413], "excluded_lines": [], "start_line": 357}, "GitIntegration._is_valid_git_ref": {"executed_lines": [418, 419, 420, 421, 422, 423, 424, 425, 426], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 416}, "GitIntegration.git_rollback_to_commit": {"executed_lines": [438, 441, 442, 443, 445, 446, 452], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [439, 453, 454], "excluded_lines": [], "start_line": 428}, "BackupRollbackSystem.__init__": {"executed_lines": [469, 470, 471], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 462}, "BackupRollbackSystem.prepare_for_refactoring": {"executed_lines": [490, 492, 494, 501], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [495, 499], "excluded_lines": [], "start_line": 473}, "BackupRollbackSystem.rollback": {"executed_lines": [518, 526, 541, 542, 543, 544, 545, 550, 556], "summary": {"covered_lines": 9, "num_statements": 19, "percent_covered": 47.36842105263158, "percent_covered_display": "47", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 47.36842105263158, "percent_statements_covered_display": "47"}, "missing_lines": [527, 528, 530, 532, 533, 534, 535, 537, 539, 546], "excluded_lines": [], "start_line": 503}, "BackupRollbackSystem.list_sessions": {"executed_lines": [560], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 558}, "BackupRollbackSystem.clear_all": {"executed_lines": [564], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 562}, "": {"executed_lines": [10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 28, 40, 50, 60, 90, 134, 158, 199, 208, 223, 241, 259, 277, 289, 292, 301, 306, 323, 340, 357, 415, 416, 428, 457, 462, 473, 503, 558, 562], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BackupManager": {"executed_lines": [35, 36, 37, 38, 42, 48, 52, 53, 54, 55, 70, 71, 72, 73, 75, 77, 85, 86, 88, 101, 103, 104, 106, 107, 109, 110, 111, 112, 114, 116, 117, 119, 120, 121, 129, 131, 132, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 168, 169, 171, 172, 174, 175, 176, 177, 178, 180, 183, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 197, 206, 218, 219, 220, 221, 233, 234, 235, 237, 238, 239, 248, 250, 251, 252, 253, 255, 256, 257, 270, 271, 272, 273, 274, 275, 284, 285, 286], "summary": {"covered_lines": 97, "num_statements": 106, "percent_covered": 91.50943396226415, "percent_covered_display": "92", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 91.50943396226415, "percent_statements_covered_display": "92"}, "missing_lines": [43, 44, 45, 46, 47, 56, 57, 58, 181], "excluded_lines": [], "start_line": 22}, "GitIntegration": {"executed_lines": [299, 303, 304, 308, 309, 311, 312, 319, 325, 326, 328, 329, 336, 342, 343, 345, 346, 353, 372, 373, 375, 376, 378, 379, 380, 381, 399, 403, 410, 418, 419, 420, 421, 422, 423, 424, 425, 426, 438, 441, 442, 443, 445, 446, 452], "summary": {"covered_lines": 45, "num_statements": 60, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [320, 321, 337, 338, 354, 355, 388, 392, 400, 401, 412, 413, 439, 453, 454], "excluded_lines": [], "start_line": 289}, "BackupRollbackSystem": {"executed_lines": [469, 470, 471, 490, 492, 494, 501, 518, 526, 541, 542, 543, 544, 545, 550, 556, 560, 564], "summary": {"covered_lines": 18, "num_statements": 30, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [495, 499, 527, 528, 530, 532, 533, 534, 535, 537, 539, 546], "excluded_lines": [], "start_line": 457}, "": {"executed_lines": [10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 28, 40, 50, 60, 90, 134, 158, 199, 208, 223, 241, 259, 277, 289, 292, 301, 306, 323, 340, 357, 415, 416, 428, 457, 462, 473, 503, 558, 562], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\cache.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 21, 37, 38, 39, 41, 42, 44, 46, 48, 49, 52, 55, 62, 72, 74, 84, 86, 97, 100, 103, 104, 105, 106, 107, 110, 111, 133, 134, 136, 152, 155, 157, 158, 160, 163, 166, 167, 168, 169, 170, 175, 177, 179, 182, 183, 184, 186, 208, 211, 214, 215, 216, 217, 218, 223, 230, 237, 238, 240, 241, 243, 244, 245, 246, 247, 252], "summary": {"covered_lines": 74, "num_statements": 110, "percent_covered": 67.27272727272727, "percent_covered_display": "67", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 67.27272727272727, "percent_statements_covered_display": "67"}, "missing_lines": [98, 112, 113, 114, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 153, 171, 172, 180, 187, 188, 191, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 219, 220, 248, 250], "excluded_lines": [], "functions": {"ASTCache.__init__": {"executed_lines": [37, 38, 39, 41, 42, 44, 46, 48, 49, 52, 55], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 21}, "ASTCache._compute_hash": {"executed_lines": [72], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 62}, "ASTCache._get_cache_path": {"executed_lines": [84], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "ASTCache.get": {"executed_lines": [97, 100, 103, 104, 105, 106, 107, 110, 111, 133, 134], "summary": {"covered_lines": 11, "num_statements": 26, "percent_covered": 42.30769230769231, "percent_covered_display": "42", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 42.30769230769231, "percent_statements_covered_display": "42"}, "missing_lines": [98, 112, 113, 114, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129], "excluded_lines": [], "start_line": 86}, "ASTCache.put": {"executed_lines": [152, 155, 157, 158, 160, 163, 166, 167, 168, 169, 170, 175], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [153, 171, 172], "excluded_lines": [], "start_line": 136}, "ASTCache._cleanup_if_needed": {"executed_lines": [179, 182, 183, 184, 186], "summary": {"covered_lines": 5, "num_statements": 19, "percent_covered": 26.31578947368421, "percent_covered_display": "26", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 26.31578947368421, "percent_statements_covered_display": "26"}, "missing_lines": [180, 187, 188, 191, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206], "excluded_lines": [], "start_line": 177}, "ASTCache.clear": {"executed_lines": [211, 214, 215, 216, 217, 218, 223], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [219, 220], "excluded_lines": [], "start_line": 208}, "ASTCache.get_stats": {"executed_lines": [237, 238, 240, 241, 243, 244, 245, 246, 247, 252], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [248, 250], "excluded_lines": [], "start_line": 230}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 21, 62, 74, 86, 136, 177, 208, 230], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ASTCache": {"executed_lines": [37, 38, 39, 41, 42, 44, 46, 48, 49, 52, 55, 72, 84, 97, 100, 103, 104, 105, 106, 107, 110, 111, 133, 134, 152, 155, 157, 158, 160, 163, 166, 167, 168, 169, 170, 175, 179, 182, 183, 184, 186, 211, 214, 215, 216, 217, 218, 223, 237, 238, 240, 241, 243, 244, 245, 246, 247, 252], "summary": {"covered_lines": 58, "num_statements": 94, "percent_covered": 61.702127659574465, "percent_covered_display": "62", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 61.702127659574465, "percent_statements_covered_display": "62"}, "missing_lines": [98, 112, 113, 114, 117, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 153, 171, 172, 180, 187, 188, 191, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 219, 220, 248, 250], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 21, 62, 74, 86, 136, 177, 208, 230], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config.py": {"executed_lines": [3, 4, 5, 7, 9, 10, 11, 14, 15, 19, 20, 23, 36, 47, 48, 49, 50, 53, 54, 57, 58, 61, 62, 74, 77, 84, 85, 88, 89, 90, 92, 93, 95, 96, 97, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 115, 116, 119, 120, 121, 124, 125, 128, 129, 130, 131, 134, 136, 137, 157, 160, 166, 167, 174, 175, 186, 195, 252, 254, 256, 257, 264, 265, 267], "summary": {"covered_lines": 76, "num_statements": 81, "percent_covered": 93.82716049382717, "percent_covered_display": "94", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 93.82716049382717, "percent_statements_covered_display": "94"}, "missing_lines": [172, 176, 177, 258, 259], "excluded_lines": [], "functions": {"RefactronConfig.from_file": {"executed_lines": [157, 160, 166, 167, 174, 175], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [172, 176, 177], "excluded_lines": [], "start_line": 137}, "RefactronConfig.to_file": {"executed_lines": [195, 252, 254, 256, 257], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [258, 259], "excluded_lines": [], "start_line": 186}, "RefactronConfig.default": {"executed_lines": [267], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 265}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 11, 14, 15, 19, 20, 23, 36, 47, 48, 49, 50, 53, 54, 57, 58, 61, 62, 74, 77, 84, 85, 88, 89, 90, 92, 93, 95, 96, 97, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 115, 116, 119, 120, 121, 124, 125, 128, 129, 130, 131, 134, 136, 137, 186, 264, 265], "summary": {"covered_lines": 64, "num_statements": 64, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactronConfig": {"executed_lines": [157, 160, 166, 167, 174, 175, 195, 252, 254, 256, 257, 267], "summary": {"covered_lines": 12, "num_statements": 17, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 70.58823529411765, "percent_statements_covered_display": "71"}, "missing_lines": [172, 176, 177, 258, 259], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 11, 14, 15, 19, 20, 23, 36, 47, 48, 49, 50, 53, 54, 57, 58, 61, 62, 74, 77, 84, 85, 88, 89, 90, 92, 93, 95, 96, 97, 99, 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 115, 116, 119, 120, 121, 124, 125, 128, 129, 130, 131, 134, 136, 137, 186, 264, 265], "summary": {"covered_lines": 64, "num_statements": 64, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config_loader.py": {"executed_lines": [3, 4, 5, 7, 9, 10, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 30, 31, 51, 52, 58, 59, 60, 61, 62, 77, 80, 81, 83, 86, 88, 89, 90, 98, 101, 102, 103, 110, 111, 112, 118, 124, 125, 128, 129, 132, 134, 135, 137, 138, 153, 154, 155, 158, 160, 161, 163, 166, 168, 170, 171, 193, 195, 196, 213, 214, 218, 219], "summary": {"covered_lines": 68, "num_statements": 80, "percent_covered": 85.0, "percent_covered_display": "85", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 85.0, "percent_statements_covered_display": "85"}, "missing_lines": [26, 27, 28, 70, 71, 104, 113, 121, 156, 228, 229, 231], "excluded_lines": [], "functions": {"ConfigLoader._normalize_environment": {"executed_lines": [19, 20, 21, 22, 23, 24, 25], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [26, 27, 28], "excluded_lines": [], "start_line": 17}, "ConfigLoader.load_with_profile": {"executed_lines": [51, 52, 58, 59, 60, 61, 62, 77, 80, 81, 83, 86, 88, 89, 90, 98, 101, 102, 103, 110, 111, 112, 118, 124, 125, 128, 129, 132, 134, 135], "summary": {"covered_lines": 30, "num_statements": 35, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [70, 71, 104, 113, 121], "excluded_lines": [], "start_line": 31}, "ConfigLoader._merge_config": {"executed_lines": [153, 154, 155, 158, 160, 161, 163, 166, 168], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [156], "excluded_lines": [], "start_line": 138}, "ConfigLoader.load_from_file": {"executed_lines": [193], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 171}, "ConfigLoader.migrate_config": {"executed_lines": [213, 214, 218, 219], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [228, 229, 231], "excluded_lines": [], "start_line": 196}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 13, 16, 17, 30, 31, 137, 138, 170, 171, 195, 196], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ConfigLoader": {"executed_lines": [19, 20, 21, 22, 23, 24, 25, 51, 52, 58, 59, 60, 61, 62, 77, 80, 81, 83, 86, 88, 89, 90, 98, 101, 102, 103, 110, 111, 112, 118, 124, 125, 128, 129, 132, 134, 135, 153, 154, 155, 158, 160, 161, 163, 166, 168, 193, 213, 214, 218, 219], "summary": {"covered_lines": 51, "num_statements": 63, "percent_covered": 80.95238095238095, "percent_covered_display": "81", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 80.95238095238095, "percent_statements_covered_display": "81"}, "missing_lines": [26, 27, 28, 70, 71, 104, 113, 121, 156, 228, 229, 231], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [3, 4, 5, 7, 9, 10, 13, 16, 17, 30, 31, 137, 138, 170, 171, 195, 196], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config_templates.py": {"executed_lines": [3, 5, 8, 11, 12, 14, 95, 96, 98, 99, 129, 131, 132, 134, 135, 156, 158, 159, 161, 162, 181, 183, 184, 197, 198, 200, 202, 204, 205, 207], "summary": {"covered_lines": 30, "num_statements": 33, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [199, 201, 203], "excluded_lines": [], "functions": {"ConfigTemplates.get_base_template": {"executed_lines": [14], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "ConfigTemplates.get_django_template": {"executed_lines": [98, 99, 129], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 96}, "ConfigTemplates.get_fastapi_template": {"executed_lines": [134, 135, 156], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 132}, "ConfigTemplates.get_flask_template": {"executed_lines": [161, 162, 181], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 159}, "ConfigTemplates.get_template": {"executed_lines": [197, 198, 200, 202, 204, 205, 207], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [199, 201, 203], "excluded_lines": [], "start_line": 184}, "": {"executed_lines": [3, 5, 8, 11, 12, 95, 96, 131, 132, 158, 159, 183, 184], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ConfigTemplates": {"executed_lines": [14, 98, 99, 129, 134, 135, 156, 161, 162, 181, 197, 198, 200, 202, 204, 205, 207], "summary": {"covered_lines": 17, "num_statements": 20, "percent_covered": 85.0, "percent_covered_display": "85", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.0, "percent_statements_covered_display": "85"}, "missing_lines": [199, 201, 203], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [3, 5, 8, 11, 12, 95, 96, 131, 132, 158, 159, 183, 184], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\config_validator.py": {"executed_lines": [3, 4, 6, 9, 13, 16, 19, 30, 39, 42, 45, 47, 48, 62, 65, 66, 67, 74, 75, 76, 77, 83, 84, 85, 88, 89, 90, 96, 97, 98, 101, 102, 109, 121, 122, 123, 124, 125, 127, 131, 132, 133, 137, 145, 146, 147, 148, 149, 150, 156, 157, 159, 163, 183, 184, 185, 186, 190, 191, 192, 193, 198, 199, 200, 203, 204, 205, 212, 218, 219, 220, 221, 223, 227, 229, 230, 231, 232, 236, 243, 244, 245, 246, 252, 253, 254, 258, 259, 262, 267, 273, 275, 276, 289, 290], "summary": {"covered_lines": 95, "num_statements": 112, "percent_covered": 84.82142857142857, "percent_covered_display": "85", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 84.82142857142857, "percent_statements_covered_display": "85"}, "missing_lines": [86, 99, 103, 126, 128, 134, 151, 158, 160, 187, 201, 206, 222, 224, 233, 247, 255], "excluded_lines": [], "functions": {"ConfigValidator.validate": {"executed_lines": [62, 65, 66, 67, 74, 75, 76, 77, 83, 84, 85, 88, 89, 90, 96, 97, 98, 101, 102, 109, 121, 122, 123, 124, 125, 127, 131, 132, 133, 137, 145, 146, 147, 148, 149, 150, 156, 157, 159, 163, 183, 184, 185, 186, 190, 191, 192, 193, 198, 199, 200, 203, 204, 205, 212, 218, 219, 220, 221, 223, 227, 229, 230, 231, 232, 236, 243, 244, 245, 246, 252, 253, 254, 258, 259, 262, 267, 273], "summary": {"covered_lines": 78, "num_statements": 95, "percent_covered": 82.10526315789474, "percent_covered_display": "82", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 82.10526315789474, "percent_statements_covered_display": "82"}, "missing_lines": [86, 99, 103, 126, 128, 134, 151, 158, 160, 187, 201, 206, 222, 224, 233, 247, 255], "excluded_lines": [], "start_line": 48}, "ConfigValidator.validate_version_compatibility": {"executed_lines": [289, 290], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 276}, "": {"executed_lines": [3, 4, 6, 9, 13, 16, 19, 30, 39, 42, 45, 47, 48, 275, 276], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ConfigValidator": {"executed_lines": [62, 65, 66, 67, 74, 75, 76, 77, 83, 84, 85, 88, 89, 90, 96, 97, 98, 101, 102, 109, 121, 122, 123, 124, 125, 127, 131, 132, 133, 137, 145, 146, 147, 148, 149, 150, 156, 157, 159, 163, 183, 184, 185, 186, 190, 191, 192, 193, 198, 199, 200, 203, 204, 205, 212, 218, 219, 220, 221, 223, 227, 229, 230, 231, 232, 236, 243, 244, 245, 246, 252, 253, 254, 258, 259, 262, 267, 273, 289, 290], "summary": {"covered_lines": 80, "num_statements": 97, "percent_covered": 82.47422680412372, "percent_covered_display": "82", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 82.47422680412372, "percent_statements_covered_display": "82"}, "missing_lines": [86, 99, 103, 126, 128, 134, 151, 158, 160, 187, 201, 206, 222, 224, 233, 247, 255], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [3, 4, 6, 9, 13, 16, 19, 30, 39, 42, 45, 47, 48, 275, 276], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\credentials.py": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 30, 41, 42, 61, 63, 66, 81, 83, 84, 85, 99], "summary": {"covered_lines": 27, "num_statements": 58, "percent_covered": 46.55172413793103, "percent_covered_display": "47", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 46.55172413793103, "percent_statements_covered_display": "47"}, "missing_lines": [31, 43, 44, 45, 46, 47, 48, 50, 68, 69, 70, 75, 76, 77, 78, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 106], "excluded_lines": [], "functions": {"RefactronCredentials.to_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31], "excluded_lines": [], "start_line": 30}, "RefactronCredentials.from_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [43, 44, 45, 46, 47, 48, 50], "excluded_lines": [], "start_line": 42}, "credentials_path": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "save_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [68, 69, 70, 75, 76, 77, 78], "excluded_lines": [], "start_line": 66}, "load_credentials": {"executed_lines": [83, 84, 85], "summary": {"covered_lines": 3, "num_statements": 13, "percent_covered": 23.076923076923077, "percent_covered_display": "23", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 23.076923076923077, "percent_statements_covered_display": "23"}, "missing_lines": [86, 87, 88, 89, 90, 91, 93, 94, 95, 96], "excluded_lines": [], "start_line": 81}, "delete_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [101, 102, 103, 104, 105, 106], "excluded_lines": [], "start_line": 99}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 30, 41, 42, 61, 66, 81, 99], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactronCredentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31, 43, 44, 45, 46, 47, 48, 50], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 30, 41, 42, 61, 63, 66, 81, 83, 84, 85, 99], "summary": {"covered_lines": 27, "num_statements": 50, "percent_covered": 54.0, "percent_covered_display": "54", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 54.0, "percent_statements_covered_display": "54"}, "missing_lines": [68, 69, 70, 75, 76, 77, 78, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 101, 102, 103, 104, 105, 106], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\device_auth.py": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 44, 49, 76, 110], "summary": {"covered_lines": 30, "num_statements": 96, "percent_covered": 31.25, "percent_covered_display": "31", "missing_lines": 66, "excluded_lines": 0, "percent_statements_covered": 31.25, "percent_statements_covered_display": "31"}, "missing_lines": [41, 45, 46, 50, 51, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 101, 119, 120, 121, 123, 124, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 163, 164, 166, 175], "excluded_lines": [], "functions": {"TokenResponse.expires_at": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 40}, "_normalize_base_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [45, 46], "excluded_lines": [], "start_line": 44}, "_post_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [50, 51, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "excluded_lines": [], "start_line": 49}, "start_device_authorization": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [81, 82, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 101], "excluded_lines": [], "start_line": 76}, "poll_for_token": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [119, 120, 121, 123, 124, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 163, 164, 166, 175], "excluded_lines": [], "start_line": 110}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 44, 49, 76, 110], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DeviceAuthorization": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "TokenResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 32}, "": {"executed_lines": [8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 40, 44, 49, 76, 110], "summary": {"covered_lines": 30, "num_statements": 95, "percent_covered": 31.57894736842105, "percent_covered_display": "32", "missing_lines": 65, "excluded_lines": 0, "percent_statements_covered": 31.57894736842105, "percent_statements_covered_display": "32"}, "missing_lines": [45, 46, 50, 51, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 101, 119, 120, 121, 123, 124, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 163, 164, 166, 175], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\exceptions.py": {"executed_lines": [7, 8, 11, 18, 31, 32, 33, 35, 37, 38, 39, 40, 41, 42, 45, 56, 71, 74, 75, 76, 77, 78, 80, 82, 84, 86, 87, 88, 91, 92, 93, 94, 95, 96, 99, 110, 125, 128, 129, 130, 131, 132, 136, 140, 142, 144, 145, 146, 149, 150, 151, 152, 153, 154, 157, 168, 183, 186, 187, 188, 191, 192, 193, 194, 196, 198, 200, 202, 203, 204, 207, 208, 209, 210, 211, 212], "summary": {"covered_lines": 76, "num_statements": 76, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"RefactronError.__init__": {"executed_lines": [31, 32, 33], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "RefactronError.__str__": {"executed_lines": [37, 38, 39, 40, 41, 42], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "AnalysisError.__init__": {"executed_lines": [71, 74, 75, 76, 77, 78, 80, 82], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "AnalysisError.__str__": {"executed_lines": [86, 87, 88, 91, 92, 93, 94, 95, 96], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 84}, "RefactoringError.__init__": {"executed_lines": [125, 128, 129, 130, 131, 132, 136, 140], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 110}, "RefactoringError.__str__": {"executed_lines": [144, 145, 146, 149, 150, 151, 152, 153, 154], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 142}, "ConfigError.__init__": {"executed_lines": [183, 186, 187, 188, 191, 192, 193, 194, 196, 198], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 168}, "ConfigError.__str__": {"executed_lines": [202, 203, 204, 207, 208, 209, 210, 211, 212], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 200}, "": {"executed_lines": [7, 8, 11, 18, 35, 45, 56, 84, 99, 110, 142, 157, 168, 200], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactronError": {"executed_lines": [31, 32, 33, 37, 38, 39, 40, 41, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "AnalysisError": {"executed_lines": [71, 74, 75, 76, 77, 78, 80, 82, 86, 87, 88, 91, 92, 93, 94, 95, 96], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "RefactoringError": {"executed_lines": [125, 128, 129, 130, 131, 132, 136, 140, 144, 145, 146, 149, 150, 151, 152, 153, 154], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 99}, "ConfigError": {"executed_lines": [183, 186, 187, 188, 191, 192, 193, 194, 196, 198, 202, 203, 204, 207, 208, 209, 210, 211, 212], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 157}, "": {"executed_lines": [7, 8, 11, 18, 35, 45, 56, 84, 99, 110, 142, 157, 168, 200], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\false_positive_tracker.py": {"executed_lines": [3, 4, 5, 8, 11, 18, 19, 20, 22, 24, 25, 26, 27, 28, 34, 36, 38, 39, 40, 41, 43, 51, 52, 53, 54, 56, 67, 69, 79, 81, 88, 89, 90, 92, 94, 95], "summary": {"covered_lines": 36, "num_statements": 38, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [31, 32], "excluded_lines": [], "functions": {"FalsePositiveTracker.__init__": {"executed_lines": [18, 19, 20], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "FalsePositiveTracker.load": {"executed_lines": [24, 25, 26, 27, 28, 34], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [31, 32], "excluded_lines": [], "start_line": 22}, "FalsePositiveTracker.save": {"executed_lines": [38, 39, 40, 41], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "FalsePositiveTracker.mark_false_positive": {"executed_lines": [51, 52, 53, 54], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "FalsePositiveTracker.is_false_positive": {"executed_lines": [67], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "FalsePositiveTracker.get_false_positive_patterns": {"executed_lines": [79], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 69}, "FalsePositiveTracker.clear_rule": {"executed_lines": [88, 89, 90], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 81}, "FalsePositiveTracker.clear_all": {"executed_lines": [94, 95], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 92}, "": {"executed_lines": [3, 4, 5, 8, 11, 22, 36, 43, 56, 69, 81, 92], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FalsePositiveTracker": {"executed_lines": [18, 19, 20, 24, 25, 26, 27, 28, 34, 38, 39, 40, 41, 51, 52, 53, 54, 67, 79, 88, 89, 90, 94, 95], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [31, 32], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [3, 4, 5, 8, 11, 22, 36, 43, 56, 69, 81, 92], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\incremental.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 20, 32, 34, 35, 37, 39, 42, 45, 47, 48, 50, 52, 53, 54, 55, 56, 61, 63, 66, 68, 70, 71, 72, 76, 86, 89, 92, 95, 96, 97, 98, 104, 105, 106, 108, 109, 110, 113, 114, 115, 117, 119, 129, 132, 134, 135, 136, 138, 139, 141, 143, 150, 153, 156, 158, 159, 160, 161, 168, 184, 206, 208, 210, 212, 213, 215, 216, 217, 218, 222, 229], "summary": {"covered_lines": 78, "num_statements": 112, "percent_covered": 69.64285714285714, "percent_covered_display": "70", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 69.64285714285714, "percent_statements_covered_display": "70"}, "missing_lines": [57, 58, 59, 64, 73, 74, 87, 90, 99, 100, 101, 130, 151, 154, 165, 166, 175, 176, 178, 179, 180, 181, 182, 191, 192, 194, 196, 198, 200, 201, 203, 204, 219, 220], "excluded_lines": [], "functions": {"IncrementalAnalysisTracker.__init__": {"executed_lines": [32, 34, 35, 37, 39, 42, 45, 47, 48], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "IncrementalAnalysisTracker._load_state": {"executed_lines": [52, 53, 54, 55, 56], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [57, 58, 59], "excluded_lines": [], "start_line": 50}, "IncrementalAnalysisTracker._save_state": {"executed_lines": [63, 66, 68, 70, 71, 72], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [64, 73, 74], "excluded_lines": [], "start_line": 61}, "IncrementalAnalysisTracker.has_file_changed": {"executed_lines": [86, 89, 92, 95, 96, 97, 98, 104, 105, 106, 108, 109, 110, 113, 114, 115, 117], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 77.27272727272727, "percent_statements_covered_display": "77"}, "missing_lines": [87, 90, 99, 100, 101], "excluded_lines": [], "start_line": 76}, "IncrementalAnalysisTracker.get_changed_files": {"executed_lines": [129, 132, 134, 135, 136, 138, 139, 141], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [130], "excluded_lines": [], "start_line": 119}, "IncrementalAnalysisTracker.update_file_state": {"executed_lines": [150, 153, 156, 158, 159, 160, 161], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 63.63636363636363, "percent_statements_covered_display": "64"}, "missing_lines": [151, 154, 165, 166], "excluded_lines": [], "start_line": 143}, "IncrementalAnalysisTracker.remove_file_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [175, 176, 178, 179, 180, 181, 182], "excluded_lines": [], "start_line": 168}, "IncrementalAnalysisTracker.cleanup_missing_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [191, 192, 194, 196, 198, 200, 201, 203, 204], "excluded_lines": [], "start_line": 184}, "IncrementalAnalysisTracker.save": {"executed_lines": [208], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 206}, "IncrementalAnalysisTracker.clear": {"executed_lines": [212, 213, 215, 216, 217, 218], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [219, 220], "excluded_lines": [], "start_line": 210}, "IncrementalAnalysisTracker.get_stats": {"executed_lines": [229], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 222}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 20, 50, 61, 76, 119, 143, 168, 184, 206, 210, 222], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IncrementalAnalysisTracker": {"executed_lines": [32, 34, 35, 37, 39, 42, 45, 47, 48, 52, 53, 54, 55, 56, 63, 66, 68, 70, 71, 72, 86, 89, 92, 95, 96, 97, 98, 104, 105, 106, 108, 109, 110, 113, 114, 115, 117, 129, 132, 134, 135, 136, 138, 139, 141, 150, 153, 156, 158, 159, 160, 161, 208, 212, 213, 215, 216, 217, 218, 229], "summary": {"covered_lines": 60, "num_statements": 94, "percent_covered": 63.829787234042556, "percent_covered_display": "64", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 63.829787234042556, "percent_statements_covered_display": "64"}, "missing_lines": [57, 58, 59, 64, 73, 74, 87, 90, 99, 100, 101, 130, 151, 154, 165, 166, 175, 176, 178, 179, 180, 181, 182, 191, 192, 194, 196, 198, 200, 201, 203, 204, 219, 220], "excluded_lines": [], "start_line": 12}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 20, 50, 61, 76, 119, 143, 168, 184, 206, 210, 222], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\logging_config.py": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 16, 19, 28, 39, 40, 47, 48, 50, 53, 56, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 93, 95, 96, 98, 101, 102, 105, 106, 108, 114, 115, 116, 117, 118, 121, 123, 125, 130, 131, 132, 134, 140, 142, 170, 193], "summary": {"covered_lines": 53, "num_statements": 59, "percent_covered": 89.83050847457628, "percent_covered_display": "90", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 89.83050847457628, "percent_statements_covered_display": "90"}, "missing_lines": [152, 153, 155, 164, 165, 167], "excluded_lines": [], "functions": {"JSONFormatter.format": {"executed_lines": [28, 39, 40, 47, 48, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "StructuredLogger.__init__": {"executed_lines": [79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 93, 95, 96], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "StructuredLogger._setup_logger": {"executed_lines": [101, 102, 105, 106, 108, 114, 115, 116, 117, 118, 121, 123, 125, 130, 131, 132], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 98}, "StructuredLogger.get_logger": {"executed_lines": [140], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "StructuredLogger.log_with_context": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [152, 153, 155, 164, 165, 167], "excluded_lines": [], "start_line": 142}, "setup_logging": {"executed_lines": [193], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 170}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 16, 19, 53, 56, 98, 134, 142, 170], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"JSONFormatter": {"executed_lines": [28, 39, 40, 47, 48, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "StructuredLogger": {"executed_lines": [79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 93, 95, 96, 101, 102, 105, 106, 108, 114, 115, 116, 117, 118, 121, 123, 125, 130, 131, 132, 140], "summary": {"covered_lines": 31, "num_statements": 37, "percent_covered": 83.78378378378379, "percent_covered_display": "84", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 83.78378378378379, "percent_statements_covered_display": "84"}, "missing_lines": [152, 153, 155, 164, 165, 167], "excluded_lines": [], "start_line": 53}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 16, 19, 53, 56, 98, 134, 142, 170, 193], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\memory_profiler.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 15, 23, 25, 33, 40, 54, 55, 56, 57, 60, 61, 62, 64, 65, 66, 67, 71, 78, 79, 80, 81, 83, 100, 110, 113, 114, 115, 116, 118, 129, 133, 134, 136, 142, 157, 161, 164, 167, 170, 173, 176, 178, 179, 181, 183, 205, 212, 215, 218, 223, 224, 226, 228, 237, 244, 246, 256, 258, 264, 283], "summary": {"covered_lines": 68, "num_statements": 101, "percent_covered": 67.32673267326733, "percent_covered_display": "67", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 67.32673267326733, "percent_statements_covered_display": "67"}, "missing_lines": [68, 69, 89, 90, 93, 111, 130, 131, 158, 159, 197, 199, 200, 201, 203, 213, 230, 231, 233, 234, 235, 275, 276, 277, 278, 279, 280, 293, 294, 295, 296, 297, 298], "excluded_lines": [], "functions": {"MemorySnapshot.__str__": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "MemoryProfiler.__init__": {"executed_lines": [54, 55, 56, 57, 60, 61, 62, 64, 65, 66, 67], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [68, 69], "excluded_lines": [], "start_line": 40}, "MemoryProfiler.get_current_memory": {"executed_lines": [78, 79, 80, 81, 83], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [89, 90, 93], "excluded_lines": [], "start_line": 71}, "MemoryProfiler.snapshot": {"executed_lines": [110, 113, 114, 115, 116], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [111], "excluded_lines": [], "start_line": 100}, "MemoryProfiler.compare": {"executed_lines": [129, 133, 134, 136], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [130, 131], "excluded_lines": [], "start_line": 118}, "MemoryProfiler.profile_function": {"executed_lines": [157, 161, 164, 167, 170, 173, 176, 178, 179, 181], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [158, 159], "excluded_lines": [], "start_line": 142}, "MemoryProfiler.optimize_for_large_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [197, 199, 200, 201, 203], "excluded_lines": [], "start_line": 183}, "MemoryProfiler.check_memory_pressure": {"executed_lines": [212, 215, 218, 223, 224, 226], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [213], "excluded_lines": [], "start_line": 205}, "MemoryProfiler.suggest_gc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [230, 231, 233, 234, 235], "excluded_lines": [], "start_line": 228}, "MemoryProfiler.get_stats": {"executed_lines": [244, 246], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 237}, "MemoryProfiler.clear_snapshots": {"executed_lines": [258], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 256}, "stream_large_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [275, 276, 277, 278, 279, 280], "excluded_lines": [], "start_line": 264}, "estimate_file_size_mb": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [293, 294, 295, 296, 297, 298], "excluded_lines": [], "start_line": 283}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 15, 23, 33, 40, 71, 100, 118, 142, 183, 205, 228, 237, 256, 264, 283], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"MemorySnapshot": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "MemoryProfiler": {"executed_lines": [54, 55, 56, 57, 60, 61, 62, 64, 65, 66, 67, 78, 79, 80, 81, 83, 110, 113, 114, 115, 116, 129, 133, 134, 136, 157, 161, 164, 167, 170, 173, 176, 178, 179, 181, 212, 215, 218, 223, 224, 226, 244, 246, 258], "summary": {"covered_lines": 44, "num_statements": 65, "percent_covered": 67.6923076923077, "percent_covered_display": "68", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 67.6923076923077, "percent_statements_covered_display": "68"}, "missing_lines": [68, 69, 89, 90, 93, 111, 130, 131, 158, 159, 197, 199, 200, 201, 203, 213, 230, 231, 233, 234, 235], "excluded_lines": [], "start_line": 33}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 15, 23, 33, 40, 71, 100, 118, 142, 183, 205, 228, 237, 256, 264, 283], "summary": {"covered_lines": 23, "num_statements": 35, "percent_covered": 65.71428571428571, "percent_covered_display": "66", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 65.71428571428571, "percent_statements_covered_display": "66"}, "missing_lines": [275, 276, 277, 278, 279, 280, 293, 294, 295, 296, 297, 298], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\metrics.py": {"executed_lines": [9, 10, 11, 12, 13, 14, 17, 18, 25, 26, 29, 30, 33, 34, 42, 45, 48, 51, 53, 56, 57, 58, 61, 62, 63, 66, 67, 68, 71, 72, 73, 74, 75, 77, 79, 80, 82, 84, 85, 87, 108, 109, 118, 120, 121, 122, 123, 126, 127, 129, 136, 137, 138, 140, 142, 143, 145, 147, 148, 150, 169, 170, 178, 180, 181, 182, 184, 186, 192, 193, 194, 195, 197, 198, 199, 203, 204, 205, 210, 221, 227, 228, 229, 230, 232, 233, 234, 238, 239, 240, 241, 244, 245, 246, 248, 258, 264, 270, 272, 273, 274, 275, 276, 277, 279, 280, 281, 282, 284, 285, 286, 287, 288, 292, 293, 296, 303, 304, 305, 306, 309, 311, 312, 313], "summary": {"covered_lines": 124, "num_statements": 124, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"MetricsCollector.__init__": {"executed_lines": [53, 56, 57, 58, 61, 62, 63, 66, 67, 68, 71, 72, 73, 74, 75], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 51}, "MetricsCollector.start_analysis": {"executed_lines": [79, 80], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 77}, "MetricsCollector.end_analysis": {"executed_lines": [84, 85], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 82}, "MetricsCollector.record_file_analysis": {"executed_lines": [108, 109, 118, 120, 121, 122, 123, 126, 127], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 87}, "MetricsCollector.record_analyzer_hit": {"executed_lines": [136, 137, 138], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 129}, "MetricsCollector.start_refactoring": {"executed_lines": [142, 143], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 140}, "MetricsCollector.end_refactoring": {"executed_lines": [147, 148], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "MetricsCollector.record_refactoring": {"executed_lines": [169, 170, 178, 180, 181, 182, 184], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 150}, "MetricsCollector.get_analysis_summary": {"executed_lines": [192, 193, 194, 195, 197, 198, 199, 203, 204, 205, 210], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 186}, "MetricsCollector.get_refactoring_summary": {"executed_lines": [227, 228, 229, 230, 232, 233, 234, 238, 239, 240, 241, 244, 245, 246, 248], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 221}, "MetricsCollector.get_combined_summary": {"executed_lines": [264], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 258}, "MetricsCollector.reset": {"executed_lines": [272, 273, 274, 275, 276, 277, 279, 280, 281, 282, 284, 285, 286, 287, 288], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 270}, "get_metrics_collector": {"executed_lines": [303, 304, 305, 306], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 296}, "reset_metrics_collector": {"executed_lines": [311, 312, 313], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 309}, "": {"executed_lines": [9, 10, 11, 12, 13, 14, 17, 18, 25, 26, 29, 30, 33, 34, 42, 45, 48, 51, 77, 82, 87, 129, 140, 145, 150, 186, 221, 258, 270, 292, 293, 296, 309], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FileMetric": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "RefactoringMetric": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 34}, "MetricsCollector": {"executed_lines": [53, 56, 57, 58, 61, 62, 63, 66, 67, 68, 71, 72, 73, 74, 75, 79, 80, 84, 85, 108, 109, 118, 120, 121, 122, 123, 126, 127, 136, 137, 138, 142, 143, 147, 148, 169, 170, 178, 180, 181, 182, 184, 192, 193, 194, 195, 197, 198, 199, 203, 204, 205, 210, 227, 228, 229, 230, 232, 233, 234, 238, 239, 240, 241, 244, 245, 246, 248, 264, 272, 273, 274, 275, 276, 277, 279, 280, 281, 282, 284, 285, 286, 287, 288], "summary": {"covered_lines": 84, "num_statements": 84, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 48}, "": {"executed_lines": [9, 10, 11, 12, 13, 14, 17, 18, 25, 26, 29, 30, 33, 34, 42, 45, 48, 51, 77, 82, 87, 129, 140, 145, 150, 186, 221, 258, 270, 292, 293, 296, 303, 304, 305, 306, 309, 311, 312, 313], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\models.py": {"executed_lines": [3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 57, 58, 69, 71, 72, 75, 76, 77, 79, 80, 81, 83, 84, 85, 88, 89, 99, 100, 101, 103], "summary": {"covered_lines": 54, "num_statements": 56, "percent_covered": 96.42857142857143, "percent_covered_display": "96", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.42857142857143, "percent_statements_covered_display": "96"}, "missing_lines": [73, 104], "excluded_lines": [], "functions": {"CodeIssue.__str__": {"executed_lines": [53, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 52}, "FileMetrics.total_lines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [73], "excluded_lines": [], "start_line": 72}, "FileMetrics.issue_count": {"executed_lines": [77], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 76}, "FileMetrics.critical_issues": {"executed_lines": [81], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 80}, "FileMetrics.error_issues": {"executed_lines": [85], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 84}, "RefactoringOperation.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [104], "excluded_lines": [], "start_line": 103}, "": {"executed_lines": [3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 44, 45, 46, 47, 48, 49, 50, 52, 57, 58, 69, 71, 72, 75, 76, 79, 80, 83, 84, 88, 89, 99, 100, 101, 103], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IssueLevel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "IssueCategory": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "CodeIssue": {"executed_lines": [53, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "FileMetrics": {"executed_lines": [77, 81, 85], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [73], "excluded_lines": [], "start_line": 58}, "RefactoringOperation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [104], "excluded_lines": [], "start_line": 89}, "": {"executed_lines": [3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 44, 45, 46, 47, 48, 49, 50, 52, 57, 58, 69, 71, 72, 75, 76, 79, 80, 83, 84, 88, 89, 99, 100, 101, 103], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\parallel.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 12, 15, 22, 37, 38, 40, 42, 44, 46, 49, 52, 58, 76, 78, 81, 84, 86, 93, 94, 96, 97, 98, 99, 101, 114, 117, 119, 126, 127, 128, 130, 132, 137, 138, 139, 141, 142, 143, 144, 145, 146, 159, 162, 164, 221, 228], "summary": {"covered_lines": 53, "num_statements": 92, "percent_covered": 57.608695652173914, "percent_covered_display": "58", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 57.608695652173914, "percent_statements_covered_display": "58"}, "missing_lines": [50, 82, 100, 102, 103, 104, 105, 115, 147, 148, 149, 150, 160, 177, 178, 179, 181, 182, 184, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 211, 212, 213, 214, 216, 217, 219], "excluded_lines": [], "functions": {"ParallelProcessor.__init__": {"executed_lines": [37, 38, 40, 42, 44, 46, 49, 52], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [50], "excluded_lines": [], "start_line": 22}, "ParallelProcessor.process_files": {"executed_lines": [76, 78, 81, 84], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [82], "excluded_lines": [], "start_line": 58}, "ParallelProcessor._process_sequential": {"executed_lines": [93, 94, 96, 97, 98, 99, 101, 114, 117], "summary": {"covered_lines": 9, "num_statements": 15, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [100, 102, 103, 104, 105, 115], "excluded_lines": [], "start_line": 86}, "ParallelProcessor._process_parallel_threads": {"executed_lines": [126, 127, 128, 130, 132, 137, 138, 139, 141, 142, 143, 144, 145, 146, 159, 162], "summary": {"covered_lines": 16, "num_statements": 21, "percent_covered": 76.19047619047619, "percent_covered_display": "76", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 76.19047619047619, "percent_statements_covered_display": "76"}, "missing_lines": [147, 148, 149, 150, 160], "excluded_lines": [], "start_line": 119}, "ParallelProcessor._process_parallel_processes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 26, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 26, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [177, 178, 179, 181, 182, 184, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 211, 212, 213, 214, 216, 217, 219], "excluded_lines": [], "start_line": 164}, "ParallelProcessor.get_config": {"executed_lines": [228], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 221}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 12, 15, 22, 58, 86, 119, 164, 221], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ParallelProcessor": {"executed_lines": [37, 38, 40, 42, 44, 46, 49, 52, 76, 78, 81, 84, 93, 94, 96, 97, 98, 99, 101, 114, 117, 126, 127, 128, 130, 132, 137, 138, 139, 141, 142, 143, 144, 145, 146, 159, 162, 228], "summary": {"covered_lines": 38, "num_statements": 77, "percent_covered": 49.35064935064935, "percent_covered_display": "49", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 49.35064935064935, "percent_statements_covered_display": "49"}, "missing_lines": [50, 82, 100, 102, 103, 104, 105, 115, 147, 148, 149, 150, 160, 177, 178, 179, 181, 182, 184, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 211, 212, 213, 214, 216, 217, 219], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 12, 15, 22, 58, 86, 119, 164, 221], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\prometheus_metrics.py": {"executed_lines": [7, 8, 9, 11, 14, 17, 19, 21, 27, 28, 31, 34, 35, 36, 37, 39, 42, 43, 44, 46, 47, 48, 49, 51, 54, 55, 56, 58, 62, 63, 67, 69, 70, 71, 72, 75, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 97, 99, 102, 103, 107, 109, 112, 113, 116, 118, 121, 122, 125, 127, 131, 132, 136, 138, 141, 142, 145, 148, 151, 152, 153, 154, 155, 156, 157, 160, 163, 164, 165, 166, 169, 170, 171, 173, 176, 179, 181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 197, 198, 199, 201, 203, 206, 209, 216, 217, 218, 219, 221, 223, 224, 226, 227, 228, 230, 232, 233, 234, 235, 237, 243, 247, 248, 251, 262, 263, 264, 265, 266, 269, 272, 273, 274, 275, 278, 284], "summary": {"covered_lines": 143, "num_statements": 143, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"PrometheusMetrics.__init__": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "PrometheusMetrics.format_metrics": {"executed_lines": [27, 28, 31, 34, 35, 36, 37, 39, 42, 43, 44, 46, 47, 48, 49, 51, 54, 55, 56, 58, 62, 63, 67, 69, 70, 71, 72, 75, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 97, 99, 102, 103, 107, 109, 112, 113, 116, 118, 121, 122, 125, 127, 131, 132, 136, 138, 141, 142, 145, 148, 151, 152, 153, 154, 155, 156, 157, 160, 163, 164, 165, 166, 169, 170, 171, 173], "summary": {"covered_lines": 81, "num_statements": 81, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 21}, "MetricsHTTPHandler.do_GET": {"executed_lines": [181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 197, 198, 199], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 179}, "MetricsHTTPHandler.log_message": {"executed_lines": [203], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 201}, "PrometheusMetricsServer.__init__": {"executed_lines": [216, 217, 218, 219], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 209}, "PrometheusMetricsServer.start": {"executed_lines": [223, 224, 226, 227, 228], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 221}, "PrometheusMetricsServer.stop": {"executed_lines": [232, 233, 234, 235], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 230}, "PrometheusMetricsServer.is_running": {"executed_lines": [243], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 237}, "start_metrics_server": {"executed_lines": [262, 263, 264, 265, 266], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 251}, "stop_metrics_server": {"executed_lines": [272, 273, 274, 275], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 269}, "get_metrics_server": {"executed_lines": [284], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 278}, "": {"executed_lines": [7, 8, 9, 11, 14, 17, 21, 176, 179, 201, 206, 209, 221, 230, 237, 247, 248, 251, 269, 278], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PrometheusMetrics": {"executed_lines": [19, 27, 28, 31, 34, 35, 36, 37, 39, 42, 43, 44, 46, 47, 48, 49, 51, 54, 55, 56, 58, 62, 63, 67, 69, 70, 71, 72, 75, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 97, 99, 102, 103, 107, 109, 112, 113, 116, 118, 121, 122, 125, 127, 131, 132, 136, 138, 141, 142, 145, 148, 151, 152, 153, 154, 155, 156, 157, 160, 163, 164, 165, 166, 169, 170, 171, 173], "summary": {"covered_lines": 82, "num_statements": 82, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "MetricsHTTPHandler": {"executed_lines": [181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 197, 198, 199, 203], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 176}, "PrometheusMetricsServer": {"executed_lines": [216, 217, 218, 219, 223, 224, 226, 227, 228, 232, 233, 234, 235, 243], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 206}, "": {"executed_lines": [7, 8, 9, 11, 14, 17, 21, 176, 179, 201, 206, 209, 221, 230, 237, 247, 248, 251, 262, 263, 264, 265, 266, 269, 272, 273, 274, 275, 278, 284], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\refactor_result.py": {"executed_lines": [3, 4, 5, 7, 10, 11, 14, 15, 16, 18, 19, 23, 24, 28, 29, 33, 39, 49, 53, 57, 96, 135], "summary": {"covered_lines": 22, "num_statements": 91, "percent_covered": 24.175824175824175, "percent_covered_display": "24", "missing_lines": 69, "excluded_lines": 0, "percent_statements_covered": 24.175824175824175, "percent_statements_covered_display": "24"}, "missing_lines": [21, 26, 31, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 51, 55, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 93, 94, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 117, 118, 119, 120, 124, 126, 127, 129, 130, 132, 133, 137], "excluded_lines": [], "functions": {"RefactorResult.total_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [21], "excluded_lines": [], "start_line": 19}, "RefactorResult.high_risk_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [26], "excluded_lines": [], "start_line": 24}, "RefactorResult.safe_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31], "excluded_lines": [], "start_line": 29}, "RefactorResult.top_ranked_operations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35, 36, 37], "excluded_lines": [], "start_line": 33}, "RefactorResult.get_ranking_score": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41, 42, 43, 44, 45, 46, 47], "excluded_lines": [], "start_line": 39}, "RefactorResult.operations_by_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [51], "excluded_lines": [], "start_line": 49}, "RefactorResult.operations_by_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [55], "excluded_lines": [], "start_line": 53}, "RefactorResult.show_diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 93, 94], "excluded_lines": [], "start_line": 57}, "RefactorResult.apply": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 117, 118, 119, 120, 124, 126, 127, 129, 130, 132, 133], "excluded_lines": [], "start_line": 96}, "RefactorResult.summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [137], "excluded_lines": [], "start_line": 135}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 14, 15, 16, 18, 19, 23, 24, 28, 29, 33, 39, 49, 53, 57, 96, 135], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactorResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 69, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 69, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [21, 26, 31, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 51, 55, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 93, 94, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 117, 118, 119, 120, 124, 126, 127, 129, 130, 132, 133, 137], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 10, 11, 14, 15, 16, 18, 19, 23, 24, 28, 29, 33, 39, 49, 53, 57, 96, 135], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\refactron.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 42, 52, 59, 60, 61, 64, 75, 76, 81, 84, 87, 101, 108, 113, 119, 126, 127, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 141, 144, 145, 151, 152, 154, 160, 173, 175, 176, 178, 180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, 196, 198, 199, 201, 203, 204, 206, 207, 209, 210, 212, 213, 215, 216, 218, 234, 235, 238, 241, 243, 246, 247, 249, 252, 253, 254, 255, 257, 260, 261, 266, 269, 270, 273, 274, 276, 277, 278, 279, 285, 297, 302, 303, 304, 307, 308, 309, 310, 311, 314, 315, 316, 317, 318, 339, 340, 343, 344, 347, 358, 364, 366, 379, 381, 382, 383, 384, 386, 387, 388, 397, 420, 421, 422, 423, 424, 426, 443, 446, 447, 448, 449, 450, 454, 455, 456, 457, 473, 474, 475, 484, 486, 508, 510, 513, 514, 516, 518, 520, 521, 522, 523, 524, 526, 533, 534, 536, 537, 538, 539, 544, 549, 552, 553, 559, 561, 578, 579, 580, 581, 582, 592, 595, 596, 599, 600, 603, 604, 605, 607, 609, 613, 622, 624, 626, 628, 629, 632, 636, 637, 638, 639, 640, 642, 644, 646, 648, 650, 651, 654, 656, 663, 670, 689, 694, 696, 697, 700, 701, 702, 703, 706, 707, 708, 709, 710, 714, 723, 724, 733, 745, 746, 749, 750, 751, 752, 753, 764, 779, 782, 791, 792, 793, 794, 795, 797, 801, 803, 804, 805, 806, 807], "summary": {"covered_lines": 275, "num_statements": 342, "percent_covered": 80.4093567251462, "percent_covered_display": "80", "missing_lines": 67, "excluded_lines": 0, "percent_statements_covered": 80.4093567251462, "percent_statements_covered_display": "80"}, "missing_lines": [78, 82, 88, 89, 93, 97, 98, 161, 162, 167, 168, 169, 170, 171, 239, 244, 286, 287, 288, 294, 326, 327, 328, 329, 348, 349, 350, 359, 360, 361, 362, 401, 403, 404, 405, 414, 436, 437, 460, 463, 464, 466, 511, 528, 530, 540, 541, 555, 557, 586, 587, 597, 610, 611, 614, 616, 633, 634, 652, 725, 726, 757, 759, 761, 762, 796, 799], "excluded_lines": [], "functions": {"Refactron.__init__": {"executed_lines": [59, 60, 61, 64, 75, 76, 81, 84, 87, 101, 108, 113, 119, 126, 127, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 141, 144, 145, 151, 152, 154, 160, 173, 175, 176], "summary": {"covered_lines": 35, "num_statements": 49, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [78, 82, 88, 89, 93, 97, 98, 161, 162, 167, 168, 169, 170, 171], "excluded_lines": [], "start_line": 52}, "Refactron._initialize_analyzers": {"executed_lines": [180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, 196, 198, 199], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 178}, "Refactron._initialize_refactorers": {"executed_lines": [203, 204, 206, 207, 209, 210, 212, 213, 215, 216], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 201}, "Refactron.analyze": {"executed_lines": [234, 235, 238, 241, 243, 246, 247, 249, 252, 253, 254, 255, 257, 260, 261, 266, 297, 302, 303, 304, 307, 308, 309, 310, 311, 314, 315, 316, 317, 318, 339, 340, 343, 344, 347, 358, 364], "summary": {"covered_lines": 37, "num_statements": 50, "percent_covered": 74.0, "percent_covered_display": "74", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 74.0, "percent_statements_covered_display": "74"}, "missing_lines": [239, 244, 326, 327, 328, 329, 348, 349, 350, 359, 360, 361, 362], "excluded_lines": [], "start_line": 218}, "Refactron.analyze.process_file_wrapper": {"executed_lines": [269, 270, 273, 274, 276, 277, 278, 279, 285], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 69.23076923076923, "percent_statements_covered_display": "69"}, "missing_lines": [286, 287, 288, 294], "excluded_lines": [], "start_line": 266}, "Refactron._analyze_file": {"executed_lines": [379, 381, 382, 383, 384, 386, 387, 388, 397, 420, 421, 422, 423, 424, 426, 443, 446, 447, 448, 449, 450, 454, 455, 456, 457, 473, 474, 475, 484], "summary": {"covered_lines": 29, "num_statements": 40, "percent_covered": 72.5, "percent_covered_display": "72", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 72.5, "percent_statements_covered_display": "72"}, "missing_lines": [401, 403, 404, 405, 414, 436, 437, 460, 463, 464, 466], "excluded_lines": [], "start_line": 366}, "Refactron.refactor": {"executed_lines": [508, 510, 513, 514, 516, 518, 520, 521, 522, 523, 524, 526, 533, 534, 536, 537, 538, 539, 544, 549, 552, 553, 559], "summary": {"covered_lines": 23, "num_statements": 30, "percent_covered": 76.66666666666667, "percent_covered_display": "77", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 76.66666666666667, "percent_statements_covered_display": "77"}, "missing_lines": [511, 528, 530, 540, 541, 555, 557], "excluded_lines": [], "start_line": 486}, "Refactron._refactor_file": {"executed_lines": [578, 579, 580, 581, 582, 592, 595, 596, 599, 600, 603, 604, 605, 607, 609, 613, 622], "summary": {"covered_lines": 17, "num_statements": 24, "percent_covered": 70.83333333333333, "percent_covered_display": "71", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 70.83333333333333, "percent_statements_covered_display": "71"}, "missing_lines": [586, 587, 597, 610, 611, 614, 616], "excluded_lines": [], "start_line": 561}, "Refactron.get_python_files": {"executed_lines": [626, 628, 629, 632, 636, 637, 638, 639, 640, 642], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [633, 634], "excluded_lines": [], "start_line": 624}, "Refactron._should_exclude": {"executed_lines": [646, 648, 650, 651, 654], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [652], "excluded_lines": [], "start_line": 644}, "Refactron.get_performance_stats": {"executed_lines": [663], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 656}, "Refactron.record_feedback": {"executed_lines": [689, 694, 696, 697, 700, 701, 702, 703, 706, 707, 708, 709, 710, 714, 723, 724, 733, 745, 746, 749, 750, 751, 752, 753], "summary": {"covered_lines": 24, "num_statements": 30, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [725, 726, 757, 759, 761, 762], "excluded_lines": [], "start_line": 670}, "Refactron.detect_project_root": {"executed_lines": [779, 782, 791, 792, 793, 794, 795, 797], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [796, 799], "excluded_lines": [], "start_line": 764}, "Refactron.clear_caches": {"executed_lines": [803, 804, 805, 806, 807], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 801}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 42, 52, 178, 201, 218, 366, 486, 561, 624, 644, 656, 670, 764, 801], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"Refactron": {"executed_lines": [59, 60, 61, 64, 75, 76, 81, 84, 87, 101, 108, 113, 119, 126, 127, 128, 129, 130, 132, 133, 135, 136, 137, 139, 140, 141, 144, 145, 151, 152, 154, 160, 173, 175, 176, 180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, 196, 198, 199, 203, 204, 206, 207, 209, 210, 212, 213, 215, 216, 234, 235, 238, 241, 243, 246, 247, 249, 252, 253, 254, 255, 257, 260, 261, 266, 269, 270, 273, 274, 276, 277, 278, 279, 285, 297, 302, 303, 304, 307, 308, 309, 310, 311, 314, 315, 316, 317, 318, 339, 340, 343, 344, 347, 358, 364, 379, 381, 382, 383, 384, 386, 387, 388, 397, 420, 421, 422, 423, 424, 426, 443, 446, 447, 448, 449, 450, 454, 455, 456, 457, 473, 474, 475, 484, 508, 510, 513, 514, 516, 518, 520, 521, 522, 523, 524, 526, 533, 534, 536, 537, 538, 539, 544, 549, 552, 553, 559, 578, 579, 580, 581, 582, 592, 595, 596, 599, 600, 603, 604, 605, 607, 609, 613, 622, 626, 628, 629, 632, 636, 637, 638, 639, 640, 642, 646, 648, 650, 651, 654, 663, 689, 694, 696, 697, 700, 701, 702, 703, 706, 707, 708, 709, 710, 714, 723, 724, 733, 745, 746, 749, 750, 751, 752, 753, 779, 782, 791, 792, 793, 794, 795, 797, 803, 804, 805, 806, 807], "summary": {"covered_lines": 227, "num_statements": 294, "percent_covered": 77.21088435374149, "percent_covered_display": "77", "missing_lines": 67, "excluded_lines": 0, "percent_statements_covered": 77.21088435374149, "percent_statements_covered_display": "77"}, "missing_lines": [78, 82, 88, 89, 93, 97, 98, 161, 162, 167, 168, 169, 170, 171, 239, 244, 286, 287, 288, 294, 326, 327, 328, 329, 348, 349, 350, 359, 360, 361, 362, 401, 403, 404, 405, 414, 436, 437, 460, 463, 464, 466, 511, 528, 530, 540, 541, 555, 557, 586, 587, 597, 610, 611, 614, 616, 633, 634, 652, 725, 726, 757, 759, 761, 762, 796, 799], "excluded_lines": [], "start_line": 42}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 42, 52, 178, 201, 218, 366, 486, 561, 624, 644, 656, 670, 764, 801], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\repositories.py": {"executed_lines": [7, 9, 10, 11, 12, 13, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 52], "summary": {"covered_lines": 23, "num_statements": 84, "percent_covered": 27.38095238095238, "percent_covered_display": "27", "missing_lines": 61, "excluded_lines": 0, "percent_statements_covered": 27.38095238095238, "percent_statements_covered_display": "27"}, "missing_lines": [37, 66, 67, 68, 70, 71, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 90, 91, 93, 96, 97, 100, 109, 110, 111, 112, 115, 116, 117, 118, 120, 123, 124, 129, 131, 133, 134, 136, 137, 138, 139, 140, 141, 143, 152, 153, 156, 157, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 176, 177], "excluded_lines": [], "functions": {"Repository.from_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [37], "excluded_lines": [], "start_line": 35}, "list_repositories": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 60, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [66, 67, 68, 70, 71, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 90, 91, 93, 96, 97, 100, 109, 110, 111, 112, 115, 116, 117, 118, 120, 123, 124, 129, 131, 133, 134, 136, 137, 138, 139, 140, 141, 143, 152, 153, 156, 157, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 176, 177], "excluded_lines": [], "start_line": 52}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 52], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"Repository": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [37], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 52], "summary": {"covered_lines": 23, "num_statements": 83, "percent_covered": 27.710843373493976, "percent_covered_display": "28", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 27.710843373493976, "percent_statements_covered_display": "28"}, "missing_lines": [66, 67, 68, 70, 71, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 90, 91, 93, 96, 97, 100, 109, 110, 111, 112, 115, 116, 117, 118, 120, 123, 124, 129, 131, 133, 134, 136, 137, 138, 139, 140, 141, 143, 152, 153, 156, 157, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 176, 177], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\telemetry.py": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 24, 27, 28, 31, 34, 47, 48, 51, 52, 53, 54, 56, 58, 59, 61, 69, 70, 72, 83, 84, 86, 89, 102, 107, 109, 124, 134, 149, 159, 172, 181, 190, 198, 200, 201, 203, 205, 208, 209, 210, 216, 219, 224, 230, 231, 232, 234, 243, 246, 252, 253, 254, 255, 257, 259, 261, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 278, 280, 281, 282, 283, 295, 301, 302, 304, 306, 307, 308, 310, 312, 313, 317, 320, 331, 333, 334, 336, 341, 344, 346, 347, 350, 353, 355, 356, 359], "summary": {"covered_lines": 108, "num_statements": 113, "percent_covered": 95.57522123893806, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 95.57522123893806, "percent_statements_covered_display": "96"}, "missing_lines": [220, 222, 291, 293, 303], "excluded_lines": [], "functions": {"TelemetryCollector.__init__": {"executed_lines": [47, 48, 51, 52, 53, 54, 56, 58, 59], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 34}, "TelemetryCollector._generate_anonymous_id": {"executed_lines": [69, 70], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "TelemetryCollector.record_event": {"executed_lines": [83, 84, 86, 89, 102, 107], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 72}, "TelemetryCollector.record_analysis_completed": {"executed_lines": [124], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 109}, "TelemetryCollector.record_refactoring_applied": {"executed_lines": [149], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "TelemetryCollector.record_error": {"executed_lines": [172], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 159}, "TelemetryCollector.record_feature_usage": {"executed_lines": [190], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 181}, "TelemetryCollector.flush": {"executed_lines": [200, 201, 203, 205, 208, 209, 210, 216, 219], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 81.81818181818181, "percent_statements_covered_display": "82"}, "missing_lines": [220, 222], "excluded_lines": [], "start_line": 198}, "TelemetryCollector.get_summary": {"executed_lines": [230, 231, 232, 234], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 224}, "TelemetryConfig.__init__": {"executed_lines": [252, 253, 254, 255, 257, 259], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 246}, "TelemetryConfig._load_config": {"executed_lines": [263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 261}, "TelemetryConfig.save_config": {"executed_lines": [280, 281, 282, 283], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [291, 293], "excluded_lines": [], "start_line": 278}, "TelemetryConfig.enable": {"executed_lines": [301, 302, 304, 306, 307, 308], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [303], "excluded_lines": [], "start_line": 295}, "TelemetryConfig.disable": {"executed_lines": [312, 313], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 310}, "get_telemetry_collector": {"executed_lines": [331, 333, 334, 336, 341], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 320}, "enable_telemetry": {"executed_lines": [346, 347, 350], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 344}, "disable_telemetry": {"executed_lines": [355, 356, 359], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 353}, "": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 24, 27, 28, 31, 34, 61, 72, 109, 134, 159, 181, 198, 224, 243, 246, 261, 278, 295, 310, 317, 320, 344, 353], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"TelemetryEvent": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "TelemetryCollector": {"executed_lines": [47, 48, 51, 52, 53, 54, 56, 58, 59, 69, 70, 83, 84, 86, 89, 102, 107, 124, 149, 172, 190, 200, 201, 203, 205, 208, 209, 210, 216, 219, 230, 231, 232, 234], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.44444444444444, "percent_statements_covered_display": "94"}, "missing_lines": [220, 222], "excluded_lines": [], "start_line": 31}, "TelemetryConfig": {"executed_lines": [252, 253, 254, 255, 257, 259, 263, 264, 265, 266, 267, 268, 269, 271, 272, 275, 276, 280, 281, 282, 283, 301, 302, 304, 306, 307, 308, 312, 313], "summary": {"covered_lines": 29, "num_statements": 32, "percent_covered": 90.625, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 90.625, "percent_statements_covered_display": "91"}, "missing_lines": [291, 293, 303], "excluded_lines": [], "start_line": 243}, "": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 24, 27, 28, 31, 34, 61, 72, 109, 134, 159, 181, 198, 224, 243, 246, 261, 278, 295, 310, 317, 320, 331, 333, 334, 336, 341, 344, 346, 347, 350, 353, 355, 356, 359], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\core\\workspace.py": {"executed_lines": [7, 9, 10, 11, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27, 37, 38, 49, 52, 61, 67, 80, 95, 105, 131, 149, 158, 174], "summary": {"covered_lines": 28, "num_statements": 111, "percent_covered": 25.225225225225227, "percent_covered_display": "25", "missing_lines": 83, "excluded_lines": 0, "percent_statements_covered": 25.225225225225227, "percent_statements_covered_display": "25"}, "missing_lines": [29, 40, 58, 59, 63, 64, 65, 73, 74, 75, 76, 77, 78, 86, 87, 90, 91, 92, 93, 101, 102, 103, 114, 117, 118, 119, 122, 123, 125, 126, 127, 129, 140, 141, 143, 144, 145, 147, 155, 156, 167, 168, 169, 170, 171, 172, 183, 184, 186, 188, 189, 190, 191, 192, 194, 197, 198, 199, 201, 202, 203, 206, 207, 208, 209, 216, 217, 218, 219, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238], "excluded_lines": [], "functions": {"WorkspaceMapping.to_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [29], "excluded_lines": [], "start_line": 27}, "WorkspaceMapping.from_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [40], "excluded_lines": [], "start_line": 38}, "WorkspaceManager.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [58, 59], "excluded_lines": [], "start_line": 52}, "WorkspaceManager._ensure_config_exists": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [63, 64, 65], "excluded_lines": [], "start_line": 61}, "WorkspaceManager._load_workspaces": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [73, 74, 75, 76, 77, 78], "excluded_lines": [], "start_line": 67}, "WorkspaceManager._save_workspaces": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [86, 87, 90, 91, 92, 93], "excluded_lines": [], "start_line": 80}, "WorkspaceManager.add_workspace": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [101, 102, 103], "excluded_lines": [], "start_line": 95}, "WorkspaceManager.get_workspace": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [114, 117, 118, 119, 122, 123, 125, 126, 127, 129], "excluded_lines": [], "start_line": 105}, "WorkspaceManager.get_workspace_by_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [140, 141, 143, 144, 145, 147], "excluded_lines": [], "start_line": 131}, "WorkspaceManager.list_workspaces": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [155, 156], "excluded_lines": [], "start_line": 149}, "WorkspaceManager.remove_workspace": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [167, 168, 169, 170, 171, 172], "excluded_lines": [], "start_line": 158}, "WorkspaceManager.detect_repository": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 37, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 37, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [183, 184, 186, 188, 189, 190, 191, 192, 194, 197, 198, 199, 201, 202, 203, 206, 207, 208, 209, 216, 217, 218, 219, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238], "excluded_lines": [], "start_line": 174}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27, 37, 38, 49, 52, 61, 67, 80, 95, 105, 131, 149, 158, 174], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"WorkspaceMapping": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [29, 40], "excluded_lines": [], "start_line": 18}, "WorkspaceManager": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 81, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 81, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [58, 59, 63, 64, 65, 73, 74, 75, 76, 77, 78, 86, 87, 90, 91, 92, 93, 101, 102, 103, 114, 117, 118, 119, 122, 123, 125, 126, 127, 129, 140, 141, 143, 144, 145, 147, 155, 156, 167, 168, 169, 170, 171, 172, 183, 184, 186, 188, 189, 190, 191, 192, 194, 197, 198, 199, 201, 202, 203, 206, 207, 208, 209, 216, 217, 218, 219, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238], "excluded_lines": [], "start_line": 49}, "": {"executed_lines": [7, 9, 10, 11, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27, 37, 38, 49, 52, 61, 67, 80, 95, 105, 131, 149, 158, 174], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\backend_client.py": {"executed_lines": [3, 5, 6, 8, 10, 13, 16, 32, 33, 34, 35, 38, 40, 58, 64, 65, 66, 70, 78, 79, 86, 87, 88, 94, 96, 97, 99, 101, 102, 106, 112, 113, 117], "summary": {"covered_lines": 33, "num_statements": 45, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 73.33333333333333, "percent_statements_covered_display": "73"}, "missing_lines": [67, 68, 89, 90, 91, 92, 93, 100, 103, 104, 118, 119], "excluded_lines": [], "functions": {"BackendLLMClient.__init__": {"executed_lines": [32, 33, 34, 35, 38], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "BackendLLMClient.generate": {"executed_lines": [58, 64, 65, 66, 70, 78, 79, 86, 87, 88, 94, 96, 97, 99, 101, 102], "summary": {"covered_lines": 16, "num_statements": 26, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 61.53846153846154, "percent_statements_covered_display": "62"}, "missing_lines": [67, 68, 89, 90, 91, 92, 93, 100, 103, 104], "excluded_lines": [], "start_line": 40}, "BackendLLMClient.check_health": {"executed_lines": [112, 113, 117], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [118, 119], "excluded_lines": [], "start_line": 106}, "": {"executed_lines": [3, 5, 6, 8, 10, 13, 16, 40, 106], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BackendLLMClient": {"executed_lines": [32, 33, 34, 35, 38, 58, 64, 65, 66, 70, 78, 79, 86, 87, 88, 94, 96, 97, 99, 101, 102, 112, 113, 117], "summary": {"covered_lines": 24, "num_statements": 36, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [67, 68, 89, 90, 91, 92, 93, 100, 103, 104, 118, 119], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [3, 5, 6, 8, 10, 13, 16, 40, 106], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\client.py": {"executed_lines": [3, 5, 6, 8, 9, 11, 16, 19, 34, 37, 38, 39, 44, 45, 46, 48, 50, 68, 70, 71, 73, 75, 82, 84, 90, 91, 92, 93, 94], "summary": {"covered_lines": 29, "num_statements": 32, "percent_covered": 90.625, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 90.625, "percent_statements_covered_display": "91"}, "missing_lines": [12, 13, 35], "excluded_lines": [], "functions": {"GroqClient.__init__": {"executed_lines": [34, 37, 38, 39, 44, 45, 46, 48], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [35], "excluded_lines": [], "start_line": 19}, "GroqClient.generate": {"executed_lines": [68, 70, 71, 73, 75, 82], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 50}, "GroqClient.check_health": {"executed_lines": [90, 91, 92, 93, 94], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 84}, "": {"executed_lines": [3, 5, 6, 8, 9, 11, 16, 19, 50, 84], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [12, 13], "excluded_lines": [], "start_line": 1}}, "classes": {"GroqClient": {"executed_lines": [34, 37, 38, 39, 44, 45, 46, 48, 68, 70, 71, 73, 75, 82, 90, 91, 92, 93, 94], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.0, "percent_statements_covered_display": "95"}, "missing_lines": [35], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [3, 5, 6, 8, 9, 11, 16, 19, 50, 84], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [12, 13], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\models.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 18, 19, 20, 23, 24, 30, 31, 34, 35, 51, 54, 55, 58, 59, 61, 62, 64], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"RefactoringSuggestion.__post_init__": {"executed_lines": [62, 64], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 61}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 18, 19, 20, 23, 24, 30, 31, 34, 35, 51, 54, 55, 58, 59, 61], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SuggestionStatus": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "SafetyCheckResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 24}, "RefactoringSuggestion": {"executed_lines": [62, 64], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 18, 19, 20, 23, 24, 30, 31, 34, 35, 51, 54, 55, 58, 59, 61], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\orchestrator.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 21, 24, 30, 32, 33, 44, 46, 57, 58, 59, 61, 64, 68, 71, 81, 82, 83, 89, 92, 95, 96, 98, 106, 110, 122, 123, 124, 126, 139, 140, 141, 144, 146, 147, 148, 150, 156, 158, 249, 267, 269, 272, 273, 274, 275, 276, 279, 287], "summary": {"covered_lines": 62, "num_statements": 121, "percent_covered": 51.239669421487605, "percent_covered_display": "51", "missing_lines": 59, "excluded_lines": 0, "percent_statements_covered": 51.239669421487605, "percent_statements_covered_display": "51"}, "missing_lines": [36, 37, 38, 39, 40, 42, 65, 66, 99, 100, 107, 108, 152, 153, 154, 171, 180, 181, 182, 184, 185, 186, 187, 189, 192, 195, 196, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 221, 234, 235, 236, 261, 262, 263, 264, 265, 278, 280, 281, 282, 283, 285], "excluded_lines": [], "functions": {"LLMOrchestrator.__init__": {"executed_lines": [30, 32, 33, 44], "summary": {"covered_lines": 4, "num_statements": 10, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 40.0, "percent_statements_covered_display": "40"}, "missing_lines": [36, 37, 38, 39, 40, 42], "excluded_lines": [], "start_line": 24}, "LLMOrchestrator.generate_suggestion": {"executed_lines": [57, 58, 59, 61, 64, 68, 71, 81, 82, 83, 89, 92, 95, 96, 98, 106, 110, 122, 123, 124, 126, 139, 140, 141, 144, 146, 147, 148, 150, 156], "summary": {"covered_lines": 30, "num_statements": 39, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 76.92307692307692, "percent_statements_covered_display": "77"}, "missing_lines": [65, 66, 99, 100, 107, 108, 152, 153, 154], "excluded_lines": [], "start_line": 46}, "LLMOrchestrator.generate_documentation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [171, 180, 181, 182, 184, 185, 186, 187, 189, 192, 195, 196, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 221, 234, 235, 236], "excluded_lines": [], "start_line": 158}, "LLMOrchestrator.evaluate_issues_batch": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [261, 262, 263, 264, 265], "excluded_lines": [], "start_line": 249}, "LLMOrchestrator._clean_json_response": {"executed_lines": [269, 272, 273, 274, 275, 276, 279, 287], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [278, 280, 281, 282, 283, 285], "excluded_lines": [], "start_line": 267}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 21, 24, 46, 158, 249, 267], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"LLMOrchestrator": {"executed_lines": [30, 32, 33, 44, 57, 58, 59, 61, 64, 68, 71, 81, 82, 83, 89, 92, 95, 96, 98, 106, 110, 122, 123, 124, 126, 139, 140, 141, 144, 146, 147, 148, 150, 156, 269, 272, 273, 274, 275, 276, 279, 287], "summary": {"covered_lines": 42, "num_statements": 101, "percent_covered": 41.584158415841586, "percent_covered_display": "42", "missing_lines": 59, "excluded_lines": 0, "percent_statements_covered": 41.584158415841586, "percent_statements_covered_display": "42"}, "missing_lines": [36, 37, 38, 39, 40, 42, 65, 66, 99, 100, 107, 108, 152, 153, 154, 171, 180, 181, 182, 184, 185, 186, 187, 189, 192, 195, 196, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 221, 234, 235, 236, 261, 262, 263, 264, 265, 278, 280, 281, 282, 283, 285], "excluded_lines": [], "start_line": 21}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 21, 24, 46, 158, 249, 267], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\prompts.py": {"executed_lines": [3, 22, 42, 64], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 22, 42, 64], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 22, 42, 64], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\llm\\safety.py": {"executed_lines": [3, 4, 6, 9, 12, 13, 15, 24, 25, 26, 29, 30, 31, 38, 45, 46, 51, 54, 59, 67, 69, 72, 83, 84, 87, 89, 91, 93, 94, 95, 96, 97, 98, 102, 107, 109, 110, 113], "summary": {"covered_lines": 38, "num_statements": 57, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [32, 33, 34, 35, 39, 42, 47, 48, 55, 56, 57, 85, 99, 100, 101, 103, 104, 105, 106], "excluded_lines": [], "functions": {"SafetyGate.__init__": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "SafetyGate.validate": {"executed_lines": [24, 25, 26, 29, 30, 31, 38, 45, 46, 51, 54, 59], "summary": {"covered_lines": 12, "num_statements": 23, "percent_covered": 52.17391304347826, "percent_covered_display": "52", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 52.17391304347826, "percent_statements_covered_display": "52"}, "missing_lines": [32, 33, 34, 35, 39, 42, 47, 48, 55, 56, 57], "excluded_lines": [], "start_line": 15}, "SafetyGate._assess_risk": {"executed_lines": [69, 72, 83, 84, 87], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [85], "excluded_lines": [], "start_line": 67}, "SafetyGate._check_dangerous_imports": {"executed_lines": [91, 93, 109, 110, 113], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 89}, "SafetyGate._check_dangerous_imports.get_imports": {"executed_lines": [94, 95, 96, 97, 98, 102, 107], "summary": {"covered_lines": 7, "num_statements": 14, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [99, 100, 101, 103, 104, 105, 106], "excluded_lines": [], "start_line": 93}, "": {"executed_lines": [3, 4, 6, 9, 12, 15, 67, 89], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SafetyGate": {"executed_lines": [13, 24, 25, 26, 29, 30, 31, 38, 45, 46, 51, 54, 59, 69, 72, 83, 84, 87, 91, 93, 94, 95, 96, 97, 98, 102, 107, 109, 110, 113], "summary": {"covered_lines": 30, "num_statements": 49, "percent_covered": 61.224489795918366, "percent_covered_display": "61", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 61.224489795918366, "percent_statements_covered_display": "61"}, "missing_lines": [32, 33, 34, 35, 39, 42, 47, 48, 55, 56, 57, 85, 99, 100, 101, 103, 104, 105, 106], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [3, 4, 6, 9, 12, 15, 67, 89], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\multifile\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\__init__.py": {"executed_lines": [3, 4, 5, 6, 7, 13, 14, 15, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 13, 14, 15, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 5, 6, 7, 13, 14, 15, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\fingerprint.py": {"executed_lines": [3, 4, 5, 7, 10, 13, 15, 17, 27, 32, 33, 34, 35, 37, 51, 52, 53, 55, 58, 59, 61, 63, 75, 76, 77, 79, 81, 93, 94, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 117, 118, 119, 124, 125, 128, 129, 130, 133, 135, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 178, 180, 182, 188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 212, 213], "summary": {"covered_lines": 98, "num_statements": 110, "percent_covered": 89.0909090909091, "percent_covered_display": "89", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 89.0909090909091, "percent_statements_covered_display": "89"}, "missing_lines": [28, 121, 131, 164, 166, 197, 207, 208, 209, 217, 219, 221], "excluded_lines": [], "functions": {"PatternFingerprinter.__init__": {"executed_lines": [15], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 13}, "PatternFingerprinter.fingerprint_code": {"executed_lines": [27, 32, 33, 34, 35], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [28], "excluded_lines": [], "start_line": 17}, "PatternFingerprinter.fingerprint_issue_context": {"executed_lines": [51, 52, 53, 55, 58, 59, 61], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 37}, "PatternFingerprinter.fingerprint_refactoring": {"executed_lines": [75, 76, 77, 79], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 63}, "PatternFingerprinter._normalize_code": {"executed_lines": [93, 94, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 117, 118, 119, 124, 125, 128, 129, 130, 133], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [121, 131], "excluded_lines": [], "start_line": 81}, "PatternFingerprinter._extract_ast_pattern": {"executed_lines": [145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 178, 180], "summary": {"covered_lines": 28, "num_statements": 30, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.33333333333333, "percent_statements_covered_display": "93"}, "missing_lines": [164, 166], "excluded_lines": [], "start_line": 135}, "PatternFingerprinter._anonymize_code": {"executed_lines": [188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 212, 213], "summary": {"covered_lines": 17, "num_statements": 24, "percent_covered": 70.83333333333333, "percent_covered_display": "71", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 70.83333333333333, "percent_statements_covered_display": "71"}, "missing_lines": [197, 207, 208, 209, 217, 219, 221], "excluded_lines": [], "start_line": 182}, "": {"executed_lines": [3, 4, 5, 7, 10, 13, 17, 37, 63, 81, 135, 182], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternFingerprinter": {"executed_lines": [15, 27, 32, 33, 34, 35, 51, 52, 53, 55, 58, 59, 61, 75, 76, 77, 79, 93, 94, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 117, 118, 119, 124, 125, 128, 129, 130, 133, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 178, 180, 188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 212, 213], "summary": {"covered_lines": 86, "num_statements": 98, "percent_covered": 87.75510204081633, "percent_covered_display": "88", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 87.75510204081633, "percent_statements_covered_display": "88"}, "missing_lines": [28, 121, 131, 164, 166, 197, 207, 208, 209, 217, 219, 221], "excluded_lines": [], "start_line": 10}, "": {"executed_lines": [3, 4, 5, 7, 10, 13, 17, 37, 63, 81, 135, 182], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\learner.py": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 12, 15, 18, 29, 30, 31, 32, 34, 35, 37, 54, 55, 56, 57, 59, 61, 62, 64, 65, 74, 76, 78, 81, 84, 87, 88, 92, 93, 94, 98, 111, 127, 128, 130, 131, 133, 135, 136, 141, 143, 144, 149, 150, 153, 154, 164, 165, 167, 169, 172, 173, 174, 179, 184, 185, 188, 189, 191, 192, 202, 203, 205, 206, 220, 230, 232, 250, 251, 252, 253, 254, 255, 257, 258, 259, 260, 261, 264, 265, 268, 271, 272, 273, 278, 284, 285, 307, 310, 311, 313, 323, 336, 337, 338, 339, 343, 344, 349, 366, 367, 368, 370, 379, 380, 382], "summary": {"covered_lines": 112, "num_statements": 157, "percent_covered": 71.3375796178344, "percent_covered_display": "71", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 71.3375796178344, "percent_statements_covered_display": "71"}, "missing_lines": [66, 67, 71, 89, 99, 100, 101, 103, 104, 109, 137, 138, 145, 146, 147, 155, 156, 157, 158, 161, 162, 180, 181, 193, 195, 196, 199, 208, 209, 211, 212, 213, 214, 215, 218, 226, 227, 228, 297, 319, 320, 321, 345, 346, 347], "excluded_lines": [], "functions": {"PatternLearner.__init__": {"executed_lines": [29, 30, 31, 32, 34, 35], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "PatternLearner.learn_from_feedback": {"executed_lines": [54, 55, 56, 57, 59, 61, 62, 64, 65, 74, 76, 78, 81, 84, 87, 88, 92, 93, 94, 98], "summary": {"covered_lines": 20, "num_statements": 30, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [66, 67, 71, 89, 99, 100, 101, 103, 104, 109], "excluded_lines": [], "start_line": 37}, "PatternLearner.batch_learn": {"executed_lines": [127, 128, 130, 131, 133, 135, 136, 141, 143, 144, 149, 150, 153, 154, 164, 165, 167, 169, 172, 173, 174, 179, 184, 185, 188, 189, 191, 192, 202, 203, 205, 206, 220, 230], "summary": {"covered_lines": 34, "num_statements": 62, "percent_covered": 54.83870967741935, "percent_covered_display": "55", "missing_lines": 28, "excluded_lines": 0, "percent_statements_covered": 54.83870967741935, "percent_statements_covered_display": "55"}, "missing_lines": [137, 138, 145, 146, 147, 155, 156, 157, 158, 161, 162, 180, 181, 193, 195, 196, 199, 208, 209, 211, 212, 213, 214, 215, 218, 226, 227, 228], "excluded_lines": [], "start_line": 111}, "PatternLearner.update_pattern_metrics": {"executed_lines": [250, 251, 252, 253, 254, 255, 257, 258, 259, 260, 261, 264, 265, 268, 271, 272, 273, 278, 284, 285, 307, 310, 311, 313], "summary": {"covered_lines": 24, "num_statements": 28, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [297, 319, 320, 321], "excluded_lines": [], "start_line": 232}, "PatternLearner._find_pattern_by_hash": {"executed_lines": [336, 337, 338, 339, 343, 344], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [345, 346, 347], "excluded_lines": [], "start_line": 323}, "PatternLearner._create_pattern_from_operation": {"executed_lines": [366, 367, 368, 370], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 349}, "PatternLearner._pattern_key": {"executed_lines": [382], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 380}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 12, 15, 18, 37, 111, 232, 323, 349, 379, 380], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternLearner": {"executed_lines": [29, 30, 31, 32, 34, 35, 54, 55, 56, 57, 59, 61, 62, 64, 65, 74, 76, 78, 81, 84, 87, 88, 92, 93, 94, 98, 127, 128, 130, 131, 133, 135, 136, 141, 143, 144, 149, 150, 153, 154, 164, 165, 167, 169, 172, 173, 174, 179, 184, 185, 188, 189, 191, 192, 202, 203, 205, 206, 220, 230, 250, 251, 252, 253, 254, 255, 257, 258, 259, 260, 261, 264, 265, 268, 271, 272, 273, 278, 284, 285, 307, 310, 311, 313, 336, 337, 338, 339, 343, 344, 366, 367, 368, 370, 382], "summary": {"covered_lines": 95, "num_statements": 140, "percent_covered": 67.85714285714286, "percent_covered_display": "68", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 67.85714285714286, "percent_statements_covered_display": "68"}, "missing_lines": [66, 67, 71, 89, 99, 100, 101, 103, 104, 109, 137, 138, 145, 146, 147, 155, 156, 157, 158, 161, 162, 180, 181, 193, 195, 196, 199, 208, 209, 211, 212, 213, 214, 215, 218, 226, 227, 228, 297, 319, 320, 321, 345, 346, 347], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 12, 15, 18, 37, 111, 232, 323, 349, 379, 380], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\learning_service.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 17, 20, 35, 36, 38, 39, 43, 56, 58, 60, 61, 62, 66, 69, 71, 73, 78, 80, 81, 83, 84, 85, 91, 96, 98, 103, 109, 121, 122, 123, 124, 126, 128, 129, 132, 135, 138, 139, 144, 151, 153, 159, 173, 174, 176, 177, 178, 179, 180, 182, 184, 186, 187, 188, 190, 191, 196, 198, 199, 201, 207, 222, 223, 226, 227, 230, 231, 232, 235, 248], "summary": {"covered_lines": 80, "num_statements": 102, "percent_covered": 78.43137254901961, "percent_covered_display": "78", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 78.43137254901961, "percent_statements_covered_display": "78"}, "missing_lines": [67, 70, 86, 87, 92, 93, 105, 106, 107, 145, 146, 148, 149, 155, 156, 157, 203, 204, 205, 250, 251, 254], "excluded_lines": [], "functions": {"LearningService.__init__": {"executed_lines": [35, 36, 38, 39], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "LearningService.process_pending_feedback": {"executed_lines": [56, 58, 60, 61, 62, 66, 69, 71, 73, 78, 80, 81, 83, 84, 85, 91, 96, 98, 103], "summary": {"covered_lines": 19, "num_statements": 28, "percent_covered": 67.85714285714286, "percent_covered_display": "68", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 67.85714285714286, "percent_statements_covered_display": "68"}, "missing_lines": [67, 70, 86, 87, 92, 93, 105, 106, 107], "excluded_lines": [], "start_line": 43}, "LearningService.update_pattern_scores": {"executed_lines": [121, 122, 123, 124, 126, 128, 129, 132, 135, 138, 139, 144, 151, 153], "summary": {"covered_lines": 14, "num_statements": 21, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [145, 146, 148, 149, 155, 156, 157], "excluded_lines": [], "start_line": 109}, "LearningService.cleanup_old_patterns": {"executed_lines": [173, 174, 176, 177, 178, 179, 180, 182, 184, 186, 187, 188, 190, 191, 196, 198, 199, 201], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [203, 204, 205], "excluded_lines": [], "start_line": 159}, "LearningService._reconstruct_operation_from_feedback": {"executed_lines": [222, 223, 226, 227, 230, 231, 232, 235, 248], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [250, 251, 254], "excluded_lines": [], "start_line": 207}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 17, 20, 43, 109, 159, 207], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"LearningService": {"executed_lines": [35, 36, 38, 39, 56, 58, 60, 61, 62, 66, 69, 71, 73, 78, 80, 81, 83, 84, 85, 91, 96, 98, 103, 121, 122, 123, 124, 126, 128, 129, 132, 135, 138, 139, 144, 151, 153, 173, 174, 176, 177, 178, 179, 180, 182, 184, 186, 187, 188, 190, 191, 196, 198, 199, 201, 222, 223, 226, 227, 230, 231, 232, 235, 248], "summary": {"covered_lines": 64, "num_statements": 86, "percent_covered": 74.4186046511628, "percent_covered_display": "74", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 74.4186046511628, "percent_statements_covered_display": "74"}, "missing_lines": [67, 70, 86, 87, 92, 93, 105, 106, 107, 145, 146, 148, 149, 155, 156, 157, 203, 204, 205, 250, 251, 254], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 17, 20, 43, 109, 159, 207], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\matcher.py": {"executed_lines": [3, 4, 5, 6, 8, 9, 11, 14, 17, 25, 26, 27, 28, 29, 30, 32, 53, 59, 60, 66, 69, 72, 73, 75, 77, 78, 84, 85, 87, 113, 116, 117, 118, 121, 122, 125, 126, 130, 131, 133, 134, 135, 139, 140, 143, 148, 150, 169, 172, 178, 181, 183, 185, 192, 193, 194, 195, 196, 199, 200, 201, 202, 204, 206, 214, 222, 225, 226, 227, 228, 229, 230, 232, 234, 236, 237, 238], "summary": {"covered_lines": 77, "num_statements": 81, "percent_covered": 95.06172839506173, "percent_covered_display": "95", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 95.06172839506173, "percent_statements_covered_display": "95"}, "missing_lines": [54, 55, 144, 145], "excluded_lines": [], "functions": {"PatternMatcher.__init__": {"executed_lines": [25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "PatternMatcher.find_similar_patterns": {"executed_lines": [53, 59, 60, 66, 69, 72, 73, 75, 77, 78, 84, 85], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [54, 55], "excluded_lines": [], "start_line": 32}, "PatternMatcher.calculate_pattern_score": {"executed_lines": [113, 116, 117, 118, 121, 122, 125, 126, 130, 131, 133, 134, 135, 139, 140, 143, 148], "summary": {"covered_lines": 17, "num_statements": 19, "percent_covered": 89.47368421052632, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 89.47368421052632, "percent_statements_covered_display": "89"}, "missing_lines": [144, 145], "excluded_lines": [], "start_line": 87}, "PatternMatcher.find_best_matches": {"executed_lines": [169, 172, 178, 181, 183], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 150}, "PatternMatcher._load_patterns": {"executed_lines": [192, 193, 194, 195, 196, 199, 200, 201, 202, 204], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 185}, "PatternMatcher._load_hash_index": {"executed_lines": [214, 222, 225, 226, 227, 228, 229, 230, 232], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 206}, "PatternMatcher.clear_cache": {"executed_lines": [236, 237, 238], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 234}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 11, 14, 17, 32, 87, 150, 185, 206, 234], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternMatcher": {"executed_lines": [25, 26, 27, 28, 29, 30, 53, 59, 60, 66, 69, 72, 73, 75, 77, 78, 84, 85, 113, 116, 117, 118, 121, 122, 125, 126, 130, 131, 133, 134, 135, 139, 140, 143, 148, 169, 172, 178, 181, 183, 192, 193, 194, 195, 196, 199, 200, 201, 202, 204, 214, 222, 225, 226, 227, 228, 229, 230, 232, 236, 237, 238], "summary": {"covered_lines": 62, "num_statements": 66, "percent_covered": 93.93939393939394, "percent_covered_display": "94", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 93.93939393939394, "percent_statements_covered_display": "94"}, "missing_lines": [54, 55, 144, 145], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 4, 5, 6, 8, 9, 11, 14, 17, 32, 87, 150, 185, 206, 234], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\models.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 12, 20, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 40, 41, 42, 44, 45, 57, 70, 71, 75, 76, 77, 78, 79, 80, 81, 83, 102, 104, 105, 108, 112, 115, 118, 119, 120, 122, 124, 125, 126, 128, 130, 132, 134, 136, 137, 139, 142, 143, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 164, 165, 167, 168, 169, 170, 171, 172, 175, 176, 177, 178, 182, 184, 185, 188, 189, 190, 191, 194, 197, 200, 202, 209, 211, 213, 214, 215, 216, 218, 219, 221, 222, 223, 224, 226, 227, 237, 238, 239, 252, 253, 258, 259, 260, 261, 262, 263, 265, 266, 268, 269, 271, 272, 274, 275, 281, 283, 284, 286, 288, 290, 291, 292, 293, 295, 297, 298, 299, 300, 302, 304, 305, 307, 309, 311, 313, 314, 315, 316, 317, 319, 321, 322, 323, 324, 325, 326, 328, 329, 331, 332, 333, 334, 335, 336], "summary": {"covered_lines": 169, "num_statements": 171, "percent_covered": 98.83040935672514, "percent_covered_display": "99", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 98.83040935672514, "percent_statements_covered_display": "99"}, "missing_lines": [180, 285], "excluded_lines": [], "functions": {"RefactoringFeedback.to_dict": {"executed_lines": [27, 28, 29, 30, 31, 32], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "RefactoringFeedback.from_dict": {"executed_lines": [37, 38, 39, 40, 41, 42], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "RefactoringFeedback.create": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "PatternMetric.update": {"executed_lines": [102, 104, 105, 108, 112, 115, 118, 119, 120, 122, 124, 125, 126, 128, 130], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 83}, "PatternMetric.to_dict": {"executed_lines": [134], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 132}, "PatternMetric.from_dict": {"executed_lines": [139], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 137}, "RefactoringPattern.update_from_feedback": {"executed_lines": [164, 165, 167, 168, 169, 170, 171, 172, 175, 176, 177, 178], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [180], "excluded_lines": [], "start_line": 162}, "RefactoringPattern.calculate_benefit_score": {"executed_lines": [184, 185, 188, 189, 190, 191, 194, 197, 200, 202, 209], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 182}, "RefactoringPattern.to_dict": {"executed_lines": [213, 214, 215, 216], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 211}, "RefactoringPattern.from_dict": {"executed_lines": [221, 222, 223, 224], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 219}, "RefactoringPattern.create": {"executed_lines": [237, 238, 239], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 227}, "ProjectPatternProfile.generate_project_id": {"executed_lines": [268, 269], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 266}, "ProjectPatternProfile.create": {"executed_lines": [274, 275], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 272}, "ProjectPatternProfile.enable_pattern": {"executed_lines": [283, 284, 286], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [285], "excluded_lines": [], "start_line": 281}, "ProjectPatternProfile.disable_pattern": {"executed_lines": [290, 291, 292, 293], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 288}, "ProjectPatternProfile.set_pattern_weight": {"executed_lines": [297, 298, 299, 300], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 295}, "ProjectPatternProfile.set_rule_threshold": {"executed_lines": [304, 305], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 302}, "ProjectPatternProfile.get_pattern_weight": {"executed_lines": [309], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 307}, "ProjectPatternProfile.is_pattern_enabled": {"executed_lines": [313, 314, 315, 316, 317], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 311}, "ProjectPatternProfile.to_dict": {"executed_lines": [321, 322, 323, 324, 325, 326], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 319}, "ProjectPatternProfile.from_dict": {"executed_lines": [331, 332, 333, 334, 335, 336], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 329}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 12, 20, 21, 22, 23, 25, 34, 35, 44, 45, 70, 71, 75, 76, 77, 78, 79, 80, 81, 83, 132, 136, 137, 142, 143, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 182, 211, 218, 219, 226, 227, 252, 253, 258, 259, 260, 261, 262, 263, 265, 266, 271, 272, 281, 288, 295, 302, 307, 311, 319, 328, 329], "summary": {"covered_lines": 70, "num_statements": 70, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactoringFeedback": {"executed_lines": [27, 28, 29, 30, 31, 32, 37, 38, 39, 40, 41, 42, 57], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "PatternMetric": {"executed_lines": [102, 104, 105, 108, 112, 115, 118, 119, 120, 122, 124, 125, 126, 128, 130, 134, 139], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 71}, "RefactoringPattern": {"executed_lines": [164, 165, 167, 168, 169, 170, 171, 172, 175, 176, 177, 178, 184, 185, 188, 189, 190, 191, 194, 197, 200, 202, 209, 213, 214, 215, 216, 221, 222, 223, 224, 237, 238, 239], "summary": {"covered_lines": 34, "num_statements": 35, "percent_covered": 97.14285714285714, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.14285714285714, "percent_statements_covered_display": "97"}, "missing_lines": [180], "excluded_lines": [], "start_line": 143}, "ProjectPatternProfile": {"executed_lines": [268, 269, 274, 275, 283, 284, 286, 290, 291, 292, 293, 297, 298, 299, 300, 304, 305, 309, 313, 314, 315, 316, 317, 321, 322, 323, 324, 325, 326, 331, 332, 333, 334, 335, 336], "summary": {"covered_lines": 35, "num_statements": 36, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.22222222222223, "percent_statements_covered_display": "97"}, "missing_lines": [285], "excluded_lines": [], "start_line": 253}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 12, 20, 21, 22, 23, 25, 34, 35, 44, 45, 70, 71, 75, 76, 77, 78, 79, 80, 81, 83, 132, 136, 137, 142, 143, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 182, 211, 218, 219, 226, 227, 252, 253, 258, 259, 260, 261, 262, 263, 265, 266, 271, 272, 281, 288, 295, 302, 307, 311, 319, 328, 329], "summary": {"covered_lines": 70, "num_statements": 70, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\ranker.py": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 11, 13, 16, 19, 33, 34, 35, 36, 37, 38, 40, 41, 42, 44, 68, 69, 72, 73, 74, 75, 80, 82, 83, 84, 85, 98, 100, 102, 118, 119, 120, 121, 123, 124, 125, 129, 130, 133, 139, 141, 142, 144, 145, 148, 151, 159, 160, 164, 169, 171, 173, 190, 191, 193, 194, 196, 212, 216, 217, 223, 227, 228, 230, 231, 232, 233, 234, 243, 244, 245, 250, 251, 254, 255, 264, 266], "summary": {"covered_lines": 83, "num_statements": 105, "percent_covered": 79.04761904761905, "percent_covered_display": "79", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 79.04761904761905, "percent_statements_covered_display": "79"}, "missing_lines": [76, 77, 86, 88, 93, 94, 95, 165, 166, 213, 218, 219, 220, 221, 235, 236, 240, 257, 258, 259, 260, 261], "excluded_lines": [], "functions": {"RefactoringRanker.__init__": {"executed_lines": [33, 34, 35, 36, 37, 38, 40, 41, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "RefactoringRanker.rank_operations": {"executed_lines": [68, 69, 72, 73, 74, 75, 80, 82, 83, 84, 85, 98, 100], "summary": {"covered_lines": 13, "num_statements": 20, "percent_covered": 65.0, "percent_covered_display": "65", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 65.0, "percent_statements_covered_display": "65"}, "missing_lines": [76, 77, 86, 88, 93, 94, 95], "excluded_lines": [], "start_line": 44}, "RefactoringRanker._calculate_operation_score": {"executed_lines": [118, 119, 120, 121, 123, 124, 125, 129, 130, 133, 139, 141, 142, 144, 145, 148, 151, 159, 160, 164, 169, 171], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [165, 166], "excluded_lines": [], "start_line": 102}, "RefactoringRanker.get_top_suggestions": {"executed_lines": [190, 191, 193, 194], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 173}, "RefactoringRanker.get_ranked_with_scores": {"executed_lines": [212, 216, 217, 223, 227, 228, 230, 231, 232, 233, 234, 243, 244, 245, 250, 251, 254, 255, 264, 266], "summary": {"covered_lines": 20, "num_statements": 33, "percent_covered": 60.60606060606061, "percent_covered_display": "61", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 60.60606060606061, "percent_statements_covered_display": "61"}, "missing_lines": [213, 218, 219, 220, 221, 235, 236, 240, 257, 258, 259, 260, 261], "excluded_lines": [], "start_line": 196}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 11, 13, 16, 19, 44, 102, 173, 196], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RefactoringRanker": {"executed_lines": [33, 34, 35, 36, 37, 38, 40, 41, 42, 68, 69, 72, 73, 74, 75, 80, 82, 83, 84, 85, 98, 100, 118, 119, 120, 121, 123, 124, 125, 129, 130, 133, 139, 141, 142, 144, 145, 148, 151, 159, 160, 164, 169, 171, 190, 191, 193, 194, 212, 216, 217, 223, 227, 228, 230, 231, 232, 233, 234, 243, 244, 245, 250, 251, 254, 255, 264, 266], "summary": {"covered_lines": 68, "num_statements": 90, "percent_covered": 75.55555555555556, "percent_covered_display": "76", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 75.55555555555556, "percent_statements_covered_display": "76"}, "missing_lines": [76, 77, 86, 88, 93, 94, 95, 165, 166, 213, 218, 219, 220, 221, 235, 236, 240, 257, 258, 259, 260, 261], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [3, 4, 5, 7, 8, 9, 10, 11, 13, 16, 19, 44, 102, 173, 196], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\storage.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 16, 19, 22, 23, 24, 25, 26, 28, 37, 39, 40, 41, 46, 48, 51, 54, 55, 56, 57, 60, 61, 62, 63, 65, 72, 75, 76, 80, 88, 95, 96, 97, 98, 100, 117, 118, 119, 121, 124, 126, 128, 129, 131, 132, 135, 136, 138, 139, 141, 143, 145, 147, 154, 155, 156, 157, 159, 169, 170, 172, 180, 181, 182, 184, 186, 196, 197, 199, 207, 208, 209, 210, 211, 213, 220, 221, 222, 223, 225, 233, 234, 235, 237, 239, 249, 250, 252, 262, 263, 264, 266, 267, 270, 271, 272, 274, 277, 286, 289, 292, 293, 294, 296, 303, 304, 305, 306, 308, 316, 317, 318, 320, 322, 324, 325, 326, 327, 328, 332, 340, 341, 343, 344, 345, 347, 352, 361, 363, 364, 365, 366, 367, 372, 374, 375, 377, 378, 379, 380, 385, 387, 388, 389, 390, 391, 396, 398, 399, 401, 402, 403, 404, 412, 414, 415, 416, 417, 418, 423, 425, 426, 439, 441, 442, 443, 444, 445], "summary": {"covered_lines": 173, "num_statements": 214, "percent_covered": 80.8411214953271, "percent_covered_display": "81", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 80.8411214953271, "percent_statements_covered_display": "81"}, "missing_lines": [44, 81, 82, 83, 84, 86, 137, 280, 282, 287, 288, 348, 351, 357, 358, 359, 368, 369, 370, 381, 382, 383, 392, 393, 394, 408, 409, 410, 419, 420, 421, 428, 429, 430, 431, 435, 436, 437, 446, 447, 448], "excluded_lines": [], "functions": {"PatternStorage.__init__": {"executed_lines": [37, 39, 40, 41, 46, 48, 51, 54, 55, 56, 57, 60, 61, 62, 63], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [44], "excluded_lines": [], "start_line": 28}, "PatternStorage._find_project_root": {"executed_lines": [72, 75, 76, 80], "summary": {"covered_lines": 4, "num_statements": 9, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 44.44444444444444, "percent_statements_covered_display": "44"}, "missing_lines": [81, 82, 83, 84, 86], "excluded_lines": [], "start_line": 65}, "PatternStorage.save_feedback": {"executed_lines": [95, 96, 97, 98], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 88}, "PatternStorage.load_feedback": {"executed_lines": [117, 118, 119, 121, 124, 126, 128, 129, 131, 132, 135, 136, 138, 139, 141, 143, 145], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.44444444444444, "percent_statements_covered_display": "94"}, "missing_lines": [137], "excluded_lines": [], "start_line": 100}, "PatternStorage.save_pattern": {"executed_lines": [154, 155, 156, 157], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "PatternStorage.replace_patterns": {"executed_lines": [169, 170], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 159}, "PatternStorage.load_patterns": {"executed_lines": [180, 181, 182, 184], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 172}, "PatternStorage.get_pattern": {"executed_lines": [196, 197], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 186}, "PatternStorage.update_pattern_stats": {"executed_lines": [207, 208, 209, 210, 211], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 199}, "PatternStorage.save_pattern_metric": {"executed_lines": [220, 221, 222, 223], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 213}, "PatternStorage.load_pattern_metrics": {"executed_lines": [233, 234, 235, 237], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 225}, "PatternStorage.get_pattern_metric": {"executed_lines": [249, 250], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 239}, "PatternStorage.get_project_profile": {"executed_lines": [262, 263, 264, 266, 267, 270, 271, 272, 274, 277, 286, 289, 292, 293, 294], "summary": {"covered_lines": 15, "num_statements": 19, "percent_covered": 78.94736842105263, "percent_covered_display": "79", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 78.94736842105263, "percent_statements_covered_display": "79"}, "missing_lines": [280, 282, 287, 288], "excluded_lines": [], "start_line": 252}, "PatternStorage.save_project_profile": {"executed_lines": [303, 304, 305, 306], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 296}, "PatternStorage.load_project_profiles": {"executed_lines": [316, 317, 318, 320], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 308}, "PatternStorage.clear_cache": {"executed_lines": [324, 325, 326, 327, 328], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 322}, "PatternStorage._load_patterns_dict": {"executed_lines": [340, 341, 343, 344, 345, 347, 352], "summary": {"covered_lines": 7, "num_statements": 12, "percent_covered": 58.333333333333336, "percent_covered_display": "58", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 58.333333333333336, "percent_statements_covered_display": "58"}, "missing_lines": [348, 351, 357, 358, 359], "excluded_lines": [], "start_line": 332}, "PatternStorage._save_patterns_dict": {"executed_lines": [363, 364, 365, 366, 367], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [368, 369, 370], "excluded_lines": [], "start_line": 361}, "PatternStorage._load_feedback_list": {"executed_lines": [374, 375, 377, 378, 379, 380], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [381, 382, 383], "excluded_lines": [], "start_line": 372}, "PatternStorage._save_feedback_list": {"executed_lines": [387, 388, 389, 390, 391], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [392, 393, 394], "excluded_lines": [], "start_line": 385}, "PatternStorage._load_profiles_dict": {"executed_lines": [398, 399, 401, 402, 403, 404], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [408, 409, 410], "excluded_lines": [], "start_line": 396}, "PatternStorage._save_profiles_dict": {"executed_lines": [414, 415, 416, 417, 418], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [419, 420, 421], "excluded_lines": [], "start_line": 412}, "PatternStorage._load_metrics_dict": {"executed_lines": [425, 426], "summary": {"covered_lines": 2, "num_statements": 9, "percent_covered": 22.22222222222222, "percent_covered_display": "22", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 22.22222222222222, "percent_statements_covered_display": "22"}, "missing_lines": [428, 429, 430, 431, 435, 436, 437], "excluded_lines": [], "start_line": 423}, "PatternStorage._save_metrics_dict": {"executed_lines": [441, 442, 443, 444, 445], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [446, 447, 448], "excluded_lines": [], "start_line": 439}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 16, 19, 22, 23, 24, 25, 26, 28, 65, 88, 100, 147, 159, 172, 186, 199, 213, 225, 239, 252, 296, 308, 322, 332, 361, 372, 385, 396, 412, 423, 439], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternStorage": {"executed_lines": [37, 39, 40, 41, 46, 48, 51, 54, 55, 56, 57, 60, 61, 62, 63, 72, 75, 76, 80, 95, 96, 97, 98, 117, 118, 119, 121, 124, 126, 128, 129, 131, 132, 135, 136, 138, 139, 141, 143, 145, 154, 155, 156, 157, 169, 170, 180, 181, 182, 184, 196, 197, 207, 208, 209, 210, 211, 220, 221, 222, 223, 233, 234, 235, 237, 249, 250, 262, 263, 264, 266, 267, 270, 271, 272, 274, 277, 286, 289, 292, 293, 294, 303, 304, 305, 306, 316, 317, 318, 320, 324, 325, 326, 327, 328, 340, 341, 343, 344, 345, 347, 352, 363, 364, 365, 366, 367, 374, 375, 377, 378, 379, 380, 387, 388, 389, 390, 391, 398, 399, 401, 402, 403, 404, 414, 415, 416, 417, 418, 425, 426, 441, 442, 443, 444, 445], "summary": {"covered_lines": 136, "num_statements": 177, "percent_covered": 76.8361581920904, "percent_covered_display": "77", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 76.8361581920904, "percent_statements_covered_display": "77"}, "missing_lines": [44, 81, 82, 83, 84, 86, 137, 280, 282, 287, 288, 348, 351, 357, 358, 359, 368, 369, 370, 381, 382, 383, 392, 393, 394, 408, 409, 410, 419, 420, 421, 428, 429, 430, 431, 435, 436, 437, 446, 447, 448], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 16, 19, 22, 23, 24, 25, 26, 28, 65, 88, 100, 147, 159, 172, 186, 199, 213, 225, 239, 252, 296, 308, 322, 332, 361, 372, 385, 396, 412, 423, 439], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\patterns\\tuner.py": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 35, 36, 37, 39, 42, 45, 46, 47, 48, 50, 59, 63, 66, 67, 68, 75, 76, 77, 78, 81, 83, 84, 88, 89, 90, 100, 101, 107, 108, 109, 110, 111, 116, 117, 119, 120, 121, 126, 145, 150, 156, 165, 166, 168, 169, 170, 173, 174, 175, 177, 178, 179, 180, 182, 186, 187, 189, 190, 191, 193, 198, 206, 219, 222, 223, 224, 226, 229, 232, 237, 240, 241, 243, 244, 247, 248, 249, 255, 256], "summary": {"covered_lines": 101, "num_statements": 118, "percent_covered": 85.59322033898304, "percent_covered_display": "86", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 85.59322033898304, "percent_statements_covered_display": "86"}, "missing_lines": [38, 60, 86, 92, 98, 112, 113, 123, 124, 184, 196, 220, 227, 230, 235, 250, 252], "excluded_lines": [], "functions": {"PatternStats.total_decisions": {"executed_lines": [29], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "PatternStats.total_feedback": {"executed_lines": [33], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "PatternStats.acceptance_rate": {"executed_lines": [37, 39], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [38], "excluded_lines": [], "start_line": 36}, "RuleTuner.__init__": {"executed_lines": [46, 47, 48], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "RuleTuner.analyze_project_patterns": {"executed_lines": [59, 63, 66, 67, 68, 75, 76, 77, 78, 81, 83, 84, 88, 89, 90, 100, 101, 107, 108, 109, 110, 111, 116, 117, 119, 120, 121, 126, 145, 150], "summary": {"covered_lines": 30, "num_statements": 38, "percent_covered": 78.94736842105263, "percent_covered_display": "79", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 78.94736842105263, "percent_statements_covered_display": "79"}, "missing_lines": [60, 86, 92, 98, 112, 113, 123, 124], "excluded_lines": [], "start_line": 50}, "RuleTuner.generate_recommendations": {"executed_lines": [165, 166, 168, 169, 170, 173, 174, 175, 177, 178, 179, 180, 182, 186, 187, 189, 190, 191, 193, 198], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [184, 196], "excluded_lines": [], "start_line": 156}, "RuleTuner.apply_tuning": {"executed_lines": [219, 222, 223, 224, 226, 229, 232, 237, 240, 241, 243, 244, 247, 248, 249, 255, 256], "summary": {"covered_lines": 17, "num_statements": 23, "percent_covered": 73.91304347826087, "percent_covered_display": "74", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 73.91304347826087, "percent_statements_covered_display": "74"}, "missing_lines": [220, 227, 230, 235, 250, 252], "excluded_lines": [], "start_line": 206}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 31, 32, 35, 36, 42, 45, 50, 156, 206], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PatternStats": {"executed_lines": [29, 33, 37, 39], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [38], "excluded_lines": [], "start_line": 17}, "RuleTuner": {"executed_lines": [46, 47, 48, 59, 63, 66, 67, 68, 75, 76, 77, 78, 81, 83, 84, 88, 89, 90, 100, 101, 107, 108, 109, 110, 111, 116, 117, 119, 120, 121, 126, 145, 150, 165, 166, 168, 169, 170, 173, 174, 175, 177, 178, 179, 180, 182, 186, 187, 189, 190, 191, 193, 198, 219, 222, 223, 224, 226, 229, 232, 237, 240, 241, 243, 244, 247, 248, 249, 255, 256], "summary": {"covered_lines": 70, "num_statements": 86, "percent_covered": 81.3953488372093, "percent_covered_display": "81", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 81.3953488372093, "percent_statements_covered_display": "81"}, "missing_lines": [60, 86, 92, 98, 112, 113, 123, 124, 184, 196, 220, 227, 230, 235, 250, 252], "excluded_lines": [], "start_line": 42}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 24, 25, 27, 28, 31, 32, 35, 36, 42, 45, 50, 156, 206], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\chunker.py": {"executed_lines": [3, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 28, 34, 36, 46, 48, 51, 52, 55, 56, 59, 60, 62, 64, 66, 68, 69, 71, 72, 75, 76, 78, 91, 94, 96, 97, 99, 102, 103, 105, 119, 121, 124, 126, 127, 130, 131, 134, 135, 137, 150, 153, 155, 156, 157, 158, 159, 161, 163, 177, 179], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"CodeChunker.__init__": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "CodeChunker.chunk_file": {"executed_lines": [46, 48, 51, 52, 55, 56, 59, 60, 62], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "CodeChunker._create_module_chunk": {"executed_lines": [66, 68, 69, 71, 72, 75, 76, 78], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 64}, "CodeChunker._create_function_chunk": {"executed_lines": [94, 96, 97, 99, 102, 103, 105], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 91}, "CodeChunker._create_class_chunks": {"executed_lines": [121, 124, 126, 127, 130, 131, 134, 135, 137, 150, 153, 155, 156, 157, 158, 159, 161, 163, 177, 179], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 119}, "": {"executed_lines": [3, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 28, 36, 64, 91, 119], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"CodeChunk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 13}, "CodeChunker": {"executed_lines": [34, 46, 48, 51, 52, 55, 56, 59, 60, 62, 66, 68, 69, 71, 72, 75, 76, 78, 94, 96, 97, 99, 102, 103, 105, 121, 124, 126, 127, 130, 131, 134, 135, 137, 150, 153, 155, 156, 157, 158, 159, 161, 163, 177, 179], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "": {"executed_lines": [3, 5, 6, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 28, 36, 64, 91, 119], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\indexer.py": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 22, 23, 26, 27, 32, 33, 36, 37, 38, 39, 40, 43, 46, 61, 62, 66, 67, 68, 71, 73, 76, 77, 80, 85, 90, 92, 163, 195, 217, 223, 224, 227, 228, 229, 230, 238, 243, 245, 248, 251, 258, 264, 266, 274, 276, 277, 278, 280, 282, 283, 286, 287], "summary": {"covered_lines": 66, "num_statements": 122, "percent_covered": 54.09836065573771, "percent_covered_display": "54", "missing_lines": 56, "excluded_lines": 0, "percent_statements_covered": 54.09836065573771, "percent_statements_covered_display": "54"}, "missing_lines": [15, 28, 29, 104, 105, 107, 108, 109, 110, 111, 113, 114, 116, 119, 122, 123, 127, 128, 131, 132, 133, 134, 137, 138, 141, 143, 144, 147, 155, 173, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 191, 193, 197, 198, 200, 207, 208, 213, 214, 215, 239, 240, 241, 242, 284], "excluded_lines": [], "functions": {"RAGIndexer.__init__": {"executed_lines": [61, 62, 66, 67, 68, 71, 73, 76, 77, 80, 85, 90], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "RAGIndexer.index_repository": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 26, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 26, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [104, 105, 107, 108, 109, 110, 111, 113, 114, 116, 119, 122, 123, 127, 128, 131, 132, 133, 134, 137, 138, 141, 143, 144, 147, 155], "excluded_lines": [], "start_line": 92}, "RAGIndexer._index_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [173, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 191, 193], "excluded_lines": [], "start_line": 163}, "RAGIndexer._summarize_chunk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [197, 198, 200, 207, 208, 213, 214, 215], "excluded_lines": [], "start_line": 195}, "RAGIndexer.add_chunks": {"executed_lines": [223, 224, 227, 228, 229, 230, 238, 243, 245, 248, 251], "summary": {"covered_lines": 11, "num_statements": 15, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 73.33333333333333, "percent_statements_covered_display": "73"}, "missing_lines": [239, 240, 241, 242], "excluded_lines": [], "start_line": 217}, "RAGIndexer.get_stats": {"executed_lines": [264, 266], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 258}, "RAGIndexer._save_metadata": {"executed_lines": [276, 277, 278], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 274}, "RAGIndexer._load_metadata": {"executed_lines": [282, 283, 286, 287], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [284], "excluded_lines": [], "start_line": 280}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 22, 23, 26, 27, 32, 33, 36, 37, 38, 39, 40, 43, 46, 92, 163, 195, 217, 258, 274, 280], "summary": {"covered_lines": 34, "num_statements": 37, "percent_covered": 91.89189189189189, "percent_covered_display": "92", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 91.89189189189189, "percent_statements_covered_display": "92"}, "missing_lines": [15, 28, 29], "excluded_lines": [], "start_line": 1}}, "classes": {"IndexStats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 33}, "RAGIndexer": {"executed_lines": [61, 62, 66, 67, 68, 71, 73, 76, 77, 80, 85, 90, 223, 224, 227, 228, 229, 230, 238, 243, 245, 248, 251, 264, 266, 276, 277, 278, 282, 283, 286, 287], "summary": {"covered_lines": 32, "num_statements": 85, "percent_covered": 37.64705882352941, "percent_covered_display": "38", "missing_lines": 53, "excluded_lines": 0, "percent_statements_covered": 37.64705882352941, "percent_statements_covered_display": "38"}, "missing_lines": [104, 105, 107, 108, 109, 110, 111, 113, 114, 116, 119, 122, 123, 127, 128, 131, 132, 133, 134, 137, 138, 141, 143, 144, 147, 155, 173, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 191, 193, 197, 198, 200, 207, 208, 213, 214, 215, 239, 240, 241, 242, 284], "excluded_lines": [], "start_line": 43}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 16, 17, 18, 19, 20, 22, 23, 26, 27, 32, 33, 36, 37, 38, 39, 40, 43, 46, 92, 163, 195, 217, 258, 274, 280], "summary": {"covered_lines": 34, "num_statements": 37, "percent_covered": 91.89189189189189, "percent_covered_display": "92", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 91.89189189189189, "percent_statements_covered_display": "92"}, "missing_lines": [15, 28, 29], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\parser.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 13, 18, 19, 22, 23, 24, 25, 26, 29, 30, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 54, 56, 62, 65, 66, 70, 71, 84, 85, 99, 108, 109, 111, 112, 115, 118, 121, 124, 126, 134, 136, 137, 138, 139, 140, 145, 147, 149, 150, 151, 152, 153, 154, 156, 158, 159, 160, 161, 162, 163, 164, 166, 168, 169, 170, 171, 172, 173, 174, 176, 179, 180, 183, 186, 189, 192, 195, 197, 205, 208, 209, 212, 215, 218, 221, 224, 225, 226, 227, 228, 229, 230, 231, 233, 241, 243, 244, 247, 248, 249, 250, 251, 258, 260, 261, 264, 265, 266, 267, 268, 275, 277, 278, 279, 282, 283, 284, 285, 287], "summary": {"covered_lines": 129, "num_statements": 154, "percent_covered": 83.76623376623377, "percent_covered_display": "84", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 83.76623376623377, "percent_statements_covered_display": "84"}, "missing_lines": [14, 15, 57, 67, 72, 74, 75, 76, 77, 78, 79, 81, 86, 88, 89, 90, 91, 95, 181, 210, 245, 256, 262, 273, 280], "excluded_lines": [], "functions": {"CodeParser.__init__": {"executed_lines": [56, 62, 65, 66, 70, 71, 84, 85], "summary": {"covered_lines": 8, "num_statements": 24, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [57, 67, 72, 74, 75, 76, 77, 78, 79, 81, 86, 88, 89, 90, 91, 95], "excluded_lines": [], "start_line": 54}, "CodeParser.parse_file": {"executed_lines": [108, 109, 111, 112, 115, 118, 121, 124, 126], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 99}, "CodeParser._extract_module_docstring": {"executed_lines": [136, 137, 138, 139, 140, 145], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "CodeParser._extract_imports": {"executed_lines": [149, 150, 151, 152, 153, 154], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 147}, "CodeParser._extract_functions": {"executed_lines": [158, 159, 160, 161, 162, 163, 164], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 156}, "CodeParser._extract_classes": {"executed_lines": [168, 169, 170, 171, 172, 173, 174], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 166}, "CodeParser._parse_function": {"executed_lines": [179, 180, 183, 186, 189, 192, 195, 197], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [181], "excluded_lines": [], "start_line": 176}, "CodeParser._parse_class": {"executed_lines": [208, 209, 212, 215, 218, 221, 224, 225, 226, 227, 228, 229, 230, 231, 233], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [210], "excluded_lines": [], "start_line": 205}, "CodeParser._extract_function_docstring": {"executed_lines": [243, 244, 247, 248, 249, 250, 251], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [245, 256], "excluded_lines": [], "start_line": 241}, "CodeParser._extract_class_docstring": {"executed_lines": [260, 261, 264, 265, 266, 267, 268], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [262, 273], "excluded_lines": [], "start_line": 258}, "CodeParser._extract_parameters": {"executed_lines": [277, 278, 279, 282, 283, 284, 285, 287], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [280], "excluded_lines": [], "start_line": 275}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 13, 18, 19, 22, 23, 24, 25, 26, 29, 30, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 54, 99, 134, 147, 156, 166, 176, 205, 241, 258, 275], "summary": {"covered_lines": 41, "num_statements": 43, "percent_covered": 95.34883720930233, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 95.34883720930233, "percent_statements_covered_display": "95"}, "missing_lines": [14, 15], "excluded_lines": [], "start_line": 1}}, "classes": {"ParsedFunction": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "ParsedClass": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 30}, "ParsedFile": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 41}, "CodeParser": {"executed_lines": [56, 62, 65, 66, 70, 71, 84, 85, 108, 109, 111, 112, 115, 118, 121, 124, 126, 136, 137, 138, 139, 140, 145, 149, 150, 151, 152, 153, 154, 158, 159, 160, 161, 162, 163, 164, 168, 169, 170, 171, 172, 173, 174, 179, 180, 183, 186, 189, 192, 195, 197, 208, 209, 212, 215, 218, 221, 224, 225, 226, 227, 228, 229, 230, 231, 233, 243, 244, 247, 248, 249, 250, 251, 260, 261, 264, 265, 266, 267, 268, 277, 278, 279, 282, 283, 284, 285, 287], "summary": {"covered_lines": 88, "num_statements": 111, "percent_covered": 79.27927927927928, "percent_covered_display": "79", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 79.27927927927928, "percent_statements_covered_display": "79"}, "missing_lines": [57, 67, 72, 74, 75, 76, 77, 78, 79, 81, 86, 88, 89, 90, 91, 95, 181, 210, 245, 256, 262, 273, 280], "excluded_lines": [], "start_line": 51}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 13, 18, 19, 22, 23, 24, 25, 26, 29, 30, 33, 34, 35, 36, 37, 40, 41, 44, 45, 46, 47, 48, 51, 54, 99, 134, 147, 156, 166, 176, 205, 241, 258, 275], "summary": {"covered_lines": 41, "num_statements": 43, "percent_covered": 95.34883720930233, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 95.34883720930233, "percent_statements_covered_display": "95"}, "missing_lines": [14, 15], "excluded_lines": [], "start_line": 1}}}, "refactron\\rag\\retriever.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 31, 32, 35, 38, 51, 52, 56, 57, 60, 63, 68, 69, 70, 71, 75, 89, 92, 93, 94, 97, 104, 105, 106, 107, 108, 110, 122, 124, 134, 137, 138, 139, 140, 142, 154, 156, 166, 168], "summary": {"covered_lines": 58, "num_statements": 60, "percent_covered": 96.66666666666667, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.66666666666667, "percent_statements_covered_display": "97"}, "missing_lines": [14, 178], "excluded_lines": [], "functions": {"ContextRetriever.__init__": {"executed_lines": [51, 52, 56, 57, 60, 63, 68, 69, 70, 71], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 38}, "ContextRetriever.retrieve_similar": {"executed_lines": [89, 92, 93, 94, 97, 104, 105, 106, 107, 108, 110, 122], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 75}, "ContextRetriever.retrieve_by_file": {"executed_lines": [134, 137, 138, 139, 140, 142, 154], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 124}, "ContextRetriever.retrieve_functions": {"executed_lines": [166], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 156}, "ContextRetriever.retrieve_classes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [178], "excluded_lines": [], "start_line": 168}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 31, 32, 35, 38, 75, 124, 156, 168], "summary": {"covered_lines": 28, "num_statements": 29, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.55172413793103, "percent_statements_covered_display": "97"}, "missing_lines": [14], "excluded_lines": [], "start_line": 1}}, "classes": {"RetrievedContext": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "ContextRetriever": {"executed_lines": [51, 52, 56, 57, 60, 63, 68, 69, 70, 71, 89, 92, 93, 94, 97, 104, 105, 106, 107, 108, 110, 122, 134, 137, 138, 139, 140, 142, 154, 166], "summary": {"covered_lines": 30, "num_statements": 31, "percent_covered": 96.7741935483871, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.7741935483871, "percent_statements_covered_display": "97"}, "missing_lines": [178], "excluded_lines": [], "start_line": 35}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 31, 32, 35, 38, 75, 124, 156, 168], "summary": {"covered_lines": 28, "num_statements": 29, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.55172413793103, "percent_statements_covered_display": "97"}, "missing_lines": [14], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\add_docstring_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 52, 59, 62, 63, 68, 70, 85, 89, 90, 92, 94, 96, 97, 98, 100, 103, 105, 110, 113, 114, 115, 119, 123, 124, 125, 128, 129, 131, 134, 135, 136, 137, 138, 141, 143, 144, 145, 147, 150, 152, 153, 154, 158, 160, 161, 163, 167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 183, 186, 187, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 203, 205, 210, 211, 212, 213, 214, 215, 217, 219, 221, 223, 224], "summary": {"covered_lines": 111, "num_statements": 119, "percent_covered": 93.27731092436974, "percent_covered_display": "93", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 93.27731092436974, "percent_statements_covered_display": "93"}, "missing_lines": [65, 106, 107, 108, 117, 156, 191, 201], "excluded_lines": [], "functions": {"AddDocstringRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "AddDocstringRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "AddDocstringRefactorer._create_docstring_addition": {"executed_lines": [59, 62, 63, 68, 70], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [65], "excluded_lines": [], "start_line": 52}, "AddDocstringRefactorer._generate_with_docstring": {"executed_lines": [89, 90, 92], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 85}, "AddDocstringRefactorer._generate_class_with_docstring": {"executed_lines": [96, 97, 98, 100, 103, 105, 110, 113, 114, 115], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [106, 107, 108, 117], "excluded_lines": [], "start_line": 94}, "AddDocstringRefactorer._generate_function_with_docstring": {"executed_lines": [123, 124, 125, 128, 129, 131, 134, 135, 136, 137, 138, 141, 143, 144, 145, 147, 150, 152, 153, 154], "summary": {"covered_lines": 20, "num_statements": 21, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.23809523809524, "percent_statements_covered_display": "95"}, "missing_lines": [156], "excluded_lines": [], "start_line": 119}, "AddDocstringRefactorer._generate_class_description": {"executed_lines": [160, 161], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 158}, "AddDocstringRefactorer._generate_function_description": {"executed_lines": [167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 163}, "AddDocstringRefactorer._generate_param_description": {"executed_lines": [186, 187, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 203], "summary": {"covered_lines": 14, "num_statements": 16, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [191, 201], "excluded_lines": [], "start_line": 183}, "AddDocstringRefactorer._generate_return_description": {"executed_lines": [210, 211, 212, 213, 214, 215, 217], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 205}, "AddDocstringRefactorer._split_camel_case": {"executed_lines": [221, 223, 224], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 219}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 52, 85, 94, 119, 158, 163, 183, 205, 219], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"AddDocstringRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 59, 62, 63, 68, 70, 89, 90, 92, 96, 97, 98, 100, 103, 105, 110, 113, 114, 115, 123, 124, 125, 128, 129, 131, 134, 135, 136, 137, 138, 141, 143, 144, 145, 147, 150, 152, 153, 154, 160, 161, 167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 186, 187, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 203, 210, 211, 212, 213, 214, 215, 217, 221, 223, 224], "summary": {"covered_lines": 93, "num_statements": 101, "percent_covered": 92.07920792079207, "percent_covered_display": "92", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 92.07920792079207, "percent_statements_covered_display": "92"}, "missing_lines": [65, 106, 107, 108, 117, 156, 191, 201], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 52, 85, 94, 119, 158, 163, 183, 205, 219], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\base_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 21, 23, 24, 37, 38, 39], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 86.66666666666667, "percent_statements_covered_display": "87"}, "missing_lines": [35, 41], "excluded_lines": [], "functions": {"BaseRefactorer.__init__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "BaseRefactorer.refactor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35], "excluded_lines": [], "start_line": 24}, "BaseRefactorer.operation_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 39}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"BaseRefactorer": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 3, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [35, 41], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 23, 24, 37, 38, 39], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\extract_method_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 34, 35, 37, 39, 40, 42, 44, 51, 54, 56, 58, 59, 61, 62, 64, 75, 78, 80, 82, 84, 85, 86, 87], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.29729729729729, "percent_statements_covered_display": "97"}, "missing_lines": [89], "excluded_lines": [], "functions": {"ExtractMethodRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "ExtractMethodRefactorer.refactor": {"executed_lines": [29, 31, 32, 34, 35, 37, 39, 40, 42], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "ExtractMethodRefactorer._analyze_function": {"executed_lines": [51, 54, 56, 58, 59, 61, 62, 64, 75, 78, 80], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 44}, "ExtractMethodRefactorer._get_code_snippet": {"executed_lines": [84, 85, 86, 87], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [89], "excluded_lines": [], "start_line": 82}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 44, 82], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ExtractMethodRefactorer": {"executed_lines": [16, 29, 31, 32, 34, 35, 37, 39, 40, 42, 51, 54, 56, 58, 59, 61, 62, 64, 75, 78, 80, 84, 85, 86, 87], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.15384615384616, "percent_statements_covered_display": "96"}, "missing_lines": [89], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 44, 82], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\magic_number_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 56, 58, 60, 62, 64, 65, 67, 68, 70, 72, 76, 77, 78, 79, 80, 83, 88, 89, 90, 91, 92, 93, 95, 99, 100, 105, 106, 107, 108, 111, 112, 113, 116, 117, 119, 121, 123, 137, 139, 141, 142, 143, 144, 154, 156, 157, 158, 159, 160, 163], "summary": {"covered_lines": 79, "num_statements": 90, "percent_covered": 87.77777777777777, "percent_covered_display": "88", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 87.77777777777777, "percent_statements_covered_display": "88"}, "missing_lines": [81, 96, 102, 145, 146, 147, 148, 150, 151, 155, 161], "excluded_lines": [], "functions": {"MagicNumberRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "MagicNumberRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 56, 58], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "MagicNumberRefactorer._find_magic_numbers": {"executed_lines": [62, 64, 65, 67, 68, 70], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 60}, "MagicNumberRefactorer._get_containing_function": {"executed_lines": [76, 77, 78, 79, 80], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [81], "excluded_lines": [], "start_line": 72}, "MagicNumberRefactorer._create_refactoring": {"executed_lines": [88, 89, 90, 91, 92, 93, 95, 99, 100, 105, 106, 107, 108, 111, 112, 113, 116, 117, 119, 121, 123], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [96, 102], "excluded_lines": [], "start_line": 83}, "MagicNumberRefactorer._generate_constant_name": {"executed_lines": [139, 141, 142, 143, 144, 154, 156, 157, 158, 159, 160, 163], "summary": {"covered_lines": 12, "num_statements": 20, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [145, 146, 147, 148, 150, 151, 155, 161], "excluded_lines": [], "start_line": 137}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 60, 72, 83, 137], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"MagicNumberRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 36, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 56, 58, 62, 64, 65, 67, 68, 70, 76, 77, 78, 79, 80, 88, 89, 90, 91, 92, 93, 95, 99, 100, 105, 106, 107, 108, 111, 112, 113, 116, 117, 119, 121, 123, 139, 141, 142, 143, 144, 154, 156, 157, 158, 159, 160, 163], "summary": {"covered_lines": 66, "num_statements": 77, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [81, 96, 102, 145, 146, 147, 148, 150, 151, 155, 161], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 60, 72, 83, 137], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\reduce_parameters_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 35, 36, 37, 39, 40, 43, 44, 46, 47, 49, 51, 60, 61, 66, 68, 93, 97, 98, 101, 104, 112, 114, 115, 118, 134, 135, 137, 153, 155, 157, 159, 160, 161, 162, 163, 165, 166, 168], "summary": {"covered_lines": 52, "num_statements": 54, "percent_covered": 96.29629629629629, "percent_covered_display": "96", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.29629629629629, "percent_statements_covered_display": "96"}, "missing_lines": [63, 164], "excluded_lines": [], "functions": {"ReduceParametersRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "ReduceParametersRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 35, 36, 37, 39, 40, 43, 44, 46, 47, 49], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "ReduceParametersRefactorer._create_parameter_reduction": {"executed_lines": [60, 61, 66, 68], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [63], "excluded_lines": [], "start_line": 51}, "ReduceParametersRefactorer._generate_with_config_object": {"executed_lines": [97, 98, 101, 104, 112, 114, 115, 118, 134, 135, 137, 153], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 93}, "ReduceParametersRefactorer._infer_type": {"executed_lines": [157, 159, 160, 161, 162, 163, 165, 166, 168], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [164], "excluded_lines": [], "start_line": 155}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 51, 93, 155], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ReduceParametersRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 35, 36, 37, 39, 40, 43, 44, 46, 47, 49, 60, 61, 66, 68, 97, 98, 101, 104, 112, 114, 115, 118, 134, 135, 137, 153, 157, 159, 160, 161, 162, 163, 165, 166, 168], "summary": {"covered_lines": 40, "num_statements": 42, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 95.23809523809524, "percent_statements_covered_display": "95"}, "missing_lines": [63, 164], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 51, 93, 155], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\refactorers\\simplify_conditionals_refactorer.py": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 16, 18, 29, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 49, 51, 52, 54, 55, 56, 57, 59, 61, 70, 71, 76, 78, 97, 102, 105, 108, 125], "summary": {"covered_lines": 42, "num_statements": 43, "percent_covered": 97.67441860465117, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.67441860465117, "percent_statements_covered_display": "98"}, "missing_lines": [73], "excluded_lines": [], "functions": {"SimplifyConditionalsRefactorer.operation_type": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "SimplifyConditionalsRefactorer.refactor": {"executed_lines": [29, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "SimplifyConditionalsRefactorer._get_max_nesting_depth": {"executed_lines": [51, 52, 54, 55, 56, 57, 59], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 49}, "SimplifyConditionalsRefactorer._create_simplification": {"executed_lines": [70, 71, 76, 78], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [73], "excluded_lines": [], "start_line": 61}, "SimplifyConditionalsRefactorer._generate_simplified_version": {"executed_lines": [102, 105, 108, 125], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 97}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 49, 61, 97], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SimplifyConditionalsRefactorer": {"executed_lines": [16, 29, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 44, 45, 47, 51, 52, 54, 55, 56, 57, 59, 70, 71, 76, 78, 102, 105, 108, 125], "summary": {"covered_lines": 30, "num_statements": 31, "percent_covered": 96.7741935483871, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.7741935483871, "percent_statements_covered_display": "97"}, "missing_lines": [73], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [3, 4, 5, 7, 8, 11, 14, 15, 18, 49, 61, 97], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "refactron\\rules\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}}, "totals": {"covered_lines": 5531, "num_statements": 7974, "percent_covered": 69.36292952094307, "percent_covered_display": "69", "missing_lines": 2443, "excluded_lines": 6, "percent_statements_covered": 69.36292952094307, "percent_statements_covered_display": "69"}} diff --git a/debug_syntax.py b/debug_syntax.py new file mode 100644 index 0000000..7a95b16 --- /dev/null +++ b/debug_syntax.py @@ -0,0 +1,32 @@ +import ast +import sys + +files = [ + r"c:\Users\Shruti kulkarni\Downloads\Refactron_lib\refactron\rag\parser.py", + r"c:\Users\Shruti kulkarni\Downloads\Refactron_lib\refactron\rag\indexer.py" +] + +for f_path in files: + print(f"Checking {f_path}...") + try: + with open(f_path, "rb") as f: + content = f.read() + # Look for non-ascii or weird bytes + non_ascii = [(i, b) for i, b in enumerate(content) if b > 127] + if non_ascii: + print(f" Found {len(non_ascii)} non-ASCII bytes. First few: {non_ascii[:5]}") + + ast.parse(content) + print(" AST parse: SUCCESS") + + # Search for the string the user is seeing + if b"PY_LANGUAGE" in content: + print(" CRITICAL: Found 'PY_LANGUAGE' in file despite overwrite!") + else: + print(" 'PY_LANGUAGE' not found.") + + except Exception as e: + print(f" ERROR: {e}") + import traceback + traceback.print_exc() + print("-" * 20) diff --git a/last_errors.txt b/last_errors.txt new file mode 100644 index 0000000..e69de29 diff --git a/refactron/core/refactron.py b/refactron/core/refactron.py index 48580b2..5ab56b4 100644 --- a/refactron/core/refactron.py +++ b/refactron/core/refactron.py @@ -7,13 +7,8 @@ from typing import List, Optional, Tuple, Union from refactron.analyzers.base_analyzer import BaseAnalyzer -from refactron.analyzers.code_smell_analyzer import CodeSmellAnalyzer -from refactron.analyzers.complexity_analyzer import ComplexityAnalyzer -from refactron.analyzers.dead_code_analyzer import DeadCodeAnalyzer -from refactron.analyzers.dependency_analyzer import DependencyAnalyzer -from refactron.analyzers.performance_analyzer import PerformanceAnalyzer -from refactron.analyzers.security_analyzer import SecurityAnalyzer -from refactron.analyzers.type_hint_analyzer import TypeHintAnalyzer + +# Analyzers are imported locally in _initialize_analyzers to avoid circular imports from refactron.core.analysis_result import AnalysisResult, FileAnalysisError from refactron.core.cache import ASTCache from refactron.core.config import RefactronConfig @@ -178,24 +173,38 @@ def __init__(self, config: Optional[RefactronConfig] = None): def _initialize_analyzers(self) -> None: """Initialize all enabled analyzers.""" if "complexity" in self.config.enabled_analyzers: + from refactron.analyzers.complexity_analyzer import ComplexityAnalyzer + self.analyzers.append(ComplexityAnalyzer(self.config)) if "code_smells" in self.config.enabled_analyzers: + from refactron.analyzers.code_smell_analyzer import CodeSmellAnalyzer + self.analyzers.append(CodeSmellAnalyzer(self.config)) if "security" in self.config.enabled_analyzers: + from refactron.analyzers.security_analyzer import SecurityAnalyzer + self.analyzers.append(SecurityAnalyzer(self.config)) if "dependency" in self.config.enabled_analyzers: + from refactron.analyzers.dependency_analyzer import DependencyAnalyzer + self.analyzers.append(DependencyAnalyzer(self.config)) if "dead_code" in self.config.enabled_analyzers: + from refactron.analyzers.dead_code_analyzer import DeadCodeAnalyzer + self.analyzers.append(DeadCodeAnalyzer(self.config)) if "type_hints" in self.config.enabled_analyzers: + from refactron.analyzers.type_hint_analyzer import TypeHintAnalyzer + self.analyzers.append(TypeHintAnalyzer(self.config)) if "performance" in self.config.enabled_analyzers: + from refactron.analyzers.performance_analyzer import PerformanceAnalyzer + self.analyzers.append(PerformanceAnalyzer(self.config)) def _initialize_refactorers(self) -> None: diff --git a/refactron/rag/indexer.py b/refactron/rag/indexer.py index 66df3f1..327d8d5 100644 --- a/refactron/rag/indexer.py +++ b/refactron/rag/indexer.py @@ -1,3 +1,4 @@ +# FIXED: Indentation and Syntax resolved """Vector index management using ChromaDB.""" from __future__ import annotations @@ -5,7 +6,7 @@ import json from dataclasses import dataclass from pathlib import Path -from typing import Dict, List, Optional, cast +from typing import Any, Dict, List, Optional, cast try: import chromadb @@ -281,7 +282,7 @@ def _save_metadata(self, metadata: dict) -> None: with open(metadata_file, "w") as f: json.dump(metadata, f, indent=2) - def _load_metadata(self) -> Dict: + def _load_metadata(self) -> Dict[str, Any]: """Load index metadata.""" metadata_file = self.index_path / "metadata.json" if not metadata_file.exists(): diff --git a/refactron/rag/parser.py b/refactron/rag/parser.py index 95d6864..96c2ee7 100644 --- a/refactron/rag/parser.py +++ b/refactron/rag/parser.py @@ -1,3 +1,4 @@ +# FIXED: Indentation and Syntax resolved """Code parser using tree-sitter for AST-aware code analysis.""" from __future__ import annotations diff --git a/scripts/analyze_feedback_data.py b/scripts/analyze_feedback_data.py index a9e3e5f..a40f029 100644 --- a/scripts/analyze_feedback_data.py +++ b/scripts/analyze_feedback_data.py @@ -19,7 +19,6 @@ def analyze_feedback() -> Optional[Dict]: """Analyze all available feedback data.""" - # Find all pattern storage directories root = Path(".") storage_dirs = list(root.glob("**/.refactron/patterns")) diff --git a/test_output.txt b/test_output.txt new file mode 100644 index 0000000000000000000000000000000000000000..5916cf49c3f2ca6e64f3d0107c29008031af0091 GIT binary patch literal 28808 zcmeI5Yj51f6^8k_K>x#5K_In=*ScFyqX4cisR7#!Y^OmH1%fQevKn1nNsg@+`Ri@p zXO7OE;fmyPce#p-8VfDSB{}oXxt}vb>OcS9EGGT*ii={uIM;Vi-|U?ihs9}el8!Hm zo#IUA&UG|t51Ykri{BJ)izBslQM^{$XT`DFd#`>@ij`tn`?vJz72g(@y5h}M?<+;W zSSnWay;yvqvv1Q`!+NW@n||->Zaa5Wyekg$xl~I_I=7zAd&~EWFN-a;f2Ot%^u3c1 zJQ9MVG-l34-z%x#t*aglPhZ!4&>v&j)&0A|xnJz5g)_C?Q*SxG?d%%vpx;xCEv`32 z-zA!#>3geqp%%|HiVL;bD}K`6k-nk-iGJBC9;k))+CS2EM=f#Bb76R$&|IWGPKs@v zKP+Bd;e?N`b$pP%87o*p`Zitvcm1-f9{c(`6-|x?yn>qW=RDo9qrFQVpNhJ0WJz@A z8`|&c*Pr$K9sRPH{)|SaYK_7Zlw?Wx5R9q;ScWAzJdcC~+^){jN)eNl5;ZJech57P0uemU29q|)%XUOgxt7Jn+f zE51>`J>7xMz0)+_->-ks8-e*T0uh=Q!9@Wm7WOEgLLe4xH)%dBj#WMyfmY-MSW zXa!9mhPiHW`w7WhCCYPIm3L~oP_=EoPyRZLJjS&BhAKjLJgMM$W(0zM#w4l)i-~DRyhI7K0^CsVS zK7FS4o@(5?iZ+~zMq~UOw7`FYJs+L(&wTl?pX!NH!~%EKe@~K0%x4lnd*MNcc?*4s zd$`JdVR-~O>X)JgSHk}t-E~>~Q^)i~ghqTp+`6ymgrj%*hECg=$HlL_O1~4&Sxjma zUMO8foKr0+_2?d}H+ugdzF8Cm8f5>0+9oRcL2W{5T7NBs#B~?Nk0p-zc-_MF6D=+J zw7aDw&si-J(%v3>*BzI5}8#kqoO!Mw$_sc9NN5L0k$qCH)T*Mr0FBwG5@+Zk6TE zEvAhZEv0>|0n#)#Vw`B^PNFY)A9)jag12RxiA~{-J#iEtX4aMa=#}k`EF5$ux4M*- z=qXwx$G40Od&D)zS7W@6842s99OptUps)DTX1X3<$r>`_tuqRK$IskKdr0Ha$hHg- zvcmPAg`FoWz{ou(YDQ#Sz&oGojw(HSktk+Y^u?)%#WPvz$NK)JQcJ2We;YfER}IUD zN2;EmJX4~+oN(XQ=&CG{C$y?q}C&&xznB(n|o`nrl3iFhC1up^G3 zxo~n$M^vD&N*}b{Nf8uQ7HdoVO5|O}R>hmoG`6x#V;RijV#|qRkr3+#slbb1!`yxo zt#W03_EXhwwM+zk;(U&$e}%`#-HwiJ>2Ob6rb>)v`>1T(RU^RiqpL@WB4x`|#%yi0 z!&+~jTndS?57qa3>Ea`Cha6*A^T7MHMv;GlqSzXa(88d2J|5G9T~V7cl4sK5!%};2 zJle6!;zPAb9Ap*gKxY;PON72dT`Y^$vS}Hsh<~J_?EB3%)^$~Dsa-Z$mSZxPjW+S1f`$ZA%AXdO>4f&>Q`Qygr`<_+AQW%J&4MXC_R63j6Vy-4+vBsz zzG4Q(Mn&vEu0&>xg{B=^IZQb=v$XtDJ^$tS%G=L%e?*skjo7Ii6~~?|1QZVGnjcZO zEcanY&D3qKIySclmy9aRLlF~E=fF~U&OB_hyglqBcF{8b`aF=V7p_)kkltET7Dtv> zB?;{;V;8crG$bkL!Ei3@BXKFSRZBk%=(|uc`>~MD5}6((Ik}YNf0fOS&{lr7FB?Yo z@Jv~|ZSQFn534U8>zBW!d>Bcys(W?y9eYG20X;xtj)wYtGWflpdU~V?2oB6Ak4NRu zTc9=t-))YT+WI4TNUGyLi@{w!<7L(oojXo)6ZIqfC%MzE+M+ICo|pQ*$L{&e^JejV zx`I32>yDU%o=>!*jhNT5Ip}#wpN*NeX)X8Vo7pNd=4g*~mWn=iU`d$oWA1`GHwU#! z&N44R^ng!hriAJd)w%LjRna4Sewrx9JZv}q2(4wjb@NchfjWPMuUeM}bMBTazxX(- z`L1ct$38sg4kdl9>z#Io*R#Or_Ym3H z>QDT=OQ&5wD?Zfq*%UJnL#&7k&I8AfUB<&xV>j)XE%vJZ>TxegSC+N*(qf%ou5@ia zX$JEMZUJVya>aDK$udVoFiKPK<*dqJ#VnD`cJhcnUd2ZAG1+R~C*s~KRXDMd)X}}t zxh0!pvy#4olvr{-X+V=_1j#gO>?|6z)xFgGvCdelV}0Nnb?|B0w{_R7x82eo-&SFN zkhE||$ImrxB5;%H@*3#!k*|oxZ$P(O(r9MJS)WWKK;@W<3f2$wdx_FqiKjDb#E7xP9 z#L;biJa#f!1rIS$KT-TZ=aKc>={KJlysb8fo^I*7Q=NmOZ?(@VL^O-}>fkE55qw z3|!^!neM8$KKA z-YIbp-t!?MT2wuu4k3~3P2qG*hRlyfBQ$yT^{jZ;S<%%oO^=XuwAgiKj?4JXHd+tk zezSTyzh`-Hw4tcCiOXdS7NJDOi0)gZY&x{m9@ht$dcw3ZI9eYeht&v=lQkrRAr89i zfSwz|7&N@2=+=*x#-<_h0UkHjf=`5xa9zxIY5b{hg&+m4J4h}D8 zRAZkSxP8dP+an|^!yd9qtxJSxvrC@g@}p65NM5=tOtaMy!<75wUdc;0aXAp8AFMNZ zr)mb)CGzENsF`~aD4N^vaS+<7Q#>-OhP%=dXjtZQ`KTR2Y6+GRka?D$yY2!jQJ`^~ z@A6T5gjgA}VQO#iybENG3QyMN zK`Gx`lI8}&@)6fG(~!#7{*73h$^5d_=0F&E2vt^}5%x9C({p+w%S^C_ZGB20B*UZT z`%X4ydOXfw-!9AVg)W!#s^&Z;5K>FCm3`ggqq2Z@I9_7xTyNGI{Bn-a-zjl00~%rh zgRdYCirx|4`pBUgA#<$BR&2v%C`YEp3@d!57Vp{fw6@0T>A6qIE1dZ3wg_!?5%XwW zP|fMZ7Hb%u7%m51vZ{6nXO$@%(zTKW5R_KeZy6i5-&Lxi+JF1CD zXd4>l2yITSOKn*Zis16H@P*z$-?j+Dmq10HhwM(PH!{8w&jy#<`V=C<^172QX-M>y zVi7O;HOOhatT@r`85lh&~vq35E+3^p4@Ey5y* zZn&L$V$epk*c^R1LaUB+iO8kQxAyK#Kgw&y%~fJYIJ@d_U&J%?5N{KCd0$9X03^a zv3eI90}W>t;p7P0X90OFBuB{lLvlV}dvEl$>TK0LqbN>v5YZQ2I`=S5HQ1`&pkb_q zt-4|qp5SKe4X=ZZ3Iy|M<8v9UhHkd1#jA9zu!pjfpw4G+S?3V3O>X;-SI_Bkt?A!>^>ufbw%LQ_UrYwTQhR5&W0TzIJ` zzj@C5NoL#gG0twEdL|$1ffyo>zM}SZU$&zB^w6J$_-R7?Ub=yVQHkYk5ca+Z`|l_A z3>D8aA&Wn!=QJjJ?uh3lu~@uGFP?0={uCu~49}`f`aC84@c*>H|H+8HZtlNi`1{sf zgURx3_TJ{l>#e1EM}H3*Gcr}r#PgqWn&0Qgb6V}*DfnyC%HA4QM=7EP<}2boJ!J|_ zL!XE8s;o+ncg)VGN{nSlwmzl0{aL*!gSS{vtNipv4D1lk^y9U6w8t}~=lcHiMhxD# zF{?K*SbeG>1 uZ^Y>8%@^awNaSEVqtElMRNVK{n`4OA%TJiwv-CDbD(Kk6ar?3-zyAva>+|dY literal 0 HcmV?d00001 diff --git a/test_output_2.txt b/test_output_2.txt new file mode 100644 index 0000000000000000000000000000000000000000..105f5b94f0b8c7ab04af80a6bcae0c01e4fbdfa3 GIT binary patch literal 30648 zcmeI5Yi}FJ6^8e7f&K?pK_I25Y00`+PNM*>FNp!$4eX>r5eI@S$+8+R(tQ%&q=Xb+|uz4y?Vtr#ig!zebxJF z(JxktHT_*K{-j^uq+bo|jp9!FzOTFOx1-{1aiG_wT3XR>8|im%`CjpP@j~sNsqF*( z-AM=@3c*ntGrvXOtEt}?S3Me@zOH+(H)Gk={ky`sU+k%cGqv4QZ#lm0>>BQ%-&2h( zt~W&AC7PeP@9hc7Y z;^yFZTO&TyNOuyoPSe=lt6j$RxnAF@4J7(*@knnddRoBi_c}jGt(Xje3kq?M_p>c7 zK(E(opOG2;_SE8u&iD20vHFEJyE;Bm>&K$@zNopaHqO$$2kHD=-<<1rq|)%XUfnMq z6n`ncE51^{J>7xMz11~al7VHt)&_JP?tLp!_)eluxs`8I-yqvpn{R}XR*kZzbGQE&eK>(ask2ils_Um}NE{C&ID#054<~i|@A73m$%7_VS~} zIF#(VS8YT458Yyz{T{X#@Ok>kIqvK!f+3!HthnKstkHAHYy3LP5eT={+N4nvF{8yb z*AX*qCyfCs9{ETyALH*8Ukp&3%ccaP>IiYtF(Q{X#wYr;++l){{q5=4BI+BJma~^d)V)$fJ!}=oLdisW zNfXFdN2BY0Lb6ba@?0MBZL-b8@%U4V=#Zm@0bR+s_SMglKFPBVbuFSMo{88`x?$K|m5t6HsGi|2`9x9rYe=U-h6Z&|<{_1}|Z;^|BRh?XN;8s;tZCCB9|&wI=- z`Uw0J)Zc3KTnYbobk}9^FP+m9**Li*(y^~hl(V<`3!Sz_PtUH1kzS_n@y%9$FbXe~ zt|F(cmXvyQkJKBzzZc&u<270BDQYBByeNK9n^2n8UkM>O{6+C&jhvc=>nB=PMG{ma z+K#lZUW1$4gZrQ+lK*eXl+%A9Wi({*cZy$1*xE`{l}`3jRvKBB<-t`gHsxKWrQgU0 z8t$^rp_{zjI!>d-*7mfzTRn16KNJ1EN`rP-#$A<>ui)rIU$7vsHfHWI{uIP(X4~nO<)Q|M{t4b}Yw)`H6HreUn`cid1KF&s0*_K?J^JCZOPsGV*q5<(q zcul0is;hpTe};8I2C!Q(zPR7KZa-_0Z zF*5QS`pgKZG830_1##&(syb!D77SN>^S+@NJ`Q`gq!(3ukA^r#3-f9(C>R}o;lIT~ zL@eMWqa!K}&x{4{NkXv|UO{k#{+V;k>c7n1Jkm(H?_zNGQWlrhk7=CLdySbs9u)u7 z2=E;3+U{3UpApvE{z>q7rKK$zY$8^4Pj5c^DQ1C_3p!)A0ju<0pF1gn!pdT8iC>Al z%h=kA|k3%^1luY4Jg+JvbiPY|--rSqx?sZT2zHnT5d;q3@PKQ*oqK-dIKa zBeREo+&rJQp_w`6Ihrug^0r>HRgvaX=?2$_T0NS_h}%?*=F#u0RU*SwS0l8q$Nu?=zPXp;4D4w{;>>+e8(2@39ykJ}U+T)AMR)UD z*l2iQSroS2tljXO@oH-0rK~zuiWzj{KP}pf{f&VqtZ#*x=c*Be1;#@DIu(@lmKBu$ zw-}uW8QHN_MJ@r%!BxjJ5!DapQpCwv9pbgiB#l=6L4uIOYT5W0&AXoS8Jd#ED&0l% z3s;teC>HKuoh?W5dP^SNnoY@9)ez56-=M}q&gK;cct2dfz^WV1>m#yydoV0rb(wlj zrERv+FQguGpbtZMK@R=@JvWbkdPSR7P_EXRtv zF!lPXoP1HEM|!yTmb}k~s?+OwG261C*NWcD`mH|lX~Q!gMe`h2-jd}mu7UEVd!A2FKQV8Q&nEkd85kQCu>-jhnK4>QJG62rzLR_O(>K-g zUyiT*`Kj)Y=(4X7JC&p2*pr2T!XaIYW9pXWKJ2WSy3JL`=Jw!{QH6OZVj}7sSPIXX zhi#U(hn>VOTIOG$2a@%|)#?n=Tf3`kXp5RnRVG;_3GFOn7qYT4Bq`{@a4zg4aVfJE zsy__qyHqjz!I~ZPbYJvAPA(<+U!=Mi_GUjxZ2oIsHjM1yspcK+^R8BGvijnYzWIB~ zhmka^x>r}y47gk@MCW}T3rZ?y64Ng#7e<;*c z$DN1V)0IhqNLBpOxv`U`|_=9#V~WU$NH6uK6hYA_H;dS7u>lus8#YSo}TCd|G-QM)g$V4 z<*TZE2YinCly3YHTFZE;zf`ReH4fDKtIf3P-Q}ZP`NhXs&39c#KK9|&xKPs9#Sd35 zw=|=>D2c<`;5B2e%RI$!TZ>8RqCF(3x!!4acs&b@eh-nIt@I~ObLq6}=f#J*KAU2O z+r_3z=2Ly2!yQTRM$+9TpAM2)RtH)fYkN?bt-!BfXOHzl-l*Wu(!T8uV$J>wz4>c% z1NW2t*wOhjjhi`Z^H$}ZI^{Fpw}Z!nZZ~9$nA2w$4W5&lH?<(_Ht6>frMVIrF+0kL zUg&rH3la6`Z%7hY=!0YD2YX^R2i2&__xJp^$4%sNU(~`YGVdDJ|9c&W{8)s8jlC2N zcSXfhQIPl+9}j122NW^DtE2@HpeuJZLbje(`;3`=i zefkcv*(?Itq9MfEAQzTD`x?dBS~rV>=GMPPdxfe^dl-o#YzLt27mPKb#A#N`CMG)4 z@v^S1@0(xXD(|Pd1H0r>b6ua$6ECeoOP^1Y)WZ#%88Cjh>>+<2<_m<#tFOMpzOYUZ z8jsrW`B3+EiF@##*NUWIS(T7Fgv8+2h0`$^GCv!S(B#=y;^JNBMOVi(J3>|fW7nDU zF5@@bXgy5&mr7)Q&#l4PrsDM`E|)P_gc7+fx^FeU+0fpStWjI>*X^`Q-Oi|=PLA+6 zSwnI!;-Je8=((9;>WOM=1GMBklOZHNz~ja$*4g>JqO3i*ydtWx(%)Xhev>1#7!#~S zLbKD5-SS~=z?7e@O^6V5XIIe^(J~lk)f;R|VCsp2p(&uBjE3m(Zi+~{l0kN%Z)RL( zwjpfK*BA@6&4$G3aEV&FhTy3PG&8*uhsrgxJ&;%yVoQC6lN*N)V;Va~3 zvCmGQ_*}~*4{scDczcXJEF*-LWRKg5EQq(eLrH}y@RrY-BZpChJh_6WOmv414&TbC z#&LKUGVvx|E+Zr>!wRy#u1kbyvrC>)($B`pA$jSpFwIv-4AVx&Wu7JwJa6K1AVfb{ zA@f$%46IA!%iT~j_aaawDq!hWY#;AE5%4>J1TRzeAW&jwFJuu$UMtW2k8PU zQDBU*eAXTzR)%bt+8aFY0-2-2)A=!6&d=H*^!4BFiw`7=mdAI26O9dfSU$tQ)LWZf z*_Ey(E-2+kwg$lwme07R86lOg{cEu{)A?nq&4DoT5UQ*`mrX^O6<4!!dQhDN!?dFzwc_36qp8S|$Afq_{Rl3PYD#XgH(JpU z3&{QlkRDvciCtQ7d#;6JUdwz6v0@u8Lpd@%W?11fwRq2-XSFp}PtSb{D?A)6KD#YK zTNlMVT36h46j;OHE4mzb$*S5RoL8o7C|OVIc=-&AOi7O;HQ9Km8+j;|$Kp0k-rG z5fqH*i`XXjDNQlIT)?xX{UpZc^1$Ma@TZZhqmLjwIhDU znzbex#_C;c3^bfqgp(tjL{q8}vi^{q&)41?eXTm1*H3&@<0wva5YZQ2I`=S5HQ1`& zpkb_qt-4|y9_L^FIlK-wY!CBklXDrZhHkd1#jA9zu!pkKpw4G+S?3UuLvvN6sxN3r zghSPR^uNJW-O+}oxhEd3a5nkns{TO8_x{9CdpaZZw0fs$)1;Kltqqw}M2lqilXIE* z9-A8_$6|KCW+r*|w$EAF3{hL8c?}k86Phy4V%t*~=Vf7XT^Vm}KFmE8j*6WN-=_bZ zaaa4|^O0T0G4>=@1QA2zGXqikx+hyv-aYiSP(MkC-$^%+Fe`zhgv|Bnd%TTS$JegCV*pA_#JOqOr6 z_clLXZ!OI``V-ukk*V6v&;N64ei9-3wAwul@ztwfgSqzEDy7eW(}w=*t(UE&+nv-)~F==162mOBu2_7c^ literal 0 HcmV?d00001 diff --git a/tests/test_ai_autofix.py b/tests/test_ai_autofix.py index eb1fbf2..29beee2 100644 --- a/tests/test_ai_autofix.py +++ b/tests/test_ai_autofix.py @@ -1,11 +1,11 @@ import unittest from pathlib import Path -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock from refactron.analyzers.code_smell_analyzer import CodeSmellAnalyzer from refactron.autofix.engine import AutoFixEngine from refactron.core.config import RefactronConfig -from refactron.core.models import CodeIssue, IssueCategory, IssueLevel +from refactron.core.models import CodeIssue from refactron.llm.models import RefactoringSuggestion, SuggestionStatus @@ -19,6 +19,7 @@ def setUp(self): self.analyzer = CodeSmellAnalyzer(self.config, self.orchestrator) # Use a higher safety level to allow AI suggestions (0.5) from refactron.autofix.models import FixRiskLevel + self.engine = AutoFixEngine(safety_level=FixRiskLevel.HIGH) def test_high_confidence_magic_number_triggers_suggestion(self): @@ -41,7 +42,7 @@ def test_high_confidence_magic_number_triggers_suggestion(self): reasoning="Magic numbers reduce maintainability. Using a named constant is better.", model_name="mock-model", confidence_score=0.9, - status=SuggestionStatus.PENDING + status=SuggestionStatus.PENDING, ) self.orchestrator.generate_suggestion.return_value = suggestion @@ -56,10 +57,10 @@ def test_high_confidence_magic_number_triggers_suggestion(self): # Verify engine can fix it using the AI suggestion self.assertTrue(self.engine.can_fix(magic_number_issue)) - + # Apply the fix result = self.engine.fix(magic_number_issue, source_code, preview=False) - + self.assertTrue(result.success, f"Fix failed: {result.reason}") self.assertEqual(result.fixed, proposed_code) self.assertIn("PI = 3.14159", result.fixed) @@ -80,7 +81,9 @@ def test_low_confidence_does_not_trigger_suggestion(self): # Verify magic number issue exists but NO suggestion was generated (stays default) magic_number_issue = next((i for i in issues if i.rule_id == "S004"), None) self.assertIsNotNone(magic_number_issue) - self.assertEqual(magic_number_issue.suggestion, "Consider extracting this number into a named constant.") + self.assertEqual( + magic_number_issue.suggestion, "Consider extracting this number into a named constant." + ) self.orchestrator.generate_suggestion.assert_not_called()