python: Use explicit integer divisions
authorMathieu Bridon <bochecha@daitauha.fr>
Wed, 25 Jul 2018 09:53:54 +0000 (11:53 +0200)
committerDylan Baker <dylan@pnwbakers.com>
Tue, 7 Aug 2018 20:07:44 +0000 (13:07 -0700)
In Python 2, divisions of integers return an integer:

    >>> 32 / 4
    8

In Python 3 though, they return floats:

    >>> 32 / 4
    8.0

However, Python 3 has an explicit integer division operator:

    >>> 32 // 4
    8

That operator exists on Python >= 2.2, so let's use it everywhere to
make the scripts compatible with both Python 2 and 3.

In addition, using __future__.division tells Python 2 to behave the same
way as Python 3, which helps ensure the scripts produce the same output
in both versions of Python.

Signed-off-by: Mathieu Bridon <bochecha@daitauha.fr>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (v2)
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
src/gallium/auxiliary/util/u_format_pack.py
src/gallium/auxiliary/util/u_format_parse.py
src/mapi/glapi/gen/glX_proto_send.py
src/mesa/main/format_info.py
src/mesa/main/format_pack.py
src/mesa/main/format_unpack.py

index 7a952a48b3033f543f5f1e48ec2043b9b31a8783..ad2e49281fb7cccb59391f6abcba4da2cafcaf31 100644 (file)
@@ -36,7 +36,7 @@
 '''
 
 
-from __future__ import print_function
+from __future__ import division, print_function
 
 from u_format_parse import *
 
@@ -240,7 +240,7 @@ def value_to_native(type, value):
             return truncate_mantissa(value, 23)
         return value
     if type.type == FIXED:
-        return int(value * (1 << (type.size/2)))
+        return int(value * (1 << (type.size // 2)))
     if not type.norm:
         return int(value)
     if type.type == UNSIGNED:
index c0456f6d15966670056dd73a9cec955897dc986b..d3874cd895b8d3e55ca73be2c59bea74cee2be46 100644 (file)
@@ -29,6 +29,9 @@
 '''
 
 
+from __future__ import division
+
+
 VOID, UNSIGNED, SIGNED, FIXED, FLOAT = range(5)
 
 SWIZZLE_X, SWIZZLE_Y, SWIZZLE_Z, SWIZZLE_W, SWIZZLE_0, SWIZZLE_1, SWIZZLE_NONE, = range(7)
@@ -76,7 +79,7 @@ class Channel:
         if self.type == FLOAT:
             return VERY_LARGE
         if self.type == FIXED:
-            return (1 << (self.size/2)) - 1
+            return (1 << (self.size // 2)) - 1
         if self.norm:
             return 1
         if self.type == UNSIGNED:
@@ -90,7 +93,7 @@ class Channel:
         if self.type == FLOAT:
             return -VERY_LARGE
         if self.type == FIXED:
-            return -(1 << (self.size/2))
+            return -(1 << (self.size // 2))
         if self.type == UNSIGNED:
             return 0
         if self.norm:
index a920ecc012f3ac86f966dddee9106f8a90b03e0c..03067d8a3cd9576cafe53dafb064a3c3ea1a02cc 100644 (file)
@@ -26,7 +26,7 @@
 #    Ian Romanick <idr@us.ibm.com>
 #    Jeremy Kolb <jkolb@brandeis.edu>
 
-from __future__ import print_function
+from __future__ import division, print_function
 
 import argparse
 
@@ -809,7 +809,7 @@ generic_%u_byte( GLint rop, const void * ptr )
                     # Dividing by the array size (1 for
                     # non-arrays) gives us this.
 
-                    s = p.size() / p.get_element_count()
+                    s = p.size() // p.get_element_count()
                     print("       %s __glXReadReply(dpy, %s, %s, %s);" % (return_str, s, p.name, aa))
                     got_reply = 1
 
index bbecaa24510c1538d5e80fc4cefb94ddef77dfb1..00e27b3fba5b79379469ef576619a94a7db9364d 100644 (file)
@@ -21,7 +21,7 @@
 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-from __future__ import print_function
+from __future__ import division, print_function
 
 import format_parser as parser
 import sys
@@ -198,7 +198,7 @@ for fmat in formats:
       chan = fmat.array_element()
       norm = chan.norm or chan.type == parser.FLOAT
       print('      .ArrayFormat = MESA_ARRAY_FORMAT({0}),'.format(', '.join([
-         str(chan.size / 8),
+         str(chan.size // 8),
          str(int(chan.sign)),
          str(int(chan.type == parser.FLOAT)),
          str(int(norm)),
index d3c8d24acd626fb074e19dea52317c1160e164ee..0b9e0d424d9eab1904805941c18dd63bfb5af85c 100644 (file)
@@ -356,7 +356,7 @@ _mesa_pack_ubyte_rgba_row(mesa_format format, GLuint n,
    case ${f.name}:
       for (i = 0; i < n; ++i) {
          pack_ubyte_${f.short_name()}(src[i], d);
-         d += ${f.block_size() / 8};
+         d += ${f.block_size() // 8};
       }
       break;
 %endfor
@@ -388,7 +388,7 @@ _mesa_pack_uint_rgba_row(mesa_format format, GLuint n,
    case ${f.name}:
       for (i = 0; i < n; ++i) {
          pack_uint_${f.short_name()}(src[i], d);
-         d += ${f.block_size() / 8};
+         d += ${f.block_size() // 8};
       }
       break;
 %endfor
@@ -418,7 +418,7 @@ _mesa_pack_float_rgba_row(mesa_format format, GLuint n,
    case ${f.name}:
       for (i = 0; i < n; ++i) {
          pack_float_${f.short_name()}(src[i], d);
-         d += ${f.block_size() / 8};
+         d += ${f.block_size() // 8};
       }
       break;
 %endfor
@@ -1000,6 +1000,6 @@ _mesa_pack_colormask(mesa_format format, const GLubyte colorMask[4], void *dst)
 }
 """
 
-template = Template(string);
+template = Template(string, future_imports=['division']);
 
 print(template.render(argv = argv[0:]))
index 286c08e6219d19d23f0c1d12e7521301fa035ee4..c254b74149cf6bdf6c13f0cd62e8290d712cb718 100644 (file)
@@ -322,7 +322,7 @@ _mesa_unpack_rgba_row(mesa_format format, GLuint n,
    case ${f.name}:
       for (i = 0; i < n; ++i) {
          unpack_float_${f.short_name()}(s, dst[i]);
-         s += ${f.block_size() / 8};
+         s += ${f.block_size() // 8};
       }
       break;
 %endfor
@@ -355,7 +355,7 @@ _mesa_unpack_ubyte_rgba_row(mesa_format format, GLuint n,
    case ${f.name}:
       for (i = 0; i < n; ++i) {
          unpack_ubyte_${f.short_name()}(s, dst[i]);
-         s += ${f.block_size() / 8};
+         s += ${f.block_size() // 8};
       }
       break;
 %endfor
@@ -397,7 +397,7 @@ _mesa_unpack_uint_rgba_row(mesa_format format, GLuint n,
    case ${f.name}:
       for (i = 0; i < n; ++i) {
          unpack_int_${f.short_name()}(s, dst[i]);
-         s += ${f.block_size() / 8};
+         s += ${f.block_size() // 8};
       }
       break;
 %endfor
@@ -890,6 +890,6 @@ _mesa_unpack_depth_stencil_row(mesa_format format, GLuint n,
 }
 """
 
-template = Template(string);
+template = Template(string, future_imports=['division']);
 
 print(template.render(argv = argv[0:]))