Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

fpathlib

A Python package for adding metadata to file paths.

fpathlib combines file paths with the metadata encoded in their names. It does this with an f-string-like path pattern -- FPath -- whose {variable} fields are captured out of every matching path on disk.

from fpathlib import expand_fpath

# Given files like data/tr1/output/0/job2.log, data/tr2/output/1/job0.log, ...
expanded = expand_fpath("data/tr{trajectory:d}/output/{replica:d}/job{job:d}.log")

for path in expanded:
    print(path, path.metadata)
# data/tr1/output/0/job2.log {'trajectory': 1, 'replica': 0, 'job': 2}
# data/tr2/output/1/job0.log {'trajectory': 2, 'replica': 1, 'job': 0}

Combine the metadata for every matched path into a single table:

df = expanded.to_polars()

fpathlib.ext.polars goes a step further: it wraps polars's own read_csv/scan_csv/read_txt/scan_txt so that an expandable path pattern is accepted directly, and the resulting DataFrame or LazyFrame comes back with the metadata already joined in.

import fpathlib.ext.polars as pl

df = pl.read_csv(
    "data/tr{trajectory:d}/output/{replica:d}/job{job:d}.log",
    has_header=False,
)
# df has columns "column_1", ..., plus "trajectory", "replica", "job"

Installation

pip install fpathlib

The fpathlib.ext.polars extension additionally requires polars, which is not installed by fpathlib itself:

pip install polars

Documentation

Full API documentation is in docs/; build it locally with scripts/docs.sh (requires the dev extras: pip install -e .[dev]).

Release files for fpathlib 0.1.4.dev16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fpathlib 0.1.4.dev16
File Size Uploaded
fpathlib-0.1.4.dev16.tar.gz 17.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fpathlib 0.1.4.dev16
File Interpreter ABI Platform
fpathlib-0.1.4.dev16-py3-none-any.whl Python 3 none any Details

Total release size: 30.0 kB

Release files / fpathlib-0.1.4.dev16.tar.gz

Download URL fpathlib-0.1.4.dev16.tar.gz
Size 17.4 kB
Tags Source
SHA-256 checksum
How to use checksums
16ba67c02debc542d4465ddaa4af1310783a7857bc251c16ae241c4d9a11dffe
BLAKE2b-256 checksum
How to use checksums
2e45c8b5e5f9c5a0f3f1663ad5df1254c754f820b3dd6742c1c01789fc62750d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / fpathlib-0.1.4.dev16-py3-none-any.whl

Download URL fpathlib-0.1.4.dev16-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
42038d887e9d371275c6c84a429bd466195914528c80f25d025dd1213bdab1bb
BLAKE2b-256 checksum
How to use checksums
fa4ab014b4dcb77409e66599e2265caf4b78b7b03346a63c8fa807a7ba3dbf4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page