PK!f^^formation/__init__.pyfrom .__version__ import __version__ # noqa from .formation import wrap __all__ = ["wrap"] PK!s~formation/__version__.py__version__ = "0.1.11"PK!Q |formation/for_requests.pyimport requests from .formation import wrap __all__ = ["build_sender"] def build_sender(middleware=[]): wrapped = wrap(requests_adapter, middleware=middleware) def sender(method, url, **kwargs): ctx = {"req": {"method": method, "url": url}} ctx["req"].update(kwargs) ctx = wrapped(ctx) return ctx["res"] return sender def requests_adapter(ctx): req = ctx["req"] meth = getattr(requests, req.get("method", "get").lower()) # TODO ship var as kwargs and not explicitly res = meth( req["url"], headers=req.get("headers", {}), params=req.get("params", {}), auth=req.get("auth", None), data=req.get("data", None), ) ctx["res"] = res return ctx PK!?nKformation/formation.pyfrom toolz import reduce def wrap(call, middleware=[]): return reduce( lambda acc, m: lambda ctx: m(ctx, acc), reversed(middleware), lambda ctx: call(ctx), ) PK!Tformation/middleware.pydef correlation_id(): # TODO def retry(max_retries=3): def retry_middleware(ctx, call): try: res = call(ctx) return res except Exception as ex: retries = ctx.get("formation.retry", 0) if retries > max_retries: raise ex ctx["formation.retry"] = 1 + retries # TODO exponential backoff res = retry_middleware(ctx, call) return res return retry_middleware PK!H9VWX formation-0.1.11.dist-info/WHEEL A н#f."jm)!fb҅~ܴA,mTD}E n0H饹*|D[¬c i=0(q3PK!HW#formation-0.1.11.dist-info/METADATAUao6_qmXlvuAaҬ}1cH*6(َۥ@0@ݽ;ޢ{>Ze0M&טJۚ{dq2I&6k63(P9,BTA& =RDxRk^P{4-/I^+}$Z^/n4Vܭ➫B-٠n`5fp=Wp˦ʠ՛"<!8Hĭ2uvgX"X|ьof|{45#ԃF *<[6/׺ OxvO;43#)QySU_h^r+MXεz4o MGl(^,QB4'Ĩ"f~ڇbcٜ8TZ3LVV@dYm=(bv'MI1+SDBΫ*X@yn=qI 8PQ="JGЅޡ`hlW`I ~ׂ.xuQ[ t+=mSм7<m-{^w+-uQa8\'Y~kdY(+EUU4.L&?}@A4 F2zNHg6Aqg,@zC"a_+8@mj<t.xXr*tRz<m!=w_J%7{f\ʢ.1LǓ`Ok ~#=!N`˛2.K"O'PK!HS%`!formation-0.1.11.dist-info/RECORD}ѹr@! JVKfٞ~<5eNWEMWe=ngq{7Lk qJWKp l}O#_r!e ZsGJʎ|$=_n%r;[𐜛[M aR>qJ,ؕd80nSvqBk2jn)I~kG7XN2D;Z$swImϫpQc֕+x#Cot(654;~o