From 6e321eefb63641f90528107d5cbb8f6233a8cb68 Mon Sep 17 00:00:00 2001 From: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:00:57 -0800 Subject: [PATCH] Resolves the new warnings --- .ruff.toml | 20 +++++++++++--------- src/documents/serialisers.py | 21 ++++++++------------- src/documents/signals/handlers.py | 24 +++++++++++++++--------- src/documents/views.py | 24 ++++++++++++------------ src/paperless/settings.py | 2 +- src/paperless/wsgi.py | 1 + src/paperless_mail/admin.py | 2 -- src/paperless_mail/mail.py | 8 +++++--- src/paperless_tesseract/parsers.py | 6 +++--- 9 files changed, 56 insertions(+), 52 deletions(-) diff --git a/.ruff.toml b/.ruff.toml index 497d3f1eb..6331bfaf5 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -1,5 +1,14 @@ +fix = true +line-length = 88 +respect-gitignore = true +src = ["src"] +target-version = "py39" +output-format = "grouped" +show-fixes = true + # https://docs.astral.sh/ruff/settings/ # https://docs.astral.sh/ruff/rules/ +[lint] extend-select = [ "W", # https://docs.astral.sh/ruff/rules/#pycodestyle-e-w "I", # https://docs.astral.sh/ruff/rules/#isort-i @@ -25,15 +34,8 @@ extend-select = [ ] # TODO PTH https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth ignore = ["DJ001", "SIM105", "RUF012"] -fix = true -line-length = 88 -respect-gitignore = true -src = ["src"] -target-version = "py39" -output-format = "grouped" -show-fixes = true -[per-file-ignores] +[lint.per-file-ignores] ".github/scripts/*.py" = ["E501", "INP001", "SIM117"] "docker/wait-for-redis.py" = ["INP001", "T201"] "*/tests/*.py" = ["E501", "SIM117"] @@ -41,5 +43,5 @@ show-fixes = true "src/paperless_tesseract/tests/test_parser.py" = ["RUF001"] "src/documents/models.py" = ["SIM115"] -[isort] +[lint.isort] force-single-line = true diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index 2a2fc46a7..3fc989cae 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -82,13 +82,11 @@ class MatchingModelSerializer(serializers.ModelSerializer): def validate(self, data): # TODO: remove pending https://github.com/encode/django-rest-framework/issues/7173 - name = data["name"] if "name" in data else self.instance.name + name = data.get("name", self.instance.name) owner = ( data["owner"] if "owner" in data - else self.user - if hasattr(self, "user") - else None + else self.user if hasattr(self, "user") else None ) pk = self.instance.pk if hasattr(self.instance, "pk") else None if ("name" in data or "owner" in data) and self.Meta.model.objects.filter( @@ -261,7 +259,7 @@ class OwnedObjectSerializer(serializers.ModelSerializer, SetPermissionsMixin): if "set_permissions" in validated_data: self._set_permissions(validated_data["set_permissions"], instance) if "owner" in validated_data and "name" in self.Meta.fields: - name = validated_data["name"] if "name" in validated_data else instance.name + name = validated_data.get("name", instance.name) not_unique = ( self.Meta.model.objects.exclude(pk=instance.pk) .filter(owner=validated_data["owner"], name=name) @@ -443,7 +441,7 @@ class CustomFieldSerializer(serializers.ModelSerializer): def validate(self, attrs): # TODO: remove pending https://github.com/encode/django-rest-framework/issues/7173 - name = attrs["name"] if "name" in attrs else self.instance.name + name = attrs.get("name", self.instance.name) if ("name" in attrs) and self.Meta.model.objects.filter( name=name, ).exists(): @@ -697,10 +695,7 @@ class DocumentSerializer( custom_field_instance.field, doc_id, ) - if ( - "remove_inbox_tags" in validated_data - and validated_data["remove_inbox_tags"] - ): + if validated_data.get("remove_inbox_tags"): tag_ids_being_added = ( [ tag.id @@ -1352,7 +1347,7 @@ class BulkEditObjectPermissionsSerializer(serializers.Serializer, SetPermissions def validate(self, attrs): object_type = attrs["object_type"] objects = attrs["objects"] - permissions = attrs["permissions"] if "permissions" in attrs else None + permissions = attrs.get("permissions") self._validate_objects(objects, object_type) if permissions is not None: @@ -1514,7 +1509,7 @@ class WorkflowSerializer(serializers.ModelSerializer): for trigger in triggers: filter_has_tags = trigger.pop("filter_has_tags", None) trigger_instance, _ = WorkflowTrigger.objects.update_or_create( - id=trigger["id"] if "id" in trigger else None, + id=trigger.get("id"), defaults=trigger, ) if filter_has_tags is not None: @@ -1530,7 +1525,7 @@ class WorkflowSerializer(serializers.ModelSerializer): assign_change_groups = action.pop("assign_change_groups", None) assign_custom_fields = action.pop("assign_custom_fields", None) action_instance, _ = WorkflowAction.objects.update_or_create( - id=action["id"] if "id" in action else None, + id=action.get("id"), defaults=action, ) if assign_tags is not None: diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index c8657ce1d..9f2b9a222 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -559,15 +559,21 @@ def run_workflow( try: document.title = parse_doc_title_w_placeholders( action.assign_title, - document.correspondent.name - if document.correspondent is not None - else "", - document.document_type.name - if document.document_type is not None - else "", - document.owner.username - if document.owner is not None - else "", + ( + document.correspondent.name + if document.correspondent is not None + else "" + ), + ( + document.document_type.name + if document.document_type is not None + else "" + ), + ( + document.owner.username + if document.owner is not None + else "" + ), timezone.localtime(document.added), document.original_filename, timezone.localtime(document.created), diff --git a/src/documents/views.py b/src/documents/views.py index 0578cdb24..7a037c27d 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -175,16 +175,16 @@ class IndexView(TemplateView): context["full_name"] = self.request.user.get_full_name() context["styles_css"] = f"frontend/{self.get_frontend_language()}/styles.css" context["runtime_js"] = f"frontend/{self.get_frontend_language()}/runtime.js" - context[ - "polyfills_js" - ] = f"frontend/{self.get_frontend_language()}/polyfills.js" + context["polyfills_js"] = ( + f"frontend/{self.get_frontend_language()}/polyfills.js" + ) context["main_js"] = f"frontend/{self.get_frontend_language()}/main.js" - context[ - "webmanifest" - ] = f"frontend/{self.get_frontend_language()}/manifest.webmanifest" - context[ - "apple_touch_icon" - ] = f"frontend/{self.get_frontend_language()}/apple-touch-icon.png" + context["webmanifest"] = ( + f"frontend/{self.get_frontend_language()}/manifest.webmanifest" + ) + context["apple_touch_icon"] = ( + f"frontend/{self.get_frontend_language()}/apple-touch-icon.png" + ) return context @@ -722,9 +722,9 @@ class SearchResultSerializer(DocumentSerializer, PassUserMixin): r["__search_hit__"] = { "score": instance.score, "highlights": instance.highlights("content", text=doc.content), - "note_highlights": instance.highlights("notes", text=notes) - if doc - else None, + "note_highlights": ( + instance.highlights("notes", text=notes) if doc else None + ), "rank": instance.rank, } diff --git a/src/paperless/settings.py b/src/paperless/settings.py index d51ba9020..94400c8dd 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -1100,7 +1100,7 @@ def _get_nltk_language_setting(ocr_lang: str) -> Optional[str]: "tur": "turkish", } - return iso_code_to_nltk.get(ocr_lang, None) + return iso_code_to_nltk.get(ocr_lang) NLTK_ENABLED: Final[bool] = __get_boolean("PAPERLESS_ENABLE_NLTK", "yes") diff --git a/src/paperless/wsgi.py b/src/paperless/wsgi.py index 82e0744f7..6aab72299 100644 --- a/src/paperless/wsgi.py +++ b/src/paperless/wsgi.py @@ -6,6 +6,7 @@ It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/ """ + import os from django.core.wsgi import get_wsgi_application diff --git a/src/paperless_mail/admin.py b/src/paperless_mail/admin.py index be9df4c44..adec5e17c 100644 --- a/src/paperless_mail/admin.py +++ b/src/paperless_mail/admin.py @@ -9,11 +9,9 @@ from paperless_mail.models import ProcessedMail class MailAccountAdminForm(forms.ModelForm): - """Metadata classes used by Django admin to display the form.""" class Meta: - """Metadata class used by Django admin to display the form.""" model = MailAccount diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 76e5ed2e7..6514014ca 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -739,9 +739,11 @@ class MailAccountHandler(LoggingMixin): correspondent_id=correspondent.id if correspondent else None, document_type_id=doc_type.id if doc_type else None, tag_ids=tag_ids, - owner_id=rule.owner.id - if (rule.assign_owner_from_rule and rule.owner) - else None, + owner_id=( + rule.owner.id + if (rule.assign_owner_from_rule and rule.owner) + else None + ), ) consume_task = consume_file.s( diff --git a/src/paperless_tesseract/parsers.py b/src/paperless_tesseract/parsers.py index ccddc987e..b6baa3289 100644 --- a/src/paperless_tesseract/parsers.py +++ b/src/paperless_tesseract/parsers.py @@ -205,9 +205,9 @@ class RasterisedDocumentParser(DocumentParser): } if "pdfa" in ocrmypdf_args["output_type"]: - ocrmypdf_args[ - "color_conversion_strategy" - ] = self.settings.color_conversion_strategy + ocrmypdf_args["color_conversion_strategy"] = ( + self.settings.color_conversion_strategy + ) if self.settings.mode == ModeChoices.FORCE or safe_fallback: ocrmypdf_args["force_ocr"] = True