Fixes file types
from .pre-commit-config.yaml issue
#744
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
馃憢 Thanks for making pre-commit available :). It's quite handy!
This PR fixes a bug where files are not being recognized based on their
types
using configuration file settingtypes
.Technical writeup of findings: Commit message for 29d66f4
Issue / Reproduction case
When using a pre-commit-config.yaml in a repository with many bash scripts (that lack a
.sh
suffix to filename):And running:
Actual output:
Expected behavior
That pre-commit finds the files with a shebang of
#!/usr/bin/env bash
and lints them.Solution
I added two test cases, one for Python (which did behave properly) and one for a bash script like:
Filename:
bash_script
Then I tracked down the issue to the comparison between a List and a FrozenSet here:
I rewrote that comparison to compare two FrozenSets using the
intersection
function. This produces predictable results on Python 2.7 and 3.5.Once this is approved, I'll happily squash it down to a single commit. Right now it's 2 commits to show the spec failing before the patch.
Notes:
get_tags
function via dependency injection to simplify testing. If you prefer a different mechanism, feel free to adjust the PR to suit your testing preferences.