Skip to main content

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 logic
  • fsspeckit.storage_options - multi-cloud storage configuration classes
  • fsspeckit.datasets - dataset-level operations (DuckDB and PyArrow helpers)
  • fsspeckit.sql - SQL-to-filter translation helpers
  • fsspeckit.common - cross-cutting utilities (logging, parallelism, synchronization, and path safety)
  • fsspeckit.utils - backwards-compatible facade that re-exports from domain packages

Note: The fsspeckit.utils module 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.

Ask DeepWiki

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fsspeckit-0.23.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fsspeckit-0.23.0-py3-none-any.whl (177.5 kB view details)

Uploaded Python 3

File details

Details for the file fsspeckit-0.23.0.tar.gz.

File metadata

  • Download URL: fsspeckit-0.23.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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

Hashes for fsspeckit-0.23.0.tar.gz
Algorithm Hash digest
SHA256 5275acdfe7cd19341aab7ff7885059f6fafa31fa394e755c2bf4b80a08fe090a
MD5 430ca8c3e62605cc737807cb8547dc5a
BLAKE2b-256 d970eb4ef0add064e71362027db355d17009ec739b0f9e3920fe451db9aef0b3

See more details on using hashes here.

File details

Details for the file fsspeckit-0.23.0-py3-none-any.whl.

File metadata

  • Download URL: fsspeckit-0.23.0-py3-none-any.whl
  • Upload date:
  • Size: 177.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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

Hashes for fsspeckit-0.23.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1df020fe8a0e0bf20529fdeca9f66652391a33f080b15c1f478c4f0e15dba65a
MD5 897fa7836e434eb6014295e46f2cff65
BLAKE2b-256 a085c848c9de7361be8f713724f84531854db0572d98db8fa8b133ace35d76c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page