Mercurial > hg > pyloader
view tests/objects.py @ 62:97800b02f636
shouldnt need to go through the whole sequence when youre wrapping a known section
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 09 Jun 2011 09:11:47 -0700 |
parents | cc361ad8a692 |
children | 20bdb8125817 |
line wrap: on
line source
""" test objects """ def stringsort(*strings): return ''.join(sorted(''.join(strings))) class StringMunge(object): def __init__(self, prefix, delimeter=':', callback=None): self.delimeter = delimeter self.prefix = prefix self.callback = callback def __call__(self, string): if self.callback: string = self.callback(string) return self.prefix + self.delimeter + string class Foo(object): def __init__(self, a, b): self.factor = a*100 + b def __call__(self, number): return number * self.factor class Wrapper(object): def __init__(self, app, **values): self.app = app self.values = dict([(int(j), i) for i, j in values]) # TODO: should be automagically converted ideally via pyloader def __call__(self, *args, **kwargs): retval = self.app(*args, **kwargs) values = {1: 'one', 2: 'two', 3: 'three'} # etc values.update(self.values) if retval in values: return values[retval] return retval def wrap(app, **values): return Wrapper(app, **values) def fib(n): """return the nth fibonacci term""" n = int(n) # TODO: should be automagically converted ideally via pyloader sequence = [1,1] while len(sequence) - 1 < n: sequence.append(sequence[len(sequence)-1] + sequence[len(sequence)-2]) return sequence[n]