Minotaur:Python式的、异步的、inotify接口

2020-08-25 20:35:42

低级inotify对象,负责路径编码、原始inotify数据的读取、二进制事件到python对象的解析,并提供同步和异步接口。但仍然是低级的,因为它没有特殊处理手表或组合相关事件(例如,Move_From/Move_To)。

不会尝试将其他操作系统提供的文件通知功能抽象到跨平台界面中。

您应该使用提供的预提交挂钩来确保代码类型检查并且是PEP-8格式的:

还有其他几个python inotify包。那么,为什么会存在这一个呢?嗯,也许可以参考其他几个来最好地解释这一点:

PyINOTIFY:有很多错误。FD关闭不是幂等的,这可能导致关闭不相关的文件描述符。如果FD拥有明确的所有权和生命周期,或者使用上下文管理器,那么这就不是什么问题了。换句话说,它很难安全使用。

Inotify_Simple:很好地子类化了FileIO,但这排除了异步,因为FileIO用于阻塞文件上的I/O,不能很容易地适应于其他目的。

Python_inotify:没有异步接口,它需要添加到C代码中,或者如果添加到python代码中,将复制C代码并且工作方式不同,因此是一个新的API。

Python-inotify:它是由RedHat打包的,但是,与python_inotify类似,read()syscall是在C扩展中完成的,所以它不支持异步,而且在不更改接口或复制功能的情况下也不能很容易地进行调整以实现这一点

异步化:很容易就是最好的。主要缺点是它没有提供同步接口或低级接口。