On Tue, Sep 22, 2009 at 3:16 AM, Armin Ronacher <span dir="ltr">&lt;<a href="mailto:armin.ronacher@active-4.com">armin.ronacher@active-4.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi,<br>
<br>
Ian Bicking schrieb:<br>
<div class="im">&gt; Request headers, which you didn&#39;t split out... those I&#39;m not sure.  I&#39;d<br>
&gt; *like* them to be native.  But damn, I&#39;m just not sure quite how.<br>
&gt; surrogateescape?  Latin1?  Latin1 as a kind of poor man&#39;s surrogateescape<br>
&gt; isn&#39;t so bad.  And the headers *should* be ASCII for sane requests, so it&#39;s<br>
&gt; not a horrible compromise.<br>
</div>Except for cookie headers.  Thanks to advertising and all the other<br>
system putting headers on your page you can&#39;t even properly control that<br>
one.<br></blockquote><div><br></div><div>Yes, but it&#39;d be relatively easy to handle this, especially since the raw header isn&#39;t very useful.  So you just do environ[&#39;HTTP_COOKIE&#39;].encode(&#39;latin1&#39;).decode(&#39;utf8&#39;, &#39;replace&#39;) before parsing.</div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Another thing to consider: in Python 3.1, the HTTP server internally<br>
decodes to latin1 and there is no simple way to change that, unless you<br>
replace the implementation.<br>
<div class="im"><br>
&gt; Ugh.  wsgi.input could remain.  I think at least it should become a<br>
&gt; file-like interface (i.e., giving an empty string when the content is<br>
&gt; exausted) and I might even ask that it implement .tell() (.seek() would be<br>
&gt; nice of course, but optional).  If there was some other idea, I think<br>
&gt; there&#39;s room for improvement on wsgi.input and the file interface.<br>
</div>-1 on seek and tell.  This could be impossible to implement and what we<br>
really want to do is to not have the data in memory but on disk or<br>
whereever you put big-ass uploads.  Also it will be hard to test for an<br>
avaiable seek or not, because even if it&#39;s a noop, the method could be<br>
there.<br></blockquote><div><br></div><div>Tell doesn&#39;t have particular overhead except to keep track of how many bytes have been read.  That would allow libraries to at least detect contention for wsgi.input.  I wish seek were detectable, though I agree it shouldn&#39;t be required at all.</div>

<div> </div></div>-- <br>Ian Bicking  |  <a href="http://blog.ianbicking.org">http://blog.ianbicking.org</a>  |  <a href="http://topplabs.org/civichacker">http://topplabs.org/civichacker</a><br>