def __init__(self, seed, parameter, generator, changed=0): self.seed = seed self.parameter_seed = parameter self.changed = changed if isinstance(generator, Stream): self.stream = generator else: self.stream = Stream(generator)
class StreamTemplate(object): def __init__(self, seed, parameter, generator, changed=0): self.seed = seed self.parameter_seed = parameter self.changed = changed if isinstance(generator, Stream): self.stream = generator else: self.stream = Stream(generator) def __repr__(self): return u('StreamTemplate(%r, %r, (%s))') % ( self.seed, self.parameter_seed, u(', ').join(map(show, self.stream[:self.changed])) ) def __eq__(self, other): if not isinstance(other, StreamTemplate): return False if self.seed != other.seed: return False if self.parameter_seed != other.parameter_seed: return False common_max = max(self.changed, other.changed) return ( list(self.stream[:common_max]) == list(other.stream[:common_max]) ) def __ne__(self, other): return not self.__eq__(other) def __hash__(self): return hash(self.seed ^ self.parameter_seed) def with_value(self, i, value): return StreamTemplate( self.seed, self.parameter_seed, self.stream.with_value(i, value), max(i + 1, self.changed) ) def with_values(self, updates): updates = list(updates) return StreamTemplate( self.seed, self.parameter_seed, self.stream.with_values(updates), max(self.changed, max(i + 1 for i, _ in updates)) ) def __trackas__(self): return (u('StreamTemplate'), self.seed, list(self.stream[:self.changed]))
def do_draw(self, data): data.can_reproduce_example_from_repr = False def gen(): while True: yield data.draw(self.source_strategy) return Stream(gen())
class StreamTemplate(object): def __init__(self, seed, parameter, generator, changed=0): self.seed = seed self.parameter_seed = parameter self.changed = changed if isinstance(generator, Stream): self.stream = generator else: self.stream = Stream(generator) def __repr__(self): return u'StreamTemplate(%r, %r, (%s))' % ( self.seed, self.parameter_seed, u', '.join( map(show, self.stream[:self.changed]))) def __eq__(self, other): if not isinstance(other, StreamTemplate): return False if self.seed != other.seed: return False if self.parameter_seed != other.parameter_seed: return False common_max = max(self.changed, other.changed) return (list(self.stream[:common_max]) == list( other.stream[:common_max])) def __ne__(self, other): return not self.__eq__(other) def __hash__(self): return hash(self.seed ^ self.parameter_seed) def with_value(self, i, value): return StreamTemplate(self.seed, self.parameter_seed, self.stream.with_value(i, value), max(i + 1, self.changed)) def with_values(self, updates): updates = list(updates) return StreamTemplate( self.seed, self.parameter_seed, self.stream.with_values(updates), max(self.changed, max(i + 1 for i, _ in updates))) def __trackas__(self): return (u'StreamTemplate', self.seed, list(self.stream[:self.changed]))
def do_draw(self, data): def gen(): while True: yield data.draw(self.source_strategy) return Stream(gen())