[Checkins] SVN: z3c.datagenerator/trunk/src/z3c/datagenerator/ Use the crc32 function to ensure random seeds are the same on 64 bit Python

Shane Hathaway shane at hathawaymix.org
Tue Dec 2 16:50:36 EST 2008


Log message for revision 93552:
  Use the crc32 function to ensure random seeds are the same on 64 bit Python
  

Changed:
  U   z3c.datagenerator/trunk/src/z3c/datagenerator/demographics.py
  U   z3c.datagenerator/trunk/src/z3c/datagenerator/generator.py
  U   z3c.datagenerator/trunk/src/z3c/datagenerator/net.py

-=-
Modified: z3c.datagenerator/trunk/src/z3c/datagenerator/demographics.py
===================================================================
--- z3c.datagenerator/trunk/src/z3c/datagenerator/demographics.py	2008-12-02 21:10:24 UTC (rev 93551)
+++ z3c.datagenerator/trunk/src/z3c/datagenerator/demographics.py	2008-12-02 21:50:36 UTC (rev 93552)
@@ -18,6 +18,7 @@
 __docformat__ = "reStructuredText"
 import os
 import random
+from zlib import crc32
 import zope.interface
 
 from z3c.datagenerator import generator
@@ -40,7 +41,7 @@
     """A social security data generator."""
 
     def __init__(self, seed):
-        self.random = random.Random(seed+'ssn')
+        self.random = random.Random(crc32(seed+'ssn'))
 
     def get(self):
         """Compute a social security number."""
@@ -63,7 +64,7 @@
     apts = True
 
     def __init__(self, seed):
-        self.random = random.Random(seed+'address')
+        self.random = random.Random(crc32(seed+'address'))
         path = os.path.dirname(__file__)
 
         file = open(os.path.join(path, self.streetNamesFile), 'r')
@@ -110,7 +111,7 @@
     template = u'%i-%.3i-%.4i'
 
     def __init__(self, seed):
-        self.random = random.Random(seed+'ssn')
+        self.random = random.Random(crc32(seed+'ssn'))
 
     def get(self):
         """Compute a social security number."""

Modified: z3c.datagenerator/trunk/src/z3c/datagenerator/generator.py
===================================================================
--- z3c.datagenerator/trunk/src/z3c/datagenerator/generator.py	2008-12-02 21:10:24 UTC (rev 93551)
+++ z3c.datagenerator/trunk/src/z3c/datagenerator/generator.py	2008-12-02 21:50:36 UTC (rev 93552)
@@ -20,6 +20,7 @@
 import datetime
 import os
 import random
+from zlib import crc32
 import zope.interface
 
 from z3c.datagenerator import interfaces
@@ -30,7 +31,7 @@
     zope.interface.implements(interfaces.IDataGenerator)
 
     def __init__(self, seed, vocabulary):
-        self.random = random.Random(seed)
+        self.random = random.Random(crc32(seed))
         self.vocabulary = vocabulary
 
     def get(self):
@@ -50,7 +51,7 @@
     path = os.path.dirname(__file__)
 
     def __init__(self, seed, filename):
-        self.random = random.Random(seed+filename)
+        self.random = random.Random(crc32(seed+filename))
         self.values = self._read(filename)
 
     def get(self):
@@ -86,7 +87,7 @@
     zope.interface.implements(interfaces.IDateDataGenerator)
 
     def __init__(self, seed, start=None, end=None):
-        self.random = random.Random(seed+'ssn')
+        self.random = random.Random(crc32(seed+'ssn'))
         self.start = start or datetime.date(2000, 1, 1)
         self.end = end or datetime.date(2007, 1, 1)
 

Modified: z3c.datagenerator/trunk/src/z3c/datagenerator/net.py
===================================================================
--- z3c.datagenerator/trunk/src/z3c/datagenerator/net.py	2008-12-02 21:10:24 UTC (rev 93551)
+++ z3c.datagenerator/trunk/src/z3c/datagenerator/net.py	2008-12-02 21:50:36 UTC (rev 93552)
@@ -18,6 +18,7 @@
 __docformat__ = "reStructuredText"
 import os
 import random
+from zlib import crc32
 import zope.interface
 
 from z3c.datagenerator import demographics, generator, interfaces
@@ -28,7 +29,7 @@
     zope.interface.implements(interfaces.IDataGenerator)
 
     def __init__(self, seed):
-        self.random = random.Random(seed+'ip')
+        self.random = random.Random(crc32(seed+'ip'))
 
     def get(self):
         """Select a value from the values list and return it."""
@@ -48,7 +49,7 @@
     pattern = u'%(firstInitial)s%(lastName)s'
 
     def __init__(self, seed):
-        self.random = random.Random(seed+'username')
+        self.random = random.Random(crc32(seed+'username'))
         self.firstNames = demographics.FirstNameGenerator(seed)
         self.lastNames = demographics.LastNameGenerator(seed)
 
@@ -80,7 +81,7 @@
     pattern = '%(uname)s@%(domain)s%(tld)s'
 
     def __init__(self, seed):
-        self.random = random.Random(seed+'username')
+        self.random = random.Random(crc32(seed+'username'))
         self.usernames = UsernameDataGenerator(seed)
         self.words = generator.TextDataGenerator(seed, self.wordsFile)
         self.tlds = generator.CSVDataGenerator(seed, self.tldsFile)



More information about the Checkins mailing list