| 1234567891011121314151617181920212223242526272829303132333435 |
- # Copyright 2023 Modelling, Simulation and Design Lab (MSDL)
- # at the University of Antwerp (http://msdl.uantwerpen.be/).
- #
- # Licensed under the GNU Public License v3 (the "License");
- # you may not use this file except in compliance with the
- # License. You may obtain a copy of the License at
- # https://www.gnu.org/licenses/gpl-3.0.en.html
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- # either express or implied. See the License for the specific
- # language governing permissions and limitations under the
- # License.
- import random
- class SeededRandom(random.Random):
- '''
- Random class wrapper, provided a seeded random number generator
- '''
- __instantiated = False
- def __init__(self, seed=0):
- '''
- Singleton class: the single instance "INFINITY" stands for infinity.
- '''
- if SeededRandom.__instantiated:
- raise NotImplementedError("singleton class already instantiated")
- SeededRandom.__instantiatiated = True
- random.Random.__init__(self)
- self.seed(seed)
- Random = SeededRandom()
|