一组自包含的基于fsspec的文件系统
项目描述
功能
morefs 提供了类似
AsyncLocalFileSystem 的独立 fsspec-based 文件系统,它提供了 LocalFileSystem 的异步实现。
基于嵌套字典的内存文件系统 DictFileSystem 和基于Trie的 MemFS,比fsspec的 MemoryFileSystem 快得多。
OverlayFileSystem 允许覆盖多个基于fsspec的文件系统。
安装
$ 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 查看哈希值)