python的通用功能中间件基础结构。
formation的Python项目详细描述
编队
python的通用功能中间件基础结构。
看一看:
fromdatetime.datetimeimportnowfromformationimportwrapfromrequestsimportgetdeflog(ctx,call):print("started")ctx=call(ctx)print("ended")returnctxdeftimeit(ctx,call):started=now()ctx=call(ctx)ended=now()-startedctx['duration']=endedreturnctxdefto_requests(ctx):get(ctx['url'])fancy_get=wrap(to_requests,middleware=[log,timeit])fancy_get({'url':'https://google.com'})
快速启动
使用pip/pipenv/etc进行安装(对于sane依赖关系管理,建议使用poetry):
$ poetry add formation
最佳实践
一个context
对象是一个松散的对象包。伴随着自由而来的是责任和意见。
例如,这就是formation如何建模一个requests
集成,其中数据在context
:
- 它建立了一个
FormationHttpRequest
模型,该模型抽象了发出http请求的基本要素(稍后以它喜欢的方式发送到requests
本身) - 它把
FormationHttpRequest
塞进fmtn.req
键下。 - 有关此类请求的其他信息与
fmtn.req
一起保存在。例如,请求id保存在req.id
键中。这就产生了一个扁平的(好东西)指令来探测。附加数据没有fmtn
前缀的原因是,您始终可以构建自己的使用不同前缀的数据(这是关于内部构造内部工作的无法说明的前缀)。
谢谢:
对所有人来说-你做到了,谢谢!
版权所有
版权所有(c)2018@jondot。有关详细信息,请参见LICENSE。