From 07c1d72d76a21bcf92005350174b94fc9abfdece Mon Sep 17 00:00:00 2001 From: Michael Heller <21163552+mdheller@users.noreply.github.com> Date: Sat, 4 Jul 2026 12:53:33 -0400 Subject: [PATCH] chore: gitignore Python bytecode (stop tracking .pyc) Add a standard Python .gitignore and untrack the 7 compiled bytecode files committed under src/nlboot/__pycache__ and tests/__pycache__. Files remain on disk; they just stop being version-controlled and no longer churn in diffs. --- .gitignore | 8 ++++++++ src/nlboot/__pycache__/__init__.cpython-312.pyc | Bin 384 -> 0 bytes src/nlboot/__pycache__/cli.cpython-312.pyc | Bin 4808 -> 0 bytes src/nlboot/__pycache__/protocol.cpython-312.pyc | Bin 12389 -> 0 bytes src/nlboot/__pycache__/verify.cpython-312.pyc | Bin 9634 -> 0 bytes ...st_cli_examples.cpython-312-pytest-9.0.3.pyc | Bin 6490 -> 0 bytes .../test_protocol.cpython-312-pytest-9.0.3.pyc | Bin 9083 -> 0 bytes .../test_verify.cpython-312-pytest-9.0.3.pyc | Bin 10684 -> 0 bytes 8 files changed, 8 insertions(+) create mode 100644 .gitignore delete mode 100644 src/nlboot/__pycache__/__init__.cpython-312.pyc delete mode 100644 src/nlboot/__pycache__/cli.cpython-312.pyc delete mode 100644 src/nlboot/__pycache__/protocol.cpython-312.pyc delete mode 100644 src/nlboot/__pycache__/verify.cpython-312.pyc delete mode 100644 tests/__pycache__/test_cli_examples.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_protocol.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_verify.cpython-312-pytest-9.0.3.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6b02dc --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Python bytecode / caches +__pycache__/ +*.py[cod] +*$py.class + +# Test / build artifacts +.pytest_cache/ +*.egg-info/ diff --git a/src/nlboot/__pycache__/__init__.cpython-312.pyc b/src/nlboot/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1123b55ccfaa34d89b05f6b5cdb6483db627aa73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmXv}Jxc>Y5S_hmj4>eCr#+BdXC)RwN`s))Hp}I96PN7AF}WbI^H*5d+4(yxty6fd zh1iMdQn{<%6mQ-zkN0L?`~5v|_42rteFE_AhpvKuvORX>0XR_Lga?Y~fCf6Gp^j*z zV;bv(CIsfdgC|1Mb(lwYxlvPVn_-Q%v6WRr6f=RsRAMM~t%Me)DI00c=+nhQ9=F-K z(_gC6w1crhtCW{q+l4S~Z}Mw4Mzq)-Udg!;+^a82BWGgSw1eqND$aZ&tDVIp&)SqR zZY##xth)h2mxPgr*hAtWb>Ow7Qj9&r){U?`DQ>J51+I({Sln7%6o3D8ZHZM!8Iwjf rjE(B`E<4qhuar2$183tOTOK+13JD=^P<%kSf$}>_dcl2)`)>0CFxqjX diff --git a/src/nlboot/__pycache__/cli.cpython-312.pyc b/src/nlboot/__pycache__/cli.cpython-312.pyc deleted file mode 100644 index a7761c9e6efba959717110c645f8443e17859003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4808 zcmb7IUu+vi8sD|o_WIx2PMqe?rD2;oP=~rnp(!DhLLp5_NYj*rLXC>G@otiJyt}^H z35_l16rp=45)wuC&`5AnkdOe?61k`A!#$uo2~N5fyEf;r1l4T`)2L6 zon9)$NS^ujn{U4P=9`)C`;GtR_j@QPfB9ffR(%xpJ^8Q-QzPiTFM+s4iIhmEDTR*H zG@)&2Tij;0_PE__nK%QjJ?&5&afjlJJ54zz?NZn{YtoLiTk*s_Ks!ZO+N=2DKE)sR zD_opY0`Y*!XVXC?6b~tF@iwJB-mZk>VWlJ9p&W`If_}f~{w)*l6gklYZI>7jgQEAh zj(E4!Bl=d3Q55pqDCt-5>%LuI$8EYsyiI3q(a;a%BT5@yK~*&@U|Cc3nW)WRMFC4# zRwRQZbxu$fN}|>NLU=le2S)SI(asznVBVec{q8lk+cKG}>CY zv#(s5n4CUugswV6oveGq^oav%J4MlZ?*eg)!i~O^&FtS-<*5{rf1rqT!De~bYS(G( zvc&QQb&tTFXdD zSRp?(cWH*#7ECZy7LG5}2?~T1Pc2m5izOR0|bW<%KI$icYwK2Zy?YJp^I9~A{+2y*6y{ES4wA&NH|kJ1CQbyv_3|+ov(iYp$jnx4zXHr;00CWi9qb+so~g@ zv81NJC6O1>5?`Mp7g6d_jc?AyD-d@01&J4U9V2p4AKNEYGaIbA`Nf?oXfXJSq z0I9l&oE_{&WLFG#V-nOxx`R+f-G)Q?8P9gHAv<5z+qz)dsZ_?5zg*QjjkmIb9AuwK2KF z^;EgO64zIJWT?yyZ(P_39j=CsltM?gj+aA28&f-Bz8a2{!jY{+IXtp)@f%nBW_RV$ zvAf-4ca|!XZ`?im#xD0rkzX!za*>ruq)L5!wBmi#5)S8eMrwe@d}mD^5iyu9OTE4q4!aR2jP^nAe;`AcPPw#d#x zN7dC^a`kSx@49N*>OH$mccuTy?dfv=x#HzFi|OlsXVy?3ta@MmB3TCR3B7k8>YvMB zt(j^avdn?m%#NL)(<~xWa5Qh>L*$*mP~P z=9_uZfgiK@2TAU;h{TEqie-`2t~>GLmPpWoD-Takfm z_gwSaqAZ*&c6?|P!*J>kS-P$HAqRCHrSNfU1SWCFEO@vRKDg$)1!m63Kg`}z75sRtX^<3nVIhl~= zC+9B3Mo$l)QaWSM@tpJV;o-62;V6yBxqu!!QRA%(R^WmSZHVz_k;Ve_?sOex-A1+E8VW(Dx=5p?Tig$SHA?5j9w zf@XuYd~9Yo6eGIG%8-}HxrxGr3EfFpGaRPN5j+%wd<-k_V-5MiFEc&4UQJAo@)J>+m4(cU1k6l0Q;BnXUM98xuQ>r^x;BC5!k4~Gsi#y&>)!SS0 z_HNFXz5N^G_ZYV$w6m~ST}a(sNWHsUmR*d9T+JMjBF?GjFtz+%iQ@Y zH(TOnE0?cUFJCKNzERUUk<9DM$U zV>i&Zx%O$t_KTIk=ndva59RQ@8+mW=ox#oVPa~fn|Lpkf6Qz!)zc}(&T=C3Tm{)ha zzW@B_rTkr$?!m&;pP1_CbZK;{7W zz2|`5`#MPrf9`y7U}A{+a_H!VG5c3-eHTXTUyV3`HrPah>|r7iWe`a<$UN~*Bmo3h z?{nm^yaAx`I1m2}T#K^EJRPqQ!9h})6gk2M1JC|6x?++u=D!LvpmG+zbHTK%n_8~% zd7kvu#O!cNqrHYFkyupSYu zKdINs)N4Q4T(s>c3aY&@LkIV`5S^ueJk~+`?+sIo??&#fz55$a`2G3cT`7CuxcA<( KQ%sLJ@BaYZw{uMZ diff --git a/src/nlboot/__pycache__/protocol.cpython-312.pyc b/src/nlboot/__pycache__/protocol.cpython-312.pyc deleted file mode 100644 index 4dba46bd58166c3e43bcd796f37281526c5a3f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12389 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 Fe*-q@X{rDK diff --git a/src/nlboot/__pycache__/verify.cpython-312.pyc b/src/nlboot/__pycache__/verify.cpython-312.pyc deleted file mode 100644 index 96f8d77fe5d51e060375f85ae6a9a3a2747fecbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9634 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 diff --git a/tests/__pycache__/test_protocol.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_protocol.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index 51e33a6837e399768e3f8fed5213798728660909..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9083 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 WU+r