def test_empty(self): """ Empty iterables are filled entirely with the padding value. """ padded = list(util.padIterable([], -1, 5)) self.assertEquals(len(padded), 5) self.assertEquals(padded, [-1, -1, -1, -1, -1])
def test_exact(self): """ Iterables that are the same length as the padding are not padded. """ padded = list(util.padIterable(xrange(5), -1, 5)) self.assertEquals(len(padded), 5) self.assertEquals(padded, [0, 1, 2, 3, 4])
def test_exceedsPadding(self): """ Iterables that exceed the padding amount are clipped to the specified length. """ padded = list(util.padIterable(xrange(10), -1, 5)) self.assertEquals(len(padded), 5) self.assertEquals(padded, [0, 1, 2, 3, 4])
def test_needsPadding(self): """ Iterables that need padding are padded to the specified length with the padding value. """ padded = list(util.padIterable(xrange(3), -1, 5)) self.assertEquals(len(padded), 5) self.assertEquals(padded, [0, 1, 2, -1, -1])
def _params(): parameters = getattr(commandClass, "optParameters", []) parameters = (util.padIterable(p, None, 5) for p in parameters) for long, short, default, desc, coerce in parameters: if long in conf: default = conf.get(long) if default is not None and coerce is not None: default = coerce(default) yield long, short, default, desc, coerce
def transformersFromOptions(options): """ Extract option transformers from an C{Options} subclass. @rtype: C{iterable} of C{(str, callable)} @return: Iterable of C{(longOption, transformer)}. """ flags = getattr(options, "optFlags", []) for long, short, desc in flags: yield long, flag parameters = getattr(options, "optParameters", []) parameters = (util.padIterable(ps, _identity, 5) for ps in parameters) global _identity for long, short, default, desc, coerce in parameters: if coerce is None: coerce = _identity yield long, coerce