Enhanced utilities and extensions for fsspec, storage_options and obstore with multi-format I/O support.
Project description
fsspeckit
Enhanced utilities and extensions for fsspec filesystems with multi-format I/O support.
Overview
fsspeckit is a toolkit that extends fsspec
with:
- Multi-cloud storage configuration - easy setup for AWS S3, Google Cloud Storage, Azure Storage, GitHub, and GitLab
- Enhanced caching - improved caching filesystem with monitoring and path preservation
- Extended I/O operations - read/write operations for JSON, CSV, Parquet with Polars/PyArrow integration
- Dataset operations - Parquet processing with DuckDB and PyArrow backends, including merge and maintenance
- SQL filter translation - write filters once and run them across PyArrow and Polars
- Domain-specific packages - organized into logical packages for discoverability
Start here
New to fsspeckit? Work through the Local Dataset Lifecycle tutorial. It is a single, copyable, offline script that covers the canonical workflow: configure a local filesystem, write a Parquet dataset, read it back, verify the result, and clean up a named sandbox. No cloud credentials required.
For the full documentation, see the docs site.
Package structure
fsspeckit is organized into domain-specific packages:
fsspeckit.core- core filesystem APIs and backend-neutral planning logicfsspeckit.storage_options- multi-cloud storage configuration classesfsspeckit.datasets- dataset-level operations (DuckDB and PyArrow helpers)fsspeckit.sql- SQL-to-filter translation helpersfsspeckit.common- cross-cutting utilities (logging, parallelism, synchronization, and path safety)fsspeckit.utils- backwards-compatible facade that re-exports from domain packages
Note: The
fsspeckit.utilsmodule is maintained for backwards compatibility. New code should import directly from the domain packages for better discoverability.
Installation
# Basic installation
pip install fsspeckit
# Dataset operations (PyArrow, DuckDB, schema utilities)
pip install "fsspeckit[datasets]"
# Cloud providers
pip install "fsspeckit[aws]" # AWS S3 support
pip install "fsspeckit[gcp]" # Google Cloud Storage
pip install "fsspeckit[azure]" # Azure Storage
For the complete extras matrix, see Installation and optional extras.
Quick start
This is the canonical local dataset lifecycle. For the full narrative version, see the tutorial.
from pathlib import Path
import shutil
import pyarrow as pa
from fsspeckit import filesystem
from fsspeckit.datasets.pyarrow import PyarrowDatasetIO
# Named sandbox directory
sandbox = Path("fsspeckit_tutorial_sandbox")
dataset_path = sandbox / "sensors"
sandbox.mkdir(parents=True, exist_ok=True)
# Local filesystem and explicit schema
fs = filesystem("file", dirfs=False)
schema = pa.schema([
pa.field("sensor_id", pa.int64()),
pa.field("reading", pa.float64()),
pa.field("recorded_at", pa.string()),
])
# Write, then read back and verify
io = PyarrowDatasetIO(filesystem=fs)
records = pa.table(
{"sensor_id": [1, 2, 3], "reading": [21.4, 22.1, 19.8],
"recorded_at": ["2026-07-10T08:00", "2026-07-10T08:05", "2026-07-10T08:10"]},
schema=schema,
)
result = io.write_dataset(records, str(dataset_path), schema=schema, mode="overwrite")
table = io.read_parquet(str(dataset_path))
assert table.num_rows == result.total_rows
# Clean up only the sandbox
shutil.rmtree(sandbox)
Canonical imports
Import from the domain packages that own each feature:
# Filesystem creation
from fsspeckit import filesystem
# Dataset operations
from fsspeckit.datasets.pyarrow import PyarrowDatasetIO
from fsspeckit.datasets.duckdb import DuckDBDatasetIO
# Storage configuration
from fsspeckit.storage_options import AwsStorageOptions, GcsStorageOptions
# SQL filter translation
from fsspeckit.sql.filters import sql2pyarrow_filter, sql2polars_filter
# Common utilities
from fsspeckit.common import run_parallel
For the full import hierarchy and deprecation mappings, see the Public API Inventory and Legacy Imports.
Examples
The examples directory contains runnable demonstrations of datasets, SQL filters, common utilities, caching, and more. Most examples use local or generated data. Cloud operations require the applicable extra, credentials, and a real provider resource. They support the tutorial rather than replace it.
Migration
If you are moving from older module layouts, see the
Migration Guide. All fsspeckit.utils
imports continue to work unchanged.
Contributing
Contributions are welcome. Please submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fsspeckit-0.28.0.tar.gz.
File metadata
- Download URL: fsspeckit-0.28.0.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8bfa8f5e2c5efb43e843dc70ea3d6efe8dc0b2160e6e05d616d67856d4bce58
|
|
| MD5 |
55092fabfdfe890a1e4425400f24fdbb
|
|
| BLAKE2b-256 |
78d884b2a4d232e654715b4185c92fab71a98380c21064650d85a5c203d143cd
|
File details
Details for the file fsspeckit-0.28.0-py3-none-any.whl.
File metadata
- Download URL: fsspeckit-0.28.0-py3-none-any.whl
- Upload date:
- Size: 238.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2f54eddde9da39cbbcb5a83c0e902786252f401be016ecd7057c32987bd3c17
|
|
| MD5 |
21d4a060de3d897e4a73d38f867bf3f5
|
|
| BLAKE2b-256 |
45dd05aface24c29e1c4966612c0442f0d5c0e73124db5f80cf2283d3a2e8020
|