From: Kyr Shatskyy Date: Thu, 14 Nov 2019 18:07:23 +0000 (+0100) Subject: suite/matrix: make code py2/py3 compatible X-Git-Tag: 1.1.0~194^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=db33ba487ee27fe7c9f92da0de65e8356c143749;p=teuthology.git suite/matrix: make code py2/py3 compatible Signed-off-by: Kyr Shatskyy --- diff --git a/teuthology/suite/build_matrix.py b/teuthology/suite/build_matrix.py index 9ea1d4b6b..8efb2a8f9 100644 --- a/teuthology/suite/build_matrix.py +++ b/teuthology/suite/build_matrix.py @@ -65,11 +65,11 @@ def _get_matrix(path, subset=None): if subset: (index, outof) = subset mat = _build_matrix(path, mincyclicity=outof) - first = (mat.size() / outof) * index + first = (mat.size() // outof) * index if index == outof or index == outof - 1: matlimit = mat.size() else: - matlimit = (mat.size() / outof) * (index + 1) + matlimit = (mat.size() // outof) * (index + 1) else: first = 0 mat = _build_matrix(path) @@ -133,7 +133,7 @@ def _build_matrix(path, mincyclicity=0, item=''): mat = matrix.Product(item, submats) if mat and mat.cyclicity() < mincyclicity: mat = matrix.Cycle( - (mincyclicity + mat.cyclicity() - 1) / mat.cyclicity(), mat + (mincyclicity + mat.cyclicity() - 1) // mat.cyclicity(), mat ) return mat else: @@ -148,7 +148,7 @@ def _build_matrix(path, mincyclicity=0, item=''): continue if submat.cyclicity() < mincyclicity: submat = matrix.Cycle( - ((mincyclicity + submat.cyclicity() - 1) / + ((mincyclicity + submat.cyclicity() - 1) // submat.cyclicity()), submat) submats.append(submat) diff --git a/teuthology/suite/matrix.py b/teuthology/suite/matrix.py index 0cc4af953..9c2ea1a55 100644 --- a/teuthology/suite/matrix.py +++ b/teuthology/suite/matrix.py @@ -2,6 +2,7 @@ import os import random import heapq from fractions import gcd +from functools import reduce def lcm(a, b): return a*b // gcd(a, b) @@ -157,8 +158,8 @@ class Product(Matrix): rsize = submats[0][0] cycles = gcd(rsize, lsize) - clen = (rsize * lsize) / cycles - off = (i / clen) % cycles + clen = (rsize * lsize) // cycles + off = (i // clen) % cycles def combine(r, s=frozenset()): if isinstance(r, frozenset): @@ -253,14 +254,16 @@ class Sum(Matrix): self._pseudo_size = lcml((i.size() for i in _submats)) * len(_submats) self._size = sum((i.size() for i in _submats)) self._submats = [ - ((i, self._pseudo_size / s.size()), s) for (i, s) in \ + ((i, self._pseudo_size // s.size()), s) for (i, s) in \ zip(range(len(_submats)), _submats) ] - def sm_to_pmsl(((offset, multiple), submat)): + def sm_to_pmsl(offset_multiple_submat): """ - submat tuple to pseudo minscanlen + offset_multiple_submat tuple to pseudo minscanlen """ + ((offset, multiple), submat) = offset_multiple_submat + return submat.minscanlen() * multiple def index_to_pindex_generator(submats): @@ -282,13 +285,16 @@ class Sum(Matrix): self._minscanlen = self.pseudo_index_to_index( max(map(sm_to_pmsl, self._submats))) - def pi_to_sis(self, pi, (offset, multiple)): + def pi_to_sis(self, pi, offset_multiple): """ + offset_multiple tuple of offset and multiple + max(i) s.t. offset + i*multiple <= pi """ + (offset, multiple) = offset_multiple if pi < offset: return -1 - return (pi - offset) / multiple + return (pi - offset) // multiple def pseudo_index_to_index(self, pi): """