On 10/15/07, Christian Heimes &lt;<a href="mailto:lists@cheimes.de">lists@cheimes.de</a>&gt; wrote:<br>&gt; I&#39;m working on the renaming of str8 -&gt; bytes and bytes -&gt; buffer.<br>&gt; PyBytes (old bytes, new buffer) can take a string together with an
<br>&gt; encoding and an optional error argument:<br>&gt; <br>&gt; <br>&gt; &gt;&gt;&gt; bytes(source=&quot;abc&quot;, encoding=&quot;ascii&quot;, errors=&quot;replace&quot;)<br>&gt; b&#39;abc&#39;<br>&gt; &gt;&gt;&gt; str(b&quot;abc&quot;, encoding=&quot;ascii&quot;)
<br>&gt; &#39;abc&#39;<br><br>Correct.<br><br>&gt; IMO this should work<br>&gt; &gt;&gt;&gt; str8(&quot;abc&quot;, encoding=&quot;ascii&quot;)<br>&gt; Traceback (most recent call last):<br>&gt;&nbsp;&nbsp; File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
<br>&gt; TypeError: &#39;encoding&#39; is an invalid keyword argument for this function<br><br>Yes, this should work. (I thought it already did but was wrong. ;-)<br><br>&gt; And this should break with a type error<br>&gt; &gt;&gt;&gt; str8(&quot;abc&quot;)
<br>&gt; b&#39;abc&#39;<br><br>Correct.<br><br>&gt; PyString&#39; constructor doesn&#39;t take strings (PyUnicode). I like to add<br>&gt; the support for strings to it. It makes the API of str, bytes and buffer<br>&gt; consistent and fixes a *lot* of broken code and tests.
<br><br>Right.<br><br>&gt; Are you confused by the name changes? I&#39;m sometimes confused so I made a<br>&gt; table:<br>&gt; <br><span style="font-family: courier new,monospace;">&gt;&nbsp;&nbsp;c name&nbsp;&nbsp; |&nbsp;&nbsp;old&nbsp;&nbsp;|&nbsp;&nbsp; new&nbsp;&nbsp;|&nbsp;&nbsp;repr</span>
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&gt; ------------------------------</span><span style="font-family: courier new,monospace;">-------------</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&gt; PyUnicode | str&nbsp;&nbsp; |&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;| &#39;&#39;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&gt; PyString&nbsp;&nbsp;| str8&nbsp;&nbsp;| bytes&nbsp;&nbsp;| b&#39;&#39;
</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&gt; PyBytes&nbsp;&nbsp; | bytes | buffer | buffer(b&#39;&#39;)</span><br style="font-family: courier new,monospace;"><br>I&#39;d rewrite this as follows:
<br><br><span style="font-family: courier new,monospace;">C name&nbsp;&nbsp;&nbsp; | 2.x&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; | 3.0a1&nbsp;&nbsp;&nbsp; &nbsp; | 3.0a2 &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; |<br>----------+--------------+------------+---------------------+<br>PyUnicode | unicode&nbsp; u&quot;&quot; | str&nbsp; &nbsp;&nbsp; &quot;&quot; | str&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&nbsp; |
<br>PyString&nbsp; | str&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &quot;&quot; | str8 &nbsp; s&quot;&quot; | bytes&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&nbsp; |<br>PyBytes&nbsp;&nbsp; | N/A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; | bytes&nbsp; b&quot;&quot; | buffer&nbsp; buffer(b&quot;&quot;) |<br></span><span style="font-family: courier new,monospace;">
----------+--------------+------------+---------------------+<br></span><br>Seems worth adding to the PEP. I&#39;ll do that.<br><span style="font-family: courier new,monospace;"><br></span>-- <br>--Guido van Rossum (home page: 
<a href="http://www.python.org/~guido/">http://www.python.org/~guido/</a>)<br><br>