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)
| File | Size | Uploaded | |
|---|---|---|---|
| fpathlib-0.1.4.dev16.tar.gz | 17.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|