fix: improve config file discovery from target paths #323
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.
Summary
-cflag to accept direct file paths (not just directories).pyscn.tomloverpyproject.tomlacross parent directoriespyproject.tomlif it contains[tool.pyscn]sectionProblem
Previously, config file discovery had two issues:
The
-cflag expected a directory path, not a file path. Specifying a config file directly (e.g.,-c myconfig.toml) didn't work.FindDefaultConfigFileonly searched the current working directory. Config files in parent directories of the target weren't discovered.For example, with this structure:
Running
pyscn analyze project/subproject/srcwould findsubproject/pyproject.tomlinstead ofproject/.pyscn.toml.Solution
LoadConfignow handles both file paths and directory pathsFindConfigFileFromPathprioritizes.pyscn.tomlacross all parent directories before falling back topyproject.tomlpyproject.tomlis only used if it contains[tool.pyscn]sectionanalyze_usecase.goauto-discovers config from target paths when no explicit config is specifiedTest plan
-cflag works with direct file paths