-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support knot.toml
files in project discovery
#15505
Conversation
match PyProject::from_toml_str(&pyproject_str) { | ||
Ok(pyproject) => Some(pyproject), | ||
Err(error) => { | ||
return Err(ProjectDiscoveryError::InvalidPyProject { | ||
path: pyproject_path, | ||
source: Box::new(error), | ||
}) | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
map_err
didn't work here (and below). The borrow checker gets mad at me for consuming pyproject_path
in the closure and using it further down.
7c93c81
to
e23b85c
Compare
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
.unwrap_or_else(|| Name::new(root.file_name().unwrap_or("root"))) | ||
} | ||
|
||
/// Loads a project form a `knot.toml` file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/// Loads a project form a `knot.toml` file. | |
/// Loads a project from a `knot.toml` file. |
c8a8a01
to
b485a63
Compare
e23b85c
to
e2fa098
Compare
e2fa098
to
9156686
Compare
* main: [red-knot] Inline `SubclassOfType::as_instance_type_of_metaclass()` (#15556) [`flake8-comprehensions`] strip parentheses around generators in `unnecessary-generator-set` (`C401`) (#15553) [`pylint`] Implement `redefined-slots-in-subclass` (`W0244`) (#9640) [`flake8-bugbear`] Do not raise error if keyword argument is present and target-python version is less or equals than 3.9 (`B903`) (#15549) [red-knot] `type[T]` is disjoint from `type[S]` if the metaclass of `T` is disjoint from the metaclass of `S` (#15547) [red-knot] Pure instance variables declared in class body (#15515) Update snapshots of #15507 with new annotated snipetts rendering (#15546) [`pylint`] Do not report methods with only one `EM101`-compatible `raise` (`PLR6301`) (#15507) Fix unstable f-string formatting for expressions containing a trailing comma (#15545) Support `knot.toml` files in project discovery (#15505) Add support for configuring knot in `pyproject.toml` files (#15493) Fix bracket spacing for single-element tuples in f-string expressions (#15537) [`flake8-simplify`] Do not emit diagnostics for expressions inside string type annotations (`SIM222`, `SIM223`) (#15405) [`flake8-pytest-style`] Do not emit diagnostics for empty `for` loops (`PT012`, `PT031`) (#15542)
Summary
This PR adds support for
knot.toml
files during project discovery.knot.toml
files take precedence over anypyproject.toml
but we still need to read thepyproject.toml
to get the project's name and any
requires-python
constraint (not part of this PR).This PR doesn't add support for:
knot.toml
files from ancestor directories (hierarchical configuration)Part of #15491
Test Plan
Added unit test