跳转到主要内容

文件系统规范

项目描述

filesystem_spec

PyPI version Anaconda-Server Badge Build Docs

Pythonic文件系统的规范。

安装

pip install fsspec

将安装基础fsspec。一些可选支持的功能可能需要指定自定义额外需求,例如,使用pip install fsspec[ssh]将安装支持ssh后端的支持依赖项。使用pip install fsspec[full]安装所有已知的额外依赖项。

通过conda-forge分发提供最新包

conda install -c conda-forge fsspec

目的

为了生成一个文件系统接口的模板或规范,具体的实现应该遵循,这样使用它们的程序可以依赖于共同的行为,而无需担心任何给定后端的具体内部实现决策。许多这样的实现包括在这个包中,或者在类似的项目中,如s3fsgcsfs

此外,如果设计得当,那么所有实现都可以“免费”获得额外的功能,例如键值存储或文件系统实现的FUSE挂载。

文档

请参阅 RTD

开发

fsspec使用GitHub Actions进行持续集成。环境文件位于“ci/”目录中。请注意,主环境名为“py38”,但预期Python版本可在CI运行时进行调整。对于本地使用,请选择适合您的版本。

# For a new environment (mamba / conda).
mamba create -n fsspec -c conda-forge  python=3.9 -y
conda activate fsspec

# Standard dev install with docs and tests.
pip install -e ".[dev,doc,test]"

# Full tests except for downstream
pip install s3fs
pip uninstall s3fs
pip install -e .[dev,doc,test_full]
pip install s3fs --no-deps
pytest -v

# Downstream tests.
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来自动格式化您的代码。此外,许多编辑器都有插件可以在您编辑文件时应用blackblack包含在tox环境中。

可选地,您可能希望设置pre-commit钩子,以便在您进行git提交时自动运行black。从filesystem_spec存储库的根目录运行pre-commit install --install-hooks来设置pre-commit钩子。black现在将在您提交之前运行,重新格式化任何已更改的文件。您可以通过pre-commit run进行格式化而不提交,或通过git commit --no-verify跳过这些检查。

由以下组织支持