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
Metadata
Release files for pathpick 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pathpick-0.1.1.tar.gz | 9.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pathpick-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.9 kB
Release files / pathpick-0.1.1.tar.gz
| Download URL | pathpick-0.1.1.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce617cb2bb8135208dc1df8c4fa82fcccdf11ec08130d9b8e92cf41dc63dfb6b
|
|
BLAKE2b-256 checksum How to use checksums |
cb110fbefa16653eb33af0952f60912b4305f5560e231fe1f36ea4ea846909cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.8
|
Release files / pathpick-0.1.1-py3-none-any.whl
| Download URL | pathpick-0.1.1-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b1ef3437658d950da836d1aa5a672a27f0abc2f0e35c0c34e4d99f08f8c8f8fc
|
|
BLAKE2b-256 checksum How to use checksums |
80b6acf87873fb43c327d887e6299a2e3344d31523805d7ad5e7c94601a4581e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.8
|