The Gaudi Framework  master (9f3f8895)
Loading...
Searching...
No Matches
precedence.RndBiasedBooleanValue Class Reference

Public Member Functions

 __init__ (self, pattern, seed=None)
 get (self)
 get_pattern (self)

Public Attributes

list pattern
 generator = self._create_generator(self.pattern)

Protected Member Functions

 _create_generator (self, pattern)

Detailed Description

Provides randomly ordered set of boolean values with requested proportion of True and False.

Definition at line 120 of file precedence.py.

Constructor & Destructor Documentation

◆ __init__()

precedence.RndBiasedBooleanValue.__init__ ( self,
pattern,
seed = None )
Keyword arguments:
pattern -- either a dictionary describing proportion of True and False (e.g., {True:5,False:15}), or
           a list/tuple containing a pattern to be used as-is (e.g., [False,True,True,False])
seed -- an int, long or other hashable object to initialize random number generator (passed to random.shuffle as-is)

Definition at line 123 of file precedence.py.

123 def __init__(self, pattern, seed=None):
124 """
125 Keyword arguments:
126 pattern -- either a dictionary describing proportion of True and False (e.g., {True:5,False:15}), or
127 a list/tuple containing a pattern to be used as-is (e.g., [False,True,True,False])
128 seed -- an int, long or other hashable object to initialize random number generator (passed to random.shuffle as-is)
129 """
130
131 if isinstance(pattern, dict):
132 proportion = pattern
133
134 length = proportion[True] + proportion[False]
135 if length <= 0:
136 raise ValueError(f"Wrong set length requested: {length}")
137
138 self.pattern = [False for i in range(proportion[False])] + [
139 True for i in range(proportion[True])
140 ]
141
142 if seed is not None:
143 random.seed(seed)
144
145 random.shuffle(self.pattern)
146
147 elif isinstance(pattern, (list, tuple)):
148 self.pattern = pattern
149 else:
150 raise "ERROR: unknown pattern type"
151
152 self.generator = self._create_generator(self.pattern)
153

Member Function Documentation

◆ _create_generator()

precedence.RndBiasedBooleanValue._create_generator ( self,
pattern )
protected

Definition at line 154 of file precedence.py.

154 def _create_generator(self, pattern):
155 yield from pattern
156

◆ get()

precedence.RndBiasedBooleanValue.get ( self)

Definition at line 157 of file precedence.py.

157 def get(self):
158 return next(self.generator)
159

◆ get_pattern()

precedence.RndBiasedBooleanValue.get_pattern ( self)

Definition at line 160 of file precedence.py.

160 def get_pattern(self):
161 return self.pattern
162
163

Member Data Documentation

◆ generator

precedence.RndBiasedBooleanValue.generator = self._create_generator(self.pattern)

Definition at line 152 of file precedence.py.

◆ pattern

precedence.RndBiasedBooleanValue.pattern
Initial value:
= [False for i in range(proportion[False])] + [
True for i in range(proportion[True])
]

Definition at line 138 of file precedence.py.


The documentation for this class was generated from the following file: