[Python-Dev] Zipping Zope3

Wiktor Sadowski Wiktor Sadowski" <art@wiktorsadowski.com
Mon, 16 Dec 2002 23:13:34 +0100


This is a multi-part message in MIME format.

------=_NextPart_000_0047_01C2A558.C1C03720
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0048_01C2A558.C1C03720"


------=_NextPart_001_0048_01C2A558.C1C03720
Content-Type: text/plain;
	charset="windows-1250"
Content-Transfer-Encoding: quoted-printable

[Just van Rossum]
>Ugh, you should really consider getting a decent diff tool :-/ How can
>*I* test if if I have no clue what exactly you've done?

Well, as you already know my implementation of custom imports (import =
hooks) is a bit different
and I am using  modified Python22 ,so it's not easy to make diffs.

Zipimport.c in attached zipimport.tar.gz  is to provide you with more =
details.
Don't try to compile it ;-)

>I can see that keeping the file object open could speed things up, but
>is it a polite & decent thing to do?

Yes, but it would be nice to not fopen/fclose for each =
__importer__.get_data.

Best
Wiktor
http://www.wiktorsadowski.com

------=_NextPart_001_0048_01C2A558.C1C03720
Content-Type: text/html;
	charset="windows-1250"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dwindows-1250">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV>[Just van Rossum]<BR>&gt;Ugh, you should really consider getting a =
decent=20
diff tool :-/ How can<BR>&gt;*I* test if if I have no clue what exactly =
you've=20
done?</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Well, as you already know my implementation of custom imports =
(import=20
hooks) is&nbsp;a bit&nbsp;different<BR>and I am using&nbsp; modified =
Python22=20
,so it's not easy to make diffs.</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Zipimport.c in attached&nbsp;zipimport.tar.gz&nbsp; is to provide =
you with=20
more details.<BR>Don't try to compile it ;-)</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>&gt;I can see that keeping the file object open could speed things =
up,=20
but<BR>&gt;is it a polite &amp; decent thing to do?</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Yes, but it would be nice to not fopen/fclose for each=20
__importer__.get_data.</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>Best<BR>Wiktor<BR><A=20
href=3D"http://www.wiktorsadowski.com">http://www.wiktorsadowski.com</A><=
/DIV></BODY></HTML>

------=_NextPart_001_0048_01C2A558.C1C03720--

------=_NextPart_000_0047_01C2A558.C1C03720
Content-Type: application/x-gzip;
	name="zipimport.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="zipimport.tar.gz"

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

------=_NextPart_000_0047_01C2A558.C1C03720--