Release v0.1.1 (What’s new?).
Welcome to pathpick Documentation¶
pathpick is a Python library that makes it easy to filter files and directories using familiar glob-style patterns inspired by .gitignore. It supports both include and exclude rules, giving you fine-grained control over which paths are selected. Under the hood, it uses the powerful pathspec library and supports Git’s WildMatchPattern syntax.
A path is included if it matches any of the include patterns and does not match any of the exclude patterns. If include patterns are empty, then include everything by default. If exclude patterns are empty, the we don’t exclude anything. This logic is ideal for projects that involve scanning files, building file manifests, cleaning directories, or deploying selected content.
Usage Examples¶
First, read this document to get basic understanding about the include / exclude pattern syntax.
Include all Python files
from pathpick.api import PathPick
pick = PathPick.new(include=["**/*.py"], exclude=[])
pick.is_match("main.py") # True
pick.is_match("utils/helper.py") # True
pick.is_match("README.md") # False
Include all files, but exclude logs and temporary files
pick = PathPick.new(
include=["**/*"],
exclude=["**/*.log", "**/*.tmp"]
)
pick.is_match("report.csv") # True
pick.is_match("debug.log") # False
pick.is_match("backup/data.tmp") # False
Include files in specific folders
pick = PathPick.new(
include=["src/**/*.py", "docs/**/*.md"],
exclude=[]
)
pick.is_match("src/main.py") # True
pick.is_match("docs/intro.md") # True
pick.is_match("test/test_main.py") # False
Exclude test files even if they match the include pattern
pick = PathPick.new(
include=["**/*.py"],
exclude=["**/test_*.py", "**/tests/*"]
)
pick.is_match("src/module.py") # True
pick.is_match("tests/test_module.py") # False
pick.is_match("src/test_utils.py") # False
Install¶
pathpick is released on PyPI, so all you need is to:
$ pip install pathpick
To upgrade to latest version:
$ pip install --upgrade pathpick