Metadata-Version: 2.4
Name: speedywalk
Version: 0.1.3
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://github.com/Peter554/speedywalk
Project-URL: Repository, https://github.com/Peter554/speedywalk
Project-URL: Issues, https://github.com/Peter554/speedywalk/issues

# speedywalk

Fast parallel directory walking for Python, powered by Rust.

## 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
```

## Usage

```python
import speedywalk

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

# Custom configuration
for entry in speedywalk.walk(
    ".",
    filters=["*.yaml", "*.yml"],
    ignore_dirs=["node_modules", "venv"],
    max_depth=3,
    threads=4,
):
    print(entry.path_str, entry.is_dir)
```

