|
@@ -1,3 +1,4 @@
|
|
|
+import functools
|
|
|
import itertools
|
|
|
import os
|
|
|
import pathlib
|
|
@@ -58,7 +59,7 @@ def split_pgp_file(
|
|
|
prefix, remaining_bytes = remaining_bytes.split(packet.data, maxsplit=1)
|
|
|
except ValueError:
|
|
|
assert len(packet.data) > 596 # actual threshold might be higher
|
|
|
- split_index = 2 ** 9
|
|
|
+ split_index = 2**9
|
|
|
prefix, remaining_bytes = remaining_bytes.split(
|
|
|
packet.data[:split_index], maxsplit=1
|
|
|
)
|
|
@@ -135,3 +136,16 @@ def yaml_dump(path: typing.Union[pathlib.Path, str], data: typing.Any) -> None:
|
|
|
def yaml_load(path: typing.Union[pathlib.Path, str]) -> typing.Any:
|
|
|
with pathlib.Path(path).open("r") as stream:
|
|
|
return yaml.safe_load(stream)
|
|
|
+
|
|
|
+
|
|
|
+class Pipe:
|
|
|
+ def __init__(self, function: typing.Callable[[typing.Any], typing.Any]) -> None:
|
|
|
+ self._function = function
|
|
|
+
|
|
|
+ def __ror__(self, other: typing.Iterable) -> typing.Any:
|
|
|
+ return self._function(other)
|
|
|
+
|
|
|
+
|
|
|
+class PipeMap(Pipe):
|
|
|
+ def __init__(self, function: typing.Callable[[typing.Any], typing.Any]) -> None:
|
|
|
+ self._function = functools.partial(map, function)
|