[ty] dataclasses: Support dataclasses.KW_ONLY#18677
[ty] dataclasses: Support dataclasses.KW_ONLY#18677AlexWaygood merged 3 commits intoastral-sh:mainfrom
Conversation
|
8bc79fd to
ab76e06
Compare
|
There's one TODO here for detecting more than one field annotated with But the main functionality is now working, so I'd appreciate a review on it. But please also see the question at the end of astral-sh/ty#111 (comment) |
| .is_some_and(|instance| instance.class.is_known(db, KnownClass::NotImplementedType)) | ||
| } | ||
|
|
||
| pub fn is_dataclass_kw_only(&self, db: &'db dyn Db) -> bool { |
There was a problem hiding this comment.
Do you prefer not having a function since there's only one caller?
There was a problem hiding this comment.
yep. If we find other places in the codebase that need this in the future, I think we could consider adding a Type method, but for now it seems likely to me that the places we'll need this information are quite localised to one specific area of the codebase :-)
There was a problem hiding this comment.
Got it, that makes sense, thanks!
* main: (38 commits) [`pyupgrade`] Suppress `UP008` diagnostic if `super` symbol is not builtin (#18688) [pylint] Fix `PLW0128` to check assignment targets in square brackets and after asterisks (#18665) [`refurb`] Make the fix for `FURB163` unsafe for `log2`, `log10`, `*args`, and deleted comments (#18645) [ty] allow `T: Never` as subtype of `Never` (#18687) [ty] Use more parallelism when running corpus tests (#18711) [ty] Support `dataclasses.KW_ONLY` (#18677) [`ruff`] Check for non-context-manager use of `pytest.raises`, `pytest.warns`, and `pytest.deprecated_call` (`RUF061`) (#17368) Add syntax error when conversion flag does not immediately follow exclamation mark (#18706) [`flake8-pyi`] Fix `custom-typevar-for-self` with string annotations (`PYI019`) (#18311) Drop confusing second `*` from glob pattern example (#18709) [ty] Stabilize completions (#18650) [ty] Correctly label typeshed-sync PRs (#18702) Update Rust crate memchr to v2.7.5 (#18696) Update dependency react-resizable-panels to v3.0.3 (#18691) Update Rust crate clap to v4.5.40 (#18692) Update Rust crate libcst to v1.8.2 (#18695) Update Rust crate jiff to v0.2.15 (#18693) Update Rust crate libc to v0.2.173 (#18694) Update Rust crate syn to v2.0.103 (#18698) Update Rust crate toml to v0.8.23 (#18699) ...
Summary
Add support for
dataclasses.KW_ONLYas specified in https://docs.python.org/3/library/dataclasses.html#dataclasses.KW_ONLYPart of astral-sh/ty#111
Test Plan
More mdtests.