From 7718350f2fe91e7a64894fc2736946ff94409877 Mon Sep 17 00:00:00 2001 From: Frost Ming Date: Sat, 1 Dec 2018 12:26:35 +0800 Subject: [PATCH 1/3] Don't normalize name when writing Pipfile Signed-off-by: Frost Ming --- news/3324.bugfix.rst | 1 + pipenv/project.py | 3 ++- tests/integration/test_install_basic.py | 8 ++++++++ tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz | Bin 0 -> 2319 bytes 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 news/3324.bugfix.rst create mode 100644 tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz diff --git a/news/3324.bugfix.rst b/news/3324.bugfix.rst new file mode 100644 index 0000000000..d13a8d468f --- /dev/null +++ b/news/3324.bugfix.rst @@ -0,0 +1 @@ +Don't normalize the package name user passes in. diff --git a/pipenv/project.py b/pipenv/project.py index ef34eeb8fe..03f4886869 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -13,6 +13,7 @@ import operator import pipfile import pipfile.api +from pkg_resources import safe_name import six import vistir import toml @@ -953,7 +954,7 @@ def add_package_to_pipfile(self, package, dev=False): # Skip for wildcard version return # Add the package to the group. - p[key][name or package.normalized_name] = converted + p[key][name or safe_name(package.name)] = converted # Write Pipfile. self.write_toml(p) diff --git a/tests/integration/test_install_basic.py b/tests/integration/test_install_basic.py index 51be966c26..d4ca32f42b 100644 --- a/tests/integration/test_install_basic.py +++ b/tests/integration/test_install_basic.py @@ -439,3 +439,11 @@ def test_install_non_exist_dep(PipenvInstance, pypi): c = p.pipenv("install dateutil") assert not c.ok assert "dateutil" not in p.pipfile["packages"] + + +@pytest.mark.install +def test_install_package_with_dots(PipenvInstance, pypi): + with PipenvInstance(pypi=pypi, chdir=True) as p: + c = p.pipenv("install fsc.export") + assert c.ok + assert "fsc.export" in p.pipfile["packages"] diff --git a/tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz b/tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4b4853f53b656d379eab8a6471db612c6e7056f9 GIT binary patch literal 2319 zcmV+q3GntGiwFoc*T7i<|72-%bT4LeV=iTQaBp&SEio=JE-)^1VR8WNT-|fxwieH` z{tDgX!O#X{8-sh9a;KS1((bfPcA9MOLnh-DSb)36axFOt?eu@YN0JQ&lBL<3u<5RT zFUI=*I!EWrjQPl>cNxn?%e7tGY41Hf96%6s<YgD>|8kaXMz# zNRUZ5EaD`>1FT*mA}IWJkl_zs4*f3^Y&aS%c{JKjK>v@D|2)U<21fpSG5ep>--{UL z|B*uBw*7a3*{|+@$LV$r|KA1BRX>}HDNDmr@W5M|Qpj=!dXaJt(lK5=-zhGII&>Nb390SbU*BuNs6HbOtJ8Es``0$ogn z$olQ}SS~J0;*?EtR%G@h7Sm#A$E=pq&gObBZ8^fD0)&>lk6+pNbWx;CZP6Kt6Bz#@ z_I1_4`m(!S+L&qbQ3KFLr6C6E$ zy7*i*2`}?Q91A=mDVE|A9?Mpy6w^Bx8%;+Pv$5=gjkw6;bb@cEG{x~uPFcRnvbuE} z;S%UgLIgB4>*Kd)Kc1cc_YA#C2(D*IBp! zcpcw2^uH7N@96CH>B+^V9j8dUezG~L`G66~Bkf;Kj*fpmQ9q-ll%%phq%NQ>X9@k? zy9RADN}{b+3t6IF%8y|fr?CLp45nI7E*n@&trlZ7`5D~gFN6N8L-2%sY@vUz6D;Z9 z0bby^J>N0+|4wl5uXe%n_ApM{G`+#v7K{#X>#G(hJ`o7=eO!of>l>MZ4j`w}yznst zIX`}nzgH`Rzb#kjyUFYh^sE0s(PJV&zXEg|+v(UIY%F%1zW49G)5E|7E}_h6oaizO z?t`?>gZZ2zG|t&fX9>m8E;l7gy=2iVew*s7Ak-wTpREkk-UEqTf<{538! z5xNBh6Eom64eK7RW*uTHx0;x6Jnk!Ht5yKo8{0W0QKN|j=)fv}tv$^!H=B`=Rn?Fe zt%>;gZev;>~vS_7Lt>=|t*BH=dKb0+i*@-Qc$_zTwT)v@-$+Z}4EZAYai9z|) ziJ&yT2bGQwt`^hTsIGFZb@?Js2G&RE_;R-_+p>RSaoVWn$}>U-Bs-A9~` zk|LsEIX3CFCWFhopgNnV<2tZb3KY9zo*K9F~O=0@o(7@9#^4LFTQC>u<8df(IXmIdZl$LBL?bSF$vJuMi zBGtdD*6%Yp*Yirtw4vjt^#8mB{m<_j{qK|Qe@V}uZvWvT=$ZZh)cgNbKCVZ9|LM7I zVD$f;z2ju?_|j3vk``4XgLg<%|pE6ENyOhOT((`Fuc!W`sLF9A|U2j zEG@9oxXn${V&6>D)QHlBpxDES{Z>p zuaql1ls@mnMcBtRLNp~qAb3a*mDzECPf5ZlLJ=L~s!BtbQt<&zP5t}(`_(3~v|mv;G?030Daq<91)gla=NW;v}{F>zdltDHa41V{n+^Bc&R;QY(FG>KFl^CmZ zId9nr0}gzf$3m~0ZXB9Z!98M1gj_?JFK8-@uXLk&5%Y|eoxtX-tV%rA?LZT9TFXeB zGIR)fv%^pYv4nceFdax=oIYFs3iT`-y1agY`$g3_P)2eXSvfA1xQGra+q5fFImu*< zV?%b?ECWPT1kjOyb2Tgktpx(D)s+Mw>s_O=U$vVs#nOgWn$%&ga9-tct(IWz04y7q z%fm#u3Nkxf=BY>|5_5`=IH$SXIW@G#zV+u{7W7BCs{AmC?A!A56e9Fwo2U$K5=EZM zE{*2#lJEazob0p8|DM0J{|Ea1cg_F5y!iWnC8F*SAKRrQuyU!_LalWyr@e@ED=+z) z^t~ve4`5Z|E5jvrNB{rlx4sXN#s~iYY4iJEw;S{f{qF?k`(N|@ulfGhz`(%3z`(%3 pz`(%3z`(%3z`(%3z`(%3z`(%3z`(%3z~G;W{{hnUoCE-P006QQ%~}8e literal 0 HcmV?d00001 From 7eab5bede2fda9bdb90398ada482a03bf7f9b069 Mon Sep 17 00:00:00 2001 From: Frost Ming Date: Sat, 1 Dec 2018 20:18:32 +0800 Subject: [PATCH 2/3] use pep423_name Signed-off-by: Frost Ming --- pipenv/project.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pipenv/project.py b/pipenv/project.py index 03f4886869..e7626dd1e7 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -13,7 +13,6 @@ import operator import pipfile import pipfile.api -from pkg_resources import safe_name import six import vistir import toml @@ -954,7 +953,7 @@ def add_package_to_pipfile(self, package, dev=False): # Skip for wildcard version return # Add the package to the group. - p[key][name or safe_name(package.name)] = converted + p[key][name or pep423_name(package.name)] = converted # Write Pipfile. self.write_toml(p) From 360ed7599210ccb598e22874619ae0b6c90055c0 Mon Sep 17 00:00:00 2001 From: Frost Ming Date: Sat, 1 Dec 2018 20:56:47 +0800 Subject: [PATCH 3/3] try another package Signed-off-by: Frost Ming --- tests/integration/test_install_basic.py | 4 ++-- .../backports-html/backports.html-1.1.0.tar.gz | Bin 0 -> 27824 bytes tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz | Bin 2319 -> 0 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 tests/pypi/backports-html/backports.html-1.1.0.tar.gz delete mode 100644 tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz diff --git a/tests/integration/test_install_basic.py b/tests/integration/test_install_basic.py index d4ca32f42b..ec249bc636 100644 --- a/tests/integration/test_install_basic.py +++ b/tests/integration/test_install_basic.py @@ -444,6 +444,6 @@ def test_install_non_exist_dep(PipenvInstance, pypi): @pytest.mark.install def test_install_package_with_dots(PipenvInstance, pypi): with PipenvInstance(pypi=pypi, chdir=True) as p: - c = p.pipenv("install fsc.export") + c = p.pipenv("install backports.html") assert c.ok - assert "fsc.export" in p.pipfile["packages"] + assert "backports.html" in p.pipfile["packages"] diff --git a/tests/pypi/backports-html/backports.html-1.1.0.tar.gz b/tests/pypi/backports-html/backports.html-1.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..de553ebace073ff776cf27c2ddc853fadd75ac3e GIT binary patch literal 27824 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 z

}A#Lsa#UZ1jt&L$i^}$ylH? zR>3S5Z&uPcKBI2+yIMf3TDG%-wcj*Y9rMh!`Tkj+Bdjj0DH0;!%&IOD(woY_kOLl{ zPL*;+&iV+-VvSRU?Ci*@`z)w{~MtiXVM!#tbZ{rn+;glSTgFQ9ttcLm^&g*HHJ|oH2@Px*OGC zo*}oI$8NDKeqI;tjy?7vw3e}`rk$IO?KP@{da-0D0yqH03g+-Pg13%`_7GFr+$P-V z0)ks^PS&uU&LpDh!Hw}*UP!>mEXi~>CsN z)<+o`iXnUwumRYWJM3&rLhf2n=OtJCVk^DpH-6s%O?)~}BBGt>o9B@3A=hdMj|k{@ zsLyR!3feV$1JuK$x^VW#W!OcV^jP0Uh5iZGHy=2S6A8*~H1HlbCT{VR^6?0%>X-Kt zREF9{QzU(REV&%ts_{(0p5KRLSeC5rstk)V+qAu~TrL z&4(Pvw|h-ke?OW-uM?9)Yyz?RSZnK?C=i5?H-B7=3Jn4snV#oxyB}1a+7Df;az=I*fy!iRstD*IzRf9@j z9)?AeP2b|hYprt1g|(rXun_o z7!6Y6fd_}5hiG2-2=ec&!#NB70*4$*G21gWJ|WFY^tJ$ndOP6tAi!U(yIw|qF{B6} z6;%g2)*n>FV|(EpT+AJ#y!29R$voaTXnvclKz(}y0K)b!M!N$R=`MdhT>oM#0i6oq z@YFzOBcl{@g)%5)#EoicG-UAl-E*!FgU%Q;vuS)S2M_ZBf{|YQTT7ELMDvzj;uQ|z z%6bwBlwN{gH9^?6st8E&87X=kSGe@JU^@0xPy^SRO;WSb&H58ab|Ld ziz=bllQUnj{w_G@!Q!aV;Upp0s;FT+eh3HGleOn(b$cB97AU|Bb*82o9rJpMh5CWFMIM1?uyo}B$884O+g$-<{I)I}h`?w}x&^Pya-+q>0BlH9{#sV_K2=G1iuo6E zE{oeYujs86WkSgZ9%Zp=AgMJcYJWjXhgSJef24)K=D5mEiPg=?3E;1C?l4D(J~M<$ zU(U_|Th{LmgqWr|jI`_ZQSbB9Y$iJ?KdUbr z-Tvh)yW@PQPTTN9V^r~0M2F!3=&OU?1$42Uk9D~2?0d}q6UMa9-VijwAK-I9CYo{R z7X5#ICxV#E!TO-f0pBQsHLT#_KNv!(2H1bC=qAPD7Um|wVfCk`u(2VTQH1PO5d&FxL6HAY$m?!ABW^&gOMaX;k_|CHSZg|z$hUN zsjqr&+QAJ}UQaTP&QVPK_pot53yB|}T%?md9YFbCH$<_>k6molQ@9G`H?U}qI?W1IjT{X(ie z^>kz<=x;@TwP|*PJbHueFp3oBP7H5f4ya%sOlnIL{6QKK02b?j>}0J@tg8O1jEd?DtX2aH?R!ad3t06K1|%W#>S zql$*_xHEoB^g}g={crVJV86ZeG)k@oFA>u_oe=s;MZc-I+i7nZA$kJ?D4Zm%G|0C= z;2EwOjz*#Sz4n>!`5u!C#P_Zn_EP}}y4b_02Vw26={kiJyi2A7v(&`hL@AB6W|6u| z(>@^e>CV37I=uVh)aa+K%vwgd-ylu#Sk zylC1uU10&9w{Szt&6hpo2tS1=&2iB$%UvTMu>Mt0aS73Ue=?TG)xPgTait)dZzC@(=#BZdWDx)*OHE5Wnb5Oly zzseW%(QL$pq2BtV6HJWvY=pj^#3Z`?%kmdsuOoSSpn+nZZTf6+=}ZNDtq@*Ym9DIae5avUw2)^xWJV3QlBV zYWndh6ZxACA@+eLi}o`p7^j(HB!NR+e$`-@JWM<&#+cc6#mIdSsOL;gY&?YTV^K$K zi9V;MW%rW=`y8N8mnbXL*RCknUBI&axhC*{B)+|ivcFZi5>(0?KyL}TiM8XBoGgHX zjhj?wMi3Dwv#)*(mml7nF4G)(0}q#q5o|~X#fgQCvc}$u1DZD)S2s32N8K@N1vekL+OXaQ|!6c#_aq!!8?opzV|q5&y(R3r@YGF=sN?oH`F ztHUxzQ@@D;3_{CGHD-I^5wiMkao`ROka&=gS#gIlG_o8I*be*&9_Pe_*L9;2UT!lk z!^QUdGZ063rfZ0nXMLs3JL>vZz?quLHp8xmCkL2OcQP@{vMZ$Qk_9(d(F?Xsx1Vsk zFtBbGn)iBU@`}+1r4^+cDLzK;I3Ho1I00jwvdtH!k6(<5VC}^t7Nia>P_>Hn&_+Cy z70DEBb~U_a1FQ9QUc6(UqhP){CY3jk%a}Cwm#I0S-vu#Et5PQ*!xckoE_BIWx2_5? z+xhN^ePW2Y>IFIJ&?A0pshy31i?s?q!hFu@#^Uov;`n)$2?|S1bCADfT*-WnJq5Vn z#LYKSvm;U$`MQ~+p1qM3@M7vxsfHH$>Sw&z3ptA&HO=-W`ux|Q!0QQmrw=>Iw$!l? z=^6zn*d2%iPUh=kvRdu)-ZL+`k%Fy6?d0HHToRqR3t)YiY1mLVZkDh_J`LUk>Mk?z z%_~b%f5(0W_pLtR|1_$>HhZ@nUk#vOQiQ65S|9#t=9~6Jo7k9pb+URWopsZCGeh&K zd4_A6ybIn$um1C0o~sD%E!<`^S{L)xTNl844#Dw$c~0{3fKCmjCvRl{dY6~{xVMs# z84T$gHZFt5K+6g&O0z~@l-5hCHaQj9A4l;fy=km+~BI1-1*T_FViE zIa=}jH5Xcmuxmq(KVxa5EX!|VQSK6juW|Y%e%>Wh@VvAqX1=E2`kW~!QGU$p6rel^ zw+Z~GMjFP5$k~u7)RN(+2F!aW^>ZCxILRmBb)CrG(XF=$a0Gli)N};vlX-nJIE**V z9J->%0q)v@Z;uhGxa6K)J&a6xKkLRCf4|J9(u|m;x-ilm&#TfbPc?E1fbZnfgRvzH zqGovgRE6jHupKLekLJ9OH|d5AsdEl1_952sd0QSJTgydmpS)WJEu1IL zd2e&{?=FiBP$xYy7JpW7W=uqQI>BzI1#kbG5jix3dk2D9_5z{=xvGvOruNrv;AZEF z8P_RpQbiTsKI@A?l4|cb$(>B8`&vo=hP}Ud=v)bZn*dqT$>Cyrdy(tdrpnhl!ONi) zIhFPX7ufGvO_H=$yx-mEIfnCJ3juuZO)vjiH&J;A5-;g$jhp8-t*#pJ)VhZtJf+cb zgloU`UC?JSr)yYnP^V4rjNW4>3#acn8yAvt^lSS?83PqDNFpv{7C22pmLW#*U=)c7qk_*eu zg=f+-s~vzL;rQTFQa`RCL=*E)(>9JGe4qCjg&(4_tszS}SJFW&h=5C6Ohi8MgM_TA z07t@|Zv$xToynKpmBG}Cvf^vMAU53AgqEqPmc58Jo1@IouTrju>(v#9{d3^v~VJuk9D zi8{tM!a24=z4FMWX|ILf~xv8Vw9z``XIHm-$5m-@Dz}hR?CjFIX%^sT;Ah zEgm;9maX@T|I{(ZaxSKgO%C@v*du~p)XDzmQe>6uCPNC#Bcz3i-O_Z4x( zIJ4KJl7-+ z%A@llr9YQ`42yHyD-x!QBvoW`dwV)K)OpNpM8?1Dg)=wcJm8z&B!>7;o%YZcBt;vk zaLspd)$U3sAm6FgWjnPSDX?5Kg$r@O7o-{8w=L#;xn^}lZ<2poarSJswi^E^#^(FC z%Y8k%-nIF>Ia{1Xv#=ZUv0jgv7VNjaY|NQnZQ5{qX7PR!Buad~J_fu#oNMk<552Ac zZuziP{GPCXciikmUwzAWt~Y$R->-*&KJg2`VX3|@-jvbSUMuP3t+G@9lqP`;xw*@E zWV|2!G7~xAn<2?jO;8`3A|}^4s4Cfd|HPGIIM-xpMbEqgjR-bRfTeQUQg?He#$WPDTJJ7Y3?Xb}xNc_(GVG|y3KvmAcB3n< zj@5*GZdZ@V&^rbo0^S$EOH|kLO}FqfdH8tvls7x*zvQTl82zH}z4NM)6wKIfE&M0N zU&}K#CL37@h)9KY71MB3w->fbprG)4{%HvX2e$@!yN<~N=)Wi@pgf(~qo z;o>&4iH__0VUiy5fPYYmFUYs_OEW5xz4%l6EaAuN=e4%<;-~2YBDH9PQ5d*0!U-bA z;OkCk^x94+Xq%`N)PSZqi`K9L+IX2#ws+JqnOS@(DdQ~>yGf#m1FS3*t5|r-{;kP} zYclb~6c@?-+%6~jMPRdif5J}&hP1Bf}G)%5-0BDxu-x?3)qR=Pa#3)Imt~dOoXF>2DY0Dt(4B6XuAO(lepBv{yG zQY$J*4-KM=G08!4D#+7q+n=r>-OL?xk~`c|I;dg)vaVIpS*>BD>y?pyF^~JWt0OOR z-7i)n{F_`|r^JrEV9xE3cu3YObHHnW6=&y4x}YrSDkBxTI(DEne4SJ$N;ki1NwK9y zs^ax$u2)u+Nw)-$zf_|@JGDPjSujS?M6R>*AiwsvFmZQShN*QPSR^)TrW9W{TPa8! zE)eO-)>RQNx(6O=cH*NbOo%dLA^;sg=VkSCkwY%y_=hz$PTY)jQ%OKBJ2SA4LY5C- zBIuUNWdyLf?%G;&0io$6sj(tPDKyqga-}F?OPq|AjN@`(QdW?0c%Zbx;dkpn>i4Jr z79{VyhRkF(qU0 zqD2gazl|`l8BJ#V78xmw%+2CJiFVyqR3>hMFpF(uFN-LT9!12FZML6M7uMlhEjBeKYN06f=+vy&%Mf|5mxREu- zd}bk>QnL0No$KvQ-(uBSESA#X*k1#VRyTf?QrwdFAzCRh?)Z1?EdBuaw6SsUn zCncR6N#gbC9;Dz+m7o4UpM)vb0rs>b^EV+C0mk zFVWrE=|3jw3Uj}RgkGg0PZofM1@Ev{%|pdHUe#`~s(tPa#+7Y@%5Sdek2EmDzBAgJT9U; zevGb|&6nuTKOG=Kp8Nl$^{!aDvAvB+H>iNd&)h%45hxZ6w@auT33ci8zDF!kxt2NV z^I~3F71#KChMvZ$^p>#XQFW`LKl6q4U{S05IDGy!*Q)l|EQ|Y$?)XB?yRvZNjQO1o zXj81SIB<>*=0|3zTDP%RnNBS$H+O+|v9q~b#c5x|q7@yh$t8H84T?>lb&c9Q2U$-L z7q}cCuuZx=yD8hYu~X&oyes2ojxSOL73+7&$+}>Tg(l!P#m%4l(9{$i^=Z2a2oH;ac7}cC{2Hkw!D|kttlIGi5Rp0dsyGEMMsX`&-I)zz3}l4 zlSJJbKRO1l%aZ+5;7)2e2wa0$2VY{g4iY=7amS-nLg4Rqq;EcR%seVn)X%*ZT z?61k1uAQu&>>j@Oy+@EFT8PVIH^%9rcKl?Nk#g41DdEMcO;Ds4?zkyR5&i2De0{nH0nUj zi~l-#KhqwR@q9k!VA|$fL5kfpu47M8B$uXqIS9zkns^=KcSbAIOqw9lcqKX%aRsE1?0*i(I7CJ>PczjO4T@=3XZ|=>U1;=UWI_&;ano;PYl=$cBcEvB>>U zTxqsl>P?-mwKq2!e-$zN%ycEqsQlQoop2fQ!O5Fr?2Vn53M|0>tue|I(DKH2fotKg zDq5Yzy7!g6{f#~$5lE-#Q^|!!A_Lf*BQxrqc+`En!$2v;?ax17H!m|X)4SQ{Pxc;R z1zVFZt+Sfi{;b-C8YXUvw(Ff{u{wCt_Z^wh&&^`}$hW}wR427~S-&gv=Bf@iiD26^ z4ls$W!}tJQdD_!Fo7*trtjm~kSh~CF;^zJ=Np@HXvS! z*B`vSNw&83MfZY*RLwm$v^C*=xtVF;Q-=2J=YMMtAC}G!il33d$ZU~zBlqpS| zA0tktbe^Mg2v_vRcRd17$*0sfT}-d4d_fuR7SAgKK2WC5JPVi;fCkc`dK= zjf+gMIuyug{~P3r5l*{(oryll8z?F>#L`WM!QRRJI0cO(r7FnduHz8w4VIMmfmGNi z;Q^x2H{cA8#oN{Gt=OU^QA9b49{T|z(P{>nvwiR7!;m&-D1N#dSl~c4UKC*Wrfg4} zq9o=1DS787=7kcbcBF+#A#^nTdGiX&6SQqlG`;ojY^aRUJjDKN>)A`xuV#12%z~#ZR`>8)Tj*Kjj5jsmECy+#O@;~n9Ccnb{ z-EvQ?UJ}aR*Rc$KLiN@UhY7d?Q#4pY(w6mme1!jj>SUMtfq`p<=QYW1qAKyHzBg%9 zmR-Au5<0xw#S=PC;_sH;aA5c}x5KjG!s6!Z`fNCJ+!(-mLGVh{BlpKQh-FC^^teTK zzwEzc2**j3>-R%=zt6`P0%vaqC?(P>xr+{#WA}HncYMQHW$2cyIK4)<5t};#p?{18 zBOZLLY>a<0Nx@m1V3U`h9`@%jHaR$$ZvjK)47jf9Y&>#UWVwu-*;X~cH2giuskHWY zsFn2X+|1pZ*q9=7PLMK9^c-o}nSJ?Ww~T}^OtNGsg=dOO9*FWudji~9ail=W=U9SE z6~{}xyIV=;K4PQlVEXlK0gP7@p_R0=L&qwxTbye1x9@VUN~}YBaje)Y2UX&c^M6^G zZuw>`hQIDxD?2Jxsbjt*=1#XpoMOLDvKl^3ueOq+IDtjj6JIJb&Sh;Q4@*?66=b(Q z9T4d$nV^mx_dV%C)`f-TCBnxS*_$cr(3*Y`I;x}-7MXjyzzURNAoylpt^^e(l471`T&=yw}c5X zaxqrZ9;8G!n(<@`IuR==j$EH+aDeO%+LL9h6z1H4k>rf0jJfCx+LP{lCeBXb)?{Dt zvmYUsca?N0I>vz&B1+vR+faYH^c_G?C!wc>xMr65_hcJRBV6 z0PE^{vrn~#94zYi7`B5n@#dj?j>9t*6g3*(J(hLD=Dgxz(05KAW7m2Yxkr#;F~$vA zYUDqq56Yd)eekbqNn-m>+l+&V&;v|56s^57?CR;W;~T;dEpo!lKy6k)4=^Q!j@Q#P zglq^T(OnS077?YNW)aOzge|~}J(o}w75%uDVg1IbYoZ1@Kfy@mEY7f*+ONcEDPfA- zM+{lWsJsG%pj;eg`mu@YOJK;A@{oUqnRzujQK*$Hb-R*oX_3G(whub#+DWSl7Z@P=p;s~(&wJ|q#_u;JefY%Ox>+{^J8TO@CrXq9wl?)<^pC7M!bX>jB zAz$&&anl+%y?)_D-afQ*w|FuS#W)Z?Zj0p7WH@vdnN86IGk0RArhB^vP-Eh9Ioq3g zaWB6inUsqY&1LioBZHK5Vvpx#wYc_0@OhVH1pcgBqOA0+JBKCs>GSJZmx%{-s_zRT zaRcY8O1XjM%VwS$>`T}21CkKw8GoA(^$jZT#^hB!^y>lTQ_aPttP1k83qtGH?k4!I zcO+$%hu2oB?;GO>(5#1XXE`Yw@eA<2m2y}I_EqL&@>R9qf}Oeu@?K@u_Pr>WeM|bh z@mS>6lW+fek13gDvNr_SQ-J9jGJqj|H-qT)-vdrUy#a;xG*@9P||Zw<{wH}U#NK83fLFnLujXRu2d0&T?P z@RR#>ZHJD4zqpR$B-m1|r~GBS)x@oQ69sh+k1!?5JO|W^g*aGP?_n+jy1bY z?yf1hd+sxDpPsq#khwnoPK(H8nE-qS!tzYD?tl%Iupls6L?4ez8#i_YPhkg6Ae5F` zR~S=irM}T5YMwc@^!QD#91}y8TFzjYE_#9gb_^H<3=#pqF9_)WYx3#*4BIRltq%eN G2J%0p%e+7U literal 0 HcmV?d00001 diff --git a/tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz b/tests/pypi/fsc-export/fsc.export-1.1.0.tar.gz deleted file mode 100644 index 4b4853f53b656d379eab8a6471db612c6e7056f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2319 zcmV+q3GntGiwFoc*T7i<|72-%bT4LeV=iTQaBp&SEio=JE-)^1VR8WNT-|fxwieH` z{tDgX!O#X{8-sh9a;KS1((bfPcA9MOLnh-DSb)36axFOt?eu@YN0JQ&lBL<3u<5RT zFUI=*I!EWrjQPl>cNxn?%e7tGY41Hf96%6s<YgD>|8kaXMz# zNRUZ5EaD`>1FT*mA}IWJkl_zs4*f3^Y&aS%c{JKjK>v@D|2)U<21fpSG5ep>--{UL z|B*uBw*7a3*{|+@$LV$r|KA1BRX>}HDNDmr@W5M|Qpj=!dXaJt(lK5=-zhGII&>Nb390SbU*BuNs6HbOtJ8Es``0$ogn z$olQ}SS~J0;*?EtR%G@h7Sm#A$E=pq&gObBZ8^fD0)&>lk6+pNbWx;CZP6Kt6Bz#@ z_I1_4`m(!S+L&qbQ3KFLr6C6E$ zy7*i*2`}?Q91A=mDVE|A9?Mpy6w^Bx8%;+Pv$5=gjkw6;bb@cEG{x~uPFcRnvbuE} z;S%UgLIgB4>*Kd)Kc1cc_YA#C2(D*IBp! zcpcw2^uH7N@96CH>B+^V9j8dUezG~L`G66~Bkf;Kj*fpmQ9q-ll%%phq%NQ>X9@k? zy9RADN}{b+3t6IF%8y|fr?CLp45nI7E*n@&trlZ7`5D~gFN6N8L-2%sY@vUz6D;Z9 z0bby^J>N0+|4wl5uXe%n_ApM{G`+#v7K{#X>#G(hJ`o7=eO!of>l>MZ4j`w}yznst zIX`}nzgH`Rzb#kjyUFYh^sE0s(PJV&zXEg|+v(UIY%F%1zW49G)5E|7E}_h6oaizO z?t`?>gZZ2zG|t&fX9>m8E;l7gy=2iVew*s7Ak-wTpREkk-UEqTf<{538! z5xNBh6Eom64eK7RW*uTHx0;x6Jnk!Ht5yKo8{0W0QKN|j=)fv}tv$^!H=B`=Rn?Fe zt%>;gZev;>~vS_7Lt>=|t*BH=dKb0+i*@-Qc$_zTwT)v@-$+Z}4EZAYai9z|) ziJ&yT2bGQwt`^hTsIGFZb@?Js2G&RE_;R-_+p>RSaoVWn$}>U-Bs-A9~` zk|LsEIX3CFCWFhopgNnV<2tZb3KY9zo*K9F~O=0@o(7@9#^4LFTQC>u<8df(IXmIdZl$LBL?bSF$vJuMi zBGtdD*6%Yp*Yirtw4vjt^#8mB{m<_j{qK|Qe@V}uZvWvT=$ZZh)cgNbKCVZ9|LM7I zVD$f;z2ju?_|j3vk``4XgLg<%|pE6ENyOhOT((`Fuc!W`sLF9A|U2j zEG@9oxXn${V&6>D)QHlBpxDES{Z>p zuaql1ls@mnMcBtRLNp~qAb3a*mDzECPf5ZlLJ=L~s!BtbQt<&zP5t}(`_(3~v|mv;G?030Daq<91)gla=NW;v}{F>zdltDHa41V{n+^Bc&R;QY(FG>KFl^CmZ zId9nr0}gzf$3m~0ZXB9Z!98M1gj_?JFK8-@uXLk&5%Y|eoxtX-tV%rA?LZT9TFXeB zGIR)fv%^pYv4nceFdax=oIYFs3iT`-y1agY`$g3_P)2eXSvfA1xQGra+q5fFImu*< zV?%b?ECWPT1kjOyb2Tgktpx(D)s+Mw>s_O=U$vVs#nOgWn$%&ga9-tct(IWz04y7q z%fm#u3Nkxf=BY>|5_5`=IH$SXIW@G#zV+u{7W7BCs{AmC?A!A56e9Fwo2U$K5=EZM zE{*2#lJEazob0p8|DM0J{|Ea1cg_F5y!iWnC8F*SAKRrQuyU!_LalWyr@e@ED=+z) z^t~ve4`5Z|E5jvrNB{rlx4sXN#s~iYY4iJEw;S{f{qF?k`(N|@ulfGhz`(%3z`(%3 pz`(%3z`(%3z`(%3z`(%3z`(%3z`(%3z~G;W{{hnUoCE-P006QQ%~}8e