-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Labels
bugSomething isn't workingSomething isn't working
Description
Running ruff check --force-exclude --fix --exit-non-zero-on-fix on my repository deletes some imports that are actually used.
The next time that I run ruff check ., it fails because of missing imports. The missing imports are the ones deleted by ruff.
Reproduction steps
- git clone https://github.com/WhyNotHugo/django-afip/
- cd django-afip
- ruff check --force-exclude --fix --exit-non-zero-on-fix
Observed result
ruff deletes imports which are in the if TYPE_CHECKING block:
diff --git a/django_afip/serializers.py b/django_afip/serializers.py
index 34fa8b4..bc2eb57 100644
--- a/django_afip/serializers.py
+++ b/django_afip/serializers.py
@@ -11,13 +11,6 @@ if TYPE_CHECKING:
from datetime import date
from datetime import datetime
- from django.db.models import QuerySet
-
- from django_afip.models import AuthTicket
- from django_afip.models import Optional
- from django_afip.models import Receipt
- from django_afip.models import Tax
- from django_afip.models import Vat
Running ruff check now fails:
> ruff check
django_afip/serializers.py:43:30: F821 Undefined name `AuthTicket`
|
42 | @typing.no_type_check # zeep's dynamic types cannot be type-checked
43 | def serialize_ticket(ticket: AuthTicket): # noqa: ANN201
| ^^^^^^^^^^ F821
44 | return f.FEAuthRequest(
45 | Token=ticket.token,
|
django_afip/serializers.py:52:43: F821 Undefined name `QuerySet`
|
51 | @typing.no_type_check # zeep's dynamic types cannot be type-checked
52 | def serialize_multiple_receipts(receipts: QuerySet[Receipt]): # noqa: ANN201
| ^^^^^^^^ F821
53 | receipts = receipts.all().order_by("receipt_number")
|
django_afip/serializers.py:52:52: F821 Undefined name `Receipt`
|
51 | @typing.no_type_check # zeep's dynamic types cannot be type-checked
52 | def serialize_multiple_receipts(receipts: QuerySet[Receipt]): # noqa: ANN201
| ^^^^^^^ F821
53 | receipts = receipts.all().order_by("receipt_number")
|
django_afip/serializers.py:69:32: F821 Undefined name `Receipt`
|
68 | @typing.no_type_check # zeep's dynamic types cannot be type-checked
69 | def serialize_receipt(receipt: Receipt): # noqa: ANN201
| ^^^^^^^ F821
70 | taxes = receipt.taxes.all()
71 | vats = receipt.vat.all()
|
django_afip/serializers.py:128:24: F821 Undefined name `Tax`
|
127 | @typing.no_type_check # zeep's dynamic types cannot be type-checked
128 | def serialize_tax(tax: Tax): # noqa: ANN201
| ^^^ F821
129 | return f.Tributo(
130 | Id=tax.tax_type.code,
|
django_afip/serializers.py:139:24: F821 Undefined name `Vat`
|
138 | @typing.no_type_check # zeep's dynamic types cannot be type-checked
139 | def serialize_vat(vat: Vat): # noqa: ANN201
| ^^^ F821
140 | return f.AlicIva(
141 | Id=vat.vat_type.code,
|
django_afip/serializers.py:148:34: F821 Undefined name `Optional`
|
147 | @typing.no_type_check # zeep's dynamic types cannot be type-checked
148 | def serialize_optional(optional: Optional): # noqa: ANN201
| ^^^^^^^^ F821
149 | return f.Opcional(
150 | Id=optional.optional_type.code,
|
Found 7 errors.Expected results
No change; ruff should not delete imports which are being used.
Additional details
- Using
ruff 0.8.1from PyPI - The issue is not reproducible with ruff 0.7.3
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working