Oven logo

Oven

rignore0.6.4

Published

Python Bindings for the ignore crate

pip install rignore

Package Downloads

Weekly DownloadsMonthly Downloads

Requires Python

>=3.8

Dependencies

    rignore 🚀🐍

    rignore is a Python module that provides a high-performance, Rust-powered file system traversal functionality. It wraps the Rust ignore crate using PyO3, offering an efficient way to walk through directories while respecting various ignore rules.

    ✨ Features

    • 🚀 Fast directory traversal powered by Rust
    • 🙈 Respects .gitignore rules
    • 🛠️ Customizable ignore patterns
    • 💾 Efficient memory usage
    • 🐍 Easy-to-use Python API

    📦 Installation

    You can install rignore using pip:

    pip install rignore
    

    🚀 Usage

    The main function provided by rignore is walk, which returns an iterator of file paths:

    import rignore
    
    for file_path in rignore.walk("/path/to/directory"):
        print(file_path)
    

    🔧 Advanced Usage

    The walk function accepts several optional parameters to customize its behavior:

    rignore.walk(
        path,
        ignore_hidden=None,
        read_ignore_files=None,
        read_parents_ignores=None,
        read_git_ignore=None,
        read_global_git_ignore=None,
        read_git_exclude=None,
        require_git=None,
        additional_ignores=None,
        additional_ignore_paths=None,
        max_depth=None,
        max_filesize=None,
        follow_links=None,
        case_insensitive=None,
        same_file_system=None,
        filter_entry=None,
    )
    

    📝 Parameters

    • path (str): The root directory to start the walk from.
    • ignore_hidden (bool, optional): Whether to ignore hidden files and directories.
    • read_ignore_files (bool, optional): Whether to read .ignore files.
    • read_parents_ignores (bool, optional): Whether to read ignore files from parent directories.
    • read_git_ignore (bool, optional): Whether to respect .gitignore files.
    • read_global_git_ignore (bool, optional): Whether to respect global Git ignore rules.
    • read_git_exclude (bool, optional): Whether to respect Git exclude files.
    • require_git (bool, optional): Whether to require the directory to be a Git repository.
    • additional_ignores (List[str], optional): Additional ignore patterns to apply.
    • additional_ignore_paths (List[str], optional): Additional ignore file paths to read.
    • max_depth (int, optional): Maximum depth to traverse.
    • max_filesize (int, optional): Maximum file size to consider (in bytes).
    • follow_links (bool, optional): Whether to follow symbolic links.
    • case_insensitive (bool, optional): Whether to use case-insensitive matching for ignore patterns.
    • same_file_system (bool, optional): Whether to stay on the same file system.
    • filter_entry (Callable[[str, bool], optional): Custom filter function to exclude entries.

    ⚡ Performance

    rignore leverages the power of Rust to provide high-performance directory traversal. It's significantly faster than pure Python implementations, especially for large directory structures.

    🤝 Contributing

    Contributions are welcome! Please feel free to submit a Pull Request.

    📄 License

    This project is licensed under the MIT License - see the LICENSE file for details.

    🙏 Acknowledgements

    • ignore - The Rust crate that powers this project
    • PyO3 - The library used to create Python bindings for Rust code