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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将数据从字符串数组存储到字符串数组列表   java使用OSGi和ApacheFelixIpojo与JDK11   java我有一个JTree,我想应用渲染器,以便修改JTree节点的显示名称   在Android Studio中编译cordova时,“java:package org.apache.cordova不存在”   java Mocked方法正在Mockito中抛出NullPointerException   使用Prometheus监控Java webapp   java如何将Word文档转换为PDF?   java必需类型“Loan”,给定字符串   如何在java中将字符串转换为工作日?   java如何用三项描述一个状态   java如何生成限制相似数和十次幂的随机数   java JavaFX设置组合框会导致空指针   java这个本机Mongo聚合管道的Spring等价物是什么?   java如何使用类名作为方法参数的类型   java如何使Bean验证API 1.1与GWT2.7配合使用?