@combinator def byte_test(x): return unit_type(app(x, _bits_test)) @combinator def byte_make(b0, b1, b2, b3, b4, b5, b6, b7): result = I for b in (b0, b1, b2, b3, b4, b5, b6, b7): result = app(C, result, b) return result byte_get_bit = [ combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b0)), combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b1)), combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b2)), combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b3)), combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b4)), combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b5)), combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b6)), combinator(lambda x: app(x, lambda b0, b1, b2, b3, b4, b5, b6, b7: b7)), ] # ---------------------------------------------------------------------------- # Bytes, as a homogeneous list of Byte @combinator def bytes_test(xs):
def test_combinator_must_be_closed(arg, expected): with pytest.raises(SyntaxError): combinator(arg).code
def __init__(self, encoders, decoder, fun): functools.update_wrapper(self, fun) self._encoders = encoders self._decoder = decoder self._untyped = combinator(fun)