Pythonic 文件系统的规范。
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”, 但期望在 CI 运行时可以调整已安装的 Python 版本。 本地使用时,请选择适合您的版本。
# 为新环境(mamba / conda)。
mamba create -n fsspec -c conda-forge python=3.10 -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 的任何更改都不会导致 gcsfs 和 s3fs 等其他 fsspec 相关包出现问题或回归, 也不会影响 fsspec 的下游用户。“downstream” 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 跳过这些检查。
此仓库的工作部分得到以下机构的支持:
"Anaconda, Inc. - Advancing AI through open source."