Giampaolo Rodola' added the comment:

The part of the code where that is more likely to happen is the push() method.
One might also submit a producer (push_with_producer()) erroneously returning 
strings on more() though; how to properly fix this one is not clear to me 
because of the bad asynchat design. I'd be for simply raising an exception in 
push() as in:

diff --git a/Lib/asynchat.py b/Lib/asynchat.py
--- a/Lib/asynchat.py
+++ b/Lib/asynchat.py
@@ -181,6 +181,8 @@
         self.close()
 
     def push (self, data):
+        if not isinstance(data, bytes):
+            raise TypeError("data must be a bytes object")
         sabs = self.ac_out_buffer_size
         if len(data) > sabs:
             for i in range(0, len(data), sabs):

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue12523>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to