From bece99534588829ea47a4369c0cf504f21b71144 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 4 May 2026 05:07:34 +0000 Subject: [PATCH 01/15] Plan: extend test suite to reach >90% coverage Agent-Logs-Url: https://github.com/pyiron/lammpsparser/sessions/073008b2-5731-4857-b219-c0f9984e4f9a Co-authored-by: jan-janssen <3854739+jan-janssen@users.noreply.github.com> --- .coverage | Bin 0 -> 53248 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1344 bytes .../__pycache__/_version.cpython-312.pyc | Bin 0 -> 650 bytes .../__pycache__/output.cpython-312.pyc | Bin 0 -> 13431 bytes .../__pycache__/output_raw.cpython-312.pyc | Bin 0 -> 11505 bytes .../__pycache__/potential.cpython-312.pyc | Bin 0 -> 16622 bytes .../__pycache__/structure.cpython-312.pyc | Bin 0 -> 25539 bytes .../__pycache__/units.cpython-312.pyc | Bin 0 -> 8302 bytes src/lammpsparser/_version.py | 32 ++++++++++-------- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 183 bytes .../__pycache__/calculate.cpython-312.pyc | Bin 0 -> 20191 bytes .../__pycache__/constraints.cpython-312.pyc | Bin 0 -> 6406 bytes .../__pycache__/file.cpython-312.pyc | Bin 0 -> 12272 bytes .../test_compatibility_file.cpython-312.pyc | Bin 0 -> 22402 bytes .../test_constraints.cpython-312.pyc | Bin 0 -> 10211 bytes tests/__pycache__/test_output.cpython-312.pyc | Bin 0 -> 20722 bytes .../test_output_raw.cpython-312.pyc | Bin 0 -> 4698 bytes .../test_potential.cpython-312.pyc | Bin 0 -> 15711 bytes .../test_structure.cpython-312.pyc | Bin 0 -> 11681 bytes tests/__pycache__/test_units.cpython-312.pyc | Bin 0 -> 1755 bytes 20 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 .coverage create mode 100644 src/lammpsparser/__pycache__/__init__.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/_version.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/output.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/output_raw.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/potential.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/structure.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/units.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/__init__.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/calculate.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc create mode 100644 tests/__pycache__/test_compatibility_file.cpython-312.pyc create mode 100644 tests/__pycache__/test_constraints.cpython-312.pyc create mode 100644 tests/__pycache__/test_output.cpython-312.pyc create mode 100644 tests/__pycache__/test_output_raw.cpython-312.pyc create mode 100644 tests/__pycache__/test_potential.cpython-312.pyc create mode 100644 tests/__pycache__/test_structure.cpython-312.pyc create mode 100644 tests/__pycache__/test_units.cpython-312.pyc diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..cc138a2f9a445440b993141c2b2251a3f0c8d24a GIT binary patch literal 53248 zcmeI4ZHya78OLYswbyH}z1LoYb%cTWxKkB7r*1``J&<4dcm;$&-6pz+O~D~Hf{ITukF~T`Dt2DQlq86U)!qL z)|6H;Y;DXe8k$)iH4D0Hmd7=B!U%I$9b=S_S(HYj7SA}~mFHVIbCgQC#yCk-Y_p`> zGum^;OrMt_IGbxsyM6+R80L7H=g@kB;=P(}j2X63E*Oq)MUOe!o9zAm_mWb!vr~B4 z@O;wk0=-f#-cUlrmF;6BRIuz(ZhhX?%Y_NU>C^ND4+|FAIqmx1+E!`MwX~vH_S`Hx zrfXVd&6qX{Ro583rGtGOTDTCrW^YLA0C(tsUotpX6P-rkTa*m42ZhJTxUv;uZ4~6E zrox`h}}W0E$Xu2Z%cKC$a#(WrK)A~VAWWt z{64Kwvd?p)Z1ri}35tOGQ}OJkPJvNW8q?0fB7Jqr=~dVA_H$JExgq*cUb-tGW!J71 zUOwmr3dfVno3694A-4q0Lh>S^!;dc>H@ua!1_^IP#iC}7c}<3w*8Iw$Xl`yZgCPvv z<_%4=f{bM8vPK&>mTb`SMJwMLYhJ`S1~m}s3&Lz;)pCJ16^Hv!uqF*#A2$Yqqkgxr z+<`=)GbG2e+tw}?Itw9?8(P>**1F$+>WX35Za7S9+ju%>iJE7%4d48~H=Fd{Z_qgB4l z!*nFL;RD^k`w%^Ty3o&W!J3}YSo|x`<+wHp>F~uJ@hr$jkHA8 z4F?-Rwu^dc`ij&XTpV~4L%!>uf%k}hwdZ|wVXoi{QnHs%@CEf6qZbws009sH0T2KI z5C8!X009sH0T2Lzl}8{dLGWPMeR2Vpb_fB*=900@8p2!H?x zfB*=900@A<0s$quMhJffh$N${<=|HUe*Irj?q=$1>ZqE?{3i2k=C1S~($Azb${UJB z2e5zu2!H?xfB*=900@8p2&`ZNdliw@h6g9Ck}+sk%VonJoU-ia28(*BRBE6X@P>y4&8&oAiK;nL)?3s|A-HJwW$#?@W>S+P1_imTQz~wQ{6qDG*AXZryfB{way%hn7&@yT86Nvpr6_ z*|v1)i3OgCJ7Xl(US&7O&R&t^mNGC4da+O~(gOhq=QB|f-_(}dt+kcQnS>#iBkdg# z(q7Y+b}pE%b2XuTwT5l{`oE%dGWB)UQ02^T(|glLl+LuO98)TpeHqOES8z`c*FXRS zKmY_l00ck)1VDfYJS*0Qg|=oZtuvwKIh^vCNY6xTOT2mhpV}qX?rl%5W&WRhRIGI^ zg&xh*mtSj)Dj8_xgZ?N@el?8KHjFq`N9;$E?~ zsXez_YpZGgAKfX|*0iVHH2;t6AT_zICe&mbp8tnF9|S-E1V8`;KmY_l00ck)1V8`; zRy2XA5M^n8{a;Y8GkReG0T2KI5C8!X009sH0T2KI5C8!XSb+qh(X`C3|EDr}rv6X; zuX78pCg zjy%EGmX03b%d_Xt+;^Nke{ofXWFqSmcMD8l5jJ1^v zk(2$YJuJ3GI4)fJMl2@CwM^{Qsq~?fjBVaLIWqjwgMW2uEHW9HJ6-R5NaR9s@!!{d!{&aXZT;fk->ziX z{Lwdm@xEOjpO?tm_ui3SfA?tJh)1pnvro$e`b&KZ+ZZXn!uo`cc$7@eLw6+S z$1Ncth_ZaokAB&y@az96^><9Yre0Cct7p|y>c7-~s{c^mRF6_J77zdd5C8!X009sH z0T2KI5C8!X0D_Ew36w~{1p6_0zXSj=0AqPL1hy;US4(r*CX z^?%l}T#n$pAOHd&00JNY0w4eaAOHd&00JNY0(XJ{zy6Q;|D7O>bASK{fB*=900@8p w2!H?xfB*=9!158`_y1%5zkK|0W)J`Y5C8!X009sH0T2KI5C8!XxDy2a52>u_x&QzG literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/__init__.cpython-312.pyc b/src/lammpsparser/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..505bf644bcbdd60209fbee5f6ccd25e144ec141a GIT binary patch literal 1344 zcmbtTzi-n(6uz^QCbgS{Qp(Q?P85WKP|_l?AtXeRSi;Y;csUvSTnu-ybv~!Dr}9^@ zA~q)e5T;HbGcYj0R6q#C#5*Tx6NFf>a_`=I-@SL=v%kD)G%N(q>kB`_&lQ9|>R|F1 zW9QooaGoO{`IsXI!)|axn2sqbPDNCmD%P0E=S0n^iMmrS;|iY_mSdNGl`n{f(-2Lk zDOyge%+2vbV$nGae$B6M8P3uc^50*M>`yKo_!G}L3N;qg9LsRq{-o2l z+h$SoT<%ff7mbk<_Cpcotgy>4QLYNTwo#nqt`KoTgOD={XH@9&Fb6Q|7pG@2#bn@m zj0S1n(|8*fOR*~xM#tx(RK=-+yO+0^qH&~HU$>)=GTL_qD~`>keOI}G)WFIBE`^Xy z744&N&GNPk0UTdbB0x94>8Bzl>%`@pcxj>{LDtvSh|YF^3kiLqvY3%!l9CKo4l5Xv zAR|Fe217E)$RM|JsSBux{1A|Jl0>pB4I(LAMR?d}5OFJC9d{YCA9D_P1kA^5 zt=t|R(l5tqThauDNRT;_Rc+?A(fXHj+SI@lC;swXONk`X*7(tx50WUEdMcHyeY{v6 zeWbEpcIbe~L`!L5I$fNbjyhf>Vi4S;kcTSkXnCd_wD1Sd;>N^ qMPsM&)v7ERJFUG1)H?OHxw_k2ecSBrHoH6aSHrfAXEnJ3?SBI_HJfAr literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/_version.cpython-312.pyc b/src/lammpsparser/__pycache__/_version.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04f6a5fae4b4c4b26375acf39f4de029bf0870ca GIT binary patch literal 650 zcmY*VziZn-82!$YB}74duD4CVN-gT zB}r7!h@s7xH$uq^&NUpyRV-({#{WJ_3+LQH>4oEY-Ur^623;CVBvIPS(vTaH?MQZg z+k5G;@M!pa#C8sbueJ|{JFd#{OW~Se5vml0xls39Q<#)~EQ^w3axQ;c=#&O=i~+j{ z77s^RhP#hBkJ3zTGF-qd%5e8~@F`2e0WVVwH#pAt=Rq7K$v7VeJV)k1lk>xe#O!Ci z@#$S>H_2EThp+h~yjZ><-^X&J5JLWFK%V|qb*nYeZ`Q!Hzbw`EN(C$R`ep^2b+=zZ szqWc6^y=WMQ2XJUUh_!{2)4?c{t(f|Me literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/output.cpython-312.pyc b/src/lammpsparser/__pycache__/output.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f486a0b7234f4449681543cd89a6b52ffaa5233c GIT binary patch literal 13431 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 c?0z-}bt^>kMwNIJEZ_fbgL2jv|Qw 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 H3i`hRj{~s= literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/structure.cpython-312.pyc b/src/lammpsparser/__pycache__/structure.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..278f6a88977cfd82eb4f3f330b56ddba87c44f20 GIT binary patch literal 25539 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 literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/units.cpython-312.pyc b/src/lammpsparser/__pycache__/units.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c1e2e249231a067663f677966aacd329c156d3da GIT binary patch literal 8302 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 g;;_lhPbtkwwJTx;TEhs$#UREmLI3~& literal 0 HcmV?d00001 diff --git a/src/lammpsparser/compatibility/__pycache__/calculate.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/calculate.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..95303027498f733cc96b2ea52f482b9bba054a52 GIT binary patch literal 20191 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 literal 0 HcmV?d00001 diff --git a/src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..828ff99a6c7d288d51386be58940a33fe154aa60 GIT binary patch literal 6406 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 literal 0 HcmV?d00001 diff --git a/src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1fce889cfc781f0f0964c966c03a70cf7b80804 GIT binary patch literal 12272 zcmcgSTWlQ1ku&>#FZV%m`4BlIC5kI?m!xGyHf<`AElZXt($T|`#n`u4?hMH#XCIoG zB}IA`(B%SzgoG1~91t4GAvErQ(2#)W<35zH=spe?+i$=^+d;wev%UY7{LlRq^?Ur#o|a1HaR*IN zKcrZSrFm*XP3Z}md>bYVkQ#Vn$~0l3)jIQp8On^jC1stkk}?x-OW7yvDaV8(<(zPm zGBfW=xhLEtZ{a;D?}V4+t$ahuH{m0B8}CmACIU2Nf9j8IW$j#$b#PYJ38@QyZqCFt zBGIe|zP#{jfRZ37@#%Gbu89r6FUSR_LTuyr%oELaifvE+rEH-z0KUOyqbjAtmRz7`vE`r;-T~Y697~AaXH2o=RoKSSBZB za}pFcPD6uiM&i;^GS0^)7h}+Z!-@qVDe3TRT#8R6c~0>yWQ4h7dOF4?1?VIrEGl+U z5^@PCCvb{g$E4U*Iy0}Am=+atE}fJ_#mT3#u|y`7il<>r0w-p2LV}BB5LxoW=>t_uHQf?R5Z-{b$VAur0NE5;<1 zH>De7(=2f3_UA^WAa9be6?tY&TCSSPz`Hk%Hw*CA=yEIVZ9P0Ni+4@ar@iU9AEeX~vts+wxF&AO{)T8_2esEkHvVXd-z zo)Q{m@2pp=ucoq_wIXM0@HBPpl|Q3Do7P?!U~Qzo{m<;rR^J~`KuTtPRjRa{Hb&Nt zZSoD*R{jjy96D_+tm8}O!ckA#wSRoZD0~`Dn6FI}C3|Jp60AesD|=bzY(S&GngV|{ zR=>0y>tfv+Z)g~&X&sY?^-dcqUq-fJu8*RGS=lQ!Ywcy4_1*Mq7-o_9ZI3pCN2%-n z>w$!Eno1bn14`coUd{XS0ol(6mY|JH-X9pQc}-Npm=EOrYQIvOhET(l4@$eVGT812+&7ejL&cu%V7F5?#8!b(((&WSyRmI_hX32qu}!cpo!V%ssWw)S zn>MLSD+kyfEniL9CT%QQnr}=SSa-frb_iy+Sq6>&Du9D@n^-H!d8IvCdp4W|E%f*F zUsqPWes1gL(;--ZyIN}aqjg74Yt-n_Ak*K6`E4WfE7ei)|H(&tt0QLHWjaZ#qb7V9 z%+vMb{<=Js_DEs9zg@ENN7UaMv|0Hs4eOGY_G|UC{aUV?N)=5`QM1u%sg|1^(sI>Q zc53*)r0s!f8!abOU()8F23bw3{b>@Xr8Fhmg`u6LkL~z6J=M-4>~V)QYQ6;Ljw5C} zHF{Y_%N?ZhO>)!h%NpKlDtkeH`4R@Ayd%I^a8ZG zNYU_j?aF22MQVW#?~DHw6u*Ok=LjQ$^~Q6|R4xrRVkXT<8HT&eC2|tS#FT#V zmOqgV|DX{Kve;pp(Xdb~K_jMoPyZf0$ZZeq|IVa?}ZP2=1J+k+O!NHd!kufgKf|)-b z8H=2VM2_&0vFS)eUA;&onH7fi)_12{<0IWEwtI&<)jS`0zgyx`Sx$(fJ>Nad92^{s z4)!zMSum_cwMZ>U$ACGKiI^yHSrGt-1_u!?9m@*Iw4@f~xAl{gGE-AAAdU= z&DGZv&j9G-q&Q4Q-E2)}(ySQMXxxUE;nML*o{P;KOtB-!;=EXcH>|SY5pX?*3C11Q zkm-Zv2oE#5Q-d76Fq2Ho)N*~TR3t@BYFHhuzNAc_>b4CN{zlFfqojn1FghPII=GHN zUuBJ+aqz{M%v3EARhT-#96xdP9D`mOmNMW}kv4B-x%B9XF}*_XNoNPGC)H-^oP-|cf!DX+jNX0M5AZ#FDH@eDze9gp((&CO2q|VcG ziBowEC`;wA1K=o5;Mf@GL1d~J5Bmd_LxcdM8W2B7KryH?AQ#K$;@NB*GbvSV#XwPU z!aOP)Sb&9iHZ~>1$)>o&d;)oOYo1DAtA%8m%`C)32*uQVrZV%Kh~L{5uYN|p&D^ zg3QeDIC+*KKx z#%##(*k0#8@*yo|A$C^bM-W-qoob47qD5doPN?i_UyW+D36q(eh435fCuo($=i^Bp zx4;^$2fCK48&VEhB2Ug_R4Ea1pa4MKW7(w~ms2xIqJ4}=4G%Y?ZS3@PxKT%- zB4rQ)ls;L2irHKVJ~9}w)X97*NVy#m$Oik>5LIKJnmAxj49?3oE1{MWwD1#|?4nMQ zYVH%03Aj&$HPFyi#-Wu$Lv5c{+W_cJSa8xc6eJG~YrKVOe|qDmBfO-&j3OgftOhj< zj?@F2CZ`r_QL5$v8NF(=@r$aVcZLJQHCQG#In97Nx3+-0CHmYEA11P?fc0tOZpi>f2TCIKVA0)|b6CVXKyhkPmy z1Oa;m_Snz<8y>~Zf@H#2GwG$a`M8iIYJ$zB;EVydhP#xD^UV8sMzL15=+7{GymSg7 zm?0+4^Psdvz{%`>Uu%_TFc*cXVv=BIf~sRKi#cWyeoOG1y3D|0O)W9=mznuRW`1eu z62hah!Bre$MDzrqCGZwlAPk>Ob4>RhmcjoQ2BSj^%%?_nJaX`zn~fT z3_?ylegM{p@uH*{@K~kJpP2?2@+g5F?69Q<5HBz=h`9&u4>P!A1szDH(WcqPq}!!$ z=!Pnjf@x$XK~Q0|nWPKtV&!jUFv*fAMKg^N^e9CAttXj0|h)9QS5|SZ~?<6#h6%N6*G|n#SeQf zDgn^Vp!RWrM8ycIc*#mue&*nkO=E#22cMa)_~Kz3!K=DaA*)VCEn> zydhL5eo_RCR8tlNeA+RUPVdK5xLYxy7E=rvQL&}sa~uf1sCZ&^2Utq0=Dg!bD{Gfr zA|@aV4$R%G;vi~NTu8!ElLbsda4VoH%O@qpqOzo71f&ASV-z!3vnf%)Xp!QturT1o z^C_HH#RR?$%nevDiZPqX3dm=I1)&}1<9v>L0|gtnaV94vdBuh!z(FY{)RT&}5;IUt zvl&=j8#-^O%@tDy$Wk1H3&`{fPJ&a+O=g8m0(^1Bm6+iYbCnQ=Vy$eH0-h>`TWZ#U zs1H2<5gPDCl!hO3s8WbD2zWkGRV0eL%1S66zUrsIW%+o5Q>>zD9|_&q62qtp%`5br zLeDE+41b_#NsvN&VK=Fs5-^^sSX2co;(>*x9iK|SI5RMlNpS-pRN#CJU@T=oU00%v zh58RsNYod=u_DZFaxw`^x;TK-9ROlA>0+JJZ_+D zfr7QQ)D&8AK5XjRYU(XE^=>xxEjvFoS-wB|m!pM-u8pJjO+ya`510IH8zWDQh9OJQ z6uB~12<%>;F59R;oSj8y=eqTtvv1=<;iVJB$cd7xdCS#NbafOu2X8eOJ72!<8ZNm#*DtJGxO#ER z-BomVt@qz^58OIcIQn++#kcF=+l!rt@43EN3WYcNi=jhXp^;)}WHa>5JBDKD^_3Ib z@$A3nj^28u@Y>npfwOgZ+KQbc_g#k{YP76fy6@^L?*j763}tRu9Vwa^7^ulx2o7xp zUn&M)y507R&YySwvZZkD?ai0ZZw4D8gKk#c)hjVs4j<5x!? z8=>M6Wwtw(oljg;Tknq|%iae~eWlK!QmAJ=b1QL6DD(~&L&HzZ#%2J5MX?9BY^_CG z>)JOrUMRLjKd}vz?EY2uuD!L|`?>#h@3@R@Yjay2(PBq*vtzL69DLB;x$gX__apBu z?3&rNhdKfi}3znwP9xb#D6kP+$qtIy0z7^^#hWa*kZH5jNnqMl~URrVDm}c+VnL6}e zXKs5B6!)CJeX+3T{4e)Iu4wCC_O7+)6n>?-zHb}&)DtRsj^4R=XSCq@_G6>L>nKwO zyW^3Cvb8+0d9Hg`yboNS>&I7)Uw>=mt+i8|uCVrfYUNa+W#7%$es=uh<6Hf&7W-el z{qAP}$xYWNOb?*2Q8rw{%If~bQ-Fp2qlLCp_iSUI+TGVCuTQT`U*}i&LRfZ1(G}71xIIlg1aBdsWo|`zZtE`j zn^3C#ohaD;wm*1nX3LWxW+c?O!_lry1L?>)8-LZ}I^FB|)gCM4i@j!i z?>C=*(VD27Q$SOS!aWS`EKrY|z#xRXJG5-TQgSYw)IO>lnWAm=xh8ctdh$)TIz%o3PnIq++RMMj~Pd{tvzjYcGv8c9<$>?+3) z(Tb5biX9lUlL-OOs{}lP6Hegk6sdrH7OXE~>f#x_y3Ompf#OC}NV{(Xmv9mp2%dqx zQ6Wae8P&F7;X8<6SbIHyjQDr(f<4hfHFd0;i;a5^G#(`o>^ls?nrg!wpo4>Y(O18!=TRW(?wfxO9KfCbpg{{a)F*0(S-;9hF z`cD;hjoq`2mm4ToOTiQ>yD589$rbwXfwjdS9WJ`UpzPNAimvYUGey_llB=`i>M7gJ ztreZ`My-qO{`7ex)iO$p$T{oo*DN+-nIvi%QfFv^FtkklU3~(^G02f!NSu_>5JsN#5AHdP%h~ApF$sm~X zG>p*s4BXZV%|u{oXz77|3?OXuSt@KA7x2D?fNMg;C2SV(z*RBwTw1_`QI)fgKrU=o z4O28PRbQ=QOe%J?w_^~?VuiP{(!hiD4Q0Z4L~sFKA`VOAWkzM@*RT>_|Be8kzzdie zw~K;xPpPYC{mkmcWoOCP{yAl{?^`}n^7((*{6X^%T9#jX;PtP*aCKp=>#7Wf;F|9P zZq--{G!ErraQFJz`@!%-9rO}>m3`1**-tg@-3s;>gZ-Pq=;yE<4z3(sKC*nNqG0}M~5~}fAq@zhJmsf0AUmjZ3SEFLvJg*AH&E%LE*ddfGw-4@!N#! zC3ve(?bQSAz+CW1I?v((^-cXKJ#R>#u50^TWvt_C04^ifL$zMjv?3*j^xkLSMDKLl zqvJHn6j0-k^eb%|&wiJN3w?0S38Wad7?d60;&(tAL2d7J#f;S@0fgXAWw7#iTpe+RYP0%msc5QpAx&&l%0%XP{8(|FOdLCW_2;0WP2E|kL z!_Y@m{Wn}|#qxS4J(ZkRl|EkE5^xVttY=j(E$mPnNjUZgzZXtKgg64=swkE$92CYO zPH+_Vn`3y?rkIj^CZSl)asq_E75h1e4GCS*hAlM_sX&z`+^69D1PD8epl9%f zA}S)QsPd=^VEk|(m z#E<8RiFr@-Wm| zFg2EfO|V(Hne|Z7y$?j(ynC50IbGLZU3qm4d@ZIF-dAw#TARM>>P466-IaIOz@^$- ziVk2gf7i8ND+Uj#w-kwD@!Vb4zK5=sEf-UCG3&njurK)lGumn`h1UIr$hYpa6k&&R zjuuR#!W@helo|ucxMC(J+)D#+Xox{UCX$ArSR?|6MgsWvVnRqlmbBxTXI$+yBK{7n?6GeO;~`}F}OKA9&T6dg5y~F7Q7S-1a~0DDG<0zSYpR37if2g z0_p~3cdcU`t#h5D`r&Lftf59idY{(_BCBxd1`!ca4WR_;fK~sWgejD!x*DC8ROYO& z1eEF>V-g4dGiT6%y7R7`yWTNZ|lL-fLGI0J0_kCe|72=RNo;xi36_lYm z6no%ZHqtcx8_ND0%KaP4_gkv%_mmsne>9nB!y^h_e{fLrN&2_cf!|Uu!GGBUrckN7 zx8w_zn%^w->@9^O;A)jRdP<=^k6PX^(oCtjwQR)9LvOHb#thg`4S}+iWI=BS%65`< zQ2y4n-5+$6o#Yct8gJQ6vL4FcSoV@^0~Ksvd;NovvX6ZFsg|zw;D?@afP4n2mR;pW zl5L_w?d4{Y4N-xn$Ap&h84GoWK2JY3dgzw&Zfak&w5#)xxsh%wg&2az2>FM;#?{0J aEswGM(O`%^MQ^-wEAjDrPbkcjN&FvYj%R@Y literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_compatibility_file.cpython-312.pyc b/tests/__pycache__/test_compatibility_file.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8171599f5bc38f24558373eb1f98f88b0243dc07 GIT binary patch literal 22402 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_output.cpython-312.pyc b/tests/__pycache__/test_output.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ceec5541a2064973d1f9d9a0deb4c079c02610b GIT binary patch literal 20722 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_output_raw.cpython-312.pyc b/tests/__pycache__/test_output_raw.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b5822634e74f14cfb6981b1270358fb536ce92e0 GIT binary patch literal 4698 zcmd5=U2GIp6uvXFvpZY5)IxVfjUTh`C#`s`-GV#&Gbe(N5BX2(OCang;ljq#ozgfC1(8PF~p1FVL z-aF@f_k3se=UA+TK>4QkpX_%MA%9?_Qp9p)`7~6n5{+nFj->r3m*%0(=L92^4jE!v zG{WgHM|ko&(S*xH3+ZHRV`ZV*^QPd})6xVdi+8XwEDK)5u@u!%9j`O5Qd?K3I<9C1 zBd?55%TOHsqT_YcMsliQ^q6T+1n%ZH$HmFOhRX#|eRT_$Nk<3Wb-XlYRk zfedRR$cPpODQOXq(FsY8da*OQ?Yv!Z@&)I#I-aR4ifc#UAJ4yh2E!J z<@Sf%B{EiiPncLOmpGWm-#{ra83HNXF7-oE|*vD7)s&{MQvnmSF5 zTl9mJZ+zwq8f-XVI6H+>v6%hPjmi9k_ay5pyI47_Tu^fb-JaYLuyk_8NgLoC_D&EV zk=yN^zs3)`?Sogsze%mPq|Tz$Ikn}6{MFeXq6^(e7o}I1VIKMKJr-`Tc+K{H4KEnQ z7on{vVkp``l#NU`LA}97haSd8l}T)^IveeA+xwf^h<3nk0UL#(gQ1#2DY9SgD|V5bm2(i4Y`s12~Kk@K=xR9b_M|xpAH&XF(Iueo;6}#yOcEmP0iQ-ocIT z;CUb{wE7S|t!8cA_FCRW+#ILWq71<@N1uRsHXe7oZ^fqqAj+D6w5(RKrMwE>f>Sr+ zvI8JKBEQAjZ^gQbv94>AZmjPv;i5gaTQ`3;RBG+MCqUyK_OR~zHpEZz`Njd^Yw=KI zWfSj)x2q2v+L}S5X5ven#>ZiYiUYK|(9ta5Xd%?lL`@jwYtC4Cc3`LQqwN&XjjTgg zT8D0Q9l9;+(A}^O-PV9^tmY#igN?(J-H2y9Wjm^q&7{WE(NSGv#F#>MOhTCTMBCBx zHthsIdtp;`EW>7D#}hMpE@yj@tf^%)aDBof7R6`F1wChFvQ8H2(Y$3t%`$CobHN;^ zYCaDe)H$z1W@WODxs zH*yV~t+1cH1Of=5t#@JfTW;IXl~9!su5F$=Gt)c$o*UmYd#WU*ssmFUQ|G3;X1ixk z&2A}4d#n9T71)40t+?@l+4Ci7Ur=NB^!skSe^z~9ss3Uj<;M5UcbBAtL6tqlMAD6? z=G#lsfxyT@&vV7Z^KSg`_xnoHOM#)8zG7m)jVI^1MQQ(op&P?53*Em!;tn{PeG&v9Io7?<^OhSMy297H|MVAIX8=b#q3@H}$FWbd zGn>BLc70n(>aWh4+B9`yI&mwWEXDy`0J}x$;3_z|0^9vRaN>J-N5I3TrQ{+1vRWUsw~*94zM~#BQ3%jCOBt#mVa+5XpeqLG?9p^rOF32w zMG*)pe!5W3O*zb6F&s9OzzJ8|Wi4H{o7ObF0Z2!OC!YyG+R#-qNZ7Osj^{J<1~yuz zIm62JjqnNeQ-5>&2pfQ{^(6N7xte(^CHNshQMZA0V zPaw*~e8O#e^I?dY@$5h`vDc07n+F0Mtj0DRS?D=XOdNFMgY&?_hZ}~D6caDG@t1$( zO489vj2xNLW?m?ECF{B0U#MZWe;e8ENV2md#l)Z+KlD8??F;N;4$Cc`q$s9p=!)XC zD2ice1)v|rYgH8dX!b`aek{-}D4s^qhhjep{278C0Wn9|g6tE8B9xiH&q5pd=`va3 zdGQ#xBvoY3lGGv|Sn3RkgG;S~m|Sj=#25WFP#u1ykbu4%gn=iTkO@wByqWi&vT3GF ziT?LFCWw%};deOuV)DU)?C41t?Os*k7XWskSD>$U$otX}|7BmMufYI*V6l__DR3P3 kJ8Ao!Y`VvXIQ}jH@z=(F?!`~vxYe<%*s<$x0u8p%zu$-isQ>@~ literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_potential.cpython-312.pyc b/tests/__pycache__/test_potential.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0cf0a31d5d44148653dff42e4dfc91e12c8d80f7 GIT binary patch literal 15711 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 WMce746JJkN`K2oVuPFFIu=qboU$}Gt literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_structure.cpython-312.pyc b/tests/__pycache__/test_structure.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc716d008245f06b2d102f9635068f2bfc8a2a1f GIT binary patch literal 11681 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_units.cpython-312.pyc b/tests/__pycache__/test_units.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72e21edf95e580688ac13014706f18994e17b9b2 GIT binary patch literal 1755 zcmd^9O=uHA6rP#QZZ@GICR!V$(m&8Hl*S6)#MVYDc<8B$UwI=Rv;_Rk&r3DW? z)Ke7?X`xV$l@>%4tSDG-f*_VuTBh~n$&-O7NKek}X4@3BMLc+L4)15*o9}&Z=gqu} zM8bfs$H#wU-yi@!Gsj@c>9pWLiT}c!K?#z`B{OTM^5%$!Z4GC<98bcUQ;k!j1T>I_DxgK-1W0oZk~k6? z(kz<+SQ$T=?P1kfwd#A?PYKxDF%>SNg_<`G$6&6;iEZ+i?e`3Fg8ywttK2a35!ApU zzd$RnHIBwWF67zuvJUMR|D-P3P`}Hw$535-A1*!*pPR2C`0Fl(|Dwy_Kkic8nXBKQ zr30kUAmI(oR&;uI_#zwqVQ*S0y+qJV4G%jKBD{jJ;t*a}u4+07d*5X{ZNY8&YQAZfgrPh+4z#MVp;T}4&kCkI7Qb9uiY$CE*uG1 zntqL-VulDTHG2qtL)~(*;^}L}aanYpglDG2sMp9P{qhJ*jOu=?LHoeeRl1Z<0 zcfld;uDd70+g;l)LHGXILCVbfO2r+p89DN>X*D8EqV?FpwOG$etmhSaExr(!JC++? zM&FKpi1n0XS0;sZv0*BDH#&>vgc)HL&yCKE&I`}bbMc9|)Unj~G+J)yD<{sbiv8O_ zoAE=X&ikFysp(S>lJm_K4#ZDZ0g8twg^B<|kw3-TMQp?+c6o1N$CeW16aD3uR5@|( zqjC#b@QnPBgtE7((HiBwF0 zDhlxf&`V-*DM&;%GVBZpZx)S$gQN62iPs-_w>wqd Date: Mon, 4 May 2026 05:11:51 +0000 Subject: [PATCH 02/15] Add tests to reach >90% coverage (91%) Agent-Logs-Url: https://github.com/pyiron/lammpsparser/sessions/073008b2-5731-4857-b219-c0f9984e4f9a Co-authored-by: jan-janssen <3854739+jan-janssen@users.noreply.github.com> --- .coverage | Bin 53248 -> 53248 bytes .../__pycache__/structure.cpython-312.pyc | Bin 0 -> 11802 bytes ...st_compatibility_calculate.cpython-312.pyc | Bin 0 -> 20672 bytes ...st_compatibility_structure.cpython-312.pyc | Bin 0 -> 7399 bytes tests/__pycache__/test_output.cpython-312.pyc | Bin 20722 -> 24743 bytes .../test_structure.cpython-312.pyc | Bin 11681 -> 12669 bytes tests/test_compatibility_calculate.py | 307 ++++++++++++++++++ tests/test_compatibility_structure.py | 126 +++++++ tests/test_output.py | 73 +++++ tests/test_structure.py | 18 + 10 files changed, 524 insertions(+) create mode 100644 src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc create mode 100644 tests/__pycache__/test_compatibility_calculate.cpython-312.pyc create mode 100644 tests/__pycache__/test_compatibility_structure.cpython-312.pyc create mode 100644 tests/test_compatibility_calculate.py create mode 100644 tests/test_compatibility_structure.py diff --git a/.coverage b/.coverage index cc138a2f9a445440b993141c2b2251a3f0c8d24a..6be8bd899de8ed176c4dff635aba3402487be83e 100644 GIT binary patch delta 486 zcmYk3Ur1AN6vxkR|K$GZ9;KoO2NL~xXhlAhW+Rk*vmofj0%0SNe3*q!lbIfwK4!ug({Y7MH^XYEX! zb@nsyjdvm7loc0X1Ak%>U*kjt&$QrFWZ>ll^bt!D%(5*|3_&2 z^uPA`EX{!k=3WL0fr}Cce9}Dz;Dz`gn3-cEfv%vwbz%jks=JS%nKFO(bWsQMT8v_z znp*e@X+5Vzj$Ie0YE+}dTF2le;+uuU)BdaipdQVCxToOEz#z@h4C%9E9A79%rlUlUwr@Lkg zA8+P5VjD>sc2w#tNCNk)G}=tNExuRaqqazK=D1VFMZiB;M;%L;$FKMWSMd`jaTyo+ RkHXk;a2=E7*mCq*=U)#;)209b delta 419 zcmV;U0bKropaX!Q1CSd53y~Z{0SmEUq<RSz%^1rG2Iz7CfT zVzUttL=Jy53j_fPXbWxu003YBx>EoEKoBSaGJx&nBftQ9?-g(W0006o2oeDR0RRF3 z;NSloK!805B?<%q2}}xl^Z#=IIC!K90Du5?zbpQ)7J$D9fL~7l1_|K1Pc#TH2?PNN zVhOqn^8o^tb!~@c)`SEdT(_lj@E_e!!0iVBXwU#%|NpAIg62tq?qA;o`2VkO0_Xw&0(Ju6 z~^k4gmhV!=LAJ|7ZRO0002q+Xu7Vy#Hke z0`viZR|xDNAsP!0wEz$M5A+Z159SZw57-aU56Tb254;bx Nvk?%N53{wOOE7iupA7&2 diff --git a/src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7e2f9c0affc91c78d8225a6f845ac3f0063fc8a GIT binary patch literal 11802 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 delta 872 zcmZ9}T}V@57zgmZ`^pUG6m?!~wMFJmS;1z8u*8<2IF-U6GT3&^CCm2FJHMtGmStr@ z>SIJ9Eh`w>hs2?7`oOY;iiEl;yeTN~DzXnKs*B$L^2!76?>x`{dEdj~oaAHnZHyUS zW@MzR#5Gy?E2!IX$I!x?*bchDVbBBIpcfniec(7a0s6ry za2gDNGfL%#Mjacb3CCtOL?0ZRvd<$|3nUF6LOnt@r^NOt9;c!8MB~Jukyx={}LoEvtz%*S7|usi$)@wp|7ZC9l+=VWU*wT30-bsaM*Z$GeNm*3y zEq3llbQYWg7r`}<1e4%Cm;y84In8=kvR(AqyHo!?FJ0$mw8uBS@r9VpX+v@_%wJ)f y3FHcXr@2CrrnZBDGX74qOsv>$s`jrpwWl#R8|-{*vcERjf2dOJ0?(oWzvUlCUEJgV diff --git a/tests/__pycache__/test_structure.cpython-312.pyc b/tests/__pycache__/test_structure.cpython-312.pyc index bc716d008245f06b2d102f9635068f2bfc8a2a1f..9225a203d10afb935e6454f73d95829292d9543e 100644 GIT binary patch delta 1680 zcmZvcZA@EL7{~9qx0FlU+ZS5oWd(|i!lm6viMpY%fyf4%Ff&lcz+G>9OKnzYJ-wLG z@TM-NXd;yp9md4Kmyu=5B57ileVB<~mP|ivkqw4?*cWv%G0`E(vc$ym+{??h>?Hm5 zJpbo8=iL0yeeQhUe?jX{f?#6kFw{Pb_Es%g8xTs6b`-WN*0an>hhn45AF+#$>>^4T z(FNk?>ybYz@plco{d8TV>Z5x?>oV7jD`|9r!cLU6QTm%zrSnyzZVsL#_siVoNm!wwkJ!q~Q5&f%FGTNW50_6N zqqct{d&hI0&2OfKVlL*Pz78-%KCgToC9=O(PP6C_a@xD!{MfCN%ibc?K(2eQn&DPC z`dh!okT>$nEGh)r7)3J%mr*fX%DKoAlew&Dl)Z@b6k?t#vnoa?)3ak7nJ+Dx*eM>N z&(?*jXcl_`)f7Egq&y@VbSrZ~hnHs625$#eJCa>-wJSaprWHHxH9!SFoR9|O7=4G} z;XQQVBG60Ka8i|qhX&#?B|4NJkrFtX9F&6bcuYzJL#Y6J-) za<-)To$QI*yqCnQcUflWmgg7+jUg40jvV)qQKYa68{z0bm&#!nh$EcB?!*x;!fjbL z#;UYNAET^(1$y)>Z;f3Mv48rMOkGlae+tk~+-dewo)X(Gi3Ha`G(f`+ueWbu^VUmxo64RN#I zzP;@9Utm2Q! zLTwy9B!#}Okds{YH8wTD#zz62fC0d100w*l_!N) delta 971 zcmZvaUr1AN6vzE-bI#eFO~t`|!Eve9!rvbI2A^oy1aQ<;b5Mh?t>5Zcy_ zt<=rD6(i-Mf8%vzAn~Pz9)xk>n9IjPR6#T#8W}c?p^-Q(Mc1pp6Y`9`EoiqQ0*J#5 zQWiC#ZAP>sIuQRUM>{c)Du-5=uG-fOq#5?)z03|WWhbL26px4FRvLt@ydE3Z%z=b9 z!KFiv)?Ad5S*OD>Z8VyQrc!S>yrd0YINYRN-*$X9kY0FGkY8~edz?V@Ge{142G3^J ziy%o#Q@3YBZluR_lF=qVUl=!+%Cg=V|byx+{ktLr4PUvI4oXhjc)T zT;$+$3&ZgQjZQ{}qmxrJ2|5p&tdVVaFE0^0T&nTc`LWtjL^mRgxPX{OTt_S*77>8B z4_|9aNI%$=Q-*Ig(3JgId?);ZtKg23bgp2Y6H&mhWARUDV>7XEGkpX#-p2fCBeCA9 QTz7ijIz8Xh(BsL!02Bb;$N&HU diff --git a/tests/test_compatibility_calculate.py b/tests/test_compatibility_calculate.py new file mode 100644 index 00000000..b44f61d1 --- /dev/null +++ b/tests/test_compatibility_calculate.py @@ -0,0 +1,307 @@ +import unittest +import warnings +import numpy as np +from ase.build import bulk + +from lammpsparser.compatibility.calculate import ( + calc_md, + calc_minimize, + _set_initial_velocity, + _pressure_to_lammps, + _get_rotation_matrix, + _modify_structure_to_allow_requested_deformation, + _is_isotropic_hydrostatic, +) + + +class TestCalcMd(unittest.TestCase): + def test_delta_temp_deprecated(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + result = calc_md(temperature=500.0, delta_temp=0.1) + self.assertTrue(any("delta_temp" in str(warning.message) for warning in w)) + self.assertIsInstance(result, list) + + def test_delta_press_deprecated(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + result = calc_md(temperature=500.0, pressure=0.0, delta_press=1.0) + self.assertTrue(any("delta_press" in str(warning.message) for warning in w)) + self.assertIsInstance(result, list) + + def test_too_many_temperatures_raises(self): + with self.assertRaises(ValueError): + calc_md(temperature=[100.0, 200.0, 300.0]) + + def test_npt_temperature_zero_raises(self): + with self.assertRaises(ValueError): + calc_md(temperature=0.0, pressure=0.0) + + def test_npt_list_pressure(self): + result = calc_md( + temperature=500.0, + pressure=[0.0, 0.0, 0.0, None, None, None], + ) + self.assertIsInstance(result, list) + self.assertTrue(any("npt" in line for line in result)) + + def test_npt_list_pressure_with_shear(self): + result = calc_md( + temperature=500.0, + pressure=[0.0, 0.0, 0.0, 1.0, 0.0, 0.0], + ) + self.assertIsInstance(result, list) + + def test_nvt_temperature_zero_raises(self): + with self.assertRaises(ValueError): + calc_md(temperature=0.0) + + def test_tloop(self): + result = calc_md(temperature=500.0, tloop=5) + self.assertTrue(any("tloop 5" in line for line in result)) + + def test_nve_with_langevin_warns(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + result = calc_md(langevin=True) + self.assertTrue( + any("Langevin" in str(warning.message) for warning in w) + ) + self.assertIsInstance(result, list) + + def test_npt_langevin(self): + result = calc_md( + temperature=500.0, + pressure=0.0, + langevin=True, + ) + self.assertIsInstance(result, list) + self.assertTrue(any("nph" in line for line in result)) + self.assertTrue(any("langevin" in line for line in result)) + + def test_nvt_langevin(self): + result = calc_md( + temperature=500.0, + langevin=True, + ) + self.assertIsInstance(result, list) + self.assertTrue(any("langevin" in line for line in result)) + + def test_invalid_units(self): + with self.assertRaises(NotImplementedError): + calc_md(temperature=500.0, units="invalid_units") + + def test_invalid_seed(self): + with self.assertRaises(ValueError): + calc_md(temperature=500.0, seed=-1) + + def test_two_temperatures(self): + result = calc_md(temperature=[300.0, 600.0]) + self.assertIsInstance(result, list) + + +class TestCalcMinimize(unittest.TestCase): + def test_minimize_no_structure_with_pressure_raises(self): + with self.assertRaises(ValueError): + calc_minimize(structure=None, pressure=0.0) + + def test_minimize_with_structure_pressure(self): + structure = bulk("Al", a=4.0, cubic=True) + result, _ = calc_minimize(structure=structure, pressure=0.0) + self.assertIsInstance(result, list) + + def test_minimize_with_list_pressure(self): + structure = bulk("Al", a=4.0, cubic=True) + result, _ = calc_minimize( + structure=structure, pressure=[0.0, 0.0, 0.0, None, None, None] + ) + self.assertIsInstance(result, list) + + +class TestSetInitialVelocity(unittest.TestCase): + def test_basic(self): + result = _set_initial_velocity(temperature=300.0) + self.assertIn("velocity all create", result) + self.assertNotIn("dist gaussian", result) + self.assertNotIn("sum yes", result) + self.assertNotIn("mom no", result) + self.assertNotIn("rot no", result) + + def test_gaussian(self): + result = _set_initial_velocity(temperature=300.0, gaussian=True) + self.assertIn("dist gaussian", result) + + def test_append_value(self): + result = _set_initial_velocity(temperature=300.0, append_value=True) + self.assertIn("sum yes", result) + + def test_no_lin_momentum(self): + result = _set_initial_velocity(temperature=300.0, zero_lin_momentum=False) + self.assertIn("mom no", result) + + def test_no_rot_momentum(self): + result = _set_initial_velocity(temperature=300.0, zero_rot_momentum=False) + self.assertIn("rot no", result) + + def test_all_options(self): + result = _set_initial_velocity( + temperature=300.0, + append_value=True, + zero_lin_momentum=False, + zero_rot_momentum=False, + ) + self.assertIn("sum yes", result) + self.assertIn("mom no", result) + self.assertIn("rot no", result) + + +class TestPressureToLammps(unittest.TestCase): + def test_scalar(self): + result = _pressure_to_lammps(pressure=1.0, rotation_matrix=None) + self.assertIsInstance(result, float) + + def test_too_long_raises(self): + with self.assertRaises(ValueError): + _pressure_to_lammps( + pressure=[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], + rotation_matrix=None, + ) + + def test_all_none_raises(self): + with self.assertRaises(ValueError): + _pressure_to_lammps( + pressure=[None, None], + rotation_matrix=None, + ) + + def test_ortho_rotation_no_rotation_applied(self): + result = _pressure_to_lammps( + pressure=[1.0, 1.0, 1.0, 0.0, 0.0, 0.0], + rotation_matrix=np.eye(3), + ) + self.assertIsInstance(result, list) + self.assertEqual(len(result), 6) + + def test_non_ortho_rotation_with_none_raises(self): + rotation_matrix = np.array([[0.0, 1.0, 0.0], [-1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) + with self.assertRaises(ValueError): + _pressure_to_lammps( + pressure=[1.0, 2.0, 3.0, None, None, None], + rotation_matrix=rotation_matrix, + ) + + def test_non_ortho_rotation_applied(self): + rotation_matrix = np.array([[0.0, 1.0, 0.0], [-1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) + result = _pressure_to_lammps( + pressure=[1.0, 2.0, 3.0, 0.0, 0.0, 0.0], + rotation_matrix=rotation_matrix, + ) + self.assertIsInstance(result, list) + self.assertEqual(len(result), 6) + + def test_list_with_none(self): + result = _pressure_to_lammps( + pressure=[1.0, 1.0, 1.0, None, None, None], + rotation_matrix=None, + ) + self.assertIsInstance(result, list) + self.assertEqual(len(result), 6) + + +class TestIsIsotropicHydrostatic(unittest.TestCase): + def test_isotropic_shear_none(self): + self.assertTrue( + _is_isotropic_hydrostatic([1.0, 1.0, 1.0, None, None, None]) + ) + + def test_isotropic_shear_zero(self): + self.assertTrue( + _is_isotropic_hydrostatic([1.0, 1.0, 1.0, 0.0, 0.0, 0.0]) + ) + + def test_non_isotropic(self): + self.assertFalse( + _is_isotropic_hydrostatic([1.0, 2.0, 3.0, None, None, None]) + ) + + def test_non_isotropic_shear(self): + self.assertFalse( + _is_isotropic_hydrostatic([1.0, 1.0, 1.0, 1.0, 0.0, 0.0]) + ) + + +class TestGetRotationMatrix(unittest.TestCase): + def test_no_structure_warns(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + rotation_matrix, structure = _get_rotation_matrix( + structure=None, pressure=[1.0, 1.0, 1.0] + ) + self.assertIsNone(rotation_matrix) + self.assertIsNone(structure) + self.assertTrue( + any("No structure set" in str(warning.message) for warning in w) + ) + + def test_with_structure(self): + structure = bulk("Al", a=4.0, cubic=True) + rotation_matrix, _ = _get_rotation_matrix( + structure=structure, pressure=0.0 + ) + self.assertIsNotNone(rotation_matrix) + + +class TestModifyStructure(unittest.TestCase): + def test_scalar_pressure_unchanged(self): + structure = bulk("Al", a=4.0, cubic=True) + result = _modify_structure_to_allow_requested_deformation( + structure=structure, pressure=0.0 + ) + self.assertIs(result, structure) + + def test_diagonal_pressure_unchanged(self): + structure = bulk("Al", a=4.0, cubic=True) + result = _modify_structure_to_allow_requested_deformation( + structure=structure, pressure=[0.0, 0.0, 0.0, None, None, None] + ) + self.assertIs(result, structure) + + def test_non_diagonal_pressure_skews_cell(self): + structure = bulk("Al", a=4.0, cubic=True) + result = _modify_structure_to_allow_requested_deformation( + structure=structure, pressure=[0.0, 0.0, 0.0, 1.0, 0.0, 0.0] + ) + self.assertIsNot(result, structure) + + def test_non_diagonal_pressure_already_skewed(self): + structure = bulk("Al") + cell = structure.cell.array.copy() + cell[0, 1] = cell[0, 0] * 0.6 + structure.set_cell(cell, scale_atoms=False) + result = _modify_structure_to_allow_requested_deformation( + structure=structure, pressure=[0.0, 0.0, 0.0, 1.0, 0.0, 0.0] + ) + self.assertIsNotNone(result) + + def test_non_diagonal_prism_attr_error_warns(self): + import warnings + from unittest.mock import MagicMock + + structure = bulk("Al", a=4.0, cubic=True) + mock_prism = MagicMock() + mock_prism.is_skewed.side_effect = AttributeError("no is_skewed") + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + result = _modify_structure_to_allow_requested_deformation( + structure=structure, + pressure=[0.0, 0.0, 0.0, 1.0, 0.0, 0.0], + prism=mock_prism, + ) + self.assertIs(result, structure) + self.assertTrue( + any("constraining" in str(warning.message) for warning in w) + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_compatibility_structure.py b/tests/test_compatibility_structure.py new file mode 100644 index 00000000..271049e1 --- /dev/null +++ b/tests/test_compatibility_structure.py @@ -0,0 +1,126 @@ +import unittest +import numpy as np +from unittest.mock import MagicMock +from ase.build import bulk +from ase.atoms import Atoms + +from lammpsparser.compatibility.structure import LammpsStructureCompatibility, get_bonds + + +class _PatchedLammpsStructureCompatibility(LammpsStructureCompatibility): + """Subclass that provides molecule_ids as [1, 1, ...] when set to None.""" + + @property + def molecule_ids(self): + if self._molecule_ids is None or len(self._molecule_ids) == 0: + if self._structure is not None: + return [1] * len(self._structure) + return [] + return self._molecule_ids + + @molecule_ids.setter + def molecule_ids(self, value): + if value is None and self._structure is not None: + self._molecule_ids = [1] * len(self._structure) + else: + self._molecule_ids = value if value is not None else [] + + +class TestLammpsStructureCompatibilityInit(unittest.TestCase): + def test_init_defaults(self): + lsc = LammpsStructureCompatibility() + self.assertIsNone(lsc.structure) + self.assertEqual(lsc._molecule_ids, []) + + def test_init_with_params(self): + lsc = LammpsStructureCompatibility( + bond_dict={"Al": {"element_list": ["Al"], "cutoff_list": [3.0], + "max_bond_list": [2], "bond_type_list": [1], + "angle_type_list": [None]}}, + units="metal", + atom_type="full", + ) + self.assertIsNone(lsc.structure) + + def test_structure_getter(self): + lsc = LammpsStructureCompatibility() + self.assertIsNone(lsc.structure) + structure = bulk("Al", a=4.0, cubic=True) + lsc._structure = structure + self.assertIs(lsc.structure, structure) + + +class TestLammpsStructureCompatibilitySetterAtomic(unittest.TestCase): + def test_structure_setter_atomic(self): + lsc = LammpsStructureCompatibility(atom_type="atomic") + lsc._el_eam_lst = ["Al"] + structure = bulk("Al", a=4.0, cubic=True) + # atom_type attribute defaults to None, so else branch (atomic) is used + lsc.structure = structure + self.assertIs(lsc._structure, structure) + self.assertIn("Atoms", lsc._string_input) + + def test_structure_setter_charge(self): + lsc = LammpsStructureCompatibility(atom_type="charge") + lsc._el_eam_lst = ["Fe"] + lsc.atom_type = "charge" + structure = Atoms("Fe1", positions=np.zeros((1, 3)), cell=np.eye(3)) + structure.set_initial_charges(np.ones(1) * 1.5) + lsc.structure = structure + self.assertIs(lsc._structure, structure) + self.assertIn("Atoms", lsc._string_input) + self.assertIn("1.500000", lsc._string_input) + + +class TestLammpsStructureCompatibilityFull(unittest.TestCase): + def test_structure_setter_full_no_bonds(self): + lsc = _PatchedLammpsStructureCompatibility( + bond_dict={}, units="metal", atom_type="full" + ) + lsc._el_eam_lst = ["Al"] + lsc.atom_type = "full" + + mock_potential = MagicMock() + mock_potential.get_charge.return_value = 0.0 + lsc._potential = mock_potential + + structure = bulk("Al", a=4.0, cubic=True) + lsc.structure = structure + self.assertIn("Atoms", lsc._string_input) + + def test_structure_setter_full_no_bonds_empty_bond_dict(self): + lsc = _PatchedLammpsStructureCompatibility( + bond_dict={}, units="metal", atom_type="full" + ) + lsc._el_eam_lst = ["Al"] + lsc.atom_type = "full" + + mock_potential = MagicMock() + mock_potential.get_charge.return_value = 1.5 + lsc._potential = mock_potential + + # Two-atom structure so the loop runs + structure = Atoms( + "Al2", + positions=[[0, 0, 0], [2, 0, 0]], + cell=[[4, 0, 0], [0, 4, 0], [0, 0, 4]], + pbc=True, + ) + lsc.structure = structure + self.assertIn("Atoms", lsc._string_input) + + +class TestGetBonds(unittest.TestCase): + def test_get_bonds_error(self): + structure = bulk("Al", a=4.05, cubic=True).repeat([2, 2, 1]) + # get_bonds may fail due to incompatible structuretoolkit version; + # either result or TypeError is acceptable + try: + result = get_bonds(structure=structure, max_shells=1) + self.assertIsNotNone(result) + except TypeError: + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_output.py b/tests/test_output.py index 6f1ee7ee..bf1c29d2 100644 --- a/tests/test_output.py +++ b/tests/test_output.py @@ -581,5 +581,78 @@ def test_mean_values_non_ortho(self): self.assertTrue("mean_pressures" in pressure_dict.keys()) + def test_mean_values_ortho_prism(self): + # Use ortho prism to cover lines 311-312 (mean_pressures rotation with ortho cell) + structure = bulk("Al", a=4.0, cubic=True) + ortho_prism = UnfoldingPrism(cell=structure.cell) + generic_keys_lst, pressure_dict, df = _collect_output_log( + file_name=os.path.join(self.static_folder, "mean_values", "log.lammps"), + prism=ortho_prism, + ) + self.assertTrue("mean_pressures" in pressure_dict.keys()) + + def test_parse_output_with_computes(self): + # Cover line 95: computes in dump (mean_dump/dump.out has c_test column) + import warnings + structure = bulk("Al", a=3.52) + with warnings.catch_warnings(record=True): + warnings.simplefilter("always") + output = parse_lammps_output_files( + working_directory=os.path.join(self.static_folder, "mean_dump"), + structure=structure, + potential_elements=["Al"], + units="metal", + ) + self.assertIn("test", output["generic"]) + + def test_parse_dump_h5md_non_ortho_raises(self): + # Cover line 135: h5md file with non-ortho prism raises RuntimeError + cell = np.array([[1.0, 1.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]) + non_ortho_prism = UnfoldingPrism(cell=cell) + h5_file = os.path.join(self.static_folder, "full_job_h5", "dump.h5") + with self.assertRaises(RuntimeError): + _parse_dump( + dump_h5_full_file_name=h5_file, + dump_out_full_file_name="", + prism=non_ortho_prism, + structure=bulk("Ni", cubic=True), + potential_elements=["Ni"], + ) + + def test_parse_output_extra_log_column(self): + # Cover line 114: column in log that is not in generic_keys_lst goes to hdf_lammps + import tempfile + import warnings + structure = bulk("Al", a=4.0, cubic=True) + log_content = ( + "LAMMPS log\n" + " Step Temp KinEng PotEng TotEng" + " Pxx Pxy Pxz Pyy Pyz" + " Pzz Volume\n" + " 0 0.0 0.0 -17.8 -17.8 0.0 0.0 0.0 0.0 0.0 0.0 43.6\n" + "Loop time of 0.0 on 1 procs for 0 steps with 4 atoms\n" + ) + with tempfile.TemporaryDirectory() as tmpdir: + # Write log file with extra "KinEng" column + log_path = os.path.join(tmpdir, "log.lammps") + with open(log_path, "w") as f: + f.write(log_content) + # Copy dump.out from full_job into tmpdir + import shutil + dump_src = os.path.join(self.static_folder, "full_job", "dump.out") + shutil.copy(dump_src, os.path.join(tmpdir, "dump.out")) + + with warnings.catch_warnings(record=True): + warnings.simplefilter("always") + output = parse_lammps_output_files( + working_directory=tmpdir, + structure=structure, + potential_elements=["Al"], + units="metal", + ) + # "KinEng" column is not a generic key, so it goes to hdf_lammps + self.assertIn("KinEng", output["lammps"]) + + if __name__ == "__main__": unittest.main() diff --git a/tests/test_structure.py b/tests/test_structure.py index 5376e760..b52675fe 100644 --- a/tests/test_structure.py +++ b/tests/test_structure.py @@ -227,6 +227,24 @@ def test_skewed_cell(self): up = UnfoldingPrism(cell=cell) self.assertFalse(np.all(np.isclose(up.A, cell))) + def test_unfolding_prism_bool_pbc(self): + structure = bulk("Al", a=4.05) + up = UnfoldingPrism(cell=structure.cell, pbc=True) + self.assertIsNotNone(up) + up_false = UnfoldingPrism(cell=structure.cell, pbc=False) + self.assertIsNotNone(up_false) + + def test_unfolding_prism_folding_edge_cases(self): + # Create a cell with a large xy component to trigger folding branches + a = 3.52 + cell = np.array([ + [a, 0.0, 0.0], + [a * 0.6, a, 0.0], + [0.0, a * 0.6, a], + ]) + up = UnfoldingPrism(cell=cell, pbc=(True, True, True)) + self.assertIsNotNone(up) + def test_structure_charge(self): atoms = Atoms("Fe1", positions=np.zeros((1, 3)), cell=np.eye(3)) atoms.set_initial_charges(charges=np.ones(len(atoms)) * 2.0) From 13d54a18799b5948b6d911b8d1e4dd37bb40f6bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 4 May 2026 05:12:47 +0000 Subject: [PATCH 03/15] Remove duplicate import in test_compatibility_calculate.py Agent-Logs-Url: https://github.com/pyiron/lammpsparser/sessions/073008b2-5731-4857-b219-c0f9984e4f9a Co-authored-by: jan-janssen <3854739+jan-janssen@users.noreply.github.com> --- ...st_compatibility_calculate.cpython-312.pyc | Bin 20672 -> 20663 bytes tests/test_compatibility_calculate.py | 1 - 2 files changed, 1 deletion(-) diff --git a/tests/__pycache__/test_compatibility_calculate.cpython-312.pyc b/tests/__pycache__/test_compatibility_calculate.cpython-312.pyc index b38e4929d94121a22f45d3e8d010b654803b43f4..b97f719f4c01499f52b41b74e6a2e140d1e83a4d 100644 GIT binary patch delta 371 zcmX@Gka7D$M&8rByj%=Ga761zrp`iMulf>328QVjDU2yhISjdswTz4mC9EI?AdteG z!ji(ehHW)7gkQ_V#8AVy8p2_yWiDZdG8t0XR|Cxffg0v44hRdGjE9?9!V446;sdfK zr!Wglp6A8K&4Q4aywOWrlqsDdg=-OG4f7gqxb>`)KYFP%v(_+8miE?XWSMLzE;HHB zUU+krw=E;1?&KXlx|3h|II+ls%+>alXJ#u>pB&_?!omg;sP?U3n+s$#FiigAt1WSd zSM)ls%0*t46)snJ4L>ljaq?{lyu%|h+1W3Si$~2#kNJ=utCRWU)qZJ=0-J^W>lh6T y7`bL>T$j?mD5d>{0m%7~#>l|J(@}MaS@H&pV1q}yZ=-Lk{|9CU7O5gHpiKbKC{4}) delta 328 zcmdnKknzAmM&8rByj%=G(5&?%(`6yAmrMa81H*KN6vh;W9EMs(AkCD+n9Eel#K=&> zK3UOAQk|KJp@wNSNDmOyvXpQ_SPTp)?5lx#L7;{ui)(VCmoPsYgwMbL)Wev?H#w16 zc=8-CK6X|xUjWQM+0R~hbDg&>BctBrJwCduMe;!PlVAEcO*ZhA<6tjR2Xc$#CkOhfu(AW03X>~+ zD>#<`Sq%)gIm9P__tloU!K=~{ah+G?BCpB{mn*!69~js;`8EXJ;8E=Gm~7=2$HlAc uq{Dnjht Date: Mon, 4 May 2026 05:19:55 +0000 Subject: [PATCH 04/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/lammpsparser/_version.py | 4 ++-- tests/test_compatibility_calculate.py | 28 +++++++-------------------- tests/test_compatibility_structure.py | 12 +++++++++--- tests/test_output.py | 4 +++- tests/test_structure.py | 12 +++++++----- 5 files changed, 28 insertions(+), 32 deletions(-) diff --git a/src/lammpsparser/_version.py b/src/lammpsparser/_version.py index 25bba154..8e660b03 100644 --- a/src/lammpsparser/_version.py +++ b/src/lammpsparser/_version.py @@ -18,7 +18,7 @@ commit_id: str | None __commit_id__: str | None -__version__ = version = '0.1.dev2+gd7b230b27' -__version_tuple__ = version_tuple = (0, 1, 'dev2', 'gd7b230b27') +__version__ = version = "0.1.dev2+gd7b230b27" +__version_tuple__ = version_tuple = (0, 1, "dev2", "gd7b230b27") __commit_id__ = commit_id = None diff --git a/tests/test_compatibility_calculate.py b/tests/test_compatibility_calculate.py index 930ed1a3..ae55912f 100644 --- a/tests/test_compatibility_calculate.py +++ b/tests/test_compatibility_calculate.py @@ -64,9 +64,7 @@ def test_nve_with_langevin_warns(self): with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") result = calc_md(langevin=True) - self.assertTrue( - any("Langevin" in str(warning.message) for warning in w) - ) + self.assertTrue(any("Langevin" in str(warning.message) for warning in w)) self.assertIsInstance(result, list) def test_npt_langevin(self): @@ -210,24 +208,16 @@ def test_list_with_none(self): class TestIsIsotropicHydrostatic(unittest.TestCase): def test_isotropic_shear_none(self): - self.assertTrue( - _is_isotropic_hydrostatic([1.0, 1.0, 1.0, None, None, None]) - ) + self.assertTrue(_is_isotropic_hydrostatic([1.0, 1.0, 1.0, None, None, None])) def test_isotropic_shear_zero(self): - self.assertTrue( - _is_isotropic_hydrostatic([1.0, 1.0, 1.0, 0.0, 0.0, 0.0]) - ) + self.assertTrue(_is_isotropic_hydrostatic([1.0, 1.0, 1.0, 0.0, 0.0, 0.0])) def test_non_isotropic(self): - self.assertFalse( - _is_isotropic_hydrostatic([1.0, 2.0, 3.0, None, None, None]) - ) + self.assertFalse(_is_isotropic_hydrostatic([1.0, 2.0, 3.0, None, None, None])) def test_non_isotropic_shear(self): - self.assertFalse( - _is_isotropic_hydrostatic([1.0, 1.0, 1.0, 1.0, 0.0, 0.0]) - ) + self.assertFalse(_is_isotropic_hydrostatic([1.0, 1.0, 1.0, 1.0, 0.0, 0.0])) class TestGetRotationMatrix(unittest.TestCase): @@ -245,9 +235,7 @@ def test_no_structure_warns(self): def test_with_structure(self): structure = bulk("Al", a=4.0, cubic=True) - rotation_matrix, _ = _get_rotation_matrix( - structure=structure, pressure=0.0 - ) + rotation_matrix, _ = _get_rotation_matrix(structure=structure, pressure=0.0) self.assertIsNotNone(rotation_matrix) @@ -297,9 +285,7 @@ def test_non_diagonal_prism_attr_error_warns(self): prism=mock_prism, ) self.assertIs(result, structure) - self.assertTrue( - any("constraining" in str(warning.message) for warning in w) - ) + self.assertTrue(any("constraining" in str(warning.message) for warning in w)) if __name__ == "__main__": diff --git a/tests/test_compatibility_structure.py b/tests/test_compatibility_structure.py index 271049e1..b6e6490e 100644 --- a/tests/test_compatibility_structure.py +++ b/tests/test_compatibility_structure.py @@ -34,9 +34,15 @@ def test_init_defaults(self): def test_init_with_params(self): lsc = LammpsStructureCompatibility( - bond_dict={"Al": {"element_list": ["Al"], "cutoff_list": [3.0], - "max_bond_list": [2], "bond_type_list": [1], - "angle_type_list": [None]}}, + bond_dict={ + "Al": { + "element_list": ["Al"], + "cutoff_list": [3.0], + "max_bond_list": [2], + "bond_type_list": [1], + "angle_type_list": [None], + } + }, units="metal", atom_type="full", ) diff --git a/tests/test_output.py b/tests/test_output.py index bf1c29d2..a01b6e74 100644 --- a/tests/test_output.py +++ b/tests/test_output.py @@ -580,7 +580,6 @@ def test_mean_values_non_ortho(self): self.assertTrue("mean_bar" in generic_keys_lst) self.assertTrue("mean_pressures" in pressure_dict.keys()) - def test_mean_values_ortho_prism(self): # Use ortho prism to cover lines 311-312 (mean_pressures rotation with ortho cell) structure = bulk("Al", a=4.0, cubic=True) @@ -594,6 +593,7 @@ def test_mean_values_ortho_prism(self): def test_parse_output_with_computes(self): # Cover line 95: computes in dump (mean_dump/dump.out has c_test column) import warnings + structure = bulk("Al", a=3.52) with warnings.catch_warnings(record=True): warnings.simplefilter("always") @@ -623,6 +623,7 @@ def test_parse_output_extra_log_column(self): # Cover line 114: column in log that is not in generic_keys_lst goes to hdf_lammps import tempfile import warnings + structure = bulk("Al", a=4.0, cubic=True) log_content = ( "LAMMPS log\n" @@ -639,6 +640,7 @@ def test_parse_output_extra_log_column(self): f.write(log_content) # Copy dump.out from full_job into tmpdir import shutil + dump_src = os.path.join(self.static_folder, "full_job", "dump.out") shutil.copy(dump_src, os.path.join(tmpdir, "dump.out")) diff --git a/tests/test_structure.py b/tests/test_structure.py index b52675fe..85d745da 100644 --- a/tests/test_structure.py +++ b/tests/test_structure.py @@ -237,11 +237,13 @@ def test_unfolding_prism_bool_pbc(self): def test_unfolding_prism_folding_edge_cases(self): # Create a cell with a large xy component to trigger folding branches a = 3.52 - cell = np.array([ - [a, 0.0, 0.0], - [a * 0.6, a, 0.0], - [0.0, a * 0.6, a], - ]) + cell = np.array( + [ + [a, 0.0, 0.0], + [a * 0.6, a, 0.0], + [0.0, a * 0.6, a], + ] + ) up = UnfoldingPrism(cell=cell, pbc=(True, True, True)) self.assertIsNotNone(up) From b7f1078c111a748b669aa27387a4b128ca8b1717 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 4 May 2026 07:22:08 +0200 Subject: [PATCH 05/15] clean up --- .coverage | Bin 53248 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 1344 -> 0 bytes .../__pycache__/_version.cpython-312.pyc | Bin 650 -> 0 bytes .../__pycache__/output.cpython-312.pyc | Bin 13431 -> 0 bytes .../__pycache__/output_raw.cpython-312.pyc | Bin 11505 -> 0 bytes .../__pycache__/potential.cpython-312.pyc | Bin 16622 -> 0 bytes .../__pycache__/structure.cpython-312.pyc | Bin 25539 -> 0 bytes .../__pycache__/units.cpython-312.pyc | Bin 8302 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 183 -> 0 bytes .../__pycache__/calculate.cpython-312.pyc | Bin 20191 -> 0 bytes .../__pycache__/constraints.cpython-312.pyc | Bin 6406 -> 0 bytes .../__pycache__/file.cpython-312.pyc | Bin 12272 -> 0 bytes .../__pycache__/structure.cpython-312.pyc | Bin 11802 -> 0 bytes ...test_compatibility_calculate.cpython-312.pyc | Bin 20663 -> 0 bytes .../test_compatibility_file.cpython-312.pyc | Bin 22402 -> 0 bytes ...test_compatibility_structure.cpython-312.pyc | Bin 7399 -> 0 bytes .../test_constraints.cpython-312.pyc | Bin 10211 -> 0 bytes tests/__pycache__/test_output.cpython-312.pyc | Bin 24743 -> 0 bytes .../__pycache__/test_output_raw.cpython-312.pyc | Bin 4698 -> 0 bytes .../__pycache__/test_potential.cpython-312.pyc | Bin 15711 -> 0 bytes .../__pycache__/test_structure.cpython-312.pyc | Bin 12669 -> 0 bytes tests/__pycache__/test_units.cpython-312.pyc | Bin 1755 -> 0 bytes 22 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .coverage delete mode 100644 src/lammpsparser/__pycache__/__init__.cpython-312.pyc delete mode 100644 src/lammpsparser/__pycache__/_version.cpython-312.pyc delete mode 100644 src/lammpsparser/__pycache__/output.cpython-312.pyc delete mode 100644 src/lammpsparser/__pycache__/output_raw.cpython-312.pyc delete mode 100644 src/lammpsparser/__pycache__/potential.cpython-312.pyc delete mode 100644 src/lammpsparser/__pycache__/structure.cpython-312.pyc delete mode 100644 src/lammpsparser/__pycache__/units.cpython-312.pyc delete mode 100644 src/lammpsparser/compatibility/__pycache__/__init__.cpython-312.pyc delete mode 100644 src/lammpsparser/compatibility/__pycache__/calculate.cpython-312.pyc delete mode 100644 src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc delete mode 100644 src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc delete mode 100644 src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc delete mode 100644 tests/__pycache__/test_compatibility_calculate.cpython-312.pyc delete mode 100644 tests/__pycache__/test_compatibility_file.cpython-312.pyc delete mode 100644 tests/__pycache__/test_compatibility_structure.cpython-312.pyc delete mode 100644 tests/__pycache__/test_constraints.cpython-312.pyc delete mode 100644 tests/__pycache__/test_output.cpython-312.pyc delete mode 100644 tests/__pycache__/test_output_raw.cpython-312.pyc delete mode 100644 tests/__pycache__/test_potential.cpython-312.pyc delete mode 100644 tests/__pycache__/test_structure.cpython-312.pyc delete mode 100644 tests/__pycache__/test_units.cpython-312.pyc diff --git a/.coverage b/.coverage deleted file mode 100644 index 6be8bd899de8ed176c4dff635aba3402487be83e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 zcmeI4eQXow9mntNvmM)KA1oj%i%_oGx{&3qQP(mWO)2Y;28FVAtgu2cXXldKYWvLH zIWMgWHLKK3lR8cNquaz*ChfmXL!z6e0d3eO6{)Hk_D{790g(_d(iYN|w@5&4zvo_J z8wjf8C{?5H#rAVA&-1Fku( z$%Z~67ga+Z&~mD*75cTTVrhjz*&0&)+$B@(XJZ!aqfv`x>~hMpwY1hxr7U%jB#MTX zSBx?F1$C^$$>5#MQb#R!2Z^ZKV1eb3S9`_VWJ4WL4YiO}P1lOmT7O%t?T7nfkyK+N z|C;Lfq!?Lx#cRBw9TitL43JP(H~N|N8AB;#hg7peR^~j+>SX7r<$7!A`EE;>b6UZ1 zvtVkLrWa&&RLzzwwf~+Db}(rELh!1+A+6oaq1|pt?_5=MDuwS+(#!4@9w6fix{tL| zke!+eJ2n?e`3xcdK`CEkl|v=m6I=RxCFd(^>7KKnx^C`Kmlc0&s?$f#YSb-NDrkF3 z>Rjb_$d!^EjvEENLuO7;1UwiIr`9&|97Ux%YVOI=rBhldS-P{GrpizE(1-Zy@`gyN zrGNeBu z!%z&?&}7}qNS1!4(Z-A=8{|w*&(y}66EUVr4TSmvKifd5kY!E9WIkl|VbxFu)h_R- z+bw+7fkdIx6Ah=V%P3TV4{W2_e5G@6nC=hw`do zmJGimxnC#gm#FlTejD+QkUO1`aB5xieC~Mp(mmcvLpdTuQY%;TWw%AJeu=$9HBPWS zl_qeG41!>=w2I41un=+Mtor_bKO8k5~#ey+dg~B)#hZU z=KUSrG&LGl*|23k=I@nThZK|bLT0O+(e<3F6x^|aN^CIcoSG>+Hrzcb^;I;?F{Uv% z-0Ilm4=${m-%5?nZ(p>M&nty~Z@gl|u&YXaKWm)qJZ>jK1?5(1lqNONJ2ZV!?F=48CrQdDttWv5JM~2k9;AKZs(LX=}I84_`Z6Z zfttv=<6tGowoorkmq^vY#ei2aWSj08SdZvdd&WiQ=khL)Vr^`K&r3HsdSL+p5C8!X z009sH0T2KI5C8!X009tKdIW-efRC{Ge?Xe#q|5Yy1q46<1V8`;KmY_l00ck)1V8`; zK;UypKnw&|N&dfuJhY4tHaB_y1F)v6=i#nL*gyFPq)VK1NxJsAbPz^^00@8p2!H?x zfB*=900@8p2!H?x%n=ZSt9buwfIuwR9QD2hV88#1;ukpSu+%R#B!8dWnOvUuYvQ>? zQhZ0$=>QfG009sH0T2KI5C8!X0D&b;V23Dh<=*ZgJ+F2fr9we9x<_>5h3=e^&lk<2 zVwkk2X2UeHwL9qEaJt)G%V_j~jInOhGD=yC9z8(!bZ?H6cuQU4Mcq;hmZs!L?x`5b zJy4e%-Hl%?S!qKVA-#=J(ra1(J<@u89$^r6(3RCTDZn0!8o`Tr8` z>ERj(fB*=900@8p2!H?x5P_XSxtFhNwo*G2s-DA%PYLu)w7SHr=l}67LivIE0m?{-YE9m<`4xBj7eBM#;9}hDjT7ADzDMFzAQvz29JiZ0vW=TPks8|f z=qpp_zw|Em;`Fr=cWZq1J#sPtp_Vz0t{|TmB?H6s2sL=#lspp8I6aC$@dy@`W4fd3$PN=A6B9 z=6#+UHLm{UHusVJtKO+oYd+wYH8xO*)eRTyzrFvGou9sO^Y-5HNLz${t1C;g@ymza*dn(W&5_-_dYZ~ zI6Zr8;?0Z0_TX%UEIxCp<*n1lY&CrOD*uWdCEOSCw~qG)a=+$s_VRF$%uWXRXn@ic zfz`)#zJV8_(G{=%wo!EM|Cj#ANjIgd(v);TIxGE4`ls}s^bhHn^k+JN1q46<1V8`; zKmY_l00ck)1V8`;KwyyxurDBZQFM}c+(}|FCy7R#q@lq{A`vGEhn*x8auPvsl3>tD z0s(=(18{!-=awz98#o;ZfB*=900@8p2!H?xfB*=900@Ah diff --git a/src/lammpsparser/__pycache__/__init__.cpython-312.pyc b/src/lammpsparser/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 505bf644bcbdd60209fbee5f6ccd25e144ec141a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmbtTzi-n(6uz^QCbgS{Qp(Q?P85WKP|_l?AtXeRSi;Y;csUvSTnu-ybv~!Dr}9^@ zA~q)e5T;HbGcYj0R6q#C#5*Tx6NFf>a_`=I-@SL=v%kD)G%N(q>kB`_&lQ9|>R|F1 zW9QooaGoO{`IsXI!)|axn2sqbPDNCmD%P0E=S0n^iMmrS;|iY_mSdNGl`n{f(-2Lk zDOyge%+2vbV$nGae$B6M8P3uc^50*M>`yKo_!G}L3N;qg9LsRq{-o2l z+h$SoT<%ff7mbk<_Cpcotgy>4QLYNTwo#nqt`KoTgOD={XH@9&Fb6Q|7pG@2#bn@m zj0S1n(|8*fOR*~xM#tx(RK=-+yO+0^qH&~HU$>)=GTL_qD~`>keOI}G)WFIBE`^Xy z744&N&GNPk0UTdbB0x94>8Bzl>%`@pcxj>{LDtvSh|YF^3kiLqvY3%!l9CKo4l5Xv zAR|Fe217E)$RM|JsSBux{1A|Jl0>pB4I(LAMR?d}5OFJC9d{YCA9D_P1kA^5 zt=t|R(l5tqThauDNRT;_Rc+?A(fXHj+SI@lC;swXONk`X*7(tx50WUEdMcHyeY{v6 zeWbEpcIbe~L`!L5I$fNbjyhf>Vi4S;kcTSkXnCd_wD1Sd;>N^ qMPsM&)v7ERJFUG1)H?OHxw_k2ecSBrHoH6aSHrfAXEnJ3?SBI_HJfAr diff --git a/src/lammpsparser/__pycache__/_version.cpython-312.pyc b/src/lammpsparser/__pycache__/_version.cpython-312.pyc deleted file mode 100644 index 04f6a5fae4b4c4b26375acf39f4de029bf0870ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmY*VziZn-82!$YB}74duD4CVN-gT zB}r7!h@s7xH$uq^&NUpyRV-({#{WJ_3+LQH>4oEY-Ur^623;CVBvIPS(vTaH?MQZg z+k5G;@M!pa#C8sbueJ|{JFd#{OW~Se5vml0xls39Q<#)~EQ^w3axQ;c=#&O=i~+j{ z77s^RhP#hBkJ3zTGF-qd%5e8~@F`2e0WVVwH#pAt=Rq7K$v7VeJV)k1lk>xe#O!Ci z@#$S>H_2EThp+h~yjZ><-^X&J5JLWFK%V|qb*nYeZ`Q!Hzbw`EN(C$R`ep^2b+=zZ szqWc6^y=WMQ2XJUUh_!{2)4?c{t(f|Me diff --git a/src/lammpsparser/__pycache__/output.cpython-312.pyc b/src/lammpsparser/__pycache__/output.cpython-312.pyc deleted file mode 100644 index f486a0b7234f4449681543cd89a6b52ffaa5233c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13431 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 c?0z-}bt^>kMwNIJEZ_fbgL2jv|Qw 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 H3i`hRj{~s= diff --git a/src/lammpsparser/__pycache__/structure.cpython-312.pyc b/src/lammpsparser/__pycache__/structure.cpython-312.pyc deleted file mode 100644 index 278f6a88977cfd82eb4f3f330b56ddba87c44f20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25539 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 diff --git a/src/lammpsparser/__pycache__/units.cpython-312.pyc b/src/lammpsparser/__pycache__/units.cpython-312.pyc deleted file mode 100644 index c1e2e249231a067663f677966aacd329c156d3da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8302 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 g;;_lhPbtkwwJTx;TEhs$#UREmLI3~& diff --git a/src/lammpsparser/compatibility/__pycache__/calculate.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/calculate.cpython-312.pyc deleted file mode 100644 index 95303027498f733cc96b2ea52f482b9bba054a52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20191 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 diff --git a/src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc deleted file mode 100644 index 828ff99a6c7d288d51386be58940a33fe154aa60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6406 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 diff --git a/src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc deleted file mode 100644 index f1fce889cfc781f0f0964c966c03a70cf7b80804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12272 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 aEswGM(O`%^MQ^-wEAjDrPbkcjN&FvYj%R@Y diff --git a/src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc deleted file mode 100644 index c7e2f9c0affc91c78d8225a6f845ac3f0063fc8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11802 zcmc&)Yit`=cAnw;{g5b1)PovI)Pu4mTbBIX*oqw6iX2;Z)`^2vH_K9-kxZEnWk|)5 zGTa13+NC!xA~h&XcYj32E?^lpu*&{fZBd{O&>sfc9~#pE2Lml?VBG@wQB<}(LHK3QA7bbCP}J}6Lk;>;=4l=>*D01_ z={S|3CuthSF8EvKJ0lFHj+?+`5D0S5k?&NG3KFi^nnxvUw_%WWy}7L_eR5Wzw=a0?Y_! z7UsC9u4*n6Itt?HA&CB#zD{Mzl~;8F_191@(1J$L-lbK6(bNnjP+^VQaDfVGCPG@? z1_itwBL_qwt*lSa&vCqL3Im^GnQ&OPhZ8B_`+S@W$Jlg8FY7=K(>prK=5RO~kEGM# za2ly&Abj}sTYE0065JksKAGhBJy%lvqX2QQ0d3Dr2`QC;X~?~jWRo~8bwpn%Hg$>_kOTpYIsd|m{I~Sil>4i@v3CEx-_l=O?r*N@Sjtw- z?}Gl;7qx(`K+U2e>u_JohUldTKf_IgOgyR)*>AF=JW!Z4t@N))1wCX$({4OU;$XK+UUB|3ZD$vYM=p)n@gXvd(_XD7f=?1eW}! zsq?dXvWL!O@WdoR(5Q7MsJD+&)DK~OS;G&3S6O4$lr_Ul)ju_AF9ZG(W-WqF(9fa< z?FfQ_HIQ9ofs;imkk;5kFbXEYe8-?PXN}lq5muGeT^rF+$@l*RD>RW6zVxhdG6XPW6V(5 zhAJs}syGD4D3Ovk+Xyn!3SJa2*>_Dsbom*s5zmnsu%D*>leI&|1wB0OQAls2`5!zX2&C`!j*Czyojyt9Ev+A^KFX`)$N@FFhO)Zq}ue4Efs=NidYTuS= zuHxSTwMQkbs(m4MS@_laOAQO&8|seA^SiD)B^yv#m7v3uyp(URi{w`2OA_Y?gU{ki`2)Jal9lN`^_iA7dWRg0Ju=`z!qY{hGFXg(WlaN5Wz|8%uD> zG&qXPAd^gGm<2Aw#1eCH4vI4zdmDU57G0%~Mlo+JiO755^d&AHPpd@+KElT4(_fp8 zgGH7G+P-eANgJCD>6Jm8QRojoS!wFD>`j9+hE|s1yns)ncx;9w8fbvpr9-W9 z9ol9)np(Jcn2RLB@pMMERXbO*i%(@D87@4RN`onvN~VdaD0^^_=p_!Uy+}NqUPw%( z;%QkM=aRCy+*CGm$@v7wLx0&Yo#GRbjBL3WiO+KJRez* z?WL7o;v(SY%g%HxF&_s9H)N_9(_QjD-HbY*AK# z#;a@u9%HFYzbDfRGQB7ppad8v8-bJY7_bpD#BnyKre+C9z{(m9CQOFGi$>CkL}Yz5 zH4jUsV=_Ifl!G8)j#Gp$u?WmnTBr_2jL8_!%K9lHE5npB2(%$;CEH?CN{&=(VpHmn zNVP#333wciU^JEPgh>?l;f1kcgyWCs;;ui=3nV1td6D+R*#nlijq2zw1`dgVL+hS@ zZ2wJrAutYJq14LcbPr9wNA8BAyIXX3uVik0aPxzL`(V!SsJ`*~$nr?B{-9WYuuy+E zXWBAQ?zWsB67Nen%cj+l%b<5zboPqQ-c`5g+*PpdUZWpa2RFO-tQiX32cJ+jd!6X& zSTf%5#KD61nd-Y;!7ONX`F&mX;UM(n{60ZL}RL)QxP|MxL3ddhZf@ zJ++)FdXI?SBL(kEg}S3T<7Qpkr~Qz$b+240wC#C9(dOXQv$^plUTW^ljV&Gj>1$hB zD0^n0oOMe*AIEdrO^^5b*z#EZ!b)fU^xfz~&%T^la=CN*O}BR`{b}b|z=0az!Xl)m* z?Hkq}$yr}?21I9I!x`Fa?ON0Q+VQ#L{@}ybv&-hktzDA8{bS<(v1eLM zTiucwl%%0Cck*$2@2aoRKJyl<^OltJ!-&@t(5X8paOFF5u@7B?qM}I!@ zgwngA$!kj|@?8=zC37RZ`qtVTx8D}qzPEI0bMVOe{=(oWEU96P22U_=Txs3x2;K_a z46U9ibR2#{X?$aJ{v7U8JyQ3qjtX|)I&|~U>dBvvyBkd(G?V3!JPh)hsl{Y z`-av|7W$3=F=mHo>&~4LJ>5$e@}2p2C0m2!3Kd;@Mc3Xn?|R_#=JkvBF5K@dxF$AU ze^Ye5xvkaM9aqP71DnL|*{Z{` zdNY)HC}-1lgT>yo<;Ai_E0k&NX3IBSWrP6ncj4)IfLZ=OUFD1ws2~B%AEatWn04+b zfKSyVQVo?8)F;}gCI;Zw+u)#NwO~e5v#xLUt7*oSjnhvx*BBi*safp|SRh$LR!>q> z)>v`qU|dAmc7$0pes+YNG_sn@Cn#!3!v`uxnc9Xp;I+nW+c7A7s(rv%1vdtqbMq|1 zF*`!V<*MZ_2^LmcZRn|d1oM0snB-+wu4Z4e+8UhEE_K@4vJ7;2jn z6wD140&xeNS=V>Y?W&sFt#Vj!BA>wpF3(fN-C7QpZFWGVsFG&N#`|5Px<0{CEkV$R z|0vN~pY;e1p`Og!@SU^mtIVS2YR=Yx;|X<_n_)Fx!K1jT*~Y5z(X`tUghs)w(whZ$ zR&i0YKHv_yWGQi{8NSVAe1%&rf)7AA3u~#AHB->b2df00Wm^G`s-g2j18YU6L}*pg znKI}_10+?mN7*R`%^v{GF9SD%Pt^m~cKL_I-TnM|DnYmYUNF=g)yEPyszi-Sm5;UJ zdP=mFPaUAmRCAOTl>(scKXssu*TzZw)92_ks;xk$5x7Sfu`TJ(98^V7B_VL&cLt%{ zUmXV^feIH)YH8Kz{{O}3<^Jk8SwCyfwu1xC)IKp@blPVFRlDf0x)N}{HL8xOvw)t! zSxa_q2Z=kgL7`n>X1}NQs-!|kNlvvP&<>)5w9rXXT`3JJ5*C7rOd+*l{hbn2%sNpI z38>Y6?bLJf(yKHoXAu7q>&kXj)+LndVGVF*5bC?LJwg}ju1S4&iF%{ZO(^UsQP!hS zR)!@i6m?ze2ar<3I$_?5qzyahdYP@u_EynVt_QjR^dWSGfUaJ)z9wCv5?v-CREsX5 zr^GQ8V5rd7du^~pUoYqgfYm!gZOwsFfVFl8^_K*|lge7lJgzD$uTN+b{C7QNNj8uZ zMFBeqjY1ceC=wQWEBOmxebDfi)n1`O-o>jH)!loG2k)8TQ}dZvl4CL{CdzZ*t~2P| zGT<{R_t=mFmpRHz$Ko6VZZN4Pp6AgXyd>&jGM6G5CK^dHQydddfve3jQwz+Q(X(gI zU#Q$#ee*tQf`BZtwdCES=UhTY_%T?CijsgcO`LJrR>}|`o9~AvvZL%vD~`7lumiXm zM%+ayup{b18sYGKA9UjJ*NulGiCPTRgj;q%LGK>`K#0emNq!I`{9#%&kK#m#*(|oz z90U=jVZfF`MgnEBlv{jT?As%{A)PM zag5Gkgogw_juDzL{4tEqKm;&E62<_8#-QLCvY7>LMv_>hizNqH9!@n%)-J~8c+_?N zEJhO$h59P+3V$9O*;K?T8A$+Q^9}(@_$jQiC_EwXg}q9$fT%dC1q*_F2it3588X4u z6cv)qO9rmYw)rAwSK3AA0c@u&V*+L%in= zEP)?$3K1bdp!hfzBuEpW=3OpY<_)w)R7l|zsek*2K+;VsK0hjunFA1?Kec_1ZeiBUkH|ma_ZuL3BTh%|l}I z(At?o^QdSW1s}D}k~3^kkZi#ioh!$ejsW7&+qZgr>Bl)cAQLvHiUD3)>v0rTLFEk>`VINu2O0Jfos{?=`aA^5o_GLStw%*uNTG z8xRLZ3&G=0si5x^ed9!aH2=gB(GxuK?51rfCeIA<&tv!M?nS=v zZtQ>cVQ^du4iWWfK( z`-WxZ>{>T+@W8zQ@Ok?F>tDn`{{SR4AV_M|B1ozSkkq`bg<${{^0np09|OY{KOV`y z{=n*&eBHUz2#-z{IuAXeEHD?qqj@hZSMm%MJx4^(kuod`K&9BU2d2)ybHn_6^3-a8 zSsgg5(}=U0VO9$uv@mNE)$Grmeq?if7t#fLbF-->fBI)mskKjP+r8x^$d(C^EkLn6 zh+=sV#quDE<*7oknh@FY*#OyUMr5nS4#-w3<@9a0IqbeIKbEyS5$$rDE&u%_fyY|f z07vQ{BeZWZk8}yEU@_4EiBu@;dkaEaixYw z^OV;?1UD%eo;*R5O>=w-Udv?`c$`4FLNUNSONQflgid${+uKWTYk?fPc7_GPb{-XAR zMy~*bgqoSZyMf_1BVQrGWOdP!kq+M!g%lIu5Px6c5h9I+7zBJ@rh}VA4ZH`{u#f{l z1i(cMSv|Py*lR~9Jyo@Xg{R!r|S zSjL&E^2%*srR^NN8a=`!;H6_?KEbFa7MRtUD;$?(BFP0Na|O)w_-v>^QoWZ=1_pK|-9x)#aXDtSAlx_Us@rG_S{!6(@pq`KCzbdGd)KJL7E@4owf@80|F%=i6%F9X~6Hvcr%zL{a(#RGlgwVnBK zmSHY4A|tYKrceE4`&fGH=;Pqm5qBo|KAy#ET-=p#_qh{7pOEnMc@o|}Z=#~FBH`=v zCH#GUmT@poFrxD%M&u>tT$BE={O_Bby5AR|oG##WFTzT9d|ryDqOtU_QWG8^ zk}MArDV$D)#SKvrtQ{lH67=}0=3N`@1WG>JX0Yzrq+V(iRtSWc6{Xj;1^5|5{b z!bJMSpd_ayF)T`FQUvaR8bW$OCnYpdx*O=mzQ$K?(Z2q6cV&2;JQ06DxrFMd--B zO3@EAAVOF5RSgG%Rf_i%RP}KX(=josKN~CHf`3%Qc^_5%v~lg611}eDB74R0rpB?0 zxxkvZorRouByu`0%cR}H|C_GR_p$XC*#nHO z6#6stUs{4+=g$9Lbfhcwqx{o`nHFX{BeO#emU$LBg=Jppd7gWg8DfJ%=+q>uxQG-@ z5m9kP;zN;P`A4*f?u*_1pMMp%Z#@=tC>3cbF(8o$s)yngrFc3L##04?MvUo#|M@3@ zd=MUV8JhabjSPrUWb%R>VeJI3H|{+1IrcIOm0azFvG7$6s_7s#P+(}%p>Uw1iaP}w3ipT| zkHR>N#O3`R#+@sncJdk^|H1t91?HW`6W2dHcJ#{QSKZ$Xd_6GL-kode&NiO-**t35 zi|bn0NkI|xmMN7`YV>T_IQGf0#6Vm+6N{%MLhu&F81Jg%EUEP?pcpv?4&?mXZ!r!}H+%J|IbZFJZ(Y{6ZoDn$+cHoN#hh@XZLTv%>1JGjE8~!j?N8%1_I^E8_^d+|u(1 z_tqnPFXt{$P6GuhA0P^dt}AYR3cLp#0Q`F(IN%ALB8VKM3Q08(6$J7-w;l^}1p8GH z^od2OP*tBE7l``(!+}nyL5S1=CG|kGAy4&|p!Jb?*j_a1 zpEIUWIH7H6V?x!@d>70DY2Ef@`oZda-88{c8?#_)ES{`}8EvxSLP4%yebBSr+D@!n zRn+UGdy=L43Gn7qf$u~lCQGv7eI^nglnxS-Qh^fqHbE&eR$oKBb+p^ksT7z*$zeLL zX;YmXCbX1HyS4MmaW`Z6Xym=X%=)Wm{A;rQHLqo+{F{Hwu%110zM6NMcTM|t-{Iis z4xXat@5%z)^0`0<_s9I662d3Iaj(J`S!&y8U9?QmlXiIWq=Sl>VAIGhBzu9FCD}|R znH)%)g&59AB&7>-i&c;gHCa}&{N-wqUH7Yecq1=)3Xo(i&ZEB94? zcL_mWf>JM=Y!Z)B=#js!?MLrDPae&~h}kMp(m)^5)Gbg#%%SCb1t8WzZf- zO2rtu)2@rqbTE7h8}kNrV!jrLX5Q?Z5XTOVpL*?BwsD_k)KpfnlRPz62-cZwK(Zc5 z3lOLjj!O~*Vy=_2($J}bI%L)@T21h{7#RfzP+DC-TfbVV+r7YZE4-twTLM@Zc}pTE zYyoK0EslLx&*U2SP1Wz47WU7>?S+CzG(+Lfhk)Eq9Rdw-me2sQ6`qw>2&xT}oK=>G zfvG@rDzM=QD-d0HD3(4Omd{ENQVeY6xVPa0u^ zABQpv^-gpwj$8RzcsW>f6SW;2Flzeo>3Awt= ztfQOWWCJ|=@OHEaHQ?#F+B$Y*qBhsGHQU(pGja&7fa&UlpFGx(qLJdIAVZ&#sk41F z;)slpMRkAt>8tB<)jLOBCfMk?wlUY(GgaR+E%cUAe(!_wKiDfy-3+@2-vgpC55)Iy znSBokcnR@HvR^tMOBO%}s^R+*T2O?e+Vjf#6^~eTB6(g?VN|a!b*^#T-kqsOu?^rZZ^(^ts%%&w)?lG)MLRH}+zr5YXEgu(i zbz4-gqTTSx=X?RE@AY-Lz=0{>fd$Ut@zQJg*%bY9zr)jxenq?HR;=%Nn0xDCzSmI# z)NVkvte_@xpuvbRu-#{K479tvIR?gGd4mq(l;ul+>D;YO=XByer8&^5_55LIQh|cs z1CXLQceX5ub`~iHngW`>+oUc@x(6UfntN#B=SHa~zlrFjxCgV7_cE^;T zy72qaI_4+B)4qLZAMZ!|ct6_5`|lF8_X_mS@G5?>BE9)@*mOZcgk2KtoeUL;bYUQ0 zu^yVQehej5DhRSo6;$uEuM-8e4F$Cg1+~paP);Zbr7_A1+iZ6)E#OKmjzN>h+0grzUML4q^a2iCKMtQLD!m~OHhPF>QY`pYgIUz zGOcRUsE59Kp~oY;t&&hz^_E`3S*S+I@ws=-*D!wIYS*-H501~hI6n8{_}ptVKCwY` ze8yqNIz9_+;WYBmZG<(iHUAQb`-0;F2i7Z=X4ys@X#`8UXoYQ zQy_UZqVUnd)3K-;bvh5%CY=Nys|vmq_co|!H{t#e5)9rcY*==}FDxi(@%0UK$QvS6 zqfbV%f!-sT-HUWZiThAm+Eg-ETR&DiUIS~5wcAHMbG7Rxj$G$*wFh4IjJhtd*2Rxv zE6nJD0Vs3nJpiF&9zw^)ivKp1gqMQ$Q@TRU__&vMmVq zWwtLxtOd8=>XVEE4WQO4(b<)2-`V^@@cQb!s#J@8KMjCg1f@u@FoIJvc^=8HBKb8W z7SP0XC4vNJ5gCyaLDRwSy)AHj`@9!WQiVR`iNe3J8PJFJL^G%El64f>3HGJ`o^q}04AawBYhyxEUU(YXX3ehECTCGfb-JTQL? zA%gQaowhSIdJ<7HaGj2 zir^Oj8WBbjwA_QFQlajlDVZ!b2Gp?I>4+SQs`32dZcy=9Wr3pQj{-pxVB^(Yx$1}2 z0G$72|BaPfCZ5R&JLw>=&kFTpYbQ45gzfp`hVescn14o~*Xzf3=Y-Aq>u@|RY%T@` zqw7&&t)Q^DYgX8?AZ%FWL1F6-l_Ka;CBFfu!EHtflHW#BpOGRhYh)1N{yeN7CIh$vwe|)0Vyel!3`Od$ZukEKWp1&)nGPrXJ~M^ zl&Y9H5oik9p3YSt&9^-^zH(YzbVU?a-@q(I=V~xPUMVerTH5Jg%9wA+ z(1p}eGO#eCV$GXW;O&FC>Jxb}oE>*f3!8pXVgTgGi{ZDHAO`adi;BU_Ovlt0@Cj(E z7vMXNIg0PdV;$roN3Aae0@zBTycM0XJj*6p(bL^XN zEzmC19I9QYcNXnp@=j7I&9aZ~!Bhf{(pD%D=8O*bQ39as=G0!8joombuC^=unRp5k zev76Q$n1obeHpS9VKta~;nt?8(}~LQMJSIhW}q^(PDJyQiQ$7w(}HTL6^OtXVCSKP zdtLig^M^!}$d>6>2HjL(ny15P*+Y!bO^t4}JYlQVvy1BWou+Q`23(jlyPs6D*8CS0 zsxdbxo=W!XK4#EPK~$+)SpN{7BBOO+3X5r(LrzcSoNukt@aSxF>rZ&jUwMavQ+F63 zKSrWuy;OB_U*q?dSY&xGvd0wWen@4$Vlrj%oH?<%O!k%|L`6v6gvJ$l?W))ibCRi~ zv;?tPSigc|!=OMZvCXbpGwvK~DkVDdRk+t)U9o8Mh*ecE?|+}ev2EEzBZJ&x9-_`z zHW=H2eyYGnsL;>mf75<_AMAGxyF_RHE^1st_7Gx%iL~RPL2e=t(Z0BeV-iLL)=F_C z2NX^kmh!1Ny6Jup!(|E=mu&3!O%yy*Bz+bVymasZ|T(lmeDUlv{9NnNC=j-eUdxg*U<1&VoD+HiK`<8Y(?oH}hlDEE- z?{%HaVAa)R67C?V%e`lO~OSqpHWxz2)b7R+d1{>+s0;rXKnHo8m6N;ILnAhJf9@fP(=)q7jmU_loFp z^q)gJ$X_7&OCUiFD-0#bD~!5_3PJu9Io(t%$hYwXYC;|-$e-ciH<5|UYloW0hgf5T z0oRt&5gjCG;-S6uVWS$_U2nl7vy>LV8~m?lU$Gw3+!TdzWiqR|3pnV3_F1-zhE-GQ z1=@>-F-|$kI#BqUaryMtVqf-^W7?ZY?t+w6&g5!Q#YHc>K-OqEpi_U}-;2#ug;LGN z5_z*MrOPI<(zWg)wa{_EyiyKt)Y_%8&O;;QwLsKd>%h@#LpQ3{zY(3-^tH~(&Z&)$ z_4G+`BOl^Sh3{6g1bn`z8OePgw)w}Sg_1>aj+=zJIk=V_>_ zd5FTBT#oyb4`4PTNCqAQCOii}YF7pHH;7^N4tq=Qqaoy=ee@#iS^7w|BMaB+Gc*EL zqJIim{|8Il2?YA4aP4{Zc369!Xn}56>R7fBN8zF`?QRGQ(C$XOH5P4UI7`PO?dKp|Dtyaz z4IPDQJlJ?83=#>WXEC!_%i_Ih_Oh2DhVIw7|_4Skrx#;ye$f$imJ?A zE|{_H6JDsW)bx!1m(s$7cx#HwQIs7{nL6}PUDT{yoF&pWl2tQ`(BvzYll+`CB!{C? zJg&YCZY$o!ZiP?VF!BzlRS^tnGCmAAWXM>{C|Eh(VEf*ip_8a5g+Q(YFhmS&zlvcO zUbcHN0mJIJf!;bq2b%CAmx1TPkrTZwC>`Z$+2E?_LnZL0wqY}kV1UyN)|#M)C23Nb z-%`n11?h1-$l1~;X5Mq_$J7fIRvlzR3IKm;Yd1_kV#$-+!T`( zCw3tXIKggeU|12rzM=g}uqg!HvVs{2r*$>#}k z^o_S<>o$x!M^C-%ofWEQgjF!JjqRLx`i8J7Cv?r(D;u5fo|zU}%edG$b--tyz*2}a z3HAbOehnYiv(+!uAX>q8!QlV}F;s{%eaXhHE9eM!4$U{q7Dm;kTYhcgT%~?4{|jm+ z=p}&z;WTkq<+=1d(WCQ1t!wnNBMwkWFT~2ZD;36DLA;IgP^aIK|GmhMm{L)}!N9nM zWlQ6zp&Nc*=%TaS_jhcZgMFHF;15wH2le(Gi}c5$$5PSfte}_iB~#7t4JB3UOrPGs zK>#>NCtkXw%MXy4oG7vpx`6M#dlQN;3V8u(_~HS6PN%FValGUdZvj@QJdE!&3BzY< zQl#WNa$9latbs;pj>X|?doESJ(K6ou<IWYbk0E3Lo0uqtr88%wXxi$SP(1l(EM+~C79bFcpf(UK8~a1? z;WM_cfr55#DzKy*d+;=#ovr${WO`W&7^^1tveHv&OZorgFsM06>E^m>8cFkf4x$4`(O-vUU0Mu)?} zdPUInhAM!=z92L zW))j9d{TYKSr{!@+8Z)U#g#}UZ1UAzrf(pLfjF6bI;E_ z)RujyZGnMRzf-)QC?u3^?$ W{lej2KlZ6(pFVzzW1Oq#{PlmzackrN diff --git a/tests/__pycache__/test_compatibility_file.cpython-312.pyc b/tests/__pycache__/test_compatibility_file.cpython-312.pyc deleted file mode 100644 index 8171599f5bc38f24558373eb1f98f88b0243dc07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22402 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 diff --git a/tests/__pycache__/test_output.cpython-312.pyc b/tests/__pycache__/test_output.cpython-312.pyc deleted file mode 100644 index 279823e948338b9444257121dc87fa7ce781d867..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24743 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 Sz3aQXzP}qLr>=+;`~LvB8X#-{ diff --git a/tests/__pycache__/test_output_raw.cpython-312.pyc b/tests/__pycache__/test_output_raw.cpython-312.pyc deleted file mode 100644 index b5822634e74f14cfb6981b1270358fb536ce92e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4698 zcmd5=U2GIp6uvXFvpZY5)IxVfjUTh`C#`s`-GV#&Gbe(N5BX2(OCang;ljq#ozgfC1(8PF~p1FVL z-aF@f_k3se=UA+TK>4QkpX_%MA%9?_Qp9p)`7~6n5{+nFj->r3m*%0(=L92^4jE!v zG{WgHM|ko&(S*xH3+ZHRV`ZV*^QPd})6xVdi+8XwEDK)5u@u!%9j`O5Qd?K3I<9C1 zBd?55%TOHsqT_YcMsliQ^q6T+1n%ZH$HmFOhRX#|eRT_$Nk<3Wb-XlYRk zfedRR$cPpODQOXq(FsY8da*OQ?Yv!Z@&)I#I-aR4ifc#UAJ4yh2E!J z<@Sf%B{EiiPncLOmpGWm-#{ra83HNXF7-oE|*vD7)s&{MQvnmSF5 zTl9mJZ+zwq8f-XVI6H+>v6%hPjmi9k_ay5pyI47_Tu^fb-JaYLuyk_8NgLoC_D&EV zk=yN^zs3)`?Sogsze%mPq|Tz$Ikn}6{MFeXq6^(e7o}I1VIKMKJr-`Tc+K{H4KEnQ z7on{vVkp``l#NU`LA}97haSd8l}T)^IveeA+xwf^h<3nk0UL#(gQ1#2DY9SgD|V5bm2(i4Y`s12~Kk@K=xR9b_M|xpAH&XF(Iueo;6}#yOcEmP0iQ-ocIT z;CUb{wE7S|t!8cA_FCRW+#ILWq71<@N1uRsHXe7oZ^fqqAj+D6w5(RKrMwE>f>Sr+ zvI8JKBEQAjZ^gQbv94>AZmjPv;i5gaTQ`3;RBG+MCqUyK_OR~zHpEZz`Njd^Yw=KI zWfSj)x2q2v+L}S5X5ven#>ZiYiUYK|(9ta5Xd%?lL`@jwYtC4Cc3`LQqwN&XjjTgg zT8D0Q9l9;+(A}^O-PV9^tmY#igN?(J-H2y9Wjm^q&7{WE(NSGv#F#>MOhTCTMBCBx zHthsIdtp;`EW>7D#}hMpE@yj@tf^%)aDBof7R6`F1wChFvQ8H2(Y$3t%`$CobHN;^ zYCaDe)H$z1W@WODxs zH*yV~t+1cH1Of=5t#@JfTW;IXl~9!su5F$=Gt)c$o*UmYd#WU*ssmFUQ|G3;X1ixk z&2A}4d#n9T71)40t+?@l+4Ci7Ur=NB^!skSe^z~9ss3Uj<;M5UcbBAtL6tqlMAD6? z=G#lsfxyT@&vV7Z^KSg`_xnoHOM#)8zG7m)jVI^1MQQ(op&P?53*Em!;tn{PeG&v9Io7?<^OhSMy297H|MVAIX8=b#q3@H}$FWbd zGn>BLc70n(>aWh4+B9`yI&mwWEXDy`0J}x$;3_z|0^9vRaN>J-N5I3TrQ{+1vRWUsw~*94zM~#BQ3%jCOBt#mVa+5XpeqLG?9p^rOF32w zMG*)pe!5W3O*zb6F&s9OzzJ8|Wi4H{o7ObF0Z2!OC!YyG+R#-qNZ7Osj^{J<1~yuz zIm62JjqnNeQ-5>&2pfQ{^(6N7xte(^CHNshQMZA0V zPaw*~e8O#e^I?dY@$5h`vDc07n+F0Mtj0DRS?D=XOdNFMgY&?_hZ}~D6caDG@t1$( zO489vj2xNLW?m?ECF{B0U#MZWe;e8ENV2md#l)Z+KlD8??F;N;4$Cc`q$s9p=!)XC zD2ice1)v|rYgH8dX!b`aek{-}D4s^qhhjep{278C0Wn9|g6tE8B9xiH&q5pd=`va3 zdGQ#xBvoY3lGGv|Sn3RkgG;S~m|Sj=#25WFP#u1ykbu4%gn=iTkO@wByqWi&vT3GF ziT?LFCWw%};deOuV)DU)?C41t?Os*k7XWskSD>$U$otX}|7BmMufYI*V6l__DR3P3 kJ8Ao!Y`VvXIQ}jH@z=(F?!`~vxYe<%*s<$x0u8p%zu$-isQ>@~ diff --git a/tests/__pycache__/test_potential.cpython-312.pyc b/tests/__pycache__/test_potential.cpython-312.pyc deleted file mode 100644 index 0cf0a31d5d44148653dff42e4dfc91e12c8d80f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15711 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 WMce746JJkN`K2oVuPFFIu=qboU$}Gt diff --git a/tests/__pycache__/test_structure.cpython-312.pyc b/tests/__pycache__/test_structure.cpython-312.pyc deleted file mode 100644 index 9225a203d10afb935e6454f73d95829292d9543e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12669 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 diff --git a/tests/__pycache__/test_units.cpython-312.pyc b/tests/__pycache__/test_units.cpython-312.pyc deleted file mode 100644 index 72e21edf95e580688ac13014706f18994e17b9b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1755 zcmd^9O=uHA6rP#QZZ@GICR!V$(m&8Hl*S6)#MVYDc<8B$UwI=Rv;_Rk&r3DW? z)Ke7?X`xV$l@>%4tSDG-f*_VuTBh~n$&-O7NKek}X4@3BMLc+L4)15*o9}&Z=gqu} zM8bfs$H#wU-yi@!Gsj@c>9pWLiT}c!K?#z`B{OTM^5%$!Z4GC<98bcUQ;k!j1T>I_DxgK-1W0oZk~k6? z(kz<+SQ$T=?P1kfwd#A?PYKxDF%>SNg_<`G$6&6;iEZ+i?e`3Fg8ywttK2a35!ApU zzd$RnHIBwWF67zuvJUMR|D-P3P`}Hw$535-A1*!*pPR2C`0Fl(|Dwy_Kkic8nXBKQ zr30kUAmI(oR&;uI_#zwqVQ*S0y+qJV4G%jKBD{jJ;t*a}u4+07d*5X{ZNY8&YQAZfgrPh+4z#MVp;T}4&kCkI7Qb9uiY$CE*uG1 zntqL-VulDTHG2qtL)~(*;^}L}aanYpglDG2sMp9P{qhJ*jOu=?LHoeeRl1Z<0 zcfld;uDd70+g;l)LHGXILCVbfO2r+p89DN>X*D8EqV?FpwOG$etmhSaExr(!JC++? zM&FKpi1n0XS0;sZv0*BDH#&>vgc)HL&yCKE&I`}bbMc9|)Unj~G+J)yD<{sbiv8O_ zoAE=X&ikFysp(S>lJm_K4#ZDZ0g8twg^B<|kw3-TMQp?+c6o1N$CeW16aD3uR5@|( zqjC#b@QnPBgtE7((HiBwF0 zDhlxf&`V-*DM&;%GVBZpZx)S$gQN62iPs-_w>wqd Date: Mon, 4 May 2026 07:23:18 +0200 Subject: [PATCH 06/15] reset version --- src/lammpsparser/_version.py | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/lammpsparser/_version.py b/src/lammpsparser/_version.py index 8e660b03..701931ae 100644 --- a/src/lammpsparser/_version.py +++ b/src/lammpsparser/_version.py @@ -1,24 +1,20 @@ -# file generated by vcs-versioning +# file generated by setuptools-scm # don't change, don't track in version control -from __future__ import annotations -__all__ = [ - "__version__", - "__version_tuple__", - "version", - "version_tuple", - "__commit_id__", - "commit_id", -] +__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"] + +TYPE_CHECKING = False +if TYPE_CHECKING: + from typing import Tuple, Union + + VERSION_TUPLE = Tuple[Union[int, str], ...] +else: + VERSION_TUPLE = object version: str __version__: str -__version_tuple__: tuple[int | str, ...] -version_tuple: tuple[int | str, ...] -commit_id: str | None -__commit_id__: str | None - -__version__ = version = "0.1.dev2+gd7b230b27" -__version_tuple__ = version_tuple = (0, 1, "dev2", "gd7b230b27") +__version_tuple__: VERSION_TUPLE +version_tuple: VERSION_TUPLE -__commit_id__ = commit_id = None +__version__ = version = "0.0.1" +__version_tuple__ = version_tuple = (0, 0, 1) \ No newline at end of file From b654df73814e198261c5a7f992b9fad8ef4cca6d Mon Sep 17 00:00:00 2001 From: pyiron-runner Date: Mon, 4 May 2026 05:24:00 +0000 Subject: [PATCH 07/15] Format black --- src/lammpsparser/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lammpsparser/_version.py b/src/lammpsparser/_version.py index 701931ae..1a870a8a 100644 --- a/src/lammpsparser/_version.py +++ b/src/lammpsparser/_version.py @@ -17,4 +17,4 @@ version_tuple: VERSION_TUPLE __version__ = version = "0.0.1" -__version_tuple__ = version_tuple = (0, 0, 1) \ No newline at end of file +__version_tuple__ = version_tuple = (0, 0, 1) From a8dae03417a259b1ae5f09a08ac55ff134cfbdbc Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 4 May 2026 07:33:26 +0200 Subject: [PATCH 08/15] fix minimal environment Co-authored-by: Copilot --- .ci_support/environment-mini.yml | 9 +++++++++ .ci_support/environment.yml | 1 + .github/workflows/pipeline.yml | 2 +- pyproject.toml | 1 + tests/test_compatibility_structure.py | 10 +++++++++- 5 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 .ci_support/environment-mini.yml diff --git a/.ci_support/environment-mini.yml b/.ci_support/environment-mini.yml new file mode 100644 index 00000000..8ba0a3f3 --- /dev/null +++ b/.ci_support/environment-mini.yml @@ -0,0 +1,9 @@ +channels: +- conda-forge +dependencies: +- hatchling +- hatch-vcs +- ase =3.28.0 +- numpy =2.4.3 +- pandas =3.0.2 +- scipy =1.17.1 \ No newline at end of file diff --git a/.ci_support/environment.yml b/.ci_support/environment.yml index 7df967fb..16e55bcc 100644 --- a/.ci_support/environment.yml +++ b/.ci_support/environment.yml @@ -8,3 +8,4 @@ dependencies: - numpy =2.4.3 - pandas =3.0.2 - scipy =1.17.1 +- structuretoolkit =0.0.42 \ No newline at end of file diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index aae62549..232a52ae 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -83,7 +83,7 @@ jobs: python-version: '3.14' miniforge-version: latest condarc-file: .condarc - environment-file: .ci_support/environment.yml + environment-file: .ci_support/environment-mini.yml - name: Test shell: bash -l {0} timeout-minutes: 30 diff --git a/pyproject.toml b/pyproject.toml index 8fd84a13..58e74263 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,7 @@ Repository = "https://github.com/pyiron/lammpsparser" [project.optional-dependencies] h5md = ["h5py==3.16.0"] +compatibility = ["structuretoolkit==0.0.42"] [tool.hatch.build] include = [ diff --git a/tests/test_compatibility_structure.py b/tests/test_compatibility_structure.py index b6e6490e..a32a09a6 100644 --- a/tests/test_compatibility_structure.py +++ b/tests/test_compatibility_structure.py @@ -4,7 +4,11 @@ from ase.build import bulk from ase.atoms import Atoms -from lammpsparser.compatibility.structure import LammpsStructureCompatibility, get_bonds +try: + from lammpsparser.compatibility.structure import LammpsStructureCompatibility, get_bonds + skip_structuretoolkit_test = False +except ImportError: + skip_structuretoolkit_test = True class _PatchedLammpsStructureCompatibility(LammpsStructureCompatibility): @@ -26,6 +30,7 @@ def molecule_ids(self, value): self._molecule_ids = value if value is not None else [] +@unittest.skipIf(skip_structuretoolkit_test, "structuretoolkit not available") class TestLammpsStructureCompatibilityInit(unittest.TestCase): def test_init_defaults(self): lsc = LammpsStructureCompatibility() @@ -56,6 +61,7 @@ def test_structure_getter(self): self.assertIs(lsc.structure, structure) +@unittest.skipIf(skip_structuretoolkit_test, "structuretoolkit not available") class TestLammpsStructureCompatibilitySetterAtomic(unittest.TestCase): def test_structure_setter_atomic(self): lsc = LammpsStructureCompatibility(atom_type="atomic") @@ -78,6 +84,7 @@ def test_structure_setter_charge(self): self.assertIn("1.500000", lsc._string_input) +@unittest.skipIf(skip_structuretoolkit_test, "structuretoolkit not available") class TestLammpsStructureCompatibilityFull(unittest.TestCase): def test_structure_setter_full_no_bonds(self): lsc = _PatchedLammpsStructureCompatibility( @@ -116,6 +123,7 @@ def test_structure_setter_full_no_bonds_empty_bond_dict(self): self.assertIn("Atoms", lsc._string_input) +@unittest.skipIf(skip_structuretoolkit_test, "structuretoolkit not available") class TestGetBonds(unittest.TestCase): def test_get_bonds_error(self): structure = bulk("Al", a=4.05, cubic=True).repeat([2, 2, 1]) From ee02f6ee03a10b2e864a44a06ae6a53c7a46bc3d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 05:33:37 +0000 Subject: [PATCH 09/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/test_compatibility_structure.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/test_compatibility_structure.py b/tests/test_compatibility_structure.py index a32a09a6..1abcece2 100644 --- a/tests/test_compatibility_structure.py +++ b/tests/test_compatibility_structure.py @@ -5,7 +5,11 @@ from ase.atoms import Atoms try: - from lammpsparser.compatibility.structure import LammpsStructureCompatibility, get_bonds + from lammpsparser.compatibility.structure import ( + LammpsStructureCompatibility, + get_bonds, + ) + skip_structuretoolkit_test = False except ImportError: skip_structuretoolkit_test = True From 8245f2e5f1fbee6610bb5afd73326d16b0299569 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 4 May 2026 07:36:44 +0200 Subject: [PATCH 10/15] fix env file --- .ci_support/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci_support/environment.yml b/.ci_support/environment.yml index 16e55bcc..36c0b962 100644 --- a/.ci_support/environment.yml +++ b/.ci_support/environment.yml @@ -8,4 +8,4 @@ dependencies: - numpy =2.4.3 - pandas =3.0.2 - scipy =1.17.1 -- structuretoolkit =0.0.42 \ No newline at end of file +- structuretoolkit =0.0.42 From 564d4a36b1208d49cddca925c981e8d69acd6f8e Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 4 May 2026 07:38:12 +0200 Subject: [PATCH 11/15] skip h5py test when not installed Co-authored-by: Copilot --- tests/test_output.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_output.py b/tests/test_output.py index a01b6e74..13a10ab4 100644 --- a/tests/test_output.py +++ b/tests/test_output.py @@ -12,6 +12,13 @@ from lammpsparser.structure import UnfoldingPrism +try: + import h5py + skip_h5py_test = False +except ImportError: + skip_h5py_test = True + + class TestLammpsOutput(unittest.TestCase): def setUp(self): self.static_folder = os.path.abspath(os.path.join(__file__, "..", "static")) @@ -332,6 +339,7 @@ def test_full_job_output(self): ) ) + @unittest.skipIf(skip_h5py_test, "h5py not available") def test_full_job_output_h5(self): test_folder = os.path.join(self.static_folder, "full_job_h5") structure_ni = bulk("Ni", cubic=True) From 6144127e23f4b3ef89a141cfcd997700ae05a067 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 4 May 2026 07:40:32 +0200 Subject: [PATCH 12/15] internal claass --- tests/test_compatibility_structure.py | 41 +++++++++++++-------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/tests/test_compatibility_structure.py b/tests/test_compatibility_structure.py index 1abcece2..5a5a12be 100644 --- a/tests/test_compatibility_structure.py +++ b/tests/test_compatibility_structure.py @@ -15,25 +15,6 @@ skip_structuretoolkit_test = True -class _PatchedLammpsStructureCompatibility(LammpsStructureCompatibility): - """Subclass that provides molecule_ids as [1, 1, ...] when set to None.""" - - @property - def molecule_ids(self): - if self._molecule_ids is None or len(self._molecule_ids) == 0: - if self._structure is not None: - return [1] * len(self._structure) - return [] - return self._molecule_ids - - @molecule_ids.setter - def molecule_ids(self, value): - if value is None and self._structure is not None: - self._molecule_ids = [1] * len(self._structure) - else: - self._molecule_ids = value if value is not None else [] - - @unittest.skipIf(skip_structuretoolkit_test, "structuretoolkit not available") class TestLammpsStructureCompatibilityInit(unittest.TestCase): def test_init_defaults(self): @@ -90,8 +71,26 @@ def test_structure_setter_charge(self): @unittest.skipIf(skip_structuretoolkit_test, "structuretoolkit not available") class TestLammpsStructureCompatibilityFull(unittest.TestCase): + class PatchedLammpsStructureCompatibility(LammpsStructureCompatibility): + """Subclass that provides molecule_ids as [1, 1, ...] when set to None.""" + + @property + def molecule_ids(self): + if self._molecule_ids is None or len(self._molecule_ids) == 0: + if self._structure is not None: + return [1] * len(self._structure) + return [] + return self._molecule_ids + + @molecule_ids.setter + def molecule_ids(self, value): + if value is None and self._structure is not None: + self._molecule_ids = [1] * len(self._structure) + else: + self._molecule_ids = value if value is not None else [] + def test_structure_setter_full_no_bonds(self): - lsc = _PatchedLammpsStructureCompatibility( + lsc = self.PatchedLammpsStructureCompatibility( bond_dict={}, units="metal", atom_type="full" ) lsc._el_eam_lst = ["Al"] @@ -106,7 +105,7 @@ def test_structure_setter_full_no_bonds(self): self.assertIn("Atoms", lsc._string_input) def test_structure_setter_full_no_bonds_empty_bond_dict(self): - lsc = _PatchedLammpsStructureCompatibility( + lsc = self.PatchedLammpsStructureCompatibility( bond_dict={}, units="metal", atom_type="full" ) lsc._el_eam_lst = ["Al"] From 5324c0dea2c94ae486cb7f91385207e48281cb0f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 05:40:42 +0000 Subject: [PATCH 13/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/test_output.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_output.py b/tests/test_output.py index 13a10ab4..037ce298 100644 --- a/tests/test_output.py +++ b/tests/test_output.py @@ -14,6 +14,7 @@ try: import h5py + skip_h5py_test = False except ImportError: skip_h5py_test = True From ff7442f004744aaa3e1cfef17aff693192aa8f49 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 4 May 2026 07:51:44 +0200 Subject: [PATCH 14/15] remove missing test --- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1337 bytes .../__pycache__/_version.cpython-312.pyc | Bin 0 -> 610 bytes .../__pycache__/output.cpython-312.pyc | Bin 0 -> 13423 bytes .../__pycache__/output_raw.cpython-312.pyc | Bin 0 -> 11438 bytes .../__pycache__/potential.cpython-312.pyc | Bin 0 -> 16594 bytes .../__pycache__/structure.cpython-312.pyc | Bin 0 -> 25521 bytes .../__pycache__/units.cpython-312.pyc | Bin 0 -> 8270 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 176 bytes .../__pycache__/calculate.cpython-312.pyc | Bin 0 -> 20185 bytes .../__pycache__/constraints.cpython-312.pyc | Bin 0 -> 6420 bytes .../__pycache__/file.cpython-312.pyc | Bin 0 -> 12288 bytes .../__pycache__/structure.cpython-312.pyc | Bin 0 -> 11695 bytes ...st_compatibility_calculate.cpython-312.pyc | Bin 0 -> 20536 bytes .../test_compatibility_file.cpython-312.pyc | Bin 0 -> 22189 bytes ...st_compatibility_structure.cpython-312.pyc | Bin 0 -> 4982 bytes .../test_constraints.cpython-312.pyc | Bin 0 -> 10205 bytes tests/__pycache__/test_output.cpython-312.pyc | Bin 0 -> 24916 bytes .../test_output_raw.cpython-312.pyc | Bin 0 -> 4682 bytes .../test_potential.cpython-312.pyc | Bin 0 -> 15580 bytes .../test_structure.cpython-312.pyc | Bin 0 -> 12593 bytes tests/__pycache__/test_units.cpython-312.pyc | Bin 0 -> 1748 bytes tests/test_compatibility_structure.py | 57 ------------------ 22 files changed, 57 deletions(-) create mode 100644 src/lammpsparser/__pycache__/__init__.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/_version.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/output.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/output_raw.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/potential.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/structure.cpython-312.pyc create mode 100644 src/lammpsparser/__pycache__/units.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/__init__.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/calculate.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc create mode 100644 src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc create mode 100644 tests/__pycache__/test_compatibility_calculate.cpython-312.pyc create mode 100644 tests/__pycache__/test_compatibility_file.cpython-312.pyc create mode 100644 tests/__pycache__/test_compatibility_structure.cpython-312.pyc create mode 100644 tests/__pycache__/test_constraints.cpython-312.pyc create mode 100644 tests/__pycache__/test_output.cpython-312.pyc create mode 100644 tests/__pycache__/test_output_raw.cpython-312.pyc create mode 100644 tests/__pycache__/test_potential.cpython-312.pyc create mode 100644 tests/__pycache__/test_structure.cpython-312.pyc create mode 100644 tests/__pycache__/test_units.cpython-312.pyc diff --git a/src/lammpsparser/__pycache__/__init__.cpython-312.pyc b/src/lammpsparser/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f715268623aeea1fc091ad1463bf66e88fce901d GIT binary patch literal 1337 zcmbtT&uSM#QKY?upXD+aYdYg8Q`wo3?a5~5 zLisE9in#H&aO$aO_OOTD3w!E<5YnD_o+NF85En-A^Yi=sp1)^*dDCh+2)=)wAIAUI z5c=CJW}h{6KD-3y4-}#hbL3%|Ep7?hvqjCTiMm(E2DAB+Xm}0L^qSSW#+QZTxs_k% zE28DKMB8hNj@PMTOZ*3M&ifJkM%di9yw!aaF2BOwd4>PyAwbYGI`G}CbQ+CI}XO*9*ta&#}JLtn7+!eTh|wI4|X zY>ePgShBgKQxuL_`(4HWPLHV&pj+GvGm(;Q;&V=dOzA|B?X4|hqCMb3;*jV(Wn`=} zlEWxqL}L==Br3>gOh!2w6;2^d0u@OZ1F}t2BCFIWk;2!6$3sT0{t^=NySdfd{&oL* z=c`WFE_U=YCPhM(&N-XWSDK|nGw2FvGo5IklXN_Wk;5oRn!}vKTtEW}cZ$tvl_~ov z=ZGi3e9G1-+{q?$IZoG+HYh}b%#o}cvuupfzg#k=0jB)vEALuKL`m1+>kAK}w9EpX zN!Gnsu1y}P%9lMlVp16?t;~nZYxApKkcbonw-@tR=RG6OjDr@w;8|YzMv_tQ9R1aW ztrJZFKG?;V% literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/_version.cpython-312.pyc b/src/lammpsparser/__pycache__/_version.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be083bb9aaa50bcb0e74dd63e8f2313778102559 GIT binary patch literal 610 zcmY*V&ubGw6rS1HU-_{%r3u(lXhA*X(A`R}r6470t%=1Zf_quk>=;t^7c*Ni;vvP0 zS5N9Kc+$VcOEi}_7Z*JBR_H}M`6g{D4#W4pdEc9F-kYzMRYb5(?BD%UjLf-iB?}5Kv0HRYK@novwFaenxvq+m=e?ke_mkN3#Nxk0cASP3QpTk! zta;f?xqAwhsICaDEenO#iNV5VayX_)AQCiySK6k%Y2U6BrpuHB`6sAVza|XN^TQCH zvD!}$8s6^x#_s-J>z>fFLE4Xd%#b%s073e3CJ4`%u%0v?AMQPBdF{@@!-mk4XGgS~ zi3PBV<0SJlXoP#-MHjPvu3Gtm&cO@)x#M&=4DB5GG3PXPQkF;$?u336r9AZ+$PQ=S z{}c0{veSVux1%ID4(Sf7fuo#MqXY1aBDZ&^LcB$Vt=bTC(XRNGHm9B@|*J1s!UL2y0kt)>(hnR30lpsuZ_{#u=KV!y}2<) MuovGo*%G|-7b7gDj{pDw literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/output.cpython-312.pyc b/src/lammpsparser/__pycache__/output.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..368b380cf37a73a4cd340ebd3ddb5b18098e016f GIT binary patch literal 13423 zcmeHOYj7Lab>78u@g!aZ-_(+#L_#7#$+BcgwPn$w9+WIv*29kJC2wMNk_B&=iPHE--CvN&G*PBA={a|I z0g#4l*Ztd-dH3M%x#ynyI`=#0UjK{3VWr^t=r1Ru|Gkx>euqD_$EXnW%GYU%nxi<1 zqhnN@9-wKYburz5j=c2)dU)$&hPZLS7&i@=;^qN!oEc!^mH~^(YaOr=Ui*Lp-iDYn zUNulfz8Pb#xO>1I_Y8RA-T^PkGsS%I>VaxPn`8cX%|H!JS=RmIJRI|iVW5`NaTdb5)>K>Vt3HS}Aj6G5^E(Y{+Z7M8?d`Jk7hPaVCH@aX@|2fn?$$FG#!)(Q9)B-ZuDy-}K54$aIk) zRi0s;MwQ-a`kMNELSM#dC~;_1S~qOg=+gU|N*1LU%A{1P&(KRRt~TK>mbL%bzfn$*!bTQR;+Q za%lCYOg)!J`YM#1U?wbOvYZ-k>76#Gsk8+(O*7ZjaiOW#TMSg%d$&g>r_=@Q6-`P8#&L%qmgh7YvV7mIIr35SYjevk~Zw!I2m{8kNqoFwQAh=ju@P z2t(ptQUy*E)h1}Y(E-Y&#)1hhEC}JT?id)Rz+SBGQ`1P|hj;;oABEsk9Nv&R;38X5 zSg}B{YuJv|SX4+RLSZm-P+>G82Fu7IUr;fFdzBe?l7|VJC~L_Y%~9th%XX@l8C-A!ppuPUJ7ZmG$fA2&n07`tOxNj6BdR> zaXe%T4?6HdSOVLfiiIP5z$!b}cChUEbU(?KViRSr%C6K9A~R0*7r(1DtNA8{OE$m& zhh%q&OC3#_iH4L+q!h^_nn5yPB>B_h-DhA;i`~QFgedZf?v#)m<|C5Wt+12LL+BQT z$l8qLhy+V2m>QGa0*}?JRfb@-3T;q@5B|iTLo!LNZlM~Q7CRO?G8=d1>UU)fHLE77 znO%Ht;khegciInT+Yjd259gYWWDNDoHpk`N)4T7PsD|w;M!m)Q+xl%Yrd2)VaD7)d zXPdQU8oO`o$~NxFx%S@No^?HTGn{qp&)Iw4?aA2>=IgiJ!$K>1qun&wyXvIs8Wx!a z=1Oy}c3Z|!z1-ZsWca&emZ_g&W;&J`>t$w|$+%mu^xrt2ZQJ)QbDQZa=&23C0z=uG zGKR+cpVWXj(FE;y&%XTt!;G8JXa&#j9A^jt{V;BY4K=8ASERV{Knd(=u*UStPhjht zqtb@S>XMmH)0MW)Yud(XkW_?5Q4-cpo?%9#O7CIZn%6zBSs1UWThf;*ZPH4o4QV>9 zOEcH$YpNEoRTVe0FD2Vtl6_sL(O-prny^mTChSs`)|j+j>y2TTmREXDIHFV(km;Mc z31`~L8F1sCr~=AJC>Li+TZX+QevQ(=#YIXu3>?*3e(B8>x9H)TQm#g6!m)ZO1mEgrq|mI)EAIZSzktzEH!HNUAJgG%Q5A( zaSYZ5?f&eR?JTuS0+6CSr51433%#(q>DQ|*UqtKAZuuhsV(c#`)3%r6Y3s`u()Q2M zZF@<#FVJHZ>z?qW-DxY#08`qN)<&QUXqP$~J3uGf=jh>4_3%x2QIE7Y?JMu;w2zFd z4_5DS-cc-kjt8enl=u|+%}HY^o^0sj+n($>e*DBKb~G#`00He~`;%V7Mt~vUz>x$O40r`JZ?Yl6$6~TAq&QF5R#}%6WkV_~otF*6$!J2hsvkj~fS6rw ziYUHQh(L#slnkl31~7yKWiRk!02xwA02fh-kBfpE+XM5663`6E`WO#Vp9#lC_=AFw z6l6wK8_FUTsFvNMN#O!CB*aAp*rk)gSXoCKNj;?ZWOs4ciX-MJjaV_yS3U?@uCN8Q zu@H7}79`oF4nzoB5Q>4X>OfaO1P1{W0R|m6C_A*)E3LJj=LSPc|H?L`wZSAGlmV6L z3o?CC)?WmlSC6u>8%o%uj1qAD$X;bMl)|cT;Us*)r6%ry9dD8<_$kIQIkD_&o*!F$ zY2l@uD>!9bb~P+-XjvRx7+p*+q%)n5Wgb6~+wk-<+xoWoE%V#dbWS&ph!=uJu{qT{Y^rnzDxW zjKMb(zjAWbN>#UB*_88j-0>aC`VLJVzuUB7>7lGUIC(VhX`Fv9>uH}nmUlPIAIZ8m zO&+~#cF#OF_qExt<*GMj&71PRrn%#@$FFS3`MU1-c4U1!KJe|F?w#tHdf~&SE!Q7< zXZO|JH+ru9#m(@oru|dL=IPh^0j^Z<0=U!|P~pr>-CWab)BI@8-F{uX#q7BG$f{n~ zXqr4WW6m0C0ob_f=c;C_K5(^68>Z-~?aMaj)C=F*HPiF0y#<}#@eKW8OYpkz&ZVoD zZqnCYe7EIROYe+rzUSM{f|+u+7Mv7goqTD&D^tHCv-?P9_vyUPKX+vI$oG$`db*n4 zJhym$;rx{s-nekXeap3DswZFN%J|x{Rc-l}Rz=obwq?dTzx~^ef{m))P;gOooA16_Uv^A8GX5jC zn7+HVYRLTK>PE`f{0T*4BTk*pwVcVGI{p5Ex4Qmb_YcgEnVa69I^KQygVw{4d;eC; z8Pw!E&VnA<|0FiU6#A!5_K08izTeU3H@?5It&d@TVYUPPi)tFuND+qtD~2rywqpRX z%~2BkRGvzxZn%i$G%nbKi{Sxbqf`unq;-I_R17HEN?{C6r{#WwmWqfkOa ziQtmCBUWmh>F2@21@C#>2(sa2X8B9tLk0sD0ZHD{!UoHE-U0%tdL{1U#^+1x!gS6oT=@;W!bh|wK?za%6n?^{tfvJ+w<&> zRhtRfO~CG=s@S~KpQ-7}_=8J)=HX+R9Z$Z0IAcEzwNxoGS3oT)Qa(j-f|1F+A51DZ zF7z<6ta~a=GKjnt<-p`DPUQ(xl$tQ7O`jF*13;ZsAr-{K(hR2qfYz3_0PwM@z{iJ9 z0%%k2WT{%Et)-;^5XVnqbykR*5y1O;5aby^UK5dLQ{};un6LqOGo)=W;dR%IT5Js@ zR1pcbqJ*bFf(aya5D9iwLM=$Jmlou(eO)KP&$PYdjDg&GBG+D&`y$9SgWUeI1!zf| zI0n554a7qq*e^RGdJ^I6R(r`l;rQ&DKl>}_<(QrFxsGo35lyv;pw56zTZcWV5 zitv#DNn4S!s}zv|F-gn#F)J<#0stVyml_dL7@83P9YhllqfEk*m4t8vqh$~pk0=o` z2xXDLC5aLeh(@FcXP{pY^&vn5xF_sTew)<*L_jZK&k^WJj0Hs5O%N%An5S%u^Wj8D z{b9Yx$C8n#1TjpxihL-`s3jRAiBW+Vst_m)oDj4JSZXQ$ki8W+gb*sk$n;5>J}ux< z5)huqwh|L8}KK71$H7pR6eS)W$}@PM;7-i z?8z8vmutFj25!~#0_4fNJd=HSU)vqumaK2f2fof}W=cPGDsOYn1hTe<4-X&BH643T zyeZA|cbdDi&D}RnXPUcjH}8E{%r+gH>YItY)}ME{W{zbY8}2zNcH@e}-0Zw(2WsZ< zJsah2%WvG0Z{L$|ZvQW{!R>+VpWS#5d6cpM9Gq^jbk){-l*wrY5y$9$I@i?yi;eF- z4KO6S5M81(TOYsOy#M`;*{1$tjTztWtYbG=)AlV(8#CRHziZBRAGx);58zz0^S7J( zX8UJ)W?qD_liNFInYFyxx)@jpT&c55OqxsE!pCGfUh?Qz?QOTWDbyr~* zWd}&&yZ^}!s`*L!{wD^|`Ti%(RP$5x{S^b06Tx&)@9FD$ZKn6OdU{=^pV^ywt4%*Q zJ=|N*MAYC7uuzl%{)jdHDiHrisNpDs8erGKLaQ~MqTrZHAD)JvWSR91vQbIdO5v=4 z;BF;SuP#dP8x*$*quS~gEQF&XFJjQ2zZBugVHO)5WO?*uL?SgAAyI7z=L>NDK;pM7 z7nZ_7_UMQx6|=&uga=?45${hXKqN@PO`aSsB$8^yB#f_E781ON)l3f7Du=lrRcVL8`O_P3tRvcD5W)_{PqUa8^4kexws_Rz9kb)}1Vz3v6;*bE|eTlh; zjL#s+BxeaQ4lqtoCkzhKQLt(P7&0)9s)}S5lnxj=%JCJb2s29=OFXV=J$UluQzu(l zDLjNHO++I4=S25_u4EGf`u_g@fT4uxgaKF$vbTuP6ju|^HifP5MZ|f{vWivP4YYvC zKjRmSB9NeTISlK*WdXIy&lxx)XX4Bp^QLJ+$C;-sm7vo_S^x;bnIEGnf3KW7jK*QzGhFm0N*_4O zHC030906)U{BJ^^)>nd3c;2p=1@r_+9IMWNdSScQJyKBv08n2VV~sHlp6-9xc&k8{`GkjwhArrx(9MA z#Bd+T+qkYc`~+TfDc3y@lv|mXT~{1_4q7xpupJbmr2up3VK{DH{|sYjXx#(A-drg^Z5oHUkv3yGVS<+9!dv%1ZuwTH zeyyBaajpXxUjJzGjdS6F`Ts&zrFBz`p^n4)!L@VUr}f=y0MpY3t{T@zqFUOn=`s9} zMwQ;2Un>RoUTP}q1Wv$ze)bHO(4!^Klx2|SYF}Zvx?W0auU5nV&kwDaD5|0@tk-&~ z@;FqSXOEO*Y82O?$$8-1XvDc8?a@lWbr-irm)`5gZ-PlPX~VQ-P`~DCN7MLGD*}Zt z>qcpajR+xLlz>xKwm~Qw!sTJS?jc(dKMak5zatfC324*BWDJhBW%HBCp;HiN513>F zzGcH{C@q^#B&CCiA=z|VeLq9kg;A`)G#El}O4bdAWDM&Y!BgWe$!3VHjKsmCvdH=q zmo8y4hRL|_O)RB9F@`_K#)Vhlr|{QG-uU>(e})JAKSLP8JRbutreyPAEE$$|JuIBY zU-SuZ3SUObq6MkN@xJxv00=TvxWy#_VPaeg0@zYm1t9|e!U%-e0f?z+iG?8b2wZm= zcM;c6%YJ_Q*+_Bkhe|R00ge~FvJHsu(Z?tn11Qv43^mZxIu1ZLM9t_Q>d}^bpPr-P z8V`gT#&kc@!-FF(l87)4aPmj;HE^b-avKU+l-l^Y_t>1CuNUr{|TUGm}^!b|lxff?&yz=mp zCs)%sWuDQ$W``iV>v5UXXf9Tw|7 z15h(GlyNv`JahH4^>^H@S$FF%?X3kJe7c8Bzt>kWrqx!;QFZyq^pU%8Sa4|e5S|%) znODJUg&=^R^4G4`IULSEG*Zs$>1St7&b#M(a*pQTIK0!(%=7_OXrU~g)y`O3lD zwk`SQjf+DILl_U3dMaPrey28&tqm;oWovidtjg9Np6a^``aL`SEGl+%7LICsb6aM& z%mrtIcRX!bPg~Bjd8sAq*}5dWGk$gaotLh@bf^0Wgbd#I=DLq(-N*0gb=7c`0P3tz z2B&pO2adz$?kUI2gs`)g+MO&6efzPpFg=curQD{w|``JV#h4Is&ix^ zLYi}($ycKj0xe`7*g^-k(DlVzm|xRE90+LWT>otU9bZ@0*R_<)`S#`gwR6L>!*hw* z#2tTE*59=h$@w3;r>CoT+%p=BEi{uBx~Q!WPr(7q<}A~`T+=Xrc(H$>KiAlqgJ3g+ zhHMS z!zgXt!xbaZc%22VouD0qr;_`lZO5nZHswoTE6Ij=0M8B7I0Qs4l`Fj9%;VD5T;a9; zKASv;7pd?*q&PA-7=_D{8Ai zr1Yn*?wv~}V*nB0(w+b}NFhpc2(~Pq@RI!mP=f(=gzMoq5_Q956-!G@KPHE8AH>@PU}zgDScZG2_s;NhL$gC~3X2yPE?x=0 zF}5V#Y`bN9{EqEF)^;FgJD4#XB+-BXL!!)osyTyKw4YC;v>TIfw-o|1XO-~t4b*^K zgs=dGTN#GD#;qmxfKTW_rXQ@~EGzv)@hi4zyjHs-{`}ezJ}Vq3GWHg!gGCD6Hn=na zyJz@Zj2C{4A8-vo*ctslrGE7H6pHj8K$bG?%XC6v!cQNr;Dm_eY#6ORH`#eB}vz=@&#IztV$(4dukg0HC%&?P0#FX^x*?_5{dZdE3FCsbs zm&?^>Xz%OW{{3&q4(@|FP--boHrYs45}9+tPa%W!k8Hr%9oPW(Mc|$bqU=ye0Bc7n zu`I+JvI#&5-0C1hA`o~*K$RJ}7-TS#MW`MdDA77um*Qj#T(=~5Wktb)d^HNDRc>tt z)tDIk?*impQ#p)4&?WoV@D-zs%H0>wnvdi<2f5%v?sby;7RtdUIV{+XI=+AjSy(ej zVZ2O1r_7`ABsUV{_X+<9d9dIp@!ueYLwB0~HP!k%%JM6!>NnKR+tkkAQJ!B>-d|G< ze=rzm-8~AD-&-mApvc$jPQn{b=wMNq~M-sRl$N3+$?A-*pRYQwG9Oa zQgDB?u~3DSi)v^txRLTu^{qrIoQs&OE7h3SucJ2YDmWTwYrb(qK@ab{O>DskZ>Y*% zUoa!ZpuQHQtXRDbDLV?oa!?frt3nFw5(u+((AD`WPeBjwySBQ55#DN(kz!DU1t}|v zKyDBQA{24yM5DkHX9*Migz={!x!XZ8N h*b{*3ob(|&4|OX<%Vw2$806unyGF~Z5eYKj{{yucggF2J literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/output_raw.cpython-312.pyc b/src/lammpsparser/__pycache__/output_raw.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db3da2f027f7cee68df2cb2ac1e80ecc261c3fc0 GIT binary patch literal 11438 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 ZdfZQ%N#*06(Ff`ARO@$(r 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 Du-2=* literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/structure.cpython-312.pyc b/src/lammpsparser/__pycache__/structure.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49b03e3e826d628b32093c89bac872526589759d GIT binary patch literal 25521 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 SpKr=`u_k=uwNDc literal 0 HcmV?d00001 diff --git a/src/lammpsparser/__pycache__/units.cpython-312.pyc b/src/lammpsparser/__pycache__/units.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fa50abea5e0b0054ac9065ad4926a4722c633c8 GIT binary patch literal 8270 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 literal 0 HcmV?d00001 diff --git a/src/lammpsparser/compatibility/__pycache__/__init__.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b56a1d4fc8ba20cb36128a4e1552b712a2615dff GIT binary patch literal 176 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 literal 0 HcmV?d00001 diff --git a/src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/constraints.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c4580c2eb51c48d37efec7f88d698798d14f9a0f GIT binary patch literal 6420 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 literal 0 HcmV?d00001 diff --git a/src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/file.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..115db7d8118dd94cacd01795ce1f75a1166ea43e GIT binary patch literal 12288 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 literal 0 HcmV?d00001 diff --git a/src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc b/src/lammpsparser/compatibility/__pycache__/structure.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e038f9a7c8a9f628098429c57245b0091d948db3 GIT binary patch literal 11695 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 hW7PDF^)T#T2*ls@JtA^e-Wp|Iz>e literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_potential.cpython-312.pyc b/tests/__pycache__/test_potential.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..38778acb8d46ddcae2eba2471b95a28c65521e4c GIT binary patch literal 15580 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_structure.cpython-312.pyc b/tests/__pycache__/test_structure.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a165eac23689688629f59e6a9241c5dac84cc0e0 GIT binary patch literal 12593 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 Date: Mon, 4 May 2026 07:53:14 +0200 Subject: [PATCH 15/15] old structuretoolkit version --- .ci_support/environment-old.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci_support/environment-old.yml b/.ci_support/environment-old.yml index 3657537f..928e4354 100644 --- a/.ci_support/environment-old.yml +++ b/.ci_support/environment-old.yml @@ -8,3 +8,4 @@ dependencies: - numpy =1.26.0 - pandas =2.0.3 - scipy =1.11.1 +- structuretoolkit =0.0.30 \ No newline at end of file