Skip to content

Commit 8f400bb

Browse files
authored
[pydoclint] Make example error out-of-the-box (DOC501) (#19218)
<!-- Thank you for contributing to Ruff/ty! To help us out with reviewing, please consider the following: - Does this pull request include a summary of the change? (See below.) - Does this pull request include a descriptive title? (Please prefix with `[ty]` for ty pull requests.) - Does this pull request include references to any relevant issues? --> ## Summary <!-- What's the purpose of the change? What does it do, and why? --> Part of #18972 This PR makes [docstring-missing-exception (DOC501)](https://docs.astral.sh/ruff/rules/docstring-missing-exception/#docstring-missing-exception-doc501)'s example error out-of-the-box. Since the exceptions in the function body need to undergo name resolution to figure out if one of them is `NotImplementedError`, `DOC501` won't lint if the raised name is not defined. This could be considered a limitation, but should be fine since `F821` already covers undefined names. I did discover a different edge case, but it's not relevant to the example. [Old example](https://play.ruff.rs/d213e87d-e5c7-49d8-a908-931f61f06055) ```py def calculate_speed(distance: float, time: float) -> float: """Calculate speed as distance divided by time. Args: distance: Distance traveled. time: Time spent traveling. Returns: Speed as distance divided by time. """ try: return distance / time except ZeroDivisionError as exc: raise FasterThanLightError from exc ``` [New example](https://play.ruff.rs/cb41e0b7-b950-4fa0-842d-cecab9c8e842) ```py class FasterThanLightError(ArithmeticError): ... def calculate_speed(distance: float, time: float) -> float: """Calculate speed as distance divided by time. Args: distance: Distance traveled. time: Time spent traveling. Returns: Speed as distance divided by time. """ try: return distance / time except ZeroDivisionError as exc: raise FasterThanLightError from exc ``` The "Use instead" section was also updated similarly. ## Test Plan <!-- How was it tested? --> N/A, no functionality/tests affected
1 parent 1eff030 commit 8f400bb

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

crates/ruff_linter/src/rules/pydoclint/rules/check_docstring.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,9 @@ impl Violation for DocstringExtraneousYields {
238238
///
239239
/// ## Example
240240
/// ```python
241+
/// class FasterThanLightError(ArithmeticError): ...
242+
///
243+
///
241244
/// def calculate_speed(distance: float, time: float) -> float:
242245
/// """Calculate speed as distance divided by time.
243246
///
@@ -256,6 +259,9 @@ impl Violation for DocstringExtraneousYields {
256259
///
257260
/// Use instead:
258261
/// ```python
262+
/// class FasterThanLightError(ArithmeticError): ...
263+
///
264+
///
259265
/// def calculate_speed(distance: float, time: float) -> float:
260266
/// """Calculate speed as distance divided by time.
261267
///

0 commit comments

Comments
 (0)