|
@@ -196,3 +196,20 @@ assert "123|456\n98|76|54".splitlines() | PipeMap(lambda s: s.split("|")) | Pipe
|
|
|
((1, 2, 3), (4, 5, 6)),
|
|
|
((9, 8), (7, 6), (5, 4)),
|
|
|
]
|
|
|
+
|
|
|
+
|
|
|
+class PipePair(PipeMap):
|
|
|
+ def __init__(
|
|
|
+ self, function: typing.Callable[[typing.Any], typing.Any], axis: int = 0
|
|
|
+ ) -> None:
|
|
|
+ super().__init__(function=lambda a: (a, function(a)), axis=axis)
|
|
|
+
|
|
|
+
|
|
|
+assert range(65, 68) | PipePair(chr) | Pipe(list) == [
|
|
|
+ (65, "A"),
|
|
|
+ (66, "B"),
|
|
|
+ (67, "C"),
|
|
|
+]
|
|
|
+assert range(2, 4) | PipeMap(range) | PipePair(lambda n: n**3, axis=1) | PipeMap(
|
|
|
+ set
|
|
|
+) | Pipe(list) == [{(0, 0), (1, 1)}, {(0, 0), (1, 1), (2, 8)}]
|