forked from goodboy/tractor
Proxy through `dec_hook` in `.limit_plds()` APIs
parent
a0ee0cc713
commit
04bd111037
|
@ -27,6 +27,7 @@ from contextlib import (
|
||||||
)
|
)
|
||||||
from typing import (
|
from typing import (
|
||||||
Any,
|
Any,
|
||||||
|
Callable,
|
||||||
Type,
|
Type,
|
||||||
TYPE_CHECKING,
|
TYPE_CHECKING,
|
||||||
Union,
|
Union,
|
||||||
|
@ -138,6 +139,7 @@ class PldRx(Struct):
|
||||||
def limit_plds(
|
def limit_plds(
|
||||||
self,
|
self,
|
||||||
spec: Union[Type[Struct]],
|
spec: Union[Type[Struct]],
|
||||||
|
**dec_kwargs,
|
||||||
|
|
||||||
) -> MsgDec:
|
) -> MsgDec:
|
||||||
'''
|
'''
|
||||||
|
@ -147,7 +149,10 @@ class PldRx(Struct):
|
||||||
|
|
||||||
'''
|
'''
|
||||||
orig_dec: MsgDec = self._pld_dec
|
orig_dec: MsgDec = self._pld_dec
|
||||||
limit_dec: MsgDec = mk_dec(spec=spec)
|
limit_dec: MsgDec = mk_dec(
|
||||||
|
spec=spec,
|
||||||
|
**dec_kwargs,
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
self._pld_dec = limit_dec
|
self._pld_dec = limit_dec
|
||||||
yield limit_dec
|
yield limit_dec
|
||||||
|
@ -449,7 +454,7 @@ class PldRx(Struct):
|
||||||
@cm
|
@cm
|
||||||
def limit_plds(
|
def limit_plds(
|
||||||
spec: Union[Type[Struct]],
|
spec: Union[Type[Struct]],
|
||||||
**kwargs,
|
**dec_kwargs,
|
||||||
|
|
||||||
) -> MsgDec:
|
) -> MsgDec:
|
||||||
'''
|
'''
|
||||||
|
@ -467,7 +472,7 @@ def limit_plds(
|
||||||
|
|
||||||
with rx.limit_plds(
|
with rx.limit_plds(
|
||||||
spec=spec,
|
spec=spec,
|
||||||
**kwargs,
|
**dec_kwargs,
|
||||||
) as pldec:
|
) as pldec:
|
||||||
log.runtime(
|
log.runtime(
|
||||||
'Applying payload-decoder\n\n'
|
'Applying payload-decoder\n\n'
|
||||||
|
@ -487,7 +492,9 @@ def limit_plds(
|
||||||
async def maybe_limit_plds(
|
async def maybe_limit_plds(
|
||||||
ctx: Context,
|
ctx: Context,
|
||||||
spec: Union[Type[Struct]]|None = None,
|
spec: Union[Type[Struct]]|None = None,
|
||||||
|
dec_hook: Callable|None = None,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
|
|
||||||
) -> MsgDec|None:
|
) -> MsgDec|None:
|
||||||
'''
|
'''
|
||||||
Async compat maybe-payload type limiter.
|
Async compat maybe-payload type limiter.
|
||||||
|
@ -497,7 +504,11 @@ async def maybe_limit_plds(
|
||||||
used.
|
used.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
if spec is None:
|
if (
|
||||||
|
spec is None
|
||||||
|
and
|
||||||
|
dec_hook is None
|
||||||
|
):
|
||||||
yield None
|
yield None
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -505,7 +516,11 @@ async def maybe_limit_plds(
|
||||||
curr_ctx: Context = current_ipc_ctx()
|
curr_ctx: Context = current_ipc_ctx()
|
||||||
assert ctx is curr_ctx
|
assert ctx is curr_ctx
|
||||||
|
|
||||||
with ctx._pld_rx.limit_plds(spec=spec) as msgdec:
|
with ctx._pld_rx.limit_plds(
|
||||||
|
spec=spec,
|
||||||
|
dec_hook=dec_hook,
|
||||||
|
**kwargs,
|
||||||
|
) as msgdec:
|
||||||
yield msgdec
|
yield msgdec
|
||||||
|
|
||||||
curr_ctx: Context = current_ipc_ctx()
|
curr_ctx: Context = current_ipc_ctx()
|
||||||
|
|
Loading…
Reference in New Issue