From d8e75dfeb3064523ea8cc5a7334a72f7a162fdd8 Mon Sep 17 00:00:00 2001
From: ulif <uli@gnufix.de>
Date: Sun, 24 Apr 2016 14:57:34 +0200
Subject: [PATCH] We can avoid using `use_modulo` var.

We can simply do the (cheap) modulo operation after each die role.
---
 diceware/random_sources.py | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/diceware/random_sources.py b/diceware/random_sources.py
index 4b95ab8..26f973a 100644
--- a/diceware/random_sources.py
+++ b/diceware/random_sources.py
@@ -149,7 +149,6 @@ class RealDiceRandomSource(object):
         """Pick one item out of `sequence`.
         """
         num_rolls = int(math.log(len(sequence), self.dice_sides))
-        use_modulo = False
         if num_rolls < 1:
             # If this happens, there are less values in the sequence to
             # choose from than there are dice sides.
@@ -159,11 +158,9 @@ class RealDiceRandomSource(object):
                 # Check whether len(sequence) is a factor of dice.sides
                 return sequence[0]
             if self.dice_sides % len(sequence) == 0:
-                use_modulo = True
                 num_rolls = 1
             else:
                 # otherwise We will perform one extra roll and apply modulo
-                use_modulo = True
                 num_rolls = 2
         self.pre_check(num_rolls, sequence)
         result = 0
@@ -174,6 +171,5 @@ class RealDiceRandomSource(object):
                 rolled = input_func(
                     "What number shows dice number %s? " % (num_rolls - i + 1))
             result += ((self.dice_sides ** (i - 1)) * (int(rolled) - 1))
-            if use_modulo:
-                result = result % len(sequence)
+            result = result % len(sequence)
         return sequence[result]
-- 
GitLab