为相关类和函数提供资源
cs.resources的Python项目详细描述
发布日期20190812:
multiopenmixin:不再是cs.obj.o的子类。
multiopenmixin:removelock
param支持,mixin有自己的锁。
multiopen:droplock
param支持,不再由multiopenmixin使用。
multiopenmixin:在锁内完成与关闭相同的原因(与open/startup竞争)。
multiopenmixin.close:newunopened_ok=false
用于回调关闭的参数,即使没有发生初始打开,也可能会触发回调关闭。
资源管理类和功能。
类closederror
mro:内置异常
,内置异常
关闭时操作无效的例外。
类multiopen
mro:multiopenmixin
管理单个打开/关闭对象的上下文管理器类
使用多openmixin。
方法multiopen.\uu init(self,openable,finalize\u later=false)
初始化:保存可打开的
并调用multiopenmixin初始化器。
类multiopenmixin
一个mixin,用于计算打开和关闭调用以及调用。startup 在第一个。打开并呼叫。在最后一个关闭。关闭。
建议的子类实现尽可能少地执行 在初始化期间,并在启动期间进行几乎所有的设置,以便 类可以执行多次启动/关闭迭代。
如果用作上下文管理器,则从 输入(第页)和退出(第页)。
多线程安全。
这个mixin定义了。_lock=rlock();子类不需要 麻烦,但可能会提供自己的锁。
使用此mixin的类需要定义.startup和.shutdown。
方法multiopenmixin.\uu init(self,finalize\u later=false)
初始化multiopenmixin状态。
参数:
稍后完成
:不要在 关闭,需要单独调用.finalize()。 此模式对于对象(如队列)非常有用,其中 最后一次关闭会阻止进一步的操作。发出呼叫,但用户 正在调用。join可能需要等待所有排队的项 待处理。
子笔
:如果为true(默认为false),则.open将返回 具有自己的.closed属性的代理对象,该属性由 代理服务器。关闭。
功能未关闭(func)
用.closed属性包装对象方法的decorator 它应该在自行关闭时升起。
类池
mro:cs.obj.o
一个通用的对象池,前提是重用比娱乐便宜。
所有池对象都必须适合使用,因此
new_object
callable通常是一个闭包。
例如,下面是使用
不同会话:
def __init__(self, bucket_name):
Pool.__init__(self, lambda: boto3.session.Session().resource('s3').Bucket(bucket_name)
方法pool.\uu init(self,new_object,max_size=none,lock=none)
使用creatornew_object
和maximum sizemax_size
初始化池
参数:
new_object
是一个可调用的对象,它返回池的新对象。最大大小
:保存以供重用的可用对象池的最大大小。 如果省略或无,则默认为4。 如果为0,则不应用上限。
锁
:可选共享锁;如果省略或无
则分配新锁
类运行状态
跟踪可能被请求取消的正在运行的任务的类。
它的目的是双重的,提供容易查询的状态
围绕可以启动和停止的任务,并提供控制
方法声明任务已启动(.start
),
应该停止(。取消
)
已经停止(.stop
)。
a运行状态
可用于a context管理器,按enter键
以及分别调用.start
和.stop
的退出方法。
请注意,如果套件引发异常
然后exit方法还调用。在调用
之前取消
。停止
监视器或守护进程可以轮询运行状态 它们应该终止,还可以管理整个状态 很容易使用上下文管理器。 例子:
def monitor(self):
with self.runstate:
while not self.runstate.cancelled:
... main loop body here ...
a运行状态
有三种主要方法:
.start()
:设置。运行并清除
。已取消
.cancel()
:设置。取消
.stop()
:清除。运行
a运行状态
具有以下属性:
已取消
:如果调用了,则为true。取消
已被调用。正在运行
:如果任务正在运行,则为true。 此外,为它指定一个真值也会将.start_time
设置为now。 为其指定一个假值也会将"停止时间"设置为"现在"。开始时间
:运行的时间上次设置为true。停止时间
:上次将运行时间设置为false。运行时间
:最大值(0,.停止时间-.开始时间)
已停止
:如果任务未运行,则为true。停止
:如果任务正在运行但已取消,则为true。notify_start
:用运行状态
实例调用的一组可调用函数 每当运行时调用。
变为真。notify_end
:用运行状态
实例调用的一组可调用函数 在时调用。运行变为false。
notify\u cancel
:用运行状态
实例调用的一组可调用函数 在调用时调用。取消
。
类runstatemixin
mixin提供对运行状态的方便访问
提供:。运行状态
,。已取消
,。正在运行
,。正在停止
,。已停止
方法runstatemixin.\uu init(self,runstate=none)
初始化runstatemixin
;设置.runstate
属性。
运行状态
:运行状态
实例或名称。
如果astr
,则分配具有该名称的新runstate
。
发布日志
发布日期20190812:
multiopenmixin:不再是cs.obj.o的子类。
multiopenmixin:removelock
param支持,mixin有自己的锁。
multiopen:droplock
param支持,不再由multiopenmixin使用。
multiopenmixin:在锁内完成与关闭相同的原因(与open/startup竞争)。
multiopenmixin.close:newunopened_ok=false
用于回调关闭的参数,即使没有发生初始打开,也可能会触发回调关闭。
发布日期20190617: 运行状态。退出:如果在调用.stop()之前引发异常,请调用.canel()。
发布日期20190103: 上下文管理器的错误修复。 多openmixin修复和更改。 运行状态改进。
发布日期20171024: 多openmixin最终确定逻辑和其他小逻辑修复和chec 用于跟踪或控制正在运行的任务的新类运行状态
版本20160828: 在distinfo中使用"install\u requires"而不是"requires"。
发布日期20160827: 中断更改:将NestingOpenCloseMixin重命名为MultiOpenMixin。 用于泛型对象重用的新池类。 各种小改进。
发布日期20150115: 第一次发布pypi。