Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 26 additions & 22 deletions docs/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ numbers
└── py.typed
```

We'll then replace the contents of `src/numbers/__init__.py` with the following code:
We'll then clear out the auto-generated content in `src/numbers/__init__.py`
and create `src/numbers/calculate.py` with the following code:

```python
from typing import Iterable
Expand All @@ -49,7 +50,7 @@ We can then run the Ruff linter over our project via `uv run ruff check`:

```console
$ uv run ruff check
src/numbers/__init__.py:3:8: F401 [*] `os` imported but unused
src/numbers/calculate.py:3:8: F401 [*] `os` imported but unused
Found 1 error.
[*] 1 fixable with the `--fix` option.
```
Expand All @@ -71,8 +72,8 @@ Found 1 error (1 fixed, 0 remaining).
Running `git diff` shows the following:

```diff
--- a/src/numbers/__init__.py
+++ b/src/numbers/__init__.py
--- a/src/numbers/calculate.py
+++ b/src/numbers/calculate.py
@@ -1,7 +1,5 @@
from typing import Iterable

Expand All @@ -90,7 +91,7 @@ def sum_even_numbers(numbers: Iterable[int]) -> int:
Note Ruff runs in the current directory by default, but you can pass specific paths to check:

```console
$ uv run ruff check src/numbers/__init__.py
$ uv run ruff check src/numbers/calculate.py
```

Now that our project is passing `ruff check`, we can run the Ruff formatter via `ruff format`:
Expand All @@ -104,8 +105,8 @@ Running `git diff` shows that the `sum` call was reformatted to fit within the d
line length limit:

```diff
--- a/numbers.py
+++ b/numbers.py
--- a/src/numbers/calculate.py
+++ b/src/numbers/calculate.py
@@ -3,7 +3,4 @@ from typing import Iterable

def sum_even_numbers(numbers: Iterable[int]) -> int:
Expand Down Expand Up @@ -158,7 +159,7 @@ Running Ruff again, we see that it now enforces a maximum line width, with a lim

```console
$ uv run ruff check
src/numbers/__init__.py:5:80: E501 Line too long (90 > 79)
src/numbers/calculate.py:5:80: E501 Line too long (90 > 79)
Found 1 error.
```

Expand Down Expand Up @@ -240,7 +241,7 @@ the use of the deprecated `typing.Iterable` instead of `collections.abc.Iterable

```console
$ uv run ruff check
src/numbers/__init__.py:1:1: UP035 [*] Import from `collections.abc` instead: `Iterable`
src/numbers/calculate.py:1:1: UP035 [*] Import from `collections.abc` instead: `Iterable`
Found 1 error.
[*] 1 fixable with the `--fix` option.
```
Expand Down Expand Up @@ -283,9 +284,15 @@ If we run Ruff again, we'll see that it now enforces the pydocstyle rules:

```console
$ uv run ruff check
numbers/__init__.py:1:1: D104 Missing docstring in public package
src/numbers/__init__.py:1:1: UP035 [*] Import from `collections.abc` instead: `Iterable`
src/numbers/__init__.py:1:1: D100 Missing docstring in public module
src/numbers/__init__.py:1:1: D104 Missing docstring in public package
src/numbers/calculate.py:1:1: UP035 [*] Import from `collections.abc` instead: `Iterable`
|
1 | from typing import Iterable
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035
|
= help: Import from `collections.abc`

src/numbers/calculate.py:1:1: D100 Missing docstring in public module
Found 3 errors.
[*] 1 fixable with the `--fix` option.
```
Expand All @@ -308,9 +315,9 @@ Running `ruff check` again, we'll see that it no longer flags the `Iterable` imp

```console
$ uv run ruff check
numbers/__init__.py:1:1: D104 Missing docstring in public package
src/numbers/__init__.py:1:1: D100 Missing docstring in public module
Found 3 errors.
src/numbers/__init__.py:1:1: D104 Missing docstring in public package
src/numbers/calculate.py:1:1: D100 Missing docstring in public module
Found 2 errors.
```

If we want to ignore a rule for an entire file, we can add the line `# ruff: noqa: {code}` anywhere
Expand Down Expand Up @@ -345,16 +352,13 @@ Added 1 noqa directive.
Running `git diff` shows the following:

```diff
diff --git a/tutorial/src/main.py b/tutorial/src/main.py
index b9291c5ca..b9f15b8c1 100644
--- a/src/numbers/__init__.py
+++ b/src/numbers/__init__.py
diff --git a/numbers/src/numbers/calculate.py b/numbers/src/numbers/calculate.py
index 71fca60c8d..e92d839f1b 100644
--- a/numbers/src/numbers/calculate.py
+++ b/numbers/src/numbers/calculate.py
@@ -1,4 +1,4 @@
-from typing import Iterable
+from typing import Iterable # noqa: UP035


def sum_even_numbers(numbers: Iterable[int]) -> int:
```

## Integrations
Expand Down