lib.ProcFilter: Add run()

Add a run() function. It constructs a pipeline from various possible types, and runs its data parameter through it.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2026-04-27 14:51:33 +02:00
commit fe1eb0014a
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61

View file

@ -42,3 +42,11 @@ class ProcPipeline:
for f in self.__filters: for f in self.__filters:
ret = await f.run(ret.stdout) ret = await f.run(ret.stdout)
return ret return ret
async def run(data: bytes|Result, chain: ProcFilter|list[ProcFilter]|ProcPipeline|None = None) -> Result:
if chain is None:
if isinstance(data, Result):
return data
return Result(data, None, 0)
pl = chain if isinstance(chain, ProcPipeline) else ProcPipeline(chain)
return await pl.run(data)