aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/fsspec/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/fsspec/__init__.py')
-rw-r--r--.venv/lib/python3.12/site-packages/fsspec/__init__.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/fsspec/__init__.py b/.venv/lib/python3.12/site-packages/fsspec/__init__.py
new file mode 100644
index 00000000..d7af775f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/fsspec/__init__.py
@@ -0,0 +1,69 @@
+from importlib.metadata import entry_points
+
+from . import caching
+from ._version import __version__ # noqa: F401
+from .callbacks import Callback
+from .compression import available_compressions
+from .core import get_fs_token_paths, open, open_files, open_local, url_to_fs
+from .exceptions import FSTimeoutError
+from .mapping import FSMap, get_mapper
+from .registry import (
+ available_protocols,
+ filesystem,
+ get_filesystem_class,
+ register_implementation,
+ registry,
+)
+from .spec import AbstractFileSystem
+
+__all__ = [
+ "AbstractFileSystem",
+ "FSTimeoutError",
+ "FSMap",
+ "filesystem",
+ "register_implementation",
+ "get_filesystem_class",
+ "get_fs_token_paths",
+ "get_mapper",
+ "open",
+ "open_files",
+ "open_local",
+ "registry",
+ "caching",
+ "Callback",
+ "available_protocols",
+ "available_compressions",
+ "url_to_fs",
+]
+
+
+def process_entries():
+ if entry_points is not None:
+ try:
+ eps = entry_points()
+ except TypeError:
+ pass # importlib-metadata < 0.8
+ else:
+ if hasattr(eps, "select"): # Python 3.10+ / importlib_metadata >= 3.9.0
+ specs = eps.select(group="fsspec.specs")
+ else:
+ specs = eps.get("fsspec.specs", [])
+ registered_names = {}
+ for spec in specs:
+ err_msg = f"Unable to load filesystem from {spec}"
+ name = spec.name
+ if name in registered_names:
+ continue
+ registered_names[name] = True
+ register_implementation(
+ name,
+ spec.value.replace(":", "."),
+ errtxt=err_msg,
+ # We take our implementations as the ones to overload with if
+ # for some reason we encounter some, may be the same, already
+ # registered
+ clobber=True,
+ )
+
+
+process_entries()