summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTushar Gohad <tusharsg@gmail.com>2015-07-21 06:19:49 -0700
committerTushar Gohad <tusharsg@gmail.com>2015-07-21 06:19:49 -0700
commitfe2523c139058520b683aa7047e80c81906bf303 (patch)
treea6ebe46972c25681c629dc6db58c0c3c1e0f4fe4
parentcf04d34162c377c9ae08d49abacd6f23dd9e1430 (diff)
parentde2a25c5fe2545eaea9d04497e83e1d994ad9c0d (diff)
downloadpyeclib-fe2523c139058520b683aa7047e80c81906bf303.tar.gz
Merged in haypo/pyeclib (pull request #24)
Fix Python 3 issues
-rw-r--r--pyeclib/core.py6
-rw-r--r--pyeclib/ec_iface.py14
-rw-r--r--test/test_pyeclib_api.py16
-rw-r--r--test/test_pyeclib_c.py13
4 files changed, 26 insertions, 23 deletions
diff --git a/pyeclib/core.py b/pyeclib/core.py
index d10e56e..2a1f0fb 100644
--- a/pyeclib/core.py
+++ b/pyeclib/core.py
@@ -21,9 +21,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from ec_iface import ECDriverError
-from ec_iface import ECInsufficientFragments
-from ec_iface import PyECLib_FRAGHDRCHKSUM_Types
+from .ec_iface import ECDriverError
+from .ec_iface import ECInsufficientFragments
+from .ec_iface import PyECLib_FRAGHDRCHKSUM_Types
import math
import pyeclib_c
diff --git a/pyeclib/ec_iface.py b/pyeclib/ec_iface.py
index 48f4fd0..4cc9eb6 100644
--- a/pyeclib/ec_iface.py
+++ b/pyeclib/ec_iface.py
@@ -22,10 +22,10 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from enum import Enum
-from enum import unique
-from utils import create_instance
-from utils import positive_int_value
+from .enum import Enum
+from .enum import unique
+from .utils import create_instance
+from .utils import positive_int_value
def PyECLibVersion(z, y, x):
@@ -354,7 +354,7 @@ class ECDriver(object):
num_segments = segment_info['num_segments']
sorted_ranges = ranges[:]
- sorted_ranges.sort(lambda x, y: x[0] - y[0])
+ sorted_ranges.sort(key=lambda obj: obj[0])
recipe = {}
@@ -362,8 +362,8 @@ class ECDriver(object):
segment_map = {}
begin_off = r[0]
end_off = r[1]
- begin_segment = begin_off / segment_size
- end_segment = end_off / segment_size
+ begin_segment = begin_off // segment_size
+ end_segment = end_off // segment_size
if begin_segment == end_segment:
begin_relative_off = begin_off % segment_size
diff --git a/test/test_pyeclib_api.py b/test/test_pyeclib_api.py
index 21ebed6..242809c 100644
--- a/test/test_pyeclib_api.py
+++ b/test/test_pyeclib_api.py
@@ -31,7 +31,7 @@ from pyeclib.ec_iface import ECDriverError
from pyeclib.ec_iface import ECInsufficientFragments
from pyeclib.ec_iface import ECDriver, PyECLib_EC_Types
-from test_pyeclib_c import _available_backends
+from .test_pyeclib_c import _available_backends
if sys.version < '3':
def b2i(b):
@@ -93,8 +93,10 @@ class TestPyECLibDriver(unittest.TestCase):
# Create the dictionary of files to test with
buf = ''.join(random.choice(ascii_letters) for i in range(size))
+ if sys.version_info >= (3,):
+ buf = buf.encode('ascii')
tmp_file = tempfile.NamedTemporaryFile()
- tmp_file.write(buf.decode('utf-8'))
+ tmp_file.write(buf)
self.files[size_str] = tmp_file
def setUp(self):
@@ -394,11 +396,11 @@ class TestPyECLibDriver(unittest.TestCase):
results = pyeclib_drivers[0].get_segment_info_byterange(ranges, file_size, segment_size)
for exp_result_key in expected_results:
- self.assertTrue(results.has_key(exp_result_key))
+ self.assertIn(exp_result_key, results)
self.assertTrue(len(results[exp_result_key]) == len(expected_results[exp_result_key]))
exp_result_map = expected_results[exp_result_key]
for segment_key in exp_result_map:
- self.assertTrue(results[exp_result_key].has_key(segment_key))
+ self.assertIn(segment_key, results[exp_result_key])
self.assertTrue(results[exp_result_key][segment_key] == expected_results[exp_result_key][segment_key])
def test_get_segment_info(self):
@@ -504,8 +506,7 @@ class TestPyECLibDriver(unittest.TestCase):
for file_size in self.file_sizes:
tmp_file = self.files[file_size]
tmp_file.seek(0)
- whole_file_str = tmp_file.read()
- whole_file_bytes = whole_file_str.encode('utf-8')
+ whole_file_bytes = tmp_file.read()
encode_input = whole_file_bytes
orig_fragments = pyeclib_driver.encode(encode_input)
@@ -576,8 +577,7 @@ class TestPyECLibDriver(unittest.TestCase):
file_size = self.file_sizes[0]
tmp_file = self.files[file_size]
tmp_file.seek(0)
- whole_file_str = tmp_file.read()
- whole_file_bytes = whole_file_str.encode('utf-8')
+ whole_file_bytes = tmp_file.read()
for ec_type in ['flat_xor_hd_3', 'liberasurecode_rs_vand']:
pyeclib_driver = self.get_available_backend(
k=10, m=5, ec_type=ec_type)
diff --git a/test/test_pyeclib_c.py b/test/test_pyeclib_c.py
index 9827fd3..b62ac57 100644
--- a/test/test_pyeclib_c.py
+++ b/test/test_pyeclib_c.py
@@ -23,6 +23,7 @@
import random
from string import ascii_letters
+import sys
import tempfile
import time
import unittest
@@ -111,8 +112,10 @@ class TestPyECLib(unittest.TestCase):
# Create the dictionary of files to test with
buf = ''.join(random.choice(ascii_letters) for i in range(size))
- tmp_file = tempfile.NamedTemporaryFile()
- tmp_file.write(buf.decode('utf-8'))
+ if sys.version_info >= (3,):
+ buf = buf.encode('ascii')
+ tmp_file = tempfile.NamedTemporaryFile('w+b')
+ tmp_file.write(buf)
self.files[size_str] = tmp_file
def get_tmp_file(self, name):
@@ -200,10 +203,10 @@ class TestPyECLib(unittest.TestCase):
whole_file_bytes = self.get_tmp_file(file_size).read()
success = True
- begins = [long(random.randint(0, len(whole_file_bytes) - 1)) for i in range(3)]
- ends = [long(random.randint(begins[i], len(whole_file_bytes))) for i in range(3)]
+ begins = [int(random.randint(0, len(whole_file_bytes) - 1)) for i in range(3)]
+ ends = [int(random.randint(begins[i], len(whole_file_bytes))) for i in range(3)]
- ranges = zip(begins, ends)
+ ranges = list(zip(begins, ends))
fragments = pyeclib_c.encode(handle, whole_file_bytes)
orig_fragments = fragments[:]