The Gaudi Framework  master (594c33fa)
GaudiHive.precedence.RndBiasedBooleanValue Class Reference
Inheritance diagram for GaudiHive.precedence.RndBiasedBooleanValue:
Collaboration diagram for GaudiHive.precedence.RndBiasedBooleanValue:

Public Member Functions

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

Public Attributes

 pattern
 
 generator
 

Private Member Functions

def _create_generator (self, pattern)
 

Detailed Description

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

Definition at line 121 of file precedence.py.

Constructor & Destructor Documentation

◆ __init__()

def GaudiHive.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 124 of file precedence.py.

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

Member Function Documentation

◆ _create_generator()

def GaudiHive.precedence.RndBiasedBooleanValue._create_generator (   self,
  pattern 
)
private

Definition at line 155 of file precedence.py.

155  def _create_generator(self, pattern):
156  for b in pattern:
157  yield b
158 

◆ get()

def GaudiHive.precedence.RndBiasedBooleanValue.get (   self)

Definition at line 159 of file precedence.py.

159  def get(self):
160  return next(self.generator)
161 

◆ get_pattern()

def GaudiHive.precedence.RndBiasedBooleanValue.get_pattern (   self)

Definition at line 162 of file precedence.py.

162  def get_pattern(self):
163  return self.pattern
164 
165 

Member Data Documentation

◆ generator

GaudiHive.precedence.RndBiasedBooleanValue.generator

Definition at line 153 of file precedence.py.

◆ pattern

GaudiHive.precedence.RndBiasedBooleanValue.pattern

Definition at line 139 of file precedence.py.


The documentation for this class was generated from the following file:
GaudiPartProp.decorators.get
get
decorate the vector of properties
Definition: decorators.py:283
Gaudi::Functional::details::zip::range
decltype(auto) range(Args &&... args)
Zips multiple containers together to form a single range.
Definition: details.h:98