py3: make random topic name generation consistent across py2/py3
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 17 Jul 2019 11:45:37 -0700
changeset 4754 75307f276a79
parent 4753 87d3955467b4
child 4755 8664231b47ac
py3: make random topic name generation consistent across py2/py3 random.choice() (and others based on random.randint()) changed between py2 and py3 without a way to get the py2 behavior. However, random.random() did not change, so we can re-implement random.choice() based on that.
hgext3rd/topic/randomname.py
--- a/hgext3rd/topic/randomname.py	Fri Jul 12 17:02:35 2019 -0700
+++ b/hgext3rd/topic/randomname.py	Wed Jul 17 11:45:37 2019 -0700
@@ -1005,6 +1005,9 @@
 ]
 
 def randomtopicname(ui):
+    # Re-implement random.choice() in the way it was written in Python 2.
+    def choice(things):
+        return things[int(len(things) * random.random())]
     if ui.configint("devel", "randomseed"):
         random.seed(ui.configint("devel", "randomseed"))
-    return random.choice(adjectives) + "-" + random.choice(animals)
+    return choice(adjectives) + "-" + choice(animals)