Run things on paths
Project description
trailrunner
Walk paths and run things
trailrunner is a simple library for walking paths on the filesystem, and executing
functions for each file found. trailrunner obeys project level .gitignore
files,
and runs functions on a process pool for increased performance. trailrunner is designed
for use by linting, formatting, and other developer tools that need to find and operate
on all files in project in a predictable fashion with a minimal API:
walk()
takes a single Path
, and generates a list of significant files in that tree:
>>> from trailrunner import walk
>>> sorted(walk(Path("trailrunner")))
[
PosixPath('trailrunner/__init__.py'),
PosixPath('trailrunner/__version__.py'),
PosixPath('trailrunner/core.py'),
PosixPath('trailrunner/tests/__init__.py'),
PosixPath('trailrunner/tests/__main__.py'),
PosixPath('trailrunner/tests/core.py'),
]
run()
takes a list of Path
objects and a function, and runs that function once
for each path given. It runs these functions on a process pool, and returns a mapping
of paths to results:
>>> from trailrunner import run
>>> paths = [Path('trailrunner/core.py'), Path('trailrunner/tests/core.py')]
>>> run(paths, str)
{
PosixPath('trailrunner/core.py'): 'trailrunner/core.py',
PosixPath('trailrunner/tests/core.py'): 'trailrunner/tests/core.py',
}
walk_and_run()
does exactly what you would expect:
>>> from trailrunner import walk_and_run
>>> walk_and_run([Path('trailrunner/tests')], str)
{
PosixPath('trailrunner/tests/__init__.py'): 'trailrunner/tests/__init__.py',
PosixPath('trailrunner/tests/__main__.py'): 'trailrunner/tests/__main__.py',
PosixPath('trailrunner/tests/core.py'): 'trailrunner/tests/core.py',
}
Install
trailrunner requires Python 3.6 or newer. You can install it from PyPI:
$ pip install trailrunner
License
trailrunner is copyright John Reese, and licensed under
the MIT license. I am providing code in this repository to you under an open
source license. This is my personal repository; the license you receive to
my code is from me and not from my employer. See the LICENSE
file for details.
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
Hashes for trailrunner-1.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25ff73b8e03a5b2a8eebea158d72482108388f84b28ce006e6d6b19114565937 |
|
MD5 | 66d19a2f66bccad06d7da6b08bcf02e4 |
|
BLAKE2b-256 | 8df1280353a13c95dc62d3f3aba4e2f6d9ae7273cf9ffc39ad9a84f2aec49c5c |