跳转到主要内容

一组自包含的基于fsspec的文件系统

项目描述

PyPI Status Python Version License

Tests Codecov pre-commit Black

功能

morefs 提供了类似

  • AsyncLocalFileSystem 的独立 fsspec-based 文件系统,它提供了 LocalFileSystem 的异步实现。

  • 基于嵌套字典的内存文件系统 DictFileSystem 和基于Trie的 MemFS,比fsspec的 MemoryFileSystem 快得多。

  • OverlayFileSystem 允许覆盖多个基于fsspec的文件系统。

安装

您可以通过从 pip 使用 PyPI 安装 morefs

$ pip install morefs

您可能需要为某些文件系统安装额外功能

$ pip install morefs[asynclocal]  # for installing aiofile dependency for AsyncLocalFileSystem
$ pip install morefs[memfs]  # for installing pygtrie dependency for MemFS

用法

AsyncLocalFileSystem

LocalFileSystem 的扩展版本,同时也提供了异步方法。

import asyncio
from morefs.asyn_local import AsyncLocalFileSystem

async def main():
    fs = AsyncLocalFileSystem(auto_mkdir=False)

    f = await fs.open_async("foo", mode="w")
    async with f:
        await f.write("foobar")

    content = await fs._cat("foo")
    print(content)
    print(fs.cat("foo"))  # you can still use sync methods

asyncio.run(main())

DictFS

DictFS 是一个基于嵌套字典的内存文件系统,其行为更像一个真实的本地文件系统。

from morefs.dict import filesystem

fs = DictFS()

MemFS

MemFS 是一个基于前缀树(trie)的内存文件系统,其行为类似于桶存储。

from morefs.memory import MemFS

fs = MemFS()

OverlayFileSystem

from morefs.overlay import OverlayFileSystem

# use localfilesystem for write, overlay all filesystems for read
fs = OverlayFileSystem(file={"auto_mkdir": True}, s3={"anon": True})
# or you can pass filesystem instances directly
# as variable positional arguments or with keyword argument `filesystems=[]`
fs = OverlayFileSystem(LocalFileSystem(), s3={"anon": True})

贡献

非常欢迎贡献。要了解更多信息,请参阅贡献指南

许可证

Apache 2.0 许可证的条款下分发,morefs 是免费和开源软件。

问题

如果您遇到任何问题,请提交问题,并附带详细描述。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

morefs-0.2.2.tar.gz (24.7 kB 查看哈希值)

上传时间

构建分布

morefs-0.2.2-py3-none-any.whl (14.4 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面