shortfuse是fusepy的轻量级包装
shortfuse的Python项目详细描述
=====
shortfuse
======
此模块旨在更轻松地利用“fusepy<;https://github.com/fusepy/fusepy>;”库。它提供了以下改进:
-方法文档。虽然fusepy提供了一些文档,但缺少很多实现细节。
-易用性。shortfuse提供了许多基类来表示公共文件系统对象及其属性。这些对象负责表示通常与文件系统关联的树结构。这也为减少重复逻辑提供了机会。特殊类型的文件可以扩展自定义文件系统中常见文件的功能。
``:常规文件
-``/file1`:常规文件
-`/file2``:指向/dir1/file4的链接
shortfuse将使用以下对象来表示它:
。image::assets/diagram.svg
:alt:shortfuse对象关系的示例图
图中的每个箭头都显示一个对象到另一个对象的引用。该图举例说明了用于实现具有shortfuse的自定义文件系统的3个基本类:
-:py:class:`~shortfuse.node.directorynode`:支持子节点和操作的节点,例如:py:meth:`~shortfuse.node.directorynode.create_dir`和:py:meth:`~shortfuse.node.directorynode.create_file`.
-:py:class:`~shortfuse.node.filenode`:支持通过:py:class:`~shortfuse.node.filedescriptor`抽象进行读/写的文件节点。
-:py:class:`~shortfuse.node.linknode`:仅指向另一个节点的节点。它不支持任何操作,其他节点也不支持。注意:
记住所有这些类都继承自:py:class:`~shortfuse.node.node`类,并且必须重写它的某些操作。
使用shortfuse实现文件系统时,第一步应该重写这些类。默认情况下,它们定义的大多数操作都会导致“eperm”错误,表示文件系统中没有此功能。此外,您可能需要重写:py:class:`~shortfuse.attributes.nodeattributes`,:py:class:`~shortfuse.attributes.nodeextraattributes`和:py:class:`~shortfuse.attributes.nodefsattributes`类。
要开始使用,可以在:py:mod:`shortfuse.extra.memory`包中获得一个内存文件系统实现示例。这个包位于主代码库中的原因是,它在实现您自己的文件系统时非常有用,尤其是:py:class:`~shortfuse.extra.memory.memorynodeattributes`和:py:class:`~shortfuse.extra.memory.memorynodeextraattributes`类。
测试
----
此模块还提供:py:mod:`tests.shortfuse`包,其中包含在测试自定义文件系统时可能会发现有用的实用程序类。您可能需要使用以下内容:
-:py:class:`tests.shortfuse.mount`:提供一种简单的方法来启动和控制运行fuse的python子进程
-:py:class:`tests.shortfuse.integration.testfuse`:为您的测试提供基本实用程序,例如生成文件和随机内容
-:py:class:`tests.shortfuse.integration.testfusedirectory`:定义自定义文件系统应通过的基本测试。继承类可以确定测试是否应该运行
-:py:class:`tests.shortfuse.concurrency.testfuseconcurrency`:定义自定义文件系统应该通过的基本并发测试。继承类可以确定测试是否应该运行
installation
---------------------------------------------------------------------------------------------------------代码-block:bash
pip install shortfuse
shortfuse
======
此模块旨在更轻松地利用“fusepy<;https://github.com/fusepy/fusepy>;”库。它提供了以下改进:
-方法文档。虽然fusepy提供了一些文档,但缺少很多实现细节。
-易用性。shortfuse提供了许多基类来表示公共文件系统对象及其属性。这些对象负责表示通常与文件系统关联的树结构。这也为减少重复逻辑提供了机会。特殊类型的文件可以扩展自定义文件系统中常见文件的功能。
``:常规文件
-``/file1`:常规文件
-`/file2``:指向/dir1/file4的链接
shortfuse将使用以下对象来表示它:
。image::assets/diagram.svg
:alt:shortfuse对象关系的示例图
图中的每个箭头都显示一个对象到另一个对象的引用。该图举例说明了用于实现具有shortfuse的自定义文件系统的3个基本类:
-:py:class:`~shortfuse.node.directorynode`:支持子节点和操作的节点,例如:py:meth:`~shortfuse.node.directorynode.create_dir`和:py:meth:`~shortfuse.node.directorynode.create_file`.
-:py:class:`~shortfuse.node.filenode`:支持通过:py:class:`~shortfuse.node.filedescriptor`抽象进行读/写的文件节点。
-:py:class:`~shortfuse.node.linknode`:仅指向另一个节点的节点。它不支持任何操作,其他节点也不支持。注意:
记住所有这些类都继承自:py:class:`~shortfuse.node.node`类,并且必须重写它的某些操作。
使用shortfuse实现文件系统时,第一步应该重写这些类。默认情况下,它们定义的大多数操作都会导致“eperm”错误,表示文件系统中没有此功能。此外,您可能需要重写:py:class:`~shortfuse.attributes.nodeattributes`,:py:class:`~shortfuse.attributes.nodeextraattributes`和:py:class:`~shortfuse.attributes.nodefsattributes`类。
要开始使用,可以在:py:mod:`shortfuse.extra.memory`包中获得一个内存文件系统实现示例。这个包位于主代码库中的原因是,它在实现您自己的文件系统时非常有用,尤其是:py:class:`~shortfuse.extra.memory.memorynodeattributes`和:py:class:`~shortfuse.extra.memory.memorynodeextraattributes`类。
测试
----
此模块还提供:py:mod:`tests.shortfuse`包,其中包含在测试自定义文件系统时可能会发现有用的实用程序类。您可能需要使用以下内容:
-:py:class:`tests.shortfuse.mount`:提供一种简单的方法来启动和控制运行fuse的python子进程
-:py:class:`tests.shortfuse.integration.testfuse`:为您的测试提供基本实用程序,例如生成文件和随机内容
-:py:class:`tests.shortfuse.integration.testfusedirectory`:定义自定义文件系统应通过的基本测试。继承类可以确定测试是否应该运行
-:py:class:`tests.shortfuse.concurrency.testfuseconcurrency`:定义自定义文件系统应该通过的基本并发测试。继承类可以确定测试是否应该运行
installation
---------------------------------------------------------------------------------------------------------代码-block:bash
pip install shortfuse