On 04/14/2016 10:22 AM, Paul Moore wrote:
On 14 April 2016 at 17:46, Ethan Furman wrote:

If you are not working at the bytes layer, you shouldn't be getting bytes
objects because:

- you specified str when asking for data from the OS, or
- you transformed the incoming bytes from whatever external source
   to str when you received them.

My experience is that (particularly with code that was originally
written for Python 2) "you have control of your data" is often an
illusion - bytes can appear in code from unexpected sources, and when
they do I'd rather see an error if I'm using code where I expect a
string. Certainly that's a bug in the code - all I'm saying is that it
fail early rather than late.

If we have one function that uses a flag and you leave the flag alone (it defaults to rejecting bytes) -- voila! An error is raised when bytes show up.

I'd appreciate it if anyone can clarify why "gracefully extending" the
protocol to include bytes support at a later date isn't practical.

It's going to be a bunch of work.  I don't want to do the work twice.

On the other hand, if while doing the work it becomes apparent that supporting bytes and str in the protocol is either infeasible, confusing, or a plain ol' bad idea I have no problem ripping out the bytes support and going to str only.

--
~Ethan~

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to