--- deepzoom3.py (original) +++ deepzoom3.py (refactored) @@ -43,14 +43,14 @@ import shutil try: - import cStringIO + import io StringIO = cStringIO except ImportError: - import StringIO + import io import sys import time -import urllib +import urllib.request, urllib.parse, urllib.error import warnings import xml.dom.minidom @@ -250,7 +250,7 @@ descriptor = DeepZoomImageDescriptor() descriptor.open(path) files_path = _get_or_create_path(_get_files_path(self.source)) - for level in reversed(xrange(self.max_level + 1)): + for level in reversed(range(self.max_level + 1)): level_path = _get_or_create_path('%s/%s'%(files_path, level)) level_size = 2**level images_per_tile = int(math.floor(self.tile_size / level_size)) @@ -303,7 +303,7 @@ """Returns position (column, row) from given Z-order (Morton number.)""" column = 0 row = 0 - for i in xrange(0, 32, 2): + for i in range(0, 32, 2): offset = i / 2 # column column_offset = i @@ -320,7 +320,7 @@ def get_z_order(self, column, row): """Returns the Z-order (Morton number) from given position.""" z_order = 0 - for i in xrange(32): + for i in range(32): z_order |= (column & 1 << i) << i | (row & 1 << i) << (i + 1) return z_order @@ -375,8 +375,8 @@ def tiles(self, level): """Iterator for all tiles in the given level. Returns (column, row) of a tile.""" columns, rows = self.descriptor.get_num_tiles(level) - for column in xrange(columns): - for row in xrange(rows): + for column in range(columns): + for row in range(rows): yield (column, row) def create(self, source, destination): @@ -390,7 +390,7 @@ tile_format=self.tile_format) # Create tiles image_files = _get_or_create_path(_get_files_path(destination)) - for level in xrange(self.descriptor.num_levels): + for level in range(self.descriptor.num_levels): level_dir = _get_or_create_path(os.path.join(image_files, str(level))) level_image = self.get_image(level) for (column, row) in self.tiles(level): @@ -447,7 +447,7 @@ def deco_retry(f): def f_retry(*args, **kwargs): last_exception = None - for _ in xrange(attempts): + for _ in range(attempts): try: return f(*args, **kwargs) except Exception as exception: @@ -479,7 +479,7 @@ @retry(6) def safe_open(path): - return StringIO.StringIO(urllib.urlopen(path).read()) + return io.StringIO(urllib.request.urlopen(path).read()) ################################################################################