summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Maxwell <scott@codecobblers.com>2013-12-04 00:43:03 -0500
committerScott Maxwell <scott@codecobblers.com>2013-12-04 00:43:03 -0500
commita15d5ba25d19564f21e53dba5294448d6550cfce (patch)
tree7c8867cb94b3536c006985d47b0fda7f5acb20e0
parentaa301506f4494bb2eb157bddbbb84bf3a513fc3b (diff)
downloadparamiko-a15d5ba25d19564f21e53dba5294448d6550cfce.tar.gz
Fix deprecation warning in array conversion
-rw-r--r--paramiko/buffered_pipe.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/paramiko/buffered_pipe.py b/paramiko/buffered_pipe.py
index 0391dee9..02408a20 100644
--- a/paramiko/buffered_pipe.py
+++ b/paramiko/buffered_pipe.py
@@ -49,6 +49,20 @@ class BufferedPipe (object):
self._buffer = array.array('B')
self._closed = False
+ if PY2:
+ def _buffer_frombytes(self, data):
+ self._buffer.fromstring(data)
+
+ def _buffer_tobytes(self, limit=None):
+ return self._buffer[:limit].tostring()
+ else:
+ def _buffer_frombytes(self, data):
+ self._buffer.frombytes(data)
+
+ def _buffer_tobytes(self, limit=None):
+ return self._buffer[:limit].tobytes()
+
+
def set_event(self, event):
"""
Set an event on this buffer. When data is ready to be read (or the
@@ -76,7 +90,7 @@ class BufferedPipe (object):
try:
if self._event is not None:
self._event.set()
- self._buffer.fromstring(data)
+ self._buffer_frombytes(b(data))
self._cv.notifyAll()
finally:
self._lock.release()
@@ -143,12 +157,12 @@ class BufferedPipe (object):
# something's in the buffer and we have the lock!
if len(self._buffer) <= nbytes:
- out = self._buffer.tostring()
+ out = self._buffer_tobytes()
del self._buffer[:]
if (self._event is not None) and not self._closed:
self._event.clear()
else:
- out = self._buffer[:nbytes].tostring()
+ out = self._buffer_tobytes(nbytes)
del self._buffer[:nbytes]
finally:
self._lock.release()
@@ -164,7 +178,7 @@ class BufferedPipe (object):
"""
self._lock.acquire()
try:
- out = self._buffer.tostring()
+ out = self._buffer_tobytes()
del self._buffer[:]
if (self._event is not None) and not self._closed:
self._event.clear()