Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Add a match_path option for comparison against a full path. #529

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

heoga
Copy link

@heoga heoga commented Apr 1, 2021

It has been noted in issue #363 that match & match_dir are
unwieldy when attempting to match against full paths. For
unexample if you have A.py in directories B & C and you only
want to run pydocstyle on one of them.

From my own experience trying to deploy pydocstyle against a
large legacy codebase it is unworkable as it would mean the
entire codebase being converted as a big bang change.

This commit adds a new option, match_path, to the config &
command lines which can be used to provide more nuanced
matching. For example the following specification:

match_path = [AB]/[ab].py
             D/e.py

This defines two regexes. If either match a given path,
relative to the directory specified, the file will be yielded
for comparison. The is complimentary to match & match_dir and
the three can be used together.

A test has been added to test_integration to test & illustrate the feature.
tox was run on Linux (Ubuntu under the subsystem for Windows) and all tests were successful.

Fixes #363

@heoga heoga marked this pull request as ready for review April 1, 2021 07:40
heoga added 2 commits April 1, 2021 09:04
It has been noted in issue PyCQA#363 that match & match_dir are
unwieldy when attempting to match against full paths.  For
unexample if you have A.py in directories B & C and you only
want to run pydocstyle on one of them.

From my own experience trying to deploy pydocstyle against a
large legacy codebase it is unworkable as it would mean the
entire codebase being converted as a big bang change. A more
nuanced approach means the codebase can be converted gradually.

This commit adds a new option, match_path, to the config &
command lines which can be used to provide more nuanced
matching.  For example the following specification:

match_path = [AB]/[ab].py
             D/e.py

This defines two regexes.  If either match a given path,
relative to the directory specified, the file will be yielded
for comparison.  The is complimentary to match & match_dir and
the three can be used together.
@sambhav
Copy link
Member

sambhav commented Dec 30, 2021

@heoga thank you so much for this PR! Sorry for the late review. Would it be possible for you to rebase this PR against the latest changes in the master branch?

@heoga
Copy link
Author

heoga commented Jan 16, 2022

Yes, I'll get it updated against the latest changes and see how it looks.

@dynobo
Copy link

dynobo commented Jun 9, 2022

Any updates on this PR? It would help me a lot. Can I somehow help?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

match-dir does not include files in subdirectories
3 participants