A lightweight Python library for selecting files using gitignore-style include and exclude patterns.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pathpick-0.1.1.tar.gz.
File metadata
- Download URL: pathpick-0.1.1.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce617cb2bb8135208dc1df8c4fa82fcccdf11ec08130d9b8e92cf41dc63dfb6b
|
|
| MD5 |
7da9e87b13d007c83bf44c63cf837224
|
|
| BLAKE2b-256 |
cb110fbefa16653eb33af0952f60912b4305f5560e231fe1f36ea4ea846909cd
|
File details
Details for the file pathpick-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pathpick-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1ef3437658d950da836d1aa5a672a27f0abc2f0e35c0c34e4d99f08f8c8f8fc
|
|
| MD5 |
a52b061f94c1e4cd98e9c001e009c092
|
|
| BLAKE2b-256 |
80b6acf87873fb43c327d887e6299a2e3344d31523805d7ad5e7c94601a4581e
|