METADATA 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. Metadata-Version: 2.4
  2. Name: fsspec
  3. Version: 2026.3.0
  4. Summary: File-system specification
  5. Project-URL: Changelog, https://filesystem-spec.readthedocs.io/en/latest/changelog.html
  6. Project-URL: Documentation, https://filesystem-spec.readthedocs.io/en/latest/
  7. Project-URL: Homepage, https://github.com/fsspec/filesystem_spec
  8. Maintainer-email: Martin Durant <mdurant@anaconda.com>
  9. License-Expression: BSD-3-Clause
  10. License-File: LICENSE
  11. Keywords: file
  12. Classifier: Development Status :: 4 - Beta
  13. Classifier: Intended Audience :: Developers
  14. Classifier: Operating System :: OS Independent
  15. Classifier: Programming Language :: Python :: 3.10
  16. Classifier: Programming Language :: Python :: 3.11
  17. Classifier: Programming Language :: Python :: 3.12
  18. Classifier: Programming Language :: Python :: 3.13
  19. Classifier: Programming Language :: Python :: 3.14
  20. Requires-Python: >=3.10
  21. Provides-Extra: abfs
  22. Requires-Dist: adlfs; extra == 'abfs'
  23. Provides-Extra: adl
  24. Requires-Dist: adlfs; extra == 'adl'
  25. Provides-Extra: arrow
  26. Requires-Dist: pyarrow>=1; extra == 'arrow'
  27. Provides-Extra: dask
  28. Requires-Dist: dask; extra == 'dask'
  29. Requires-Dist: distributed; extra == 'dask'
  30. Provides-Extra: dev
  31. Requires-Dist: pre-commit; extra == 'dev'
  32. Requires-Dist: ruff>=0.5; extra == 'dev'
  33. Provides-Extra: doc
  34. Requires-Dist: numpydoc; extra == 'doc'
  35. Requires-Dist: sphinx; extra == 'doc'
  36. Requires-Dist: sphinx-design; extra == 'doc'
  37. Requires-Dist: sphinx-rtd-theme; extra == 'doc'
  38. Requires-Dist: yarl; extra == 'doc'
  39. Provides-Extra: dropbox
  40. Requires-Dist: dropbox; extra == 'dropbox'
  41. Requires-Dist: dropboxdrivefs; extra == 'dropbox'
  42. Requires-Dist: requests; extra == 'dropbox'
  43. Provides-Extra: entrypoints
  44. Provides-Extra: full
  45. Requires-Dist: adlfs; extra == 'full'
  46. Requires-Dist: aiohttp!=4.0.0a0,!=4.0.0a1; extra == 'full'
  47. Requires-Dist: dask; extra == 'full'
  48. Requires-Dist: distributed; extra == 'full'
  49. Requires-Dist: dropbox; extra == 'full'
  50. Requires-Dist: dropboxdrivefs; extra == 'full'
  51. Requires-Dist: fusepy; extra == 'full'
  52. Requires-Dist: gcsfs>2024.2.0; extra == 'full'
  53. Requires-Dist: libarchive-c; extra == 'full'
  54. Requires-Dist: ocifs; extra == 'full'
  55. Requires-Dist: panel; extra == 'full'
  56. Requires-Dist: paramiko; extra == 'full'
  57. Requires-Dist: pyarrow>=1; extra == 'full'
  58. Requires-Dist: pygit2; extra == 'full'
  59. Requires-Dist: requests; extra == 'full'
  60. Requires-Dist: s3fs>2024.2.0; extra == 'full'
  61. Requires-Dist: smbprotocol; extra == 'full'
  62. Requires-Dist: tqdm; extra == 'full'
  63. Provides-Extra: fuse
  64. Requires-Dist: fusepy; extra == 'fuse'
  65. Provides-Extra: gcs
  66. Requires-Dist: gcsfs>2024.2.0; extra == 'gcs'
  67. Provides-Extra: git
  68. Requires-Dist: pygit2; extra == 'git'
  69. Provides-Extra: github
  70. Requires-Dist: requests; extra == 'github'
  71. Provides-Extra: gs
  72. Requires-Dist: gcsfs; extra == 'gs'
  73. Provides-Extra: gui
  74. Requires-Dist: panel; extra == 'gui'
  75. Provides-Extra: hdfs
  76. Requires-Dist: pyarrow>=1; extra == 'hdfs'
  77. Provides-Extra: http
  78. Requires-Dist: aiohttp!=4.0.0a0,!=4.0.0a1; extra == 'http'
  79. Provides-Extra: libarchive
  80. Requires-Dist: libarchive-c; extra == 'libarchive'
  81. Provides-Extra: oci
  82. Requires-Dist: ocifs; extra == 'oci'
  83. Provides-Extra: s3
  84. Requires-Dist: s3fs>2024.2.0; extra == 's3'
  85. Provides-Extra: sftp
  86. Requires-Dist: paramiko; extra == 'sftp'
  87. Provides-Extra: smb
  88. Requires-Dist: smbprotocol; extra == 'smb'
  89. Provides-Extra: ssh
  90. Requires-Dist: paramiko; extra == 'ssh'
  91. Provides-Extra: test
  92. Requires-Dist: aiohttp!=4.0.0a0,!=4.0.0a1; extra == 'test'
  93. Requires-Dist: numpy; extra == 'test'
  94. Requires-Dist: pytest; extra == 'test'
  95. Requires-Dist: pytest-asyncio!=0.22.0; extra == 'test'
  96. Requires-Dist: pytest-benchmark; extra == 'test'
  97. Requires-Dist: pytest-cov; extra == 'test'
  98. Requires-Dist: pytest-mock; extra == 'test'
  99. Requires-Dist: pytest-recording; extra == 'test'
  100. Requires-Dist: pytest-rerunfailures; extra == 'test'
  101. Requires-Dist: requests; extra == 'test'
  102. Provides-Extra: test-downstream
  103. Requires-Dist: aiobotocore<3.0.0,>=2.5.4; extra == 'test-downstream'
  104. Requires-Dist: dask[dataframe,test]; extra == 'test-downstream'
  105. Requires-Dist: moto[server]<5,>4; extra == 'test-downstream'
  106. Requires-Dist: pytest-timeout; extra == 'test-downstream'
  107. Requires-Dist: xarray; extra == 'test-downstream'
  108. Provides-Extra: test-full
  109. Requires-Dist: adlfs; extra == 'test-full'
  110. Requires-Dist: aiohttp!=4.0.0a0,!=4.0.0a1; extra == 'test-full'
  111. Requires-Dist: backports-zstd; (python_version < '3.14') and extra == 'test-full'
  112. Requires-Dist: cloudpickle; extra == 'test-full'
  113. Requires-Dist: dask; extra == 'test-full'
  114. Requires-Dist: distributed; extra == 'test-full'
  115. Requires-Dist: dropbox; extra == 'test-full'
  116. Requires-Dist: dropboxdrivefs; extra == 'test-full'
  117. Requires-Dist: fastparquet; extra == 'test-full'
  118. Requires-Dist: fusepy; extra == 'test-full'
  119. Requires-Dist: gcsfs; extra == 'test-full'
  120. Requires-Dist: jinja2; extra == 'test-full'
  121. Requires-Dist: kerchunk; extra == 'test-full'
  122. Requires-Dist: libarchive-c; extra == 'test-full'
  123. Requires-Dist: lz4; extra == 'test-full'
  124. Requires-Dist: notebook; extra == 'test-full'
  125. Requires-Dist: numpy; extra == 'test-full'
  126. Requires-Dist: ocifs; extra == 'test-full'
  127. Requires-Dist: pandas<3.0.0; extra == 'test-full'
  128. Requires-Dist: panel; extra == 'test-full'
  129. Requires-Dist: paramiko; extra == 'test-full'
  130. Requires-Dist: pyarrow; extra == 'test-full'
  131. Requires-Dist: pyarrow>=1; extra == 'test-full'
  132. Requires-Dist: pyftpdlib; extra == 'test-full'
  133. Requires-Dist: pygit2; extra == 'test-full'
  134. Requires-Dist: pytest; extra == 'test-full'
  135. Requires-Dist: pytest-asyncio!=0.22.0; extra == 'test-full'
  136. Requires-Dist: pytest-benchmark; extra == 'test-full'
  137. Requires-Dist: pytest-cov; extra == 'test-full'
  138. Requires-Dist: pytest-mock; extra == 'test-full'
  139. Requires-Dist: pytest-recording; extra == 'test-full'
  140. Requires-Dist: pytest-rerunfailures; extra == 'test-full'
  141. Requires-Dist: python-snappy; extra == 'test-full'
  142. Requires-Dist: requests; extra == 'test-full'
  143. Requires-Dist: smbprotocol; extra == 'test-full'
  144. Requires-Dist: tqdm; extra == 'test-full'
  145. Requires-Dist: urllib3; extra == 'test-full'
  146. Requires-Dist: zarr; extra == 'test-full'
  147. Requires-Dist: zstandard; (python_version < '3.14') and extra == 'test-full'
  148. Provides-Extra: tqdm
  149. Requires-Dist: tqdm; extra == 'tqdm'
  150. Description-Content-Type: text/markdown
  151. # filesystem_spec
  152. [![PyPI version](https://badge.fury.io/py/fsspec.svg)](https://pypi.python.org/pypi/fsspec/)
  153. [![Anaconda-Server Badge](https://anaconda.org/conda-forge/fsspec/badges/version.svg)](https://anaconda.org/conda-forge/fsspec)
  154. ![Build](https://github.com/fsspec/filesystem_spec/workflows/CI/badge.svg)
  155. [![Docs](https://readthedocs.org/projects/filesystem-spec/badge/?version=latest)](https://filesystem-spec.readthedocs.io/en/latest/?badge=latest)
  156. A specification for pythonic filesystems.
  157. ## Install
  158. ```bash
  159. pip install fsspec
  160. ```
  161. would install the base fsspec. Various optionally supported features might require specification of custom
  162. extra require, e.g. `pip install fsspec[ssh]` will install dependencies for `ssh` backends support.
  163. Use `pip install fsspec[full]` for installation of all known extra dependencies.
  164. Up-to-date package also provided through conda-forge distribution:
  165. ```bash
  166. conda install -c conda-forge fsspec
  167. ```
  168. ## Purpose
  169. To produce a template or specification for a file-system interface, that specific implementations should follow,
  170. so that applications making use of them can rely on a common behaviour and not have to worry about the specific
  171. internal implementation decisions with any given backend. Many such implementations are included in this package,
  172. or in sister projects such as `s3fs` and `gcsfs`.
  173. In addition, if this is well-designed, then additional functionality, such as a key-value store or FUSE
  174. mounting of the file-system implementation may be available for all implementations "for free".
  175. ## Documentation
  176. Please refer to [RTD](https://filesystem-spec.readthedocs.io/en/latest/?badge=latest)
  177. ## Develop
  178. fsspec uses GitHub Actions for CI. Environment files can be found
  179. in the "ci/" directory. Note that the main environment is called "py38",
  180. but it is expected that the version of python installed be adjustable at
  181. CI runtime. For local use, pick a version suitable for you.
  182. ```bash
  183. # For a new environment (mamba / conda).
  184. mamba create -n fsspec -c conda-forge python=3.10 -y
  185. conda activate fsspec
  186. # Standard dev install with docs and tests.
  187. pip install -e ".[dev,doc,test]"
  188. # Full tests except for downstream
  189. pip install s3fs
  190. pip uninstall s3fs
  191. pip install -e .[dev,doc,test_full]
  192. pip install s3fs --no-deps
  193. pytest -v
  194. # Downstream tests.
  195. sh install_s3fs.sh
  196. # Windows powershell.
  197. install_s3fs.sh
  198. ```
  199. ### Testing
  200. Tests can be run in the dev environment, if activated, via ``pytest fsspec``.
  201. The full fsspec suite requires a system-level docker, docker-compose, and fuse
  202. installation. If only making changes to one backend implementation, it is
  203. not generally necessary to run all tests locally.
  204. It is expected that contributors ensure that any change to fsspec does not
  205. cause issues or regressions for either other fsspec-related packages such
  206. as gcsfs and s3fs, nor for downstream users of fsspec. The "downstream" CI
  207. run and corresponding environment file run a set of tests from the dask
  208. test suite, and very minimal tests against pandas and zarr from the
  209. test_downstream.py module in this repo.
  210. ### Code Formatting
  211. fsspec uses [Black](https://black.readthedocs.io/en/stable) to ensure
  212. a consistent code format throughout the project.
  213. Run ``black fsspec`` from the root of the filesystem_spec repository to
  214. auto-format your code. Additionally, many editors have plugins that will apply
  215. ``black`` as you edit files. ``black`` is included in the ``tox`` environments.
  216. Optionally, you may wish to setup [pre-commit hooks](https://pre-commit.com) to
  217. automatically run ``black`` when you make a git commit.
  218. Run ``pre-commit install --install-hooks`` from the root of the
  219. filesystem_spec repository to setup pre-commit hooks. ``black`` will now be run
  220. before you commit, reformatting any changed files. You can format without
  221. committing via ``pre-commit run`` or skip these checks with ``git commit
  222. --no-verify``.
  223. ## Support
  224. Work on this repository is supported in part by:
  225. "Anaconda, Inc. - Advancing AI through open source."
  226. <a href="https://anaconda.com/"><img src="https://camo.githubusercontent.com/b8555ef2222598ed37ce38ac86955febbd25de7619931bb7dd3c58432181d3b6/68747470733a2f2f626565776172652e6f72672f636f6d6d756e6974792f6d656d626572732f616e61636f6e64612f616e61636f6e64612d6c617267652e706e67" alt="anaconda logo" width="40%"/></a>