{"library":"py-walk","title":"py-walk","description":"py-walk is a Python library designed to filter filesystem paths based on .gitignore-like patterns. It aims to provide 100% compatibility with Git's wildmatch pattern syntax, making it useful for applications needing to mimic Git's file exclusion behavior. The library is currently at version 0.3.3 and appears to have an active, though not rapid, release cadence with recent patch updates.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install py-walk"],"cli":null},"imports":["from py_walk import walk","from py_walk import get_parser_from_text","from py_walk import get_parser_from_file"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom py_walk import walk, get_parser_from_text\n\n# Create a dummy directory structure for demonstration\nif not os.path.exists('my_project'):\n    os.makedirs('my_project/data')\n    os.makedirs('my_project/src')\n    with open('my_project/data/temp.bin', 'w') as f: f.write('binary data')\n    with open('my_project/data/foo.bin', 'w') as f: f.write('important binary data')\n    with open('my_project/src/main.py', 'w') as f: f.write('print(\"Hello\")')\n    with open('my_project/__pycache__/cache.pyc', 'w') as f: f.write('cache')\n    with open('my_project/.env', 'w') as f: f.write('ENV_VAR=value')\n\npatterns = \"\"\"\n**/data/*.bin\n!**/data/foo.bin\n# exclude python cache and env files\n__pycache__/\n*.py[cod]\n.env\n\"\"\"\n\n# Example 1: Walk a directory with patterns\nprint(\"\\n--- Walking 'my_project' with patterns ---\")\nfor path in walk('my_project', ignore=patterns):\n    print(f\"Included: {path}\")\n\n# Example 2: Manually check paths against a parser\nprint(\"\\n--- Manually checking paths ---\")\nparser = get_parser_from_text(patterns, base_dir='my_project')\n\npaths_to_check = [\n    'my_project/data/temp.bin',\n    'my_project/data/foo.bin',\n    'my_project/src/main.py',\n    'my_project/__pycache__/cache.pyc',\n    'my_project/.env',\n    'my_project/README.md' # This file doesn't exist but we can check the pattern\n]\n\nfor p in paths_to_check:\n    if not parser.match(p):\n        print(f\"'{p}' is NOT ignored (matches patterns if prefix is not '!')\")\n    else:\n        print(f\"'{p}' IS ignored\")\n\n# Cleanup dummy directory (optional)\nimport shutil\n# shutil.rmtree('my_project') # Uncomment to clean up\n","lang":"python","description":"This quickstart demonstrates how to use `py-walk` to traverse a directory with gitignore-like patterns and how to create a parser to manually check individual paths. It first creates a dummy directory structure and then applies a set of exclusion patterns.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"0.3.3","pypi_latest":"0.3.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0.09,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":2.9,"disk_size":"18.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.05,"mem_mb":2.9,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.13,"mem_mb":3.3,"disk_size":"20.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.12,"mem_mb":3.3,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.12,"mem_mb":3.3,"disk_size":"11.9M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.12,"mem_mb":3.3,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.1,"mem_mb":3.3,"disk_size":"11.7M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.1,"mem_mb":3.1,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":2.8,"disk_size":"17.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"py-walk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.06,"mem_mb":2.8,"disk_size":"18M"}]}}