On Sep 12, 2009, at 12:51 PM, Stefan Behnel wrote:

> Robert Bradshaw wrote:
>> If one always wants bytes, one can do b"something." If one always
>> wants unicode, one can do u"something." There's currently no
>> (obvious, clean) way to get str.
>
> I get your point, although to me, "get str" smells like there isn't  
> a clean
> way anyway. Compared to CPython, we actually have the advantage of
> supporting the 'b' prefix for all Py2 versions. So you can write  
> portable
> code that is explicit about this prefix. That's certainly not the  
> case for
> plain Python code if you need to support Python versions before 2.6.
>
> What would be the plan for a switch then?

I'd say do a warning for un-prefixed literals for 0.11.3, and then  
the actual switch for 0.12.

> I think if we do this now, there
> will be two kinds of users: those who already changed their code to
> explicit string semantics to adapt it to Py3, and those who didn't  
> care
> (yet). I actually think that such a switch would break both kinds  
> of user
> code. The first one, as it wasn't necessary before to prefix byte  
> strings
> with 'b', so it most likely wasn't done, and the second one because  
> the
> existing code is likely not portable anyway (so it won't break more  
> than it
> already is). The second group has the advantage of not having invested
> time, and the first (and likely smaller) group will have to fix up  
> their
> code again. I'm certainly in the first group, but I guess the  
> second group
> clearly outweighs the first one.
>
> Robert and/or Lisandro, would you write up a CEP that sums up and  
> describes
> the proposed semantics for C strings and unprefixed byte strings? I  
> would
> want to see a couple of examples in there that show in what cases  
> code will
> break or not break, what changes will be required to fix broken  
> code up,
> and what the change will simplify for code migration to Py3. That  
> would
> make it quite clear how big the advantage actually is. From the top  
> of my
> head, I can think of docstrings, for example, where this would be  
> helpful,
> and I already mentioned the keywords example.

Sure, I'll do that.

I initially hesitated bring this volatile topic up again, but I think  
this is a solution that will make life less cumbersome for most  
Cython users without letting them be sloppy about encodings.

- Robert

_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to