Changeset - 3c0ae44557c4
[Not reviewed]
beta
0 3 0
Marcin Kuzminski - 13 years ago 2012-09-03 19:47:23
marcin@python-works.com
more py2.5 compatibility patches
3 files changed with 22 insertions and 13 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/compat.py
Show inline comments
 
@@ -407,6 +407,15 @@ except ImportError:
 

	
 

	
 
#==============================================================================
 
# bytes
 
#==============================================================================
 
if __py_version__ >= (2, 6):
 
    _bytes = bytes
 
else:
 
    # in py2.6 bytes is a synonim for str
 
    _bytes = str
 

	
 
#==============================================================================
 
# deque
 
#==============================================================================
 

	
 
@@ -416,11 +425,11 @@ else:
 
    #need to implement our own deque with maxlen
 
    class deque(object):
 

	
 
        def __init__(self, iterable=(), maxlen=-1):
 
        def __init__(self, iterable=(), maxlen= -1):
 
            if not hasattr(self, 'data'):
 
                self.left = self.right = 0
 
                self.data = {}
 
            self.maxlen = maxlen
 
            self.maxlen = maxlen or -1
 
            self.extend(iterable)
 

	
 
        def append(self, x):
 
@@ -537,9 +546,9 @@ else:
 
#==============================================================================
 

	
 
if __py_version__ >= (2, 6):
 
    from threading import Event
 
    from threading import Event, Thread
 
else:
 
    from threading import _Verbose, Condition, Lock
 
    from threading import _Verbose, Condition, Lock, Thread
 

	
 
    def Event(*args, **kwargs):
 
        return _Event(*args, **kwargs)
rhodecode/lib/subprocessio.py
Show inline comments
 
@@ -24,11 +24,10 @@ If not, see <http://www.gnu.org/licenses
 
'''
 
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 @@ class StreamFeeder(threading.Thread):
 
        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 @@ class StreamFeeder(threading.Thread):
 
        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 @@ class InputStreamChunker(threading.Threa
 
        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 @@ class BufferedGenerator():
 
            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
 

	
rhodecode/tests/test_libs.py
Show inline comments
 
@@ -22,7 +22,7 @@
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
from __future__ import with_statement
 
import unittest
 
import datetime
 
import hashlib
0 comments (0 inline, 0 general)