Metadata-Version: 2.4
Name: speedywalk
Version: 0.4.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Filesystems
License-File: LICENSE
Summary: Fast parallel directory walking for Python, powered by Rust
Keywords: filesystem,directory,walk,parallel,fast,gitignore
Author: Peter Byfield
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://peter554.github.io/speedywalk/
Project-URL: Repository, https://github.com/Peter554/speedywalk
Project-URL: Issues, https://github.com/Peter554/speedywalk/issues
Project-URL: Documentation, https://peter554.github.io/speedywalk/

# speedywalk

[![PyPI](https://img.shields.io/pypi/v/speedywalk.svg)](https://pypi.org/project/speedywalk/)
[![CI](https://github.com/Peter554/speedywalk/actions/workflows/check.yml/badge.svg)](https://github.com/Peter554/speedywalk/actions/workflows/check.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://peter554.github.io/speedywalk/)

Fast parallel directory walking for Python, powered by Rust.

- Find the repo [here](https://github.com/Peter554/speedywalk).
- Read the docs [here](https://peter554.github.io/speedywalk/).

## Features

- 🚀 **Fast**: Uses the rust [ignore](https://crates.io/crates/ignore) crate for fast directory traversal.
- ⚡ **Parallel**: Multi-threaded directory traversal.
- 🎯 **Smart filtering**: Built-in support for `.gitignore`, `.ignore`, and glob patterns.
- 🔒 **Type-safe**: Full type hints.

## Installation

```bash
pip install speedywalk
```

## Quick Start

```python
import speedywalk

# Find all Python files, respecting .gitignore
for entry in speedywalk.walk(".", filter="**/*.py"):
    if entry.is_file:
        print(entry.path)

# Custom configuration with filtering and exclusion
for entry in speedywalk.walk(
    ".",
    filter=["**/*.yaml", "**/*.yml"],
    exclude=["**/node_modules", "**/__pycache__"],
    max_depth=3,
    threads=4,
):
    print(entry.path_str, entry.is_dir)
```

