PK!ڥlЃformation/__init__.pyfrom .__version__ import __version__ # noqa from .formation import wrap import .for_requests __all__ = ["wrap", "for_requests"] PK!Beformation/__version__.py__version__ = "0.1.10"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.10.dist-info/WHEEL A н#f."jm)!fb҅~ܴA,mTD}E n0H饹*|D[¬c i=0(q3PK!Ht:{W#formation-0.1.10.dist-info/METADATAUao6_qmXlqAaҬ}1cH*6(َۦ@0@ݽ;ޠ{>Ze0I515v89iSܶB a٨<`y5R--w6o"֗Z%7]i!}|Lr]wZ G W2Gr~vpn5w\zhwGG]촡6sk^6fo5U}V^9agɥD"n4@K85{Tm?*D6Tp]ɡ偌fp0ǃ/@7xgPI ݺy. or2N~Jßɴdܺ% 'Ʉ/@}-I܏\GMwV~?ߠNzmo#˭4a=:SѬ54|Jz{6_D5 Ӝj#uf3BPi5-[Z]RdmGٞ-7b6'z.)Oa98c@?cs(&C|D%v0T >~*)6)" EhخPiö]^u!4,\ڦ`yow'spSw.V6YN`qNkdi(KEUU4.L&?}@F4 F"zNHg6Aqg,@zC"a_;@mj<txXrO*|Rz<m!=w_J%7{fLʢ.1Lǯ`Ok ~-=տ!N`˳",,K"O'PK!H;a!formation-0.1.10.dist-info/RECORD}r@} "Ȃ)@plҌ>ͭT*dݿTnoa!\U3Sr{ yypX|oBNJ3!"Ů٧l iK>Wokk ݰrݱߔ\t&=h-BmzSґ*ZLy