filesystem_spec
一个用于Python文件系统的规范。
安装
pip install fsspec
这将安装基础的fsspec。各种可选支持的功能可能需要指定自定义的额外要求,例如 pip install fsspec[ssh]
将安装支持 ssh
后端的依赖项。
使用 pip install fsspec[full]
可安装所有已知的额外依赖项。
最新的软件包也通过conda-forge发行版提供:
conda install -c conda-forge fsspec
目的
制定一个文件系统接口的模板或规范,具体实现应遵循这个规范,以便使用它们的应用程序可以依赖于通用行为,而不必担心任何给定后端的具体内部实现决策。本包中包含了许多这样的实现,或在姐妹项目如 s3fs
和 gcsfs
中。
此外,如果设计得当,那么额外的功能,如键值存储或文件系统实现的FUSE挂载,可能对所有实现都"免费"可用。
文档
请参阅 RTD
开发
fsspec使用GitHub Actions进行CI。环境文件可以在"ci/"目录中找到。注意,主要环境称为"py38",但预期安装的Python版本可在CI运行时调整。对于本地使用,请选择适合您的版本。
# 创建新环境(mamba / conda)
mamba create -n fsspec -c conda-forge python=3.9 -y
conda activate fsspec
# 标准开发安装,包含文档和测试
pip install -e ".[dev,doc,test]"
# 除下游外的完整测试
pip install s3fs
pip uninstall s3fs
pip install -e .[dev,doc,test_full]
pip install s3fs --no-deps
pytest -v
# 下游测试
sh install_s3fs.sh
# Windows powershell
install_s3fs.sh
测试
如果激活了开发环境,可以通过 pytest fsspec
运行测试。
完整的fsspec套件需要系统级的docker、docker-compose和fuse安装。如果只对一个后端实现进行更改,通常不需要在本地运行所有测试。
期望贡献者确保对fsspec的任何更改不会对其他fsspec相关包(如gcsfs和s3fs)或fsspec的下游用户造成问题或倒退。"下游"CI运行和相应的环境文件运行了一组来自dask测试套件的测试,以及本仓库中test_downstream.py模块对pandas和zarr的非常简单的测试。
代码格式化
fsspec使用 Black 来确保整个项目的代码格式一致。
从filesystem_spec仓库的根目录运行 black fsspec
来自动格式化您的代码。此外,许多编辑器都有插件,可以在您编辑文件时应用 black
。black
包含在 tox
环境中。
可选地,您可能希望设置 pre-commit hooks 以在进行git提交时自动运行 black
。
从filesystem_spec仓库的根目录运行 pre-commit install --install-hooks
来设置pre-commit hooks。现在,在您提交之前将运行 black
,重新格式化任何更改的文件。您可以通过 pre-commit run
进行格式化而不提交,或通过 git commit --no-verify
跳过这些检查。