def function_seed(function, mod=0): c = function.__code__ # get function file path relative to Nengo directory root nengo_path = os.path.abspath(os.path.dirname(nengo.__file__)) path = os.path.relpath(c.co_filename, start=nengo_path) # take start of md5 hash of function file and name, should be unique hash_list = os.path.normpath(path).split(os.path.sep) + [c.co_name] hash_string = ensure_bytes('/'.join(hash_list)) i = int(hashlib.md5(hash_string).hexdigest()[:15], 16) return (i + mod) % npext.maxint
def function_seed(function, mod=0): c = function.__code__ # get function file path relative to Nengo directory root nengo_path = os.path.abspath(os.path.dirname(nengo.__file__)) path = os.path.relpath(c.co_filename, start=nengo_path) # take start of md5 hash of function file and name, should be unique hash_list = os.path.normpath(path).split(os.path.sep) + [c.co_name] hash_string = ensure_bytes('/'.join(hash_list)) i = int(hashlib.md5(hash_string).hexdigest()[:15], 16) s = (i + mod) % npext.maxint int_s = int(s) # numpy 1.8.0 bug when RandomState on long type inputs assert type(int_s) == int # should not still be a long because < maxint return int_s
def test_ensure_bytes(): """Test that ensure_bytes is always the right bytes value.""" assert ensure_bytes("hello") == b"hello"
def test_ensure_bytes(): """Test that ensure_bytes is always the right bytes value.""" assert ensure_bytes(u"hello") == b"hello" assert ensure_bytes("hello") == b"hello"
def function_seed(function, mod=0): # take start of md5 hash of function file and name, should be pretty random c = function.__code__ to_hash = ensure_bytes(c.co_filename + c.co_name) i = int(hashlib.md5(to_hash).hexdigest()[:15], 16) return (test_seed + i + mod) % npext.maxint