You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
mypy should search parent directories for pyproject.toml config file #10613
First of all, thank you for supporting the highly requested pyproject.toml config format #5205
I'm hoping we can resolve an issue to bring mypy inline with several others including but not limited to isort, black, and pylint. I think mypy should search parent directories for pyproject.toml config file. I think mypy should search up until the user's home directory (or ~25 directories, whichever comes first) for config files.
To Reproduce
Prepare a project such as this
outer/
inner/
main.py
pyproject.toml
From inside the inner directory, run mypy main.py
Expected Behavior
I expect mypy to use the settings defined in the pyproject.toml file found in the parent directory outer. I'm guessing mypy only checks the directory it is invoked from.
Actual Behavior
The settings inside pyproject.toml are not used.
Your Environment
Mypy version used: 0.900
Mypy command-line flags: None
Mypy configuration options from mypy.ini (and other config files): None
I saw the comment at #3377 (comment).
It's a good point of view. I suggest mypy should stop search the configs when find .git directory or others VCS cache.
Will that help? @gvanrossum
Edit: I reviewed this comment, and I found I misunderstood you. You think the config will affect the subdirectories, that's true, but we actually want that affect subdirs. You don't need worried about different act about check parents or not (probably you can add a flag on the pyproject.toml to enable parent search if you really worried about it). If people want specific check, they should always write a config in that dir, or always add flags to their check command.
Activity
yeputons commentedon Nov 2, 2021
A four-year old related discussion about
setup.cfgis available at #3377 (comment)Felixoid commentedon Nov 29, 2022
Hello.
As far as I understand the meaning of pyproject.toml it's supposed to be a global project configuration.
Why should one set the config file manually or have meaningless symlinks everywhere when working in subdirectories?
Another good approach would be to set a stop for a project directory like it's done in black
zyxkad commentedon Mar 2, 2023
I saw the comment at #3377 (comment).
It's a good point of view. I suggest mypy should stop search the configs when find
.gitdirectory or others VCS cache.Will that help? @gvanrossum
Edit: I reviewed this comment, and I found I misunderstood you. You think the config will affect the subdirectories, that's true, but we actually want that affect subdirs. You don't need worried about different act about check parents or not (probably you can add a flag on the
pyproject.tomlto enable parent search if you really worried about it). If people want specific check, they should always write a config in that dir, or always add flags to their check command.Felixoid commentedon Feb 26, 2024
Dear @hauntsaninja, @ilevkivskyi, @AlexWaygood and @JukkaL, mentioning you as top 4
If I'd try to implement it somewhere around this line, would you consider reviewing the PR?
It could have the same fuse as pylint, so won't leave the repository in case of
.gitor.hgdirectory is presentedilevkivskyi commentedon Feb 26, 2024
I can't guarantee I will have time to review the PR, but if it is straightforward, there is high chance that either me or someone else will review it.
Felixoid commentedon Feb 29, 2024
Ok, here's the first shot #16965
It's exactly how it's done in the pylint, but with
os.pathinstead ofpathlibPathFelixoid commentedon May 29, 2024
It's already three months since the PR is created =(
And, coincidentally, it's my birthday today. It would be a good present to review the code ^_^
Add a function to search for pyproject.toml in a project root (#16965)
Add a function to search for pyproject.toml in a project root (python…