diff rhodecode/lib/subprocessio.py @ 2790:3c0ae44557c4 beta

more py2.5 compatibility patches
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 03 Sep 2012 19:47:23 +0200
parents fd5f2b217488
children 4b7ad342e53b
line wrap: on
line diff
--- a/rhodecode/lib/subprocessio.py	Mon Sep 03 18:21:42 2012 +0200
+++ b/rhodecode/lib/subprocessio.py	Mon Sep 03 19:47:23 2012 +0200
@@ -24,11 +24,10 @@
 '''
 import os
 import subprocess
-import threading
-from rhodecode.lib.compat import deque, Event
+from rhodecode.lib.compat import deque, Event, Thread, _bytes
 
 
-class StreamFeeder(threading.Thread):
+class StreamFeeder(Thread):
     """
     Normal writing into pipe-like is blocking once the buffer is filled.
     This thread allows a thread to seep data from a file-like into a pipe
@@ -39,9 +38,9 @@
         super(StreamFeeder, self).__init__()
         self.daemon = True
         filelike = False
-        self.bytes = bytes()
-        if type(source) in (type(''), bytes, bytearray):  # string-like
-            self.bytes = bytes(source)
+        self.bytes = _bytes()
+        if type(source) in (type(''), _bytes, bytearray):  # string-like
+            self.bytes = _bytes(source)
         else:  # can be either file pointer or file-like
             if type(source) in (int, long):  # file pointer it is
                 ## converting file descriptor (int) stdin into file-like
@@ -77,7 +76,7 @@
         return self.readiface
 
 
-class InputStreamChunker(threading.Thread):
+class InputStreamChunker(Thread):
     def __init__(self, source, target, buffer_size, chunk_size):
 
         super(InputStreamChunker, self).__init__()
@@ -121,6 +120,7 @@
         da = self.data_added
         go = self.go
         b = s.read(cs)
+
         while b and go.is_set():
             if len(t) > ccm:
                 kr.clear()
@@ -180,7 +180,7 @@
             self.worker.data_added.wait(0.2)
         if len(self.data):
             self.worker.keep_reading.set()
-            return bytes(self.data.popleft())
+            return _bytes(self.data.popleft())
         elif self.worker.EOF.is_set():
             raise StopIteration