From f201441014869942262c3bf0f64175217babd8c5 Mon Sep 17 00:00:00 2001 From: Nicholas Jakobsen Date: Sun, 16 Aug 2026 10:02:52 -0700 Subject: [PATCH] chore: Strip ArcGIS metadata sidecars from the shapefile fixtures Ten fixture archives carried the `.shp.xml` sidecar that ArcGIS writes beside an export. It describes the workstation that produced the file rather than the shapefile itself, which is not something a fixture in a public repository needs to carry. Nothing reads these files. The importer selects archive members by a `.shp` extension anchored at the end of the name, so a `.shp.xml` sibling has never matched, and no spec refers to one. Co-Authored-By: Claude Opus 5 (1M context) --- spec/fixtures/archive_with_multiple_shps.zip | Bin 1284077 -> 1282840 bytes spec/fixtures/shapefile.zip | Bin 125833 -> 122705 bytes spec/fixtures/shapefile_with_dot_prefix.zip | Bin 245887 -> 242759 bytes .../shapefile_with_incorrect_shx_basename.zip | Bin 126374 -> 123102 bytes .../shapefile_with_macosx_resources.zip | Bin 127521 -> 124201 bytes .../shapefile_with_missing_dbf_file.zip | Bin 124833 -> 121597 bytes spec/fixtures/shapefile_with_upcase_shp.zip | Bin 126650 -> 123346 bytes .../fixtures/shapefile_without_projection.zip | Bin 125408 -> 122208 bytes .../shapefile_without_shape_format.zip | Bin 5949 -> 2713 bytes .../shapefile_without_shape_index.zip | Bin 125715 -> 122479 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/spec/fixtures/archive_with_multiple_shps.zip b/spec/fixtures/archive_with_multiple_shps.zip index 510a112492fa4702dcf500b1a33e0f4d0a41963c..245870641cf37cbe3a85227e519236b98a5e4a1a 100644 GIT binary patch delta 229 zcmaF6-fzY-zlIjZ7N!>F7M2#)7Pc+yQ)aYx%wh*(4j|?PVlE)&24Wr{<^^ItAm#^R z0U#FK-Z4w4>htun>B0ir1tthTV4fZ~MObb+-xOi_>9eN@do!<^$v$1MPgrsKo!RWl z(*-6A^Gvs#DlEr*dNEY|?^2lfDv-FvQn0wv^tV%meWst7Dy%j=VI{lb^oD7|TFm#C ugC$j_i>zW-fEZRZ9jJ++M;K&@^7L)fg*Ewj7F7M2#)7Pc+yQ)URKhQ1AAUQtvyjgf(&f{B4afk9#V!#-hY zfs6vZirk#g5MBoMbr;?yOqqO;EUC^7rCfxut88}$N7@#42V6Blb}9V_d0pC)!% zlZVAEG;d{8q|v0HN%iqJGnsSuzqnxi^4{KZ_jP=G-Si*q*_76~IkHPoB6ItxH`6LE z$Nm4)yZ*)Z{3Y!Q+mtv&?#E{trX5W1(t0nV+R7Z*#ZWTu+~zOg+Z0Yp&YHCLRb$%A z`lCwTm%mJzqcF+3GI(?L>ng#FCF&>HTQ)47xZRB@cebzVq|Z~2+%4 z8g3kQVNtE+Rm)MMJntO2jAk0 zJ*su)9E$_%OKLu`T>k7FV)8Zq+SApG^dh%Mlz;BFpIvJD&$;w+$=hAov$gX7msawu z(at`W7ydo8)8IKz%pBGGJyG>Fg1@iH>3_3&BfH>G-ebW|_8W^50;QJ=^=b4guBr{( zn0VfPOL5Y?4$1U?g$GnBi)T-IV$<;CbH=30lT_YYi+q16+TJyT9f&!Am=lP(fS4PI zd4QM~i1~n+ABY8jSa5sS4560K{MwVHAI=2EdJ8bt)q%0TZ<4SwHzLwiCZFY$s&5Sn z1VwnA{1;ts0ZYn=EYl{HaENQKYrN=*^Fq`%lf)*WY7eUs>| z=UdY7K_=FI8{gy~B@-&Me@(S&TAm`1?027aQObks4uRcxu@H3?q|8n$w(Y*6o|lx-f|A!;XNRk{t2>4*$q? zoB96sj_(dd+mEvE{=Px=;zX%%;eHk8<|*+!ezG!8>eFVm#M`Exoc(Ez>hn~U`t_QY zvOb^c{41i@Z|f2M$1I4Efv59N5Z2*GL?k@-PFI*D%rpI8zpxy0-7I!+E}w2SLD+|R z-fVVI>?=-RH9^>ydH+%!6acr x8ML&-00UbZzw}PuJ4sjtJz+uIGIx@&9Mh+MkP2TuJ_bGpRyGEPOB02G+5vj67YzUa diff --git a/spec/fixtures/shapefile.zip b/spec/fixtures/shapefile.zip index a01390fc9ddcc0027b70a93e34f1a998b00af312..568be7c310d7f2171190e1d07cda107559140f64 100644 GIT binary patch delta 52 zcmeCY&VF$pd&3q+(L2+XUNZ`9|M#5nFcXL=H~s!AMycshuNf8j*cjLt^q3eJc<(YY HFfafBMg0-3 delta 3130 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 diff --git a/spec/fixtures/shapefile_with_dot_prefix.zip b/spec/fixtures/shapefile_with_dot_prefix.zip index 31ab4f137817e4f4d0c41eb946748509f64d6bf2..51db555b62e303dc5528b2d02d252e7fc3057696 100644 GIT binary patch delta 139 zcmez0z<>M&U-NbD_Uqh?K+LrLIydvijniN5WtN-1Y%jCKboqVEuFSEF43h(SrKSfT z0E*n-%gi->@jhlb)=VY_2EFNwdzeM1-`>aU!o+xey5fH3Xr|KJAX;qtl>I=xJR6vS kdc~)I-p}mJyco<8o9=&rS&5IGft{fTXvETu%nS?+09C0k2mk;8 delta 3212 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 diff --git a/spec/fixtures/shapefile_with_incorrect_shx_basename.zip b/spec/fixtures/shapefile_with_incorrect_shx_basename.zip index 1f61eb5f24d718b273c1cead3454aa10c57dfc34..30858317773e226121c8cc4befbc088315191d53 100644 GIT binary patch delta 295 zcmZ2>oBiHF_6dG`3=A9$;=YNV_q_B1c^Eeb@;N%{Djer`bf zS{No@;8mNR|CUj4`u&%T9@EWVF~%`6Oy_(J6xjZXQE9r*YesFLKm|~MX*1*W{5OmW z(|1F}o&&|0&oVJg{?BJI?KL9@P?^sgpt8%%AZ6Y_?rsn_lmnvc-y5(=T0py)t?x2U dFL=W!KRx#?qc$Hq13SYDCI*HFcNu|h0stw*SYH4D delta 3536 zcmZ{ncT^MFlgCpCiF6eR5XD4#7Zs!S2~q??ks2^kq!R?5B1lUh5ye762c?D* zRHS!M0Yz%yi9k^4QpLryzuoipoVWL!`R6m=J9qBPKQmL!(1LMjy14)h00WE|xLpSP z=cGyl01_lTOq@qC%pZrb;RZly>>_q{85x3v5r?I~F%!XqCd?j>Q{P7q>n!Ab&D1hk zu2EOeC`66qksV0SXAdpow7Q@=^<90DZm;cEk4<`z}4!4L87Z_>3mu9i8|J416LMHqeR z0h^sp<952^NT_x)4U#P3)l#XBOBn3Nn}Ch@qU|0&7-)pdKkU@!ky#T`Zk|O*;=~L= zSCC^?()Q9)p~+hLK4d_)W9T=&+XRN|WR_NvZEAFHf);DOs3hO0zYH!n_Xs05e%DA% zm9~{mH!Ze(2}kz_ww8Q8M74?JHQ&e~(_)`&&r0jk5fOoLlQT$j{%PnZvr_9){(hrs z+v0JfIH0g?k%8vgT7<*f$k(#~ox;i|=j^ql#mBCZ8gAzVJBOdO4Zr?66BQ+eU6ygKmT?GSwAvWnqF1CO zl)5X;nivIqnct=b>-aRQh#N@Wq-~F>T0f`xzqSHA>)3a3Br7^#&|>#eqm(Zlzg`0p45HkH+g1awi2=dTTcUw7Yo@E| z?;kQ-fWl|G-PXXbtXWO-wHfI}$9L-cZ;i5~1>y6g=JtEi9&oaXjn|shs$)f{-T|y> zYp#@j*5Bq~s{(dR-$P;>$O_%&(lxlXg4_^h@B;wtGu3i3aJ&*B;O5Qbx;Z!g!4#s8 zLr0??;hS@1?3*vS>HN+t?vWTOf2lguAb44&ti!XY(Q>h+<)H%Y=#Met|k&mcc)nonGaQv>|7yUXSxe znb~@GdcEzKs(l1_z9-GDzy7!h2}W#QJ*;`qb)Mpr*|XFYk{^(Il^ zK|e4XYQJepzwS#ev8}e3p^W@2)V)1Unp!+#z_A=C9bhLv+8*1!LNr|UJnHR0`}mx5 z0BI0t7JV_adHfD<*O?b3jVZI*X8Am4EPf&l5mBmPh)hCqWX@gTM-(!Kkci_NNN_rF z^+F*>g^%iE`lNXDibCLGW%AJHcAvg^t%)EeD|!Gc-&QjqRc>MYx_ghSB2rbSn`uff zfRH;PapG{{&gEkTE8A7RS$zdQvL>FQ&!)Yw&&^s*vCHcfq01vjneO?%wz4C>`OfkN z+r?x=1Yw*T@J!dEmY&Hiz%q#W#Oo*G2k!oUZuIpavS|?8sS`h;vpi*S`dRye9iC%g zy5?9z5T|Jg^!ceDC@3!yx|LqOv(J+ERD|>4@zx#af{HEM8Ut1cz6|%+&UTOqzOG<` z{NcW~?#t3Ed;nWHSlB>S`L|@Jq1b7%mJBlj?Cky1gcAzxl#_xJ@iJ}6;b!2tRj2e* zwkc!lGAWbl@T+O}{e%_XRhu{Wo}Rf;^GI^qtSHQ!{d~eNa2W5%N2;{awIS8b$$Z|H zlR;l2A#vezuBd($PPVJvt#Ozandp=_k}>I|FeqG%f^xF5-d@|8PH+xdom*F$Azp_Q zy2i!Up7@K8{kkzymKpQp(aj$VA@%zkbL+p=y!+-ZP`%pA4m7l)h+g?l$Q zGqn?6DYOK$Q);_D2s>iSPQK^+>quCUe!2VN7w$Vt>YC5xv`bijZ5-|S)F-NO8JhC0 zszjlJCYP=_e)oqJc8fZ{*<#Oz@egZt&+EpV2mk2ENc1G`w;3og1oF(M^q+D(CK4Rp zpVmF0pnm;>#&FMIx6r`T#s@ifauYX`kjJU&$6wj5l;beZJsj6RoZirbB+^zI*#0hR z*}c1qzWXaP93_`_C*;eqV;>sjOD07EXb<||O!x(5XTHGCOJ3jg*(qk6zI-!&0dYxn zGKK%a2U`rc~cq@i5g zh!~b=H0Y{#ap$|Uz?)jXD%x>2jL{3bbBImGj`t}TKFh7zs#K-#3f$Yvy;I(n;FlFx zoxQmDjU|W?u`D~^W2-(SefHxcjgs|>5d8^F#|}=M_XOV3##vckJ1naqR)k|*@5`~5 z<;L!*Q~k-$huyW~vnl7Wi2iBcQGFIqV{Z<9%`llNrv-GaQD z6U}b7y10u=Wp@EBo>aRQL;LWR;1yT@mTzn2NRrY+ezyAKx#?_cekOQVjxwm37N2o3 z>A1}@2T=xh^hE5(@WdY{RoOEz3zv&xWll^VNlKwQb0~i1{J?l%;{yt#`yF)=33;&1 zsHIuHZ7xy5522fPwV2j)2aVTt9$Mkk%c6qfIdf>%dU)77uX8&k>0j4l377AAEn=fS zip&b-C_lUP?us1#;=8|^&ZCw3lVl;*IWIXyC%#6_7!Sw$dt5?dUH54e{BtOu{LDt; zNLcRe7!M0EF;9)!6na%{2J0p+wXG{+`R$%|jyJ=PNiX;2vW*>7CfTQ9KI`Q*i%wW7 zoJjrfb<-?*+D|F1d?C&iN2p5S28Hyc&k7+V3P;T|N0q~izzxo3x9zS9BXU8@ArnnN z<8S)MR_Zk^a(DNhe(PQ$&DMNTeym5O+NTT)>90jF;$MQMqHh4;I!KomYVc!~OT2ao zb~9h?-3$!c$-x4-KGz38ONPC&ZojpiFxRBBn!8LqJtPD*G#2mG5z><+W=tCnV!MZW z)8d{}`3#o5Tp$oI*LH{iV&hC?SAI^xSb2f;cl)b>+BkzZ*_?Q=3~WGVGHW7IBkVqVHf5D( z+ZkIH#)F!RU6sX|l?NM(b7ZyGss4F#9AK-&q$fgj>Q=)R0nz2dNIQVA8P!dYuI(gT zLJe!37A%31w+M;v)_r*~s0rhRaE1Gwp6VBs*v`3~c`DHu*H|c9JV|@8~s^e!;rNRb64GDX*xrlQ}_!{ zAJ`smA>~Rad?9&;#Y*)Xt_80mUzj*5eARN?%(C_RgwvNwjusoj>d48)e_HJ7P(8LdyT(J zL{s)iwH9UUejgpPGwSzN{>KsLLDurz?UWkP z7GE)KnGDe8QnQ*%8!pDlgi@)Tu@9lHZ#DfoWr>Eugp`_A<2V6;KLfla8qCIjIM~Ag z@GGwW8SN{t+XE$_uqjhTD=r`aP<&|rCIbM(Gh8G{%RnXy3aiIp?=>DS2IBuNCNV*q zl2Dj*w+^xLQ1$K5{yk(nJOe9U&C6!OCIyAPLW~L+IvRv&Eb6hFva;m{^W2zxyc{+A3*irg9>ey67*n!iury3npyOL(Xsiw==SrX zjGb2m!Im*_Fo^pmdTtGV{%6(p%2$lcj40yr@i+b4rq6xNI7Jj$xyDJmNgEj$7~V`@ z_?l5|dd(ZgtJ4$TGR8stk^rQDeo$nd%*ZhL0HghM-H(hMj0`}RD>A7tO=tYTs4%&d zPZ=sa9q0o^rhaCK_y>NtIM5r4OeEvyVVaRqr!SzR0gQz4{}gCQxiCNbD3)ERjiZdhHuVMX>;HRyLs98MuJZl7)fc J)&oW$4*-18cxwOv delta 3720 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 HWzhcsv*mkv diff --git a/spec/fixtures/shapefile_with_missing_dbf_file.zip b/spec/fixtures/shapefile_with_missing_dbf_file.zip index 8172983c6828efd27f8fbfb5066fd67eb55b17cb..ac170f30304efbb56862908aaf539c7557abcd9c 100644 GIT binary patch delta 270 zcmZ2@p8fAuc8LIQW)=|!1_llWao}lLsrr)K@t{X0p6@^KsPb4 O0^v`f58mAX5)1&TYDF3V delta 3495 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 delta 3523 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 d1)RG0dvKQccm^oV@%xfAP}u+g diff --git a/spec/fixtures/shapefile_without_projection.zip b/spec/fixtures/shapefile_without_projection.zip index 6b63476cc4de77471a8a741ede27ee339940afa3..3c2070b4524b11dcddd67f8d448b7d806a501930 100644 GIT binary patch delta 272 zcmaEGnf<{oc8LIQW)=|!1_llW3ExD|9ia*ByMa6v#>v%!(v$gk&a;B0r}w{L6rEfz zD7IOa*MbEq_5di>Trar2UXXFq6{wiuOGeS@-<~mwPcM4L7$u5qw#G@jNgIJ?znT8= z8RJ8CMkY~apvBYeUN9<7=X${?IlbZqqZlIt$SOr92FB@$K<@MtFBrvvVnC}DnKD>G zV&c=KUV_yDtx{w*xy3lSK~QXZHc(6z<_ow@K-{xdQmx zf)UNffr2;>zq27eSd=XnptDrdA(u_q_9u`JFk-*xKW;2=(1hCMcIX>*waSD)&`2(o zNuu<^8RKVud{-bmZWj|LjSbB{aqxn))bm6~T@l2~yA z9Ox>1+)~<3S}HhEGtZL%$hr~yjrT6qc`{S;p-pmRZ@eaRuCO@Iu)h>4H~R!7H*wEU zRfW8nN--(2DT5;W{acGa9YVDUgjKKbA(JA{EVoLlk`ZD43FC8cGrlRvN7E9k625-J zYMY`7!&sn@O(8;Kbv4ZXUHF?BfHtn+v?xl)e*~yrOKbI3rw!5SY1~{G_3w4}o~?id zSH49Iid@zB^*Gj9`~3BX3s0TH)m<(KbPm608-DY3IwC>}y(HsUEn^=x63NaYb$2cTy0uv;fd|~{ySq#X#wb5dUN}IX;&yg+1h>8a^*%vu-*ZC z)8=dm<-Cve<5mUqxW22z7LbVx-r~|h+*yXN3sLz1fcEKXIT@&*qVMh7iFLCse6%FI zr+r7G9`2iCW%S!GIjMY(%%dYwB)$@f?rEX=auN)D&%!t@gs&B}ro9_=)+vXe^CpY2 zj1AnugzwRoJS##rJcYWiYtXROdo#J=VR-S7ccnsjGjD(GE{njQ3|yysc_VqqQL5MV zqG3jsUQDltEkmUbn&(EgEgnVY;cwaN{Mwtr4#NVgxy)TUT5kMsyw%lD+FnasbH0t| zf7B1mg4k`CP;Pn=ifyXxWQZd_3v}*Iq<>yGhu~Q9m-e-lA8U_pU&b4(xE=GbCy&15 z9DpPIO(S)Knz?sd96pH{H8j72zt{-3${- zKA6xEjy(ev>RdXWzr0oDmD!i?DQoN|`eMo*{nE761iiF|s|a2iImW=`dD+O0c;z|D zBeseNu&{}vfEPNhwUmsb{7gjDM;>osZGuWPZh_O$~w>ZFG>2o10C85YT))K23D5#2AwP#r(+5ICPKX% z8yQ*&uN7JX*@(4WgF-jZr6M1A|2Ps-s9%m*_;NI6QBC8eoK`XOkM(0cANxeruRxOC zR~0K%kmXX(PTc!piQXj5ZM4|2qI^PHF}d9++(nij9cc+}_`NoSB9%Ya?6dxJj;DD0 z52tlbDyZEYR3Gl4bqfwWZ+w&;lasLV5PpKBcH*_oayb_D()GsL;OTWeZ~}R`f%VVA zmYsV$$b0)4p<;3=F+pFBA0KR#FP;?kB|qwaOZN`Q%6R2BCwX(nbGwLo`pWINdDvx@ z$s`=#qY<$aW0B1tO;W}kd+4n9U-w7EU8b8|S*+Z>E5!iy5Ww{tc z9=uUnkef|20=fT6U-OM2Oc#`2qJ;+gt;fwcmwqaPSopW%&x-MIf;+XHKUmI-7|6wr zh@eybSi($>`D0gdZX*Y-ygQoc+W(NPT4O2@0WjA9E58dbCBY zC0o2}E>`p#LN@PcGOQ@}>Tl{?HF2R+OQHg2vS*RZwa}3F?iaR;Q@^f7U%BtTfQ}dy zo)OGedU5CdRXIQ1_kT29L@M?_lm%O5mvM^HzeY?O4afPoUWTKc_sB%Qmk?h0>Ggz> zkes_wuIA$6ZtAs3l&ab^=51_pTUXf9yIrkp52`nVQtrWJ6HQY}w@X2N(!=F8i_$F= zP9_h2-7t-u@>WbKpO1CMRwW$;1@)!Q2*M-^#>_ItltK$x8XQgU+Flca<$#ug=uJSQ zZ~DiV>ov@Cc6OhC>t0NssrjPxRF6cmOBxo`Uk#(im4QA--U2|i;Z7~2z^BTWd2Hit zr@z{{AQ0_@K>i%hn**Rl16;4H%P%bl)OG31<}PD5R|x@i^@aO&sShQlO&SiOyN7yH zVqcPY5lik)U@!~URuDgI{akogUUvR?dA{^_yKDYhSj5{bPS^$?tK1X#G0rl>n)xYR z_NSK<3u(Th$>q9r9q&~0F8Fi68mf6Y6=%F^QZJRoi?y9*55>1PlW`Ex75U8I#J#+^ zX3*`3s(ih|EB+F)6NCASN6b^Te!-Fs(xe=Qb{jOz&Sn_}!AmeDCjmN^-W1X}Ov#PW zsG8?(){;?_;T~|l<7>U($dqWhHMqctM=oPWb2wPr;nOz48e}T7Dl9d^=DBNKT6w;m zx@m4i(^%-LEXt@nz^yOL5>($L`{c@TuvjKMd?rXCZ8mJex;&{V2VhpiI(qu`?fA=L z!Kjp$Tg(yue$WqIcA~k}NExPH6 zdDO~V{r(TQiv2Lvv2qW#%`?RZN2uK9JAamcP)^*n3G&&zVFYzrDR#SKp0k*Kzj41< zG-)^eZus!$5^wG;)}GN{Ar7eA#`$V%YNXyBmVLv?ic!$7ce8T*j)-4)j-?*fVW*|b z)j>Zx5L-Ika|C7zrmaB2)#mfHe0KLVM)5Il-~N=E?E_@g_L%oO`5#9dY0RbByGb>o zEnea>X`qe8W>u#)Y?OmBu~I2*4@_FyY}!9%frPLNDmJaeasmL!(g48!{k`B-=fC^= z^cb*k+69^vguNbxzTbFg{LcXYxm~FGJW!SOknkEVP7!B4G-J?zAjHLh>tet_%J3nf z23H+(e;5ex@C5y{Afo#?(EgBc%ITAt;i07X!}CusfDzZmfo*aScIj?yeC1*Dx4#HL z5I@WRL(SjE0V57h03~7n4K?il3pEzV|B#4pCxBw02~Ohl1W*CUPUN8q9@0M@ diff --git a/spec/fixtures/shapefile_without_shape_format.zip b/spec/fixtures/shapefile_without_shape_format.zip index 69368be7dc5c4bb5f5b5ffd746a945dcfa8ee21d..8a80f3520eb530a470190b9710a23dd7e940542e 100644 GIT binary patch delta 237 zcmdn1H&c{7z?+#xgn?o5IT7*6;%p+5*+rE%hN`lNf<+lP7{q-OJ@0wx1@bU5Fsz&` zz$QI8M^t(9T^2q@L1ZO6LKE6|Pv&9!&k8Z_uc-KBbM|^MWHlNm?IvwxU|@K|Fj)|2 z4y(A*WEPRl?2Jqz%n%o(FfvRw7FA@bV43_;L=0$=Hc(&&P~avjSU{Uid2+uf2T<@Y mQ1B%iSkRjtCU{y*k*S3pEXX3R&Bw~X%J38D>MjnToeTguy*J7L delta 3450 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 dW67D{3V9wQ6qxCEA=9zj1COu5NE847 delta 3467 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