High-performance parallel filesystem walker
Project description
python-pwalk
A high-performance toolkit for filesystem analysis and reporting — optimized for petabyte-scale filesystems and HPC environments.
Generate comprehensive filesystem metadata reports 5-10x faster than traditional tools, with true multi-threading, intelligent buffering, and automatic zstd compression achieving 23x size reduction. Perfect for system administrators, data scientists, and HPC users working with millions or billions of files.
Why python-pwalk?
Traditional filesystem traversal tools struggle with modern storage systems containing billions of files. python-pwalk solves this with a battle-tested approach combining Python's ease of use with C's raw performance.
Key Features
- 🚀 Extreme Performance: 8,000-30,000 files/second — traverse 50 million files in ~41 minutes
- 🔄 True Parallelism: Multi-threaded C implementation using up to 32 threads
- 🗜️ 23x Compression: Automatic zstd compression reduces 100 GB CSV to 4 GB
- 📦 Zero Dependencies: No PyArrow, no numpy — just Python + C
- 🔌 Drop-in Replacement: 100% compatible with
os.walk()API - 💾 Memory Efficient: Thread-local buffers with automatic spillover for billions of files
- 🎯 HPC Ready: SLURM-aware,
.snapshotfiltering, cross-filesystem detection - 🦆 DuckDB Native: Output
.csv.zstfiles readable directly by DuckDB - 🛡️ Production Tested: Based on John Dey's pwalk used in HPC environments worldwide
Perfect For
- System Administrators: Audit multi-petabyte filesystems in minutes
- Data Scientists: Analyze file distributions across massive datasets
- HPC Users: Track storage usage in supercomputing environments
- Storage Teams: Generate reports for NetApp, Lustre, GPFS filesystems
- Compliance: Create auditable records of filesystem contents
Installation
pip install pwalk
That's it! Pre-compiled binary wheels are available for:
- Linux: x86_64 (manylinux2014)
- CPython: 3.10, 3.11, 3.12, 3.13, 3.14
- CPython (No GIL): 3.13t, 3.14t (experimental free-threading builds)
- PyPy: 3.10, 3.11 (fast JIT-compiled Python alternative)
No system dependencies needed — wheels include everything pre-compiled!
For free-threading Python:
python3.13t -m pip install pwalk
PYTHON_GIL=0 python3.13t your_script.py
For PyPy:
pypy3 -m pip install pwalk
Quick Start
30-Second Example
from pwalk import walk, report
# 1. Drop-in replacement for os.walk() — 100% compatible API
for dirpath, dirnames, filenames in walk('/data'):
print(f"{dirpath}: {len(filenames)} files")
# 2. Generate compressed filesystem report (5-10x faster with multi-threading!)
output, errors = report('/data', compress='zstd')
# Creates scan.csv.zst - 23x smaller than plain CSV!
# 3. Analyze with DuckDB
import duckdb
df = duckdb.connect().execute(f"SELECT * FROM '{output}'").fetchdf()
print(df.head())
Note on Performance: The
walk()function usesos.walk()under the hood (single-threaded) for maximum compatibility across Python versions. For 5-10x faster performance, usereport()which leverages our multi-threaded C implementation. In Python 3.13+ with free-threading (no-GIL mode),walk()will automatically use parallel traversal for massive speedups!
Basic Usage
from pwalk import walk
# 100% compatible with os.walk() API
for dirpath, dirnames, filenames in walk('/data'):
print(f"Directory: {dirpath}")
print(f" Subdirectories: {len(dirnames)}")
print(f" Files: {len(filenames)}")
Full API Compatibility
from pwalk import walk
# All os.walk() parameters supported
for dirpath, dirnames, filenames in walk(
'/data',
topdown=True, # Process parents before children
onerror=handle_error, # Error callback
followlinks=False # Don't follow symlinks
):
# Modify dirnames in-place to prune traversal
dirnames[:] = [d for d in dirnames if not d.startswith('.')]
Advanced: Thread Control
from pwalk import walk
# Explicit thread count (default: cpu_count() or SLURM_CPUS_ON_NODE)
for dirpath, dirnames, filenames in walk('/data', max_threads=16):
process_directory(dirpath, filenames)
# Traverse snapshots (disabled by default)
for dirpath, dirnames, filenames in walk('/data', ignore_snapshots=False):
...
Filesystem Metadata Reports
CSV Output with Zstd Compression (Default)
from pwalk import report
# Generate compressed CSV (8-10x smaller, DuckDB compatible)
output, errors = report(
'/data',
output='scan.csv',
compress='zstd' # or 'gzip', 'auto', 'none'
)
print(f"Report saved to: {output}")
print(f"Inaccessible directories: {len(errors)}")
CSV Format (100% compatible with John Dey's pwalk):
inode,parent-inode,directory-depth,"filename","fileExtension",UID,GID,st_size,st_dev,st_blocks,st_nlink,"st_mode",st_atime,st_mtime,st_ctime,pw_fcount,pw_dirsum
Compression Options:
compress='auto': Use zstd if available, else uncompressed (default)compress='zstd': Force zstd compression (8-10x, fast)compress='gzip': Use gzip compression (6-7x, slower but universal)compress='none': No compression
DuckDB Analysis Workflow
# 1. Generate compressed CSV report
from pwalk import report
output, errors = report('/data', output='scan.csv', compress='zstd')
# 2. DuckDB reads .csv.zst natively!
import duckdb
con = duckdb.connect('fs_analysis.db')
con.execute("CREATE TABLE fs AS SELECT * FROM 'scan.csv.zst'")
# 3. Answer questions like "Who used the last 10TB?"
result = con.execute("""
SELECT
uid,
count(*) as file_count,
sum(st_size) / (1024*1024*1024*1024) as size_tb
FROM fs
WHERE st_ctime > unixepoch(now() - INTERVAL 7 DAY)
GROUP BY uid
ORDER BY size_tb DESC
LIMIT 10
""").fetchdf()
print(result)
# 4. Optional: Convert to Parquet for long-term storage
con.execute("""
COPY (SELECT * FROM 'scan.csv.zst')
TO 'scan.parquet' (FORMAT PARQUET, COMPRESSION SNAPPY)
""")
Filesystem Repair (Root Only)
from pwalk import repair
# Dry-run to preview changes
repair(
'/shared',
dry_run=True,
change_gids=[1234, 5678], # Treat these GIDs like private groups
force_group_writable=True, # Ensure group read+write+execute
exclude=['/shared/archive'] # Skip specific paths
)
# Apply changes
repair('/shared', dry_run=False, force_group_writable=True)
Real-World Use Cases
1. Answer Critical Storage Questions Fast
from pwalk import report
import duckdb
# Generate comprehensive filesystem metadata
report('/data', compress='zstd') # Done in minutes, not hours!
# Who used the last 10 TB this week?
con = duckdb.connect()
result = con.execute("""
SELECT UID, COUNT(*) as files, SUM(st_size)/1e12 as TB
FROM 'scan.csv.zst'
WHERE st_ctime > unixepoch(now() - INTERVAL 7 DAY)
GROUP BY UID ORDER BY TB DESC LIMIT 10
""").fetchdf()
2. Find Storage Hogs and Opportunities
# Find directories with >1M files (performance issues!)
huge_dirs = con.execute("""
SELECT "filename", pw_fcount, pw_dirsum/1e9 as GB
FROM 'scan.csv.zst'
WHERE pw_fcount > 1000000
ORDER BY pw_fcount DESC
""").fetchdf()
# Find ancient files (cleanup candidates)
old_files = con.execute("""
SELECT "filename", st_size, datetime(st_mtime, 'unixepoch')
FROM 'scan.csv.zst'
WHERE st_mtime < unixepoch(now() - INTERVAL 2 YEAR)
ORDER BY st_size DESC LIMIT 100
""").fetchdf()
3. Monitor Growth Over Time
# Weekly snapshots
import schedule
def weekly_snapshot():
timestamp = time.strftime('%Y%m%d')
report('/data', output=f'snapshot_{timestamp}.csv.zst')
schedule.every().sunday.at("02:00").do(weekly_snapshot)
Performance
Multi-Threading Support Matrix
| Python Version | walk() |
report() |
|---|---|---|
| CPython 3.10 | ❌ | ✅ |
| CPython 3.11 | ❌ | ✅ |
| CPython 3.12 | ❌ | ✅ |
| CPython 3.13 | ❌ | ✅ |
| CPython 3.13t (No GIL) | ✅ | ✅ |
| CPython 3.14 | ❌ | ✅ |
| CPython 3.14t (No GIL) | ✅ | ✅ |
| PyPy 3.10 | ❌ | ✅ |
| PyPy 3.11 | ❌ | ✅ |
Legend: ✅ = Multi-threaded (5-10x faster) | ❌ = Single-threaded
Key Takeaway: Use report() for maximum performance on all Python versions!
Current Performance (Python 3.10-3.14)
walk() function: Uses os.walk() internally (single-threaded) for 100% compatibility
- Same speed as
os.walk()— perfect drop-in replacement - No threading overhead, works everywhere
report() function: Multi-threaded C implementation (5-10x faster!)
- Speed: 8,000-30,000 stat operations per second
- Example: 50 million files in ~41 minutes at 20K stats/sec
- Parallelism: Up to 32 threads (releases GIL, works on all Python implementations)
- Scaling: Performance depends on storage system, host CPU, and file layout
- Compression: Zstd reduces CSV size by 23x with minimal overhead
- PyPy Compatible: Multi-threading works on PyPy through C extension (cpyext)
Future Performance (Python 3.13+ Free-Threading)
What's Changing? Python 3.13 introduced optional "free-threading" mode (also called "no-GIL mode").
The Global Interpreter Lock (GIL) Explained: For decades, Python had a "global lock" that prevented multiple threads from running Python code simultaneously. This meant that even with multiple CPU cores, only one thread could execute Python code at a time. Python 3.13+ can optionally remove this lock, allowing true parallel execution.
What This Means for pwalk:
- CPython 3.13+ with free-threading:
walk()will automatically use parallel traversal for 5-10x speedup - CPython 3.10-3.12:
walk()usesos.walk()(single-threaded) - PyPy (all versions):
walk()usesos.walk()(single-threaded, but JIT-compiled Python is faster) report()is always fast: Multi-threaded C code releases GIL - works on all implementations!
How to Get Free-Threading Python (Python 3.13+):
Free-threading Python builds are now available! Here's how to get them:
Option 1: Official Python.org Installers (Easiest)
# Download from python.org
# Look for "Free-threaded" builds (separate downloads)
# https://www.python.org/downloads/
# On Linux/macOS, the free-threaded interpreter has a 't' suffix
python3.13t --version # Should show "Python 3.13.x (free-threaded)"
Option 2: Build from Source (Linux/macOS)
# Clone Python source
git clone https://github.com/python/cpython.git
cd cpython
git checkout v3.13.0 # or latest 3.13.x tag
# Configure with free-threading
./configure --disable-gil
make -j$(nproc)
sudo make install
# Verify
python3.13 --version
python3.13 -c "import sys; print(f'GIL disabled: {not sys._is_gil_enabled()}')"
Option 3: Docker/Conda (Recommended for Testing)
# Using official Python Docker image
docker run -it python:3.13-slim python3 -c "import sys; print(sys._is_gil_enabled())"
# Conda (check for free-threading builds)
conda install python=3.13
Option 4: pyenv (Developers)
# Install pyenv if not already installed
curl https://pyenv.run | bash
# Install free-threaded Python 3.13
pyenv install 3.13.0t # 't' suffix for free-threaded build
pyenv local 3.13.0t
# Verify
python --version
python -c "import sys; print(f'GIL: {sys._is_gil_enabled()}')"
Using Free-Threading with pwalk:
# Install pwalk
python3.13t -m pip install pwalk
# IMPORTANT: Set PYTHON_GIL=0 to keep GIL disabled
export PYTHON_GIL=0
# Run your script
python3.13t your_script.py
# Or inline:
PYTHON_GIL=0 python3.13t your_script.py
# Verify it's working
PYTHON_GIL=0 python3.13t -c "import sys; print(f'Free-threading: {not sys._is_gil_enabled()}')"
Important: By default, Python 3.13t will enable the GIL when loading C extensions that haven't declared GIL-free compatibility. Use
PYTHON_GIL=0or-Xgil=0to keep it disabled.
Note: As of 2025, free-threading is still experimental. Some packages may not be compatible yet. For production use today, stick with
report()which is always multi-threaded!
Technical Architecture
- Single Optimized C Extension:
_pwalk_core— 320 lines of highly optimized C - Thread-Local Buffers: 512KB per thread, zero lock contention during traversal
- Multithreaded Traversal: Up to 32 parallel threads using John Dey's proven algorithm
- Streaming Compression: Zstd level 1 for 23x compression at 200-400 MB/s
- SLURM Integration: Auto-detects
SLURM_CPUS_ON_NODEfor HPC environments - Zero Dependencies: No external Python packages — ships ready to run
Why No Dependencies Matters
Unlike other tools that require PyArrow (~50 MB), numpy, pandas, etc., pwalk installs in seconds with zero dependencies. This means:
- ✅ Instant installation on air-gapped HPC systems
- ✅ No version conflicts with existing packages
- ✅ Minimal attack surface for security-conscious environments
- ✅ Works everywhere Python 3.10+ works
Contributing
Contributions welcome! Based on the rock-solid filesystem-reporting-tools by John Dey.
License
GPL v2 — Same as John Dey's original pwalk implementation.
Links
- PyPI: https://pypi.tw.martin98.com/project/pwalk/
- GitHub: https://github.com/dirkpetersen/python-pwalk
- Issues: https://github.com/dirkpetersen/python-pwalk/issues
- DuckDB: https://duckdb.org — Perfect companion for analyzing pwalk output
- Original pwalk: https://github.com/john-dey/filesystem-reporting-tools
Built with ❤️ for system administrators and HPC users worldwide. Based on John Dey's battle-tested pwalk implementation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 354.4 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6afe8db5895dfd8be0f98d20e4adf047b5ba3eeb60bf57bae877cf55777de7c5
|
|
| MD5 |
2f7e83da2b11b3b351d6d075a5e218aa
|
|
| BLAKE2b-256 |
624e6c844f046c0f6b2ca0a4cb141f28bd810f80d01c73c61734c7fe0f66d250
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
6afe8db5895dfd8be0f98d20e4adf047b5ba3eeb60bf57bae877cf55777de7c5 - Sigstore transparency entry: 622354398
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 27.1 kB
- Tags: PyPy, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb6162dc596cbea891b6d4a94a1b5ae758bb01fbf08e1059f3adf3d840cdc276
|
|
| MD5 |
61e38ac64c942559ad8482cf542c364b
|
|
| BLAKE2b-256 |
ffbd56b0074f6b89959273ab92fbc9325aaf3f6781f5ed8a131cefab68c09b16
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
eb6162dc596cbea891b6d4a94a1b5ae758bb01fbf08e1059f3adf3d840cdc276 - Sigstore transparency entry: 622354365
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp314-cp314t-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: pwalk-0.1.6-cp314-cp314t-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 370.8 kB
- Tags: CPython 3.14t, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9bc22d0a2f39ae261cf2faa75a4805704cc91adc977efb52dd8e0808735c19f
|
|
| MD5 |
678d85615288de33341a1a60fc90b7df
|
|
| BLAKE2b-256 |
d9826c831c278d43639f32b19e2f8a2992e0d39b3080e3c026f74b7f70e10985
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp314-cp314t-manylinux_2_34_x86_64.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp314-cp314t-manylinux_2_34_x86_64.whl -
Subject digest:
e9bc22d0a2f39ae261cf2faa75a4805704cc91adc977efb52dd8e0808735c19f - Sigstore transparency entry: 622354407
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp313-cp313t-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: pwalk-0.1.6-cp313-cp313t-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 370.6 kB
- Tags: CPython 3.13t, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2f56e649730effbf266417b5a99b649e3ad388f7c32f7cd66a62c959a3de50c
|
|
| MD5 |
60b1a23600c8b0cc02bbe39060baf6c2
|
|
| BLAKE2b-256 |
dfab4bacb628d06c32508cfcc6d73d165fbf0a4b91eef37f790cfec16fe2df62
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp313-cp313t-manylinux_2_34_x86_64.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp313-cp313t-manylinux_2_34_x86_64.whl -
Subject digest:
f2f56e649730effbf266417b5a99b649e3ad388f7c32f7cd66a62c959a3de50c - Sigstore transparency entry: 622354450
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pwalk-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 367.5 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32cd1ac431e84e2b33b65b2f4ab0a517344691033fb3de409450185879aa3ead
|
|
| MD5 |
a50270d7c19f1c0e8abe46fc0f823be7
|
|
| BLAKE2b-256 |
f8ebfb36b38a9e0e4eec9b0cc7786837bfcf6d49812cf23c5a14edff24c042d7
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
32cd1ac431e84e2b33b65b2f4ab0a517344691033fb3de409450185879aa3ead - Sigstore transparency entry: 622354434
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pwalk-0.1.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 38.7 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a53a9e48f4060f302cd1f2890ce1996e99ac4b7ecc01e335dfe780cd3e5832c7
|
|
| MD5 |
4eeff4bb476d1b29bc47ea823b808098
|
|
| BLAKE2b-256 |
522494b696ea9f52e55d9382703c5082e385fd32a0cc3242a69f7f977c27d183
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
a53a9e48f4060f302cd1f2890ce1996e99ac4b7ecc01e335dfe780cd3e5832c7 - Sigstore transparency entry: 622354388
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pwalk-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 367.5 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd311507a14194bb11392a6773633570ea38b4012425a091741f7e4423d31184
|
|
| MD5 |
2e232e02c1976f6758a443220b27561d
|
|
| BLAKE2b-256 |
e232832361cad2ee006419dfce64ab5412e37498747556039a6b0ffeb5597ad0
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
fd311507a14194bb11392a6773633570ea38b4012425a091741f7e4423d31184 - Sigstore transparency entry: 622354423
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pwalk-0.1.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 38.8 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
760a274edd180ee40adf48ca65afb4a1bce9750b0ae9f4730fe4ef9da4d3aff2
|
|
| MD5 |
cf5b8ba40d71dfc00e6cf9544dd2b6c9
|
|
| BLAKE2b-256 |
100191a9584a8c214e23d33336a2f38458c9e2f9c1217ce0914b98951482bf1a
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
760a274edd180ee40adf48ca65afb4a1bce9750b0ae9f4730fe4ef9da4d3aff2 - Sigstore transparency entry: 622354460
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pwalk-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 367.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
492bfebbf3f484e6218ca742e0df57eab3c4fc8ca7a73ca27028cae33398d842
|
|
| MD5 |
c611e442fb3a6715b077e8a8aca08c94
|
|
| BLAKE2b-256 |
a6227ac4a44fc991944434528e5b283791962b85bd5f5acfff4b7f84e4a38387
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
492bfebbf3f484e6218ca742e0df57eab3c4fc8ca7a73ca27028cae33398d842 - Sigstore transparency entry: 622354351
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pwalk-0.1.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 39.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad5adc17a20aca371a5d4cfd0dd3ffbacc234022a978a26d1a4577433b167ed2
|
|
| MD5 |
81d2c4221da524dac86022b57a6bf62e
|
|
| BLAKE2b-256 |
2a0af1dd57f7e634e98048a5560f344610da830f79f11cefe39b4302e1c54b88
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
ad5adc17a20aca371a5d4cfd0dd3ffbacc234022a978a26d1a4577433b167ed2 - Sigstore transparency entry: 622354441
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pwalk-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 367.0 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1862d19493c5dbf0ed8d176cfacd2f8082102153fdea82c0a3dd359a1e2c8e0b
|
|
| MD5 |
bb2e213d14aaefecab44e1616eda3ae0
|
|
| BLAKE2b-256 |
df294264102d24bfbdede9e73c59dc2fca71f4e96208657bbf0518c3a8e4e24d
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
1862d19493c5dbf0ed8d176cfacd2f8082102153fdea82c0a3dd359a1e2c8e0b - Sigstore transparency entry: 622354379
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pwalk-0.1.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: pwalk-0.1.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 38.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c17444c19a20cb11c4e21f2fb7980385a4e1d7df2354ba687d0027d91ca0539
|
|
| MD5 |
3d880b641aaecb42f95b440c4b9eeb77
|
|
| BLAKE2b-256 |
819ccd406b5151cce4e8df72d7643742ae5f7cb444b80446135c60445cb82e4c
|
Provenance
The following attestation bundles were made for pwalk-0.1.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish-pypi.yml on dirkpetersen/python-pwalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pwalk-0.1.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
0c17444c19a20cb11c4e21f2fb7980385a4e1d7df2354ba687d0027d91ca0539 - Sigstore transparency entry: 622354359
- Sigstore integration time:
-
Permalink:
dirkpetersen/python-pwalk@db72d2a65e02565097d4198231f45240815140b2 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/dirkpetersen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@db72d2a65e02565097d4198231f45240815140b2 -
Trigger Event:
release
-
Statement type: