Introducing SeedBank

Python programs, particularly data science applications, often need to interact with multiple different random number generators.

The SeedBank package provides a unified interface to seeding them, along with APIs for deriving additional RNG seeds in a predictable way (using NumPy 1.17’s new random infrastructure) and construction random generators.

Credit for the name “seedbank” goes to Keith Moore.

Quickstart

To get started, just use the seedbank.initialize() function to seed all available random number generators:

import seedbank
seedbank.initialize(65000)

SeedBank will seed all of the following generators that are available:

In addition, it will initialize a root seed for constructing new-style NumPy numpy.random.Generator instances (numpy_rng()), and can construct legacy RandomState instances from this same seed (numpy_random_state()).

If SeedBank doesn’t support your RNG yet, please submit a pull request.

Further Reading

Acknowledgements

This material is based upon work supported by the National Science Foundation under Grant No. IIS 17-51278. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. This page has not been approved by Boise State University and does not reflect official university positions.